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

#include <string.h>
typedef struct tglobals596027 tglobals596027;
typedef struct tpasscontext287005 tpasscontext287005;
typedef struct tsym226846 tsym226846;
typedef struct tjsgen596015 tjsgen596015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcell44933 tcell44933;
typedef struct tcellseq44949 tcellseq44949;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellset44945 tcellset44945;
typedef struct tpagedesc44941 tpagedesc44941;
typedef struct tmemregion27210 tmemregion27210;
typedef struct tsmallchunk26440 tsmallchunk26440;
typedef struct tllchunk27204 tllchunk27204;
typedef struct tbigchunk26442 tbigchunk26442;
typedef struct tintset26417 tintset26417;
typedef struct ttrunk26413 ttrunk26413;
typedef struct tavlnode27208 tavlnode27208;
typedef struct tgcstat47014 tgcstat47014;
typedef struct trope178009 trope178009;
typedef struct tsymseq226818 tsymseq226818;
typedef struct TGenericSeq TGenericSeq;
typedef struct intset223056 intset223056;
typedef struct ttrunk223052 ttrunk223052;
typedef struct ttrunkseq223054 ttrunkseq223054;
typedef struct trodreader277030 trodreader277030;
typedef struct NimStringDesc NimStringDesc;
typedef struct tnode226816 tnode226816;
typedef struct tlineinfo196539 tlineinfo196539;
typedef struct ttype226852 ttype226852;
typedef struct tident201021 tident201021;
typedef struct tnodeseq226810 tnodeseq226810;
typedef struct tproc596033 tproc596033;
typedef struct TY596071 TY596071;
typedef struct tblock596025 tblock596025;
typedef struct tidobj201015 tidobj201015;
typedef struct ttypeseq226848 ttypeseq226848;
typedef struct tscope226840 tscope226840;
typedef struct TY226947 TY226947;
typedef struct tinstantiation226836 tinstantiation226836;
typedef struct tstrtable226820 tstrtable226820;
typedef struct tloc226830 tloc226830;
typedef struct tlib226834 tlib226834;
typedef struct tcompres596023 tcompres596023;
typedef struct TY84745 TY84745;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
typedef struct TY226936 TY226936;
typedef struct tindex277028 tindex277028;
typedef struct tiitable236274 tiitable236274;
typedef struct tiipairseq236272 tiipairseq236272;
typedef struct tiipair236270 tiipair236270;
typedef struct tidtable226864 tidtable226864;
typedef struct tidpairseq226862 tidpairseq226862;
typedef struct tidpair226860 tidpair226860;
typedef struct memfile275208 memfile275208;
typedef struct tlistentry127022 tlistentry127022;
typedef N_NIMCALL_PTR(void, TY3089) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3094) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3089 marker;
TY3094 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tpasscontext287005  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct  tjsgen596015  {
  tpasscontext287005 Sup;
tsym226846* Module;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tcell44933  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44949  {
NI Len;
NI Cap;
tcell44933** D;
};
struct  tcellset44945  {
NI Counter;
NI Max;
tpagedesc44941* Head;
tpagedesc44941** Data;
};
typedef tsmallchunk26440* TY27222[512];
typedef ttrunk26413* ttrunkbuckets26415[256];
struct  tintset26417  {
ttrunkbuckets26415 Data;
};
struct  tmemregion27210  {
NI Minlargeobj;
NI Maxlargeobj;
TY27222 Freesmallchunks;
tllchunk27204* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26442* Freechunkslist;
tintset26417 Chunkstarts;
tavlnode27208* Root;
tavlnode27208* Deleted;
tavlnode27208* Last;
tavlnode27208* Freeavlnodes;
};
struct  tgcstat47014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq44949 Zct;
tcellseq44949 Decstack;
tcellset44945 Cycleroots;
tcellseq44949 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  intset223056  {
NI Counter;
NI Max;
ttrunk223052* Head;
ttrunkseq223054* Data;
};
struct  tglobals596027  {
trope178009* Typeinfo;
trope178009* Code;
tsymseq226818* Forwarded;
intset223056 Generatedsyms;
intset223056 Typeinfogenerated;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tlineinfo196539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode226816  {
ttype226852* Typ;
tlineinfo196539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym226846* Sym;
} S4;
struct {tident201021* Ident;
} S5;
struct {tnodeseq226810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tblock596025  {
NI Id;
NIM_BOOL Isloop;
};
struct  tproc596033  {
tnode226816* Procdef;
tsym226846* Prc;
trope178009* Locals;
trope178009* Body;
NU32 Options;
tjsgen596015* Module;
tglobals596027* G;
NIM_BOOL Beforeretneeded;
NU8 Target;
NI Unique;
TY596071* Blocks;
tproc596033* Up;
};
struct  tidobj201015  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable226820  {
NI Counter;
tsymseq226818* Data;
};
struct  tloc226830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype226852* T;
trope178009* R;
trope178009* Heaproot;
};
struct  tsym226846  {
  tidobj201015 Sup;
NU8 Kind;
union {
struct {ttypeseq226848* Typeinstcache;
tscope226840* Typscope;
} S1;
struct {TY226947* Procinstcache;
tscope226840* Scope;
} S2;
struct {TY226947* Usedgenerics;
tstrtable226820 Tab;
} S3;
struct {tsym226846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype226852* Typ;
tident201021* Name;
tlineinfo196539 Info;
tsym226846* Owner;
NU32 Flags;
tnode226816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc226830 Loc;
tlib226834* Annex;
tnode226816* Constraint;
};
typedef trope178009* TY589896[2];
struct  tident201021  {
  tidobj201015 Sup;
NimStringDesc* S;
tident201021* Next;
NI H;
};
struct  tcompres596023  {
NU8 Kind;
NU8 Typ;
trope178009* Res;
trope178009* Address;
};
struct  ttype226852  {
  tidobj201015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq226848* Sons;
tnode226816* N;
tsym226846* Owner;
tsym226846* Sym;
tsym226846* Destructor;
tsym226846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc226830 Loc;
};
typedef trope178009* TY178515[1];
struct TY84745 {
NimStringDesc* Field0;
NI Field1;
};
typedef trope178009* TY559098[6];
typedef trope178009* TY555018[3];
typedef trope178009* TY558593[5];
typedef NU8 TY518462[20];
typedef NimStringDesc* tmagicfrmt597657[4];
typedef tmagicfrmt597657 tmagicops597659[96];
typedef trope178009* TY554703[1];
typedef trope178009* TY557045[4];
typedef NI TY26420[16];
struct  tpagedesc44941  {
tpagedesc44941* Next;
NI Key;
TY26420 Bits;
};
struct  tbasechunk26438  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26440  {
  tbasechunk26438 Sup;
tsmallchunk26440* Next;
tsmallchunk26440* Prev;
tfreecell26430* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27204  {
NI Size;
NI Acc;
tllchunk27204* Next;
};
struct  tbigchunk26442  {
  tbasechunk26438 Sup;
tbigchunk26442* Next;
tbigchunk26442* Prev;
NI Align;
NF Data;
};
struct  ttrunk26413  {
ttrunk26413* Next;
NI Key;
TY26420 Bits;
};
typedef tavlnode27208* TY27214[2];
struct  tavlnode27208  {
TY27214 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  trope178009  {
  TNimObject Sup;
trope178009* Left;
trope178009* Right;
NI Length;
NimStringDesc* Data;
};
struct  ttrunk223052  {
ttrunk223052* Next;
NI Key;
TY26420 Bits;
};
struct  tiipair236270  {
NI Key;
NI Val;
};
struct  tiitable236274  {
NI Counter;
tiipairseq236272* Data;
};
struct  tindex277028  {
NI Lastidxkey;
NI Lastidxval;
tiitable236274 Tab;
NimStringDesc* R;
NI Offset;
};
struct  tidpair226860  {
tidobj201015* Key;
TNimObject* Val;
};
struct  tidtable226864  {
NI Counter;
tidpairseq226862* Data;
};
struct  memfile275208  {
void* Mem;
NI Size;
int Handle;
};
struct  trodreader277030  {
  TNimObject Sup;
NI Pos;
NCSTRING S;
NU32 Options;
NU8 Reason;
TY226936* Moddeps;
TY226936* Files;
NI Dataidx;
NI Convertersidx;
NI Initidx;
NI Interfidx;
NI Compilerprocsidx;
NI Methodsidx;
NimStringDesc* Filename;
tindex277028 Index;
tindex277028 Imports;
NI Readerindex;
NI Line;
NI Moduleid;
tidtable226864 Syms;
memfile275208 Memfile;
tsymseq226818* Methods;
NimStringDesc* Origfile;
NIM_BOOL Inviewmode;
};
struct  tscope226840  {
NI Depthlevel;
tstrtable226820 Symbols;
tnodeseq226810* Usingsyms;
tscope226840* Parent;
};
struct  tinstantiation226836  {
tsym226846* Sym;
ttypeseq226848* Concretetypes;
TY226936* Usedby;
};
struct  tlistentry127022  {
  TNimObject Sup;
tlistentry127022* Prev;
tlistentry127022* Next;
};
struct  tlib226834  {
  tlistentry127022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope178009* Name;
tnode226816* Path;
};
struct  tfreecell26430  {
tfreecell26430* Next;
NI Zerofield;
};
struct tsymseq226818 {
  TGenericSeq Sup;
  tsym226846* data[SEQ_DECL_SIZE];
};
struct ttrunkseq223054 {
  TGenericSeq Sup;
  ttrunk223052* data[SEQ_DECL_SIZE];
};
struct tnodeseq226810 {
  TGenericSeq Sup;
  tnode226816* data[SEQ_DECL_SIZE];
};
struct TY596071 {
  TGenericSeq Sup;
  tblock596025 data[SEQ_DECL_SIZE];
};
struct ttypeseq226848 {
  TGenericSeq Sup;
  ttype226852* data[SEQ_DECL_SIZE];
};
struct TY226947 {
  TGenericSeq Sup;
  tinstantiation226836* data[SEQ_DECL_SIZE];
};
struct TY226936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tiipairseq236272 {
  TGenericSeq Sup;
  tiipair236270 data[SEQ_DECL_SIZE];
};
struct tidpairseq226862 {
  TGenericSeq Sup;
  tidpair226860 data[SEQ_DECL_SIZE];
};
N_NIMCALL(tjsgen596015*, newmodule_606957)(tsym226846* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP4234)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell44933*, usrtocell_48646)(void* usr);
static N_INLINE(void, rtladdzct_50204)(tcell44933* c);
N_NOINLINE(void, addzct_48617)(tcellseq44949* s, tcell44933* c);
N_NIMCALL(tglobals596027*, newglobals_596084)(void);
N_NIMCALL(void, TMP4236)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, initintset_223950)(intset223056* Result);
N_NIMCALL(void, internalerror_199006)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, skipcodegen_287083)(tnode226816* n);
N_NIMCALL(void, internalerror_198987)(tlineinfo196539 info, NimStringDesc* errmsg);
N_NIMCALL(tproc596033*, newproc_596207)(tglobals596027* globals, tjsgen596015* module, tnode226816* procdef, NU32 options);
N_NIMCALL(void, TMP4244)(void* p, NI op);
N_NIMCALL(void, TMP4245)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51025)(tcell44933* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44933* c);
static N_INLINE(void, rtladdcycleroot_49429)(tcell44933* c);
N_NOINLINE(void, incl_45671)(tcellset44945* s, tcell44933* cell);
static N_INLINE(void, decref_50604)(tcell44933* c);
N_NIMCALL(void, genmodule_607013)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, appf_178115)(trope178009** c, NimStringDesc* frmt, trope178009** args, NI argsLen0);
N_NIMCALL(trope178009*, makejsstring_596344)(NimStringDesc* s);
N_NIMCALL(trope178009*, torope_178076)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_198025)(NI32 fileidx);
N_NIMCALL(void, genstmt_597147)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, gen_597138)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, gensym_602662)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(NU8, maptype_596291)(ttype226852* typ);
N_NIMCALL(ttype226852*, skiptypes_231245)(ttype226852* t, NU64 kinds);
static N_INLINE(ttype226852*, lastson_227267)(ttype226852* n);
static N_INLINE(NI, sonslen_227255)(ttype226852* n);
N_NIMCALL(trope178009*, ropef_178107)(NimStringDesc* frmt, trope178009** args, NI argsLen0);
N_NIMCALL(trope178009*, con_178031)(trope178009* a, NimStringDesc* b);
N_NIMCALL(void, genconstant_597161)(tproc596033* p, tsym226846* c);
N_NIMCALL(NIM_BOOL, containsorincl_223916)(intset223056* s, NI key);
N_NIMCALL(void, genvarinit_603901)(tproc596033* p, tsym226846* v, tnode226816* n);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(trope178009*, manglename_596315)(tsym226846* s);
N_NIMCALL(NimStringDesc*, mangle_549763)(NimStringDesc* name);
N_NIMCALL(void, app_178060)(trope178009** a, NimStringDesc* b);
N_NIMCALL(void, app_178052)(trope178009** a, trope178009* b);
N_NIMCALL(trope178009*, torope_178082)(NI64 i);
N_NIMCALL(trope178009*, createvar_603438)(tproc596033* p, ttype226852* typ, NIM_BOOL indirect);
N_NIMCALL(trope178009*, puttoseq_603423)(NimStringDesc* s, NIM_BOOL indirect);
N_NIMCALL(NI64, lengthord_264016)(ttype226852* t);
N_NIMCALL(ttype226852*, elemtype_264656)(ttype226852* t);
N_NIMCALL(void, usemagic_597168)(tproc596033* p, NimStringDesc* name);
N_NIMCALL(tsym226846*, getcompilerproc_283036)(NimStringDesc* name);
N_NIMCALL(NimStringDesc*, HEX24_199126)(TY84745 x_199130);
N_NIMCALL(trope178009*, genproc_597154)(tproc596033* oldproc, tsym226846* prc);
N_NIMCALL(trope178009*, generateheader_601148)(tproc596033* p, ttype226852* typ);
static N_INLINE(NI, sonslen_227249)(tnode226816* n);
static N_INLINE(NIM_BOOL, iscompiletimeonly_274466)(ttype226852* t);
N_NIMCALL(NIM_BOOL, isindirect_603831)(tsym226846* v);
N_NIMCALL(tnode226816*, getbody_280270)(tsym226846* s);
N_NIMCALL(trope178009*, genprocbody_606203)(tproc596033* p, tsym226846* prc);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, globalerror_198934)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, rawmessage_198733)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(trope178009*, gentypeinfo_596354)(tproc596033* p, ttype226852* typ);
N_NIMCALL(void, prepend_178068)(trope178009** a, trope178009* b);
N_NIMCALL(void, genenuminfo_596877)(tproc596033* p, ttype226852* typ, trope178009* name);
N_NIMCALL(void, genobjectinfo_596724)(tproc596033* p, ttype226852* typ, trope178009* name);
N_NIMCALL(trope178009*, genobjectfields_596358)(tproc596033* p, ttype226852* typ, tnode226816* n);
N_NIMCALL(NI64, getordvalue_264187)(tnode226816* n);
static N_INLINE(tnode226816*, lastson_227261)(tnode226816* n);
N_NIMCALL(void, gentupleinfo_596845)(tproc596033* p, ttype226852* typ, trope178009* name);
N_NIMCALL(trope178009*, gentuplefields_596787)(tproc596033* p, ttype226852* typ);
N_NIMCALL(NI, len_231005)(ttype226852* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_80907, TNimType* typ);
N_NIMCALL(trope178009*, createrecordvaraux_603446)(tproc596033* p, tnode226816* rec, NI* c);
N_NIMCALL(NIM_BOOL, needsnocopy_601474)(tnode226816* y);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
static N_INLINE(NIM_BOOL, isemptytype_233990)(ttype226852* t);
N_NIMCALL(NimStringDesc*, tostrmaxprecision_235024)(NF f);
N_NIMCALL(void, genmagic_605024)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genor_597456)(tproc596033* p, tnode226816* a, tnode226816* b, tcompres596023* r);
N_NIMCALL(NIM_BOOL, issimpleexpr_597250)(tnode226816* n);
static N_INLINE(NI, len_227364)(tnode226816* n);
static N_INLINE(NIM_BOOL, isatom_233962)(tnode226816* n);
static N_INLINE(trope178009*, rdloc_596139)(tcompres596023 a);
N_NIMCALL(trope178009*, gettemp_597313)(tproc596033* p);
N_NIMCALL(void, genand_597353)(tproc596033* p, tnode226816* a, tnode226816* b, tcompres596023* r);
N_NIMCALL(void, arith_598306)(tproc596033* p, tnode226816* n, tcompres596023* r, NU16 op);
N_NIMCALL(void, arithaux_598211)(tproc596033* p, tnode226816* n, tcompres596023* r, NU16 op, tmagicops597659 ops);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, genrepr_604850)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, unaryexpr_598179)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genswap_601643)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, binaryexpr_598058)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genconstrstr_604664)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, gennew_604504)(tproc596033* p, tnode226816* n);
N_NIMCALL(NI64, getsize_264199)(ttype226852* typ);
N_NIMCALL(void, genord_604615)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, localerror_198955)(tlineinfo196539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, gennewseq_604551)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genof_604895)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genreset_604978)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genecho_603334)(tproc596033* p, tnode226816* n_603337, tcompres596023* r);
N_NIMCALL(tnode226816*, skipconv_274732)(tnode226816* n);
static N_INLINE(tnode226816*, HEX5BHEX5D_227698)(tnode226816* n, NI i);
N_NIMCALL(void, genarg_603096)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, ternaryexpr_598110)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, gencall_603187)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genargs_603124)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, geninfixcall_603213)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, globalerror_198945)(tlineinfo196539 info, NimStringDesc* arg);
N_NIMCALL(void, gensetconstr_605322)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genarrayconstr_605430)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, gentupleconstr_605491)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genobjconstr_605589)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genconv_605749)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genaddr_602480)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, gencheckedfieldaddr_602180)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genfieldaddr_601828)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(NI, getfieldposition_601790)(tnode226816* f);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, ropetostr_178101)(trope178009* p);
N_NIMCALL(void, genarrayaddr_602232)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(NI64, firstord_264004)(ttype226852* t);
N_NIMCALL(NIM_BOOL, isconstexpr_262921)(tnode226816* n);
N_NIMCALL(void, genderef_603017)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genarrayaccess_602411)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genfieldaccess_602026)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, gencheckedfieldaccess_602206)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, upconv_605822)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genrangechck_605848)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic);
N_NIMCALL(void, convstrtocstr_605926)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, convcstrtostr_606024)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genblock_599973)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, genif_600921)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, moveinto_598653)(tproc596033* p, tcompres596023* src, tcompres596023 dest);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NI count, NIM_CHAR c);
N_NIMCALL(void, genwhilestmt_598506)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genlinedir_598328)(tproc596033* p, tnode226816* n);
static N_INLINE(NI, tolinenumber_198073)(tlineinfo196539 info);
N_NIMCALL(void, genvarstmt_604046)(tproc596033* p, tnode226816* n);
N_NIMCALL(tnode226816*, lowertupleunpacking_425184)(tnode226816* n, tsym226846* owner);
N_NIMCALL(void, gencasejs_599363)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(tnode226816*, copynode_227323)(tnode226816* src);
N_NIMCALL(void, gencaselua_599694)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genreturnstmt_606122)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genbreakstmt_600159)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genasgn_601567)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genasgnaux_601511)(tproc596033* p, tnode226816* x, tnode226816* y, NIM_BOOL nocopyneeded);
N_NIMCALL(void, genfastasgn_601605)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, genasmstmt_600653)(tproc596033* p, tnode226816* n);
N_NIMCALL(void, gentry_598693)(tproc596033* p, tnode226816* n, tcompres596023* r);
N_NIMCALL(void, genraisestmt_599292)(tproc596033* p, tnode226816* n);
N_NIMCALL(tnode226816*, myprocess_607062)(tpasscontext287005* b, tnode226816* n);
N_NIMCALL(trope178009*, wholecode_607094)(tjsgen596015* m);
N_NIMCALL(tnode226816*, generatemethoddispatchers_424508)(void);
N_NIMCALL(trope178009*, con_178024)(trope178009* a, trope178009* b);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, HEX2F_117299)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completecfilepath_203855)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(NIM_BOOL, writeropeifnotequal_178094)(trope178009* r, NimStringDesc* filename);
N_NIMCALL(trope178009*, genheader_607000)(void);
STRING_LITERAL(TMP4237, "symbol files are not possible with the JS code generator", 56);
STRING_LITERAL(TMP4238, "myProcess", 9);
STRING_LITERAL(TMP4246, "var F = {procname:$1,prev:framePtr,filename:$2,line:0};$nframeP"
"tr = F;$n", 72);
STRING_LITERAL(TMP4247, "\"", 1);
STRING_LITERAL(TMP4248, "module ", 7);
STRING_LITERAL(TMP4249, "symbol has no generated name: ", 30);
STRING_LITERAL(TMP4250, "$1[0]", 5);
STRING_LITERAL(TMP4251, "$1[1]", 5);
STRING_LITERAL(TMP4252, "_Idx", 4);
STRING_LITERAL(TMP4253, "var $1 = $2;$n", 14);
STRING_LITERAL(TMP4254, "local $1 = $2;$n", 16);
STRING_LITERAL(TMP4255, "_", 1);
STRING_LITERAL(TMP4256, "[$1]", 4);
STRING_LITERAL(TMP4257, "0", 1);
STRING_LITERAL(TMP4258, "0.0", 3);
STRING_LITERAL(TMP4259, "{}", 2);
STRING_LITERAL(TMP4260, "false", 5);
STRING_LITERAL(TMP4262, "compiler/jsgen.nim", 18);
NIM_CONST TY84745 TMP4261 = {((NimStringDesc*) &TMP4262),
179}
;
STRING_LITERAL(TMP4263, ", ", 2);
STRING_LITERAL(TMP4264, "var $# = $#;$n", 14);
STRING_LITERAL(TMP4265, "local $# = $#;$n", 16);
STRING_LITERAL(TMP4266, "return $#;$n", 12);
STRING_LITERAL(TMP4267, "function $#($#) {$n$#$#$#$#}$n", 30);
STRING_LITERAL(TMP4268, "function $#($#) $n$#$#$#$#$nend$n", 33);
STRING_LITERAL(TMP4269, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TMP4270, "local F={procname=$#,prev=framePtr,filename=$#,line=0};$n", 57);
STRING_LITERAL(TMP4271, "framePtr = F;$n", 15);
STRING_LITERAL(TMP4272, "BeforeRet: do {$n$1} while (false); $n", 38);
STRING_LITERAL(TMP4273, "$#;::BeforeRet::$n", 18);
STRING_LITERAL(TMP4274, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TMP4275, "framePtr = framePtr.prev;", 25);
STRING_LITERAL(TMP4276, "arrayConstr", 11);
STRING_LITERAL(TMP4277, "nimCopy", 7);
STRING_LITERAL(TMP4278, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TMP4279, "NTI$1", 5);
STRING_LITERAL(TMP4280, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TMP4281, "$1.base = $2;$n", 15);
STRING_LITERAL(TMP4282, "genEnumInfo", 11);
STRING_LITERAL(TMP4283, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}", 60);
STRING_LITERAL(TMP4284, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: [$3]};$n", 79);
STRING_LITERAL(TMP4285, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TMP4286, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TMP4287, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TMP4288, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TMP4289, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TMP4290, "genObjectFields", 15);
STRING_LITERAL(TMP4291, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TMP4292, "[$1, $2]", 8);
STRING_LITERAL(TMP4293, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TMP4294, "[SetConstr($1), $2]", 19);
STRING_LITERAL(TMP4295, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TMP4296, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TMP4297, "genTypeInfo(", 12);
STRING_LITERAL(TMP4298, "[", 1);
STRING_LITERAL(TMP4299, "]", 1);
STRING_LITERAL(TMP4300, "{", 1);
STRING_LITERAL(TMP4301, "Field$1: $2", 11);
STRING_LITERAL(TMP4302, "Field$# = $#", 12);
STRING_LITERAL(TMP4303, "}", 1);
STRING_LITERAL(TMP4304, "m_type: $1", 10);
STRING_LITERAL(TMP4305, "m_type = $#", 11);
STRING_LITERAL(TMP4306, ": ", 2);
STRING_LITERAL(TMP4307, "createRecordVarAux", 18);
STRING_LITERAL(TMP4308, "[null, 0]", 9);
STRING_LITERAL(TMP4309, "{nil, 0}", 8);
STRING_LITERAL(TMP4310, "null", 4);
STRING_LITERAL(TMP4311, "nil", 3);
STRING_LITERAL(TMP4312, "createVar: ", 11);
static NIM_CONST TY518462 TMP4313 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP4314, "nimCopy($1, $2)", 15);
STRING_LITERAL(TMP4315, "genVarInit", 10);
STRING_LITERAL(TMP4316, "var $1 = [$2, $3];$n", 20);
STRING_LITERAL(TMP4317, "local $1 = {$2, $3};$n", 22);
STRING_LITERAL(TMP4318, "var $1 = $2; var $1_Idx = $3;$n", 31);
STRING_LITERAL(TMP4319, "local $1 = $2; local $1_Idx = $3;$n", 35);
STRING_LITERAL(TMP4320, "var $1 = [$2];$n", 16);
STRING_LITERAL(TMP4321, "local $1 = {$2};$n", 18);
STRING_LITERAL(TMP4322, "null", 4);
STRING_LITERAL(TMP4323, "nil", 3);
STRING_LITERAL(TMP4324, "0", 1);
STRING_LITERAL(TMP4325, "cstrToNimstr", 12);
STRING_LITERAL(TMP4326, "cstrToNimstr($1)", 16);
STRING_LITERAL(TMP4327, "NaN", 3);
STRING_LITERAL(TMP4328, "0.0", 3);
STRING_LITERAL(TMP4329, "Infinity", 8);
STRING_LITERAL(TMP4330, "-Infinity", 9);
STRING_LITERAL(TMP4331, "($1 || $2)", 10);
STRING_LITERAL(TMP4332, "($1 or $2)", 10);
STRING_LITERAL(TMP4333, "Tmp$1", 5);
STRING_LITERAL(TMP4334, "var $1;$n", 9);
STRING_LITERAL(TMP4335, "local $1;$n", 11);
STRING_LITERAL(TMP4336, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TMP4337, "if $1 then $2 = true; else", 26);
STRING_LITERAL(TMP4338, "$2 = $1; }", 10);
STRING_LITERAL(TMP4339, "$2 = $1 end", 11);
STRING_LITERAL(TMP4340, "($1 && $2)", 10);
STRING_LITERAL(TMP4341, "($1 and $2)", 11);
STRING_LITERAL(TMP4342, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TMP4343, "if not $1 then $2 = false; else", 31);
STRING_LITERAL(TMP4344, "addInt", 6);
STRING_LITERAL(TMP4345, "", 0);
STRING_LITERAL(TMP4346, "addInt($1, $2)", 14);
STRING_LITERAL(TMP4347, "($1 + $2)", 9);
STRING_LITERAL(TMP4348, "subInt", 6);
STRING_LITERAL(TMP4349, "subInt($1, $2)", 14);
STRING_LITERAL(TMP4350, "($1 - $2)", 9);
STRING_LITERAL(TMP4351, "mulInt", 6);
STRING_LITERAL(TMP4352, "mulInt($1, $2)", 14);
STRING_LITERAL(TMP4353, "($1 * $2)", 9);
STRING_LITERAL(TMP4354, "divInt", 6);
STRING_LITERAL(TMP4355, "divInt($1, $2)", 14);
STRING_LITERAL(TMP4356, "Math.floor($1 / $2)", 19);
STRING_LITERAL(TMP4357, "modInt", 6);
STRING_LITERAL(TMP4358, "modInt($1, $2)", 14);
STRING_LITERAL(TMP4359, "Math.floor($1 % $2)", 19);
STRING_LITERAL(TMP4360, "addInt64", 8);
STRING_LITERAL(TMP4361, "addInt64($1, $2)", 16);
STRING_LITERAL(TMP4362, "subInt64", 8);
STRING_LITERAL(TMP4363, "subInt64($1, $2)", 16);
STRING_LITERAL(TMP4364, "mulInt64", 8);
STRING_LITERAL(TMP4365, "mulInt64($1, $2)", 16);
STRING_LITERAL(TMP4366, "divInt64", 8);
STRING_LITERAL(TMP4367, "divInt64($1, $2)", 16);
STRING_LITERAL(TMP4368, "modInt64", 8);
STRING_LITERAL(TMP4369, "modInt64($1, $2)", 16);
STRING_LITERAL(TMP4370, "($1 / $2)", 9);
STRING_LITERAL(TMP4371, "($1 >>> $2)", 11);
STRING_LITERAL(TMP4372, "($1 << $2)", 10);
STRING_LITERAL(TMP4373, "($1 & $2)", 9);
STRING_LITERAL(TMP4374, "($1 | $2)", 9);
STRING_LITERAL(TMP4375, "($1 ^ $2)", 9);
STRING_LITERAL(TMP4376, "nimMin", 6);
STRING_LITERAL(TMP4377, "nimMin($1, $2)", 14);
STRING_LITERAL(TMP4378, "nimMax", 6);
STRING_LITERAL(TMP4379, "nimMax($1, $2)", 14);
STRING_LITERAL(TMP4380, "addU", 4);
STRING_LITERAL(TMP4381, "addU($1, $2)", 12);
STRING_LITERAL(TMP4382, "subU", 4);
STRING_LITERAL(TMP4383, "subU($1, $2)", 12);
STRING_LITERAL(TMP4384, "mulU", 4);
STRING_LITERAL(TMP4385, "mulU($1, $2)", 12);
STRING_LITERAL(TMP4386, "divU", 4);
STRING_LITERAL(TMP4387, "divU($1, $2)", 12);
STRING_LITERAL(TMP4388, "modU", 4);
STRING_LITERAL(TMP4389, "modU($1, $2)", 12);
STRING_LITERAL(TMP4390, "($1 == $2)", 10);
STRING_LITERAL(TMP4391, "($1 <= $2)", 10);
STRING_LITERAL(TMP4392, "($1 < $2)", 9);
STRING_LITERAL(TMP4393, "leU", 3);
STRING_LITERAL(TMP4394, "leU($1, $2)", 11);
STRING_LITERAL(TMP4395, "ltU", 3);
STRING_LITERAL(TMP4396, "ltU($1, $2)", 11);
STRING_LITERAL(TMP4397, "leU64", 5);
STRING_LITERAL(TMP4398, "leU64($1, $2)", 13);
STRING_LITERAL(TMP4399, "ltU64", 5);
STRING_LITERAL(TMP4400, "ltU64($1, $2)", 13);
STRING_LITERAL(TMP4401, "($1 != $2)", 10);
STRING_LITERAL(TMP4402, "negInt", 6);
STRING_LITERAL(TMP4403, "negInt($1)", 10);
STRING_LITERAL(TMP4404, "-($1)", 5);
STRING_LITERAL(TMP4405, "negInt64", 8);
STRING_LITERAL(TMP4406, "negInt64($1)", 12);
STRING_LITERAL(TMP4407, "absInt", 6);
STRING_LITERAL(TMP4408, "absInt($1)", 10);
STRING_LITERAL(TMP4409, "Math.abs($1)", 12);
STRING_LITERAL(TMP4410, "absInt64", 8);
STRING_LITERAL(TMP4411, "absInt64($1)", 12);
STRING_LITERAL(TMP4412, "!($1)", 5);
STRING_LITERAL(TMP4413, "+($1)", 5);
STRING_LITERAL(TMP4414, "~($1)", 5);
STRING_LITERAL(TMP4415, "Ze8ToI", 6);
STRING_LITERAL(TMP4416, "Ze8ToI($1)", 10);
STRING_LITERAL(TMP4417, "Ze8ToI64", 8);
STRING_LITERAL(TMP4418, "Ze8ToI64($1)", 12);
STRING_LITERAL(TMP4419, "Ze16ToI", 7);
STRING_LITERAL(TMP4420, "Ze16ToI($1)", 11);
STRING_LITERAL(TMP4421, "Ze16ToI64", 9);
STRING_LITERAL(TMP4422, "Ze16ToI64($1)", 13);
STRING_LITERAL(TMP4423, "Ze32ToI64", 9);
STRING_LITERAL(TMP4424, "Ze32ToI64($1)", 13);
STRING_LITERAL(TMP4425, "ZeIToI64", 8);
STRING_LITERAL(TMP4426, "ZeIToI64($1)", 12);
STRING_LITERAL(TMP4427, "toU8", 4);
STRING_LITERAL(TMP4428, "toU8($1)", 8);
STRING_LITERAL(TMP4429, "toU16", 5);
STRING_LITERAL(TMP4430, "toU16($1)", 9);
STRING_LITERAL(TMP4431, "toU32", 5);
STRING_LITERAL(TMP4432, "toU32($1)", 9);
STRING_LITERAL(TMP4433, "$1", 2);
STRING_LITERAL(TMP4434, "Math.floor($1)", 14);
STRING_LITERAL(TMP4435, "nimCharToStr", 12);
STRING_LITERAL(TMP4436, "nimCharToStr($1)", 16);
STRING_LITERAL(TMP4437, "nimBoolToStr", 12);
STRING_LITERAL(TMP4438, "nimBoolToStr($1)", 16);
STRING_LITERAL(TMP4439, "cstrToNimstr(($1)+\"\")", 21);
NIM_CONST tmagicops597659 jsops_597665 = {{((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4351),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4354),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4356)}
,
{((NimStringDesc*) &TMP4357),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4359)}
,
{((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4356)}
,
{((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4359)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4381),
((NimStringDesc*) &TMP4381)}
,
{((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4383),
((NimStringDesc*) &TMP4383)}
,
{((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4394),
((NimStringDesc*) &TMP4394)}
,
{((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4398)}
,
{((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4400)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4401)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4407),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4416),
((NimStringDesc*) &TMP4416)}
,
{((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4418),
((NimStringDesc*) &TMP4418)}
,
{((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4420),
((NimStringDesc*) &TMP4420)}
,
{((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4422),
((NimStringDesc*) &TMP4422)}
,
{((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4424),
((NimStringDesc*) &TMP4424)}
,
{((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4426),
((NimStringDesc*) &TMP4426)}
,
{((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430)}
,
{((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4436),
((NimStringDesc*) &TMP4436)}
,
{((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4438),
((NimStringDesc*) &TMP4438)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4326),
((NimStringDesc*) &TMP4326)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
}
;
STRING_LITERAL(TMP4440, "not ($1)", 8);
NIM_CONST tmagicops597659 luaops_597860 = {{((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4351),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4354),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4356)}
,
{((NimStringDesc*) &TMP4357),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4359)}
,
{((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4356)}
,
{((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4359)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4347)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4350)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4353)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4381),
((NimStringDesc*) &TMP4381)}
,
{((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4383),
((NimStringDesc*) &TMP4383)}
,
{((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4394),
((NimStringDesc*) &TMP4394)}
,
{((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4398)}
,
{((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4400)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4401)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4407),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4440),
((NimStringDesc*) &TMP4440)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4416),
((NimStringDesc*) &TMP4416)}
,
{((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4418),
((NimStringDesc*) &TMP4418)}
,
{((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4420),
((NimStringDesc*) &TMP4420)}
,
{((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4422),
((NimStringDesc*) &TMP4422)}
,
{((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4424),
((NimStringDesc*) &TMP4424)}
,
{((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4426),
((NimStringDesc*) &TMP4426)}
,
{((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430)}
,
{((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4436),
((NimStringDesc*) &TMP4436)}
,
{((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4438),
((NimStringDesc*) &TMP4438)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4439),
((NimStringDesc*) &TMP4439)}
,
{((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4325),
((NimStringDesc*) &TMP4326),
((NimStringDesc*) &TMP4326)}
,
{((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
}
;
STRING_LITERAL(TMP4441, "(\"\"+ ($1))", 10);
STRING_LITERAL(TMP4442, "cstrToNimstr($1.node.sons[$2].name)", 35);
STRING_LITERAL(TMP4443, "genRepr: Not implemented", 24);
STRING_LITERAL(TMP4444, "genSwap", 7);
STRING_LITERAL(TMP4445, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TMP4446, "local $1 = $2; $2 = $3; $3 = $1;$n", 34);
STRING_LITERAL(TMP4447, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TMP4448, "local $1 = $2; $2 = $3; $3 = $1;", 32);
STRING_LITERAL(TMP4449, "$1 - 1", 6);
STRING_LITERAL(TMP4450, "subInt($1, 1)", 13);
STRING_LITERAL(TMP4451, "$1 - $2", 7);
STRING_LITERAL(TMP4452, "addChar", 7);
STRING_LITERAL(TMP4453, "addChar($1, $2)", 15);
STRING_LITERAL(TMP4454, "$1 += $2", 8);
STRING_LITERAL(TMP4455, "$1 = ($1.slice(0, -1)).concat($2)", 33);
STRING_LITERAL(TMP4456, "$1.push($2)", 11);
STRING_LITERAL(TMP4457, "[$1].concat(", 12);
STRING_LITERAL(TMP4458, "($1.slice(0,-1)).concat(", 24);
STRING_LITERAL(TMP4459, "[$1],", 5);
STRING_LITERAL(TMP4460, "$1.slice(0,-1),", 15);
STRING_LITERAL(TMP4461, "[$1, 0])", 8);
STRING_LITERAL(TMP4462, "$1)", 3);
STRING_LITERAL(TMP4463, "eqStrings", 9);
STRING_LITERAL(TMP4464, "eqStrings($1, $2)", 17);
STRING_LITERAL(TMP4465, "cmpStrings", 10);
STRING_LITERAL(TMP4466, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TMP4467, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TMP4468, "$1 == null", 10);
STRING_LITERAL(TMP4469, "$1 = $2;$n", 10);
STRING_LITERAL(TMP4470, "($1 ? 1:0)", 10);
STRING_LITERAL(TMP4471, "toBool($#)", 10);
STRING_LITERAL(TMP4472, "genOrd", 6);
STRING_LITERAL(TMP4473, "($1.length-1)", 13);
STRING_LITERAL(TMP4474, "$1.length", 9);
STRING_LITERAL(TMP4475, "($1.length-2)", 13);
STRING_LITERAL(TMP4476, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TMP4477, "$1 -= $2", 8);
STRING_LITERAL(TMP4478, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TMP4479, "$1.length = $2+1; $1[$1.length-1] = 0", 37);
STRING_LITERAL(TMP4480, "$1.length = $2", 14);
STRING_LITERAL(TMP4481, "SetCard", 7);
STRING_LITERAL(TMP4482, "SetCard($1)", 11);
STRING_LITERAL(TMP4483, "SetLt", 5);
STRING_LITERAL(TMP4484, "SetLt($1, $2)", 13);
STRING_LITERAL(TMP4485, "SetLe", 5);
STRING_LITERAL(TMP4486, "SetLe($1, $2)", 13);
STRING_LITERAL(TMP4487, "SetEq", 5);
STRING_LITERAL(TMP4488, "SetEq($1, $2)", 13);
STRING_LITERAL(TMP4489, "SetMul", 6);
STRING_LITERAL(TMP4490, "SetMul($1, $2)", 14);
STRING_LITERAL(TMP4491, "SetPlus", 7);
STRING_LITERAL(TMP4492, "SetPlus($1, $2)", 15);
STRING_LITERAL(TMP4493, "SetMinus", 8);
STRING_LITERAL(TMP4494, "SetMinus($1, $2)", 16);
STRING_LITERAL(TMP4495, "$1[$2] = true", 13);
STRING_LITERAL(TMP4496, "delete $1[$2]", 13);
STRING_LITERAL(TMP4497, "($1[$2] != undefined)", 21);
STRING_LITERAL(TMP4498, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TMP4499, "($1.m_type == $2)", 17);
STRING_LITERAL(TMP4500, "isObj", 5);
STRING_LITERAL(TMP4501, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TMP4502, "genericReset", 12);
STRING_LITERAL(TMP4503, "$1 = genericReset($1, $2);$n", 28);
STRING_LITERAL(TMP4504, "rawEcho", 7);
STRING_LITERAL(TMP4505, "rawEcho(", 8);
NIM_CONST TY84745 TMP4506 = {((NimStringDesc*) &TMP4262),
1080}
;
STRING_LITERAL(TMP4507, ")", 1);
STRING_LITERAL(TMP4508, "($1.slice($2))", 14);
STRING_LITERAL(TMP4509, "($1.slice($2, ($3)+1).concat(0))", 32);
STRING_LITERAL(TMP4510, "mnewString", 10);
STRING_LITERAL(TMP4511, "mnewString($1)", 14);
STRING_LITERAL(TMP4512, "mnewString(0)", 13);
STRING_LITERAL(TMP4513, "(", 1);
STRING_LITERAL(TMP4514, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TMP4515, "$1[$2]", 6);
STRING_LITERAL(TMP4516, ".", 1);
STRING_LITERAL(TMP4517, "SetConstr", 9);
STRING_LITERAL(TMP4518, "SetConstr(", 10);
STRING_LITERAL(TMP4519, "Field$#: $#", 11);
NIM_CONST TY84745 TMP4520 = {((NimStringDesc*) &TMP4262),
1440}
;
STRING_LITERAL(TMP4521, "$#: $#", 6);
STRING_LITERAL(TMP4522, "$# = $#", 7);
STRING_LITERAL(TMP4523, "(($1)? 1:0)", 11);
STRING_LITERAL(TMP4524, "genAddr: 3", 10);
STRING_LITERAL(TMP4525, "genAddr: 2", 10);
STRING_LITERAL(TMP4526, "Field", 5);
STRING_LITERAL(TMP4527, "genFieldPosition", 16);
STRING_LITERAL(TMP4528, "genFieldAddr", 12);
NIM_CONST TY84745 TMP4529 = {((NimStringDesc*) &TMP4262),
874}
;
NIM_CONST TY84745 TMP4530 = {((NimStringDesc*) &TMP4262),
904}
;
STRING_LITERAL(TMP4531, "chckIndx", 8);
STRING_LITERAL(TMP4532, "chckIndx($1, $2, $3.length)-$2", 30);
STRING_LITERAL(TMP4533, "($1)-$2", 7);
STRING_LITERAL(TMP4534, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TMP4535, "genAddr", 7);
STRING_LITERAL(TMP4536, "genDeref", 8);
STRING_LITERAL(TMP4537, "genArrayAccess", 14);
STRING_LITERAL(TMP4538, "$1.Field$2", 10);
STRING_LITERAL(TMP4539, "$1.$2", 5);
STRING_LITERAL(TMP4540, "chckRange", 9);
STRING_LITERAL(TMP4541, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TMP4542, "chckRangeF", 10);
STRING_LITERAL(TMP4543, "chckRange64", 11);
STRING_LITERAL(TMP4544, "convStrToCStr", 13);
STRING_LITERAL(TMP4545, "toJSStr", 7);
STRING_LITERAL(TMP4546, "toJSStr($1)", 11);
STRING_LITERAL(TMP4547, "convCStrToStr", 13);
STRING_LITERAL(TMP4548, "genBlock", 8);
STRING_LITERAL(TMP4549, "L$1: do {$n", 11);
STRING_LITERAL(TMP4550, "} while(false);$n", 17);
STRING_LITERAL(TMP4551, "$n::L$#::$n", 11);
STRING_LITERAL(TMP4552, "else {$n", 8);
STRING_LITERAL(TMP4553, "else$n", 6);
STRING_LITERAL(TMP4554, "if ($1) {$n", 11);
STRING_LITERAL(TMP4555, "if $# then$n", 12);
STRING_LITERAL(TMP4556, "$1;$n", 5);
STRING_LITERAL(TMP4557, "}$n", 3);
STRING_LITERAL(TMP4558, "end$n", 5);
NIM_CONST TY84745 TMP4559 = {((NimStringDesc*) &TMP4262),
511}
;
STRING_LITERAL(TMP4560, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4561, "-- line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4562, "endb", 4);
STRING_LITERAL(TMP4563, "endb($1);$n", 11);
STRING_LITERAL(TMP4564, "F.line = $1;$n", 14);
STRING_LITERAL(TMP4565, "L$1: while (true) {$n", 21);
STRING_LITERAL(TMP4566, "while true do$n", 15);
STRING_LITERAL(TMP4567, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TMP4568, "if not $1 then goto ::L$2:: end;$n", 34);
STRING_LITERAL(TMP4569, "end ::L$#::$n", 13);
STRING_LITERAL(TMP4570, "for statement not eliminated", 28);
STRING_LITERAL(TMP4571, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TMP4572, "switch ($1) {$n", 15);
STRING_LITERAL(TMP4573, "case $1: ", 9);
STRING_LITERAL(TMP4574, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TMP4575, "$nbreak;$n", 10);
STRING_LITERAL(TMP4576, "default: $n", 11);
STRING_LITERAL(TMP4577, "break;$n", 8);
STRING_LITERAL(TMP4578, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TMP4579, "eqStr", 5);
STRING_LITERAL(TMP4580, "$nelsif ", 8);
STRING_LITERAL(TMP4581, "if ", 3);
STRING_LITERAL(TMP4582, " or ", 4);
STRING_LITERAL(TMP4583, "$1 >= $2 and $1 <= $3", 21);
STRING_LITERAL(TMP4584, "eqStr($1, $2)", 13);
STRING_LITERAL(TMP4585, "$1 == $2", 8);
STRING_LITERAL(TMP4586, " then$n", 7);
STRING_LITERAL(TMP4587, "$nend$n", 7);
STRING_LITERAL(TMP4588, "genReturnStmt", 13);
STRING_LITERAL(TMP4589, "break BeforeRet;$n", 18);
STRING_LITERAL(TMP4590, "goto ::BeforeRet::;$n", 21);
STRING_LITERAL(TMP4591, "no loop to break", 16);
STRING_LITERAL(TMP4592, "break L$1;$n", 12);
STRING_LITERAL(TMP4593, "goto ::L$1::;$n", 15);
STRING_LITERAL(TMP4594, "$1 = nimCopy($2, $3);$n", 23);
STRING_LITERAL(TMP4595, "genAsgn", 7);
STRING_LITERAL(TMP4596, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TMP4597, "jsgen: genAsmStmt()", 19);
STRING_LITERAL(TMP4598, "var $1 = {prev: excHandler, exc: null};$nexcHandler = $1;$n", 59);
STRING_LITERAL(TMP4599, "local $1 = pcall(", 17);
STRING_LITERAL(TMP4600, "framePtr = F;", 13);
STRING_LITERAL(TMP4601, "try {$n", 7);
STRING_LITERAL(TMP4602, "function()$n", 12);
STRING_LITERAL(TMP4603, "} catch (EXC) {$n  lastJSError = EXC;$n", 39);
STRING_LITERAL(TMP4604, "end)$n", 6);
STRING_LITERAL(TMP4605, "genTryStmt", 10);
STRING_LITERAL(TMP4606, "||", 2);
STRING_LITERAL(TMP4607, "isObj($1.exc.m_type, $2)", 24);
STRING_LITERAL(TMP4608, "else ", 5);
STRING_LITERAL(TMP4609, "if ($1.exc && ($2)) {$n", 23);
STRING_LITERAL(TMP4610, "if $1.exc and ($2) then$n", 25);
STRING_LITERAL(TMP4611, "} finally {", 11);
STRING_LITERAL(TMP4612, "excHandler = excHandler.prev;", 29);
STRING_LITERAL(TMP4613, "raiseException", 14);
STRING_LITERAL(TMP4614, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TMP4615, "reraiseException", 16);
STRING_LITERAL(TMP4616, "reraiseException();", 19);
STRING_LITERAL(TMP4617, "first class iterators not implemented", 37);
STRING_LITERAL(TMP4618, "gen: unknown node type: ", 24);
STRING_LITERAL(TMP4619, "$#;$n", 5);
STRING_LITERAL(TMP4620, "framePtr = framePtr.prev;$n", 27);
STRING_LITERAL(TMP4621, "js", 2);
STRING_LITERAL(TMP4622, "/* Generated by the Nim Compiler v$1 */$n/*   (c) 2014 Andreas "
"Rumpf */$n$nvar framePtr = null;$nvar excHandler = null;$nvar la"
"stJSError = null;$n", 146);
STRING_LITERAL(TMP4623, "0.10.2", 6);
tglobals596027* globals_606952;
extern TNimType NTI287005; /* TPassContext */
TNimType NTI596015; /* TJSGen */
extern TNimType NTI226814; /* PSym */
TNimType NTI596017; /* BModule */
extern tgcheap47016 gch_47044;
TNimType NTI596027; /* TGlobals */
extern TNimType NTI178007; /* PRope */
extern TNimType NTI226818; /* TSymSeq */
extern TNimType NTI223056; /* IntSet */
TNimType NTI596029; /* PGlobals */
extern NI gerrorcounter_197306;
TNimType NTI596033; /* TProc */
extern TNimType NTI226808; /* PNode */
extern TNimType NTI170016; /* TOptions */
extern TNimType NTI138; /* bool */
TNimType NTI596013; /* TTarget */
extern TNimType NTI108; /* int */
TNimType NTI596025; /* TBlock */
TNimType NTI596071; /* seq[TBlock] */
TNimType NTI596031; /* PProc */
extern NimStringDesc* tnl_175613;
extern TNimType NTI226258; /* TTypeKind */
extern TNimType NTI149; /* string */
TNimType NTI597657; /* TMagicFrmt */
TNimType NTI597659; /* TMagicOps */
extern TNimType NTI226029; /* TNodeKind */
extern NimStringDesc* outfile_170124;
N_NIMCALL(void, TMP4234)(void* p, NI op) {
	tjsgen596015* a;
	a = (tjsgen596015*)p;
	nimGCvisit((void*)(*a).Module, op);
}

static N_INLINE(tcell44933*, usrtocell_48646)(void* usr) {
	tcell44933* result;
	result = 0;
	result = ((tcell44933*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(tcell44933))))));
	return result;
}

static N_INLINE(void, rtladdzct_50204)(tcell44933* c) {
	addzct_48617((&gch_47044.Zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell44933* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48646(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell44933* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_48646((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_50204(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP4236)(void* p, NI op) {
	tglobals596027* a;
	a = (tglobals596027*)p;
	nimGCvisit((void*)(*a).Typeinfo, op);
	nimGCvisit((void*)(*a).Code, op);
	nimGCvisit((void*)(*a).Forwarded, op);
	nimGCvisit((void*)(*a).Generatedsyms.Head, op);
	nimGCvisit((void*)(*a).Generatedsyms.Data, op);
	nimGCvisit((void*)(*a).Typeinfogenerated.Head, op);
	nimGCvisit((void*)(*a).Typeinfogenerated.Data, op);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell44933* c;
	c = usrtocell_48646(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	LA3: ;
}

N_NIMCALL(tglobals596027*, newglobals_596084)(void) {
	tglobals596027* result;
	result = 0;
	result = (tglobals596027*) newObj((&NTI596029), sizeof(tglobals596027));
	if ((*result).Forwarded) nimGCunrefNoCycle((*result).Forwarded);
	(*result).Forwarded = (tsymseq226818*) newSeqRC1((&NTI226818), 0);
	initintset_223950((&(*result).Generatedsyms));
	initintset_223950((&(*result).Typeinfogenerated));
	return result;
}

N_NIMCALL(tjsgen596015*, newmodule_606957)(tsym226846* module) {
	tjsgen596015* result;
	result = 0;
	result = (tjsgen596015*) newObj((&NTI596017), sizeof(tjsgen596015));
	(*result).Sup.Sup.m_type = (&NTI596015);
	asgnRefNoCycle((void**) (&(*result).Module), module);
	{
		if (!(globals_606952 == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&globals_606952), newglobals_596084());
	}
	LA3: ;
	return result;
}

N_NIMCALL(tpasscontext287005*, myopen_607239)(tsym226846* s) {
	tpasscontext287005* result;
	tjsgen596015* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = newmodule_606957(s);
	result = &LOC1->Sup;
	return result;
}

N_NIMCALL(tpasscontext287005*, myopencached_607228)(tsym226846* s, trodreader277030* rd) {
	tpasscontext287005* result;
	result = 0;
	internalerror_199006(((NimStringDesc*) &TMP4237));
	result = NIM_NIL;
	return result;
}

static N_INLINE(NIM_BOOL, skipcodegen_287083)(tnode226816* n) {
	NIM_BOOL result;
	result = 0;
	result = (0 < gerrorcounter_197306);
	return result;
}
N_NIMCALL(void, TMP4244)(void* p, NI op) {
	TY596071* a;
	NI LOC1;
	a = (TY596071*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP4245)(void* p, NI op) {
	tproc596033* a;
	a = (tproc596033*)p;
	nimGCvisit((void*)(*a).Procdef, op);
	nimGCvisit((void*)(*a).Prc, op);
	nimGCvisit((void*)(*a).Locals, op);
	nimGCvisit((void*)(*a).Body, op);
	nimGCvisit((void*)(*a).Module, op);
	nimGCvisit((void*)(*a).G, op);
	nimGCvisit((void*)(*a).Blocks, op);
	nimGCvisit((void*)(*a).Up, op);
}

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

static N_INLINE(void, rtladdcycleroot_49429)(tcell44933* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_45671((&gch_47044.Cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_51025)(tcell44933* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_48667(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_49429(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_50604)(tcell44933* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_48667(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_49429(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell44933* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48646(src);
		incref_51025(LOC5);
	}
	LA3: ;
	{
		tcell44933* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48646((*dest));
		decref_50604(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(tproc596033*, newproc_596207)(tglobals596027* globals, tjsgen596015* module, tnode226816* procdef, NU32 options) {
	tproc596033* result;
	tproc596033* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (tproc596033*) newObj((&NTI596031), sizeof(tproc596033));
	if ((*LOC1).Blocks) nimGCunrefNoCycle((*LOC1).Blocks);
	(*LOC1).Blocks = (TY596071*) newSeqRC1((&NTI596071), 0);
	(*LOC1).Options = options;
	asgnRef((void**) (&(*LOC1).Module), module);
	asgnRefNoCycle((void**) (&(*LOC1).Procdef), procdef);
	asgnRefNoCycle((void**) (&(*LOC1).G), globals);
	result = LOC1;
	{
		if (!!((procdef == NIM_NIL))) goto LA4;
		asgnRefNoCycle((void**) (&(*result).Prc), (*(*procdef).kindU.S6.Sons->data[0]).kindU.S4.Sym);
	}
	LA4: ;
	return result;
}

N_NIMCALL(trope178009*, makejsstring_596344)(NimStringDesc* s) {
	trope178009* result;
	NimStringDesc* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = nsuEscape(s, ((NimStringDesc*) &TMP4247), ((NimStringDesc*) &TMP4247));
	result = torope_178076(LOC1);
	return result;
}

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

static N_INLINE(NI, sonslen_227255)(ttype226852* n) {
	NI result;
	result = 0;
	{
		if (!(*n).Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(ttype226852*, lastson_227267)(ttype226852* n) {
	ttype226852* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_227255(n);
	result = (*n).Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

N_NIMCALL(NU8, maptype_596291)(ttype226852* typ) {
	NU8 result;
	ttype226852* t;
	result = 0;
	t = skiptypes_231245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	{
		{
			ttype226852* LOC4;
			ttype226852* LOC5;
			LOC4 = 0;
			LOC4 = lastson_227267(t);
			LOC5 = 0;
			LOC5 = skiptypes_231245(LOC4, IL64(211106232576256));
			if (!((IL64(316659498680336) &(IL64(1)<<(((*LOC5).Kind)&IL64(63))))!=0)) goto LA6;
			result = ((NU8) 7);
		}
		goto LA2;
		LA6: ;
		{
			result = ((NU8) 8);
		}
		LA2: ;
	}
	break;
	case ((NU8) 26):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 13):
	case ((NU8) 15):
	case ((NU8) 46):
	case ((NU8) 47):
	case ((NU8) 49):
	case ((NU8) 50):
	{
		result = maptype_596291((*t).Sons->data[0]);
	}
	break;
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 1):
	{
		result = ((NU8) 3);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = ((NU8) 5);
	}
	break;
	case ((NU8) 19):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 28):
	case ((NU8) 24):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 17):
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 18):
	case ((NU8) 27):
	case ((NU8) 45):
	case ((NU8) 48):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 5):
	{
		result = ((NU8) 1);
	}
	break;
	case ((NU8) 11):
	case ((NU8) 12):
	case ((NU8) 10):
	case ((NU8) 9):
	case ((NU8) 0):
	case ((NU8) 60):
	case ((NU8) 30):
	case ((NU8) 3):
	case ((NU8) 61):
	case ((NU8) 6):
	case ((NU8) 7):
	case ((NU8) 59):
	case ((NU8) 8):
	case ((NU8) 51):
	case ((NU8) 54):
	case ((NU8) 52):
	case ((NU8) 53):
	case ((NU8) 55):
	case ((NU8) 56):
	case ((NU8) 57):
	case ((NU8) 58):
	{
		result = ((NU8) 0);
	}
	break;
	case ((NU8) 25):
	{
		result = ((NU8) 2);
	}
	break;
	case ((NU8) 29):
	{
		result = ((NU8) 6);
	}
	break;
	}
	return result;
}

N_NIMCALL(trope178009*, manglename_596315)(tsym226846* s) {
	trope178009* result;
	result = 0;
	result = (*s).Loc.R;
	{
		NimStringDesc* LOC5;
		trope178009* LOC6;
		if (!(result == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = mangle_549763((*(*s).Name).S);
		result = torope_178076(LOC5);
		app_178060(&result, ((NimStringDesc*) &TMP4255));
		LOC6 = 0;
		LOC6 = torope_178082(((NI64) ((*s).Sup.Id)));
		app_178052(&result, LOC6);
		asgnRefNoCycle((void**) (&(*s).Loc.R), result);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope178009*, puttoseq_603423)(NimStringDesc* s, NIM_BOOL indirect) {
	trope178009* result;
	result = 0;
	result = torope_178076(s);
	{
		TY178515 LOC5;
		if (!indirect) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = result;
		result = ropef_178107(((NimStringDesc*) &TMP4256), LOC5, 1);
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, sonslen_227249)(tnode226816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, iscompiletimeonly_274466)(ttype226852* t) {
	NIM_BOOL result;
	result = 0;
	result = ((*t).Kind == ((NU8) 8) || (*t).Kind == ((NU8) 59));
	return result;
}

N_NIMCALL(trope178009*, generateheader_601148)(tproc596033* p, ttype226852* typ) {
	trope178009* result;
	result = 0;
	result = NIM_NIL;
	{
		NI i_601165;
		NI HEX3Atmp_601446;
		NI LOC2;
		NI res_601449;
		i_601165 = 0;
		HEX3Atmp_601446 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249((*typ).N);
		HEX3Atmp_601446 = (NI32)(LOC2 - 1);
		res_601449 = 1;
		{
			while (1) {
				if (!(res_601449 <= HEX3Atmp_601446)) goto LA4;
				i_601165 = res_601449;
				{
					tsym226846* param;
					trope178009* name;
					{
						if (!!((result == NIM_NIL))) goto LA8;
						app_178060(&result, ((NimStringDesc*) &TMP4263));
					}
					LA8: ;
					param = (*(*(*typ).N).kindU.S6.Sons->data[i_601165]).kindU.S4.Sym;
					{
						NIM_BOOL LOC12;
						LOC12 = 0;
						LOC12 = iscompiletimeonly_274466((*param).Typ);
						if (!LOC12) goto LA13;
						goto LA5;
					}
					LA13: ;
					name = manglename_596315(param);
					app_178052(&result, name);
					{
						NU8 LOC17;
						LOC17 = 0;
						LOC17 = maptype_596291((*param).Typ);
						if (!(LOC17 == ((NU8) 8))) goto LA18;
						app_178060(&result, ((NimStringDesc*) &TMP4263));
						app_178052(&result, name);
						app_178060(&result, ((NimStringDesc*) &TMP4252));
					}
					LA18: ;
				} LA5: ;
				res_601449 += 1;
			} LA4: ;
		}
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isindirect_603831)(tsym226846* v) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	NU8 LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = !(((32776 & (*v).Flags) == 0));
	if (!(LOC2)) goto LA3;
	LOC4 = 0;
	LOC4 = maptype_596291((*v).Typ);
	LOC2 = !((LOC4 == ((NU8) 7)));
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA5;
	LOC1 = !(((126976 &(1<<(((*v).Kind)&31)))!=0));
	LA5: ;
	result = LOC1;
	return result;
}

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

N_NIMCALL(trope178009*, genprocbody_606203)(tproc596033* p, tsym226846* prc) {
	trope178009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		TY589896 LOC12;
		NimStringDesc* LOC13;
		NimStringDesc* LOC14;
		if (!(((*prc).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4269));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4270));
		}
		LA7: ;
		LOC5 = rawNewString(LOC6->Sup.len + 15);
appendString(LOC5, LOC6);
appendString(LOC5, ((NimStringDesc*) &TMP4271));
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC13 = 0;
		LOC13 = rawNewString((*(*(*prc).Owner).Name).S->Sup.len + (*(*prc).Name).S->Sup.len + 1);
appendString(LOC13, (*(*(*prc).Owner).Name).S);
appendChar(LOC13, 46);
appendString(LOC13, (*(*prc).Name).S);
		LOC12[0] = makejsstring_596344(LOC13);
		LOC14 = 0;
		LOC14 = tofilename_198025((*prc).Info.Fileindex);
		LOC12[1] = makejsstring_596344(LOC14);
		result = ropef_178107(LOC5, LOC12, 2);
	}
	goto LA1;
	LA3: ;
	{
		result = NIM_NIL;
	}
	LA1: ;
	{
		NimStringDesc* LOC20;
		TY178515 LOC26;
		if (!(*p).Beforeretneeded) goto LA18;
		LOC20 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA23;
			LOC20 = copyString(((NimStringDesc*) &TMP4272));
		}
		goto LA21;
		LA23: ;
		{
			LOC20 = copyString(((NimStringDesc*) &TMP4273));
		}
		LA21: ;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = (*p).Body;
		appf_178115(&result, LOC20, LOC26, 1);
	}
	goto LA16;
	LA18: ;
	{
		app_178052(&result, (*p).Body);
	}
	LA16: ;
	{
		NIM_BOOL LOC30;
		TY178515 LOC34;
		LOC30 = 0;
		LOC30 = ((*(*prc).Typ).Callconv == ((NU8) 4));
		if (!(LOC30)) goto LA31;
		LOC30 = ((*p).Target == ((NU8) 0));
		LA31: ;
		if (!LOC30) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		LOC34[0] = result;
		result = ropef_178107(((NimStringDesc*) &TMP4274), LOC34, 1);
	}
	LA32: ;
	{
		NimStringDesc* LOC39;
		if (!(((*prc).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA37;
		LOC39 = 0;
		LOC39 = rawNewString(tnl_175613->Sup.len + 25);
appendString(LOC39, ((NimStringDesc*) &TMP4275));
appendString(LOC39, tnl_175613);
		app_178060(&result, LOC39);
	}
	LA37: ;
	return result;
}

N_NIMCALL(trope178009*, genproc_597154)(tproc596033* oldproc, tsym226846* prc) {
	trope178009* result;
	tsym226846* resultsym;
	trope178009* name;
	trope178009* returnstmt;
	trope178009* resultasgn;
	trope178009* header;
	tcompres596023 a;
	tproc596033* p;
	tnode226816* LOC16;
	NimStringDesc* LOC17;
	TY559098 LOC23;
	result = 0;
	resultsym = 0;
	name = 0;
	returnstmt = 0;
	resultasgn = 0;
	header = 0;
	memset((void*)(&a), 0, sizeof(a));
	p = newproc_596207((*oldproc).G, (*oldproc).Module, (*prc).Ast, (*prc).Options);
	(*p).Target = (*oldproc).Target;
	asgnRef((void**) (&(*p).Up), oldproc);
	returnstmt = NIM_NIL;
	resultasgn = NIM_NIL;
	name = manglename_596315(prc);
	header = generateheader_601148(p, (*prc).Typ);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY589896 LOC13;
		NIM_BOOL LOC14;
		TY178515 LOC15;
		LOC3 = 0;
		LOC3 = !(((*(*prc).Typ).Sons->data[0] == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC3 = !((((*prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA4: ;
		if (!LOC3) goto LA5;
		resultsym = (*(*(*prc).Ast).kindU.S6.Sons->data[7]).kindU.S4.Sym;
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4264));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4265));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = manglename_596315(resultsym);
		LOC14 = 0;
		LOC14 = isindirect_603831(resultsym);
		LOC13[1] = createvar_603438(p, (*resultsym).Typ, LOC14);
		resultasgn = ropef_178107(LOC7, LOC13, 2);
		gen_597138(p, (*(*prc).Ast).kindU.S6.Sons->data[7], (&a));
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = a.Res;
		returnstmt = ropef_178107(((NimStringDesc*) &TMP4266), LOC15, 1);
	}
	LA5: ;
	LOC16 = 0;
	LOC16 = getbody_280270(prc);
	genstmt_597147(p, LOC16);
	LOC17 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA20;
		LOC17 = copyString(((NimStringDesc*) &TMP4267));
	}
	goto LA18;
	LA20: ;
	{
		LOC17 = copyString(((NimStringDesc*) &TMP4268));
	}
	LA18: ;
	memset((void*)LOC23, 0, sizeof(LOC23));
	LOC23[0] = name;
	LOC23[1] = header;
	LOC23[2] = (*p).Locals;
	LOC23[3] = resultasgn;
	LOC23[4] = genprocbody_606203(p, prc);
	LOC23[5] = returnstmt;
	result = ropef_178107(LOC17, LOC23, 6);
	return result;
}

N_NIMCALL(void, usemagic_597168)(tproc596033* p, NimStringDesc* name) {
	tsym226846* s;
	{
		if (!(name->Sup.len == 0)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	s = getcompilerproc_283036(name);
	{
		if (!!((s == NIM_NIL))) goto LA7;
		{
			NimStringDesc* LOC13;
			if (!!(((77824 &(1<<(((*s).Kind)&31)))!=0))) goto LA11;
			LOC13 = 0;
			LOC13 = HEX24_199126(TMP4261);
			internalerror_199006(LOC13);
		}
		LA11: ;
		{
			NIM_BOOL LOC16;
			trope178009* LOC19;
			LOC16 = 0;
			LOC16 = containsorincl_223916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC16)) goto LA17;
			LOC19 = 0;
			LOC19 = genproc_597154(p, s);
			app_178052(&(*(*p).G).Code, LOC19);
		}
		LA17: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!!(((*p).Prc == NIM_NIL))) goto LA23;
			globalerror_198934((*(*p).Prc).Info, ((NU16) 64), name);
		}
		goto LA21;
		LA23: ;
		{
			rawmessage_198733(((NU16) 64), name);
		}
		LA21: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(void, genenuminfo_596877)(tproc596033* p, ttype226852* typ, trope178009* name) {
	NI length;
	trope178009* s;
	trope178009* n;
	TY555018 LOC19;
	TY589896 LOC20;
	TY589896 LOC21;
	length = sonslen_227249((*typ).N);
	s = NIM_NIL;
	{
		NI i_596896;
		NI HEX3Atmp_597036;
		NI res_597039;
		i_596896 = 0;
		HEX3Atmp_597036 = 0;
		HEX3Atmp_597036 = (NI32)(length - 1);
		res_597039 = 0;
		{
			while (1) {
				tsym226846* field;
				NimStringDesc* extname;
				TY555018 LOC18;
				if (!(res_597039 <= HEX3Atmp_597036)) goto LA3;
				i_596896 = res_597039;
				{
					if (!!(((*(*(*typ).N).kindU.S6.Sons->data[i_596896]).Kind == ((NU8) 3)))) goto LA6;
					internalerror_198987((*(*typ).N).Info, ((NimStringDesc*) &TMP4282));
				}
				LA6: ;
				field = (*(*(*typ).N).kindU.S6.Sons->data[i_596896]).kindU.S4.Sym;
				{
					NimStringDesc* LOC12;
					if (!(0 < i_596896)) goto LA10;
					LOC12 = 0;
					LOC12 = rawNewString(tnl_175613->Sup.len + 2);
appendString(LOC12, ((NimStringDesc*) &TMP4263));
appendString(LOC12, tnl_175613);
					app_178060(&s, LOC12);
				}
				LA10: ;
				{
					if (!((*field).Ast == NIM_NIL)) goto LA15;
					extname = (*(*field).Name).S;
				}
				goto LA13;
				LA15: ;
				{
					extname = (*(*field).Ast).kindU.S3.Strval;
				}
				LA13: ;
				memset((void*)LOC18, 0, sizeof(LOC18));
				LOC18[0] = torope_178082(((NI64) ((*field).Position)));
				LOC18[1] = name;
				LOC18[2] = makejsstring_596344(extname);
				appf_178115(&s, ((NimStringDesc*) &TMP4283), LOC18, 3);
				res_597039 += 1;
			} LA3: ;
		}
	}
	memset((void*)LOC19, 0, sizeof(LOC19));
	LOC19[0] = torope_178082(((NI64) ((*typ).Sup.Id)));
	LOC19[1] = torope_178082(((NI64) (length)));
	LOC19[2] = s;
	n = ropef_178107(((NimStringDesc*) &TMP4284), LOC19, 3);
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = name;
	LOC20[1] = torope_178082(((NI64) ((*typ).Kind)));
	s = ropef_178107(((NimStringDesc*) &TMP4285), LOC20, 2);
	prepend_178068(&(*(*p).G).Typeinfo, s);
	app_178052(&(*(*p).G).Typeinfo, n);
	memset((void*)LOC21, 0, sizeof(LOC21));
	LOC21[0] = name;
	LOC21[1] = torope_178082(((NI64) ((*typ).Sup.Id)));
	appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4286), LOC21, 2);
	{
		TY589896 LOC26;
		if (!!(((*typ).Sons->data[0] == NIM_NIL))) goto LA24;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = name;
		LOC26[1] = gentypeinfo_596354(p, (*typ).Sons->data[0]);
		appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC26, 2);
	}
	LA24: ;
}

static N_INLINE(tnode226816*, lastson_227261)(tnode226816* n) {
	tnode226816* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_227249(n);
	result = (*n).kindU.S6.Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

N_NIMCALL(trope178009*, genobjectfields_596358)(tproc596033* p, ttype226852* typ, tnode226816* n) {
	trope178009* result;
	trope178009* s;
	trope178009* u;
	NI length;
	tsym226846* field;
	tnode226816* b;
	result = 0;
	s = 0;
	u = 0;
	length = 0;
	field = 0;
	b = 0;
	result = NIM_NIL;
	switch ((*n).Kind) {
	case ((NU8) 137):
	{
		length = sonslen_227249(n);
		{
			if (!(length == 1)) goto LA4;
			result = genobjectfields_596358(p, typ, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA2;
		LA4: ;
		{
			TY589896 LOC16;
			s = NIM_NIL;
			{
				NI i_596395;
				NI HEX3Atmp_596677;
				NI res_596680;
				i_596395 = 0;
				HEX3Atmp_596677 = 0;
				HEX3Atmp_596677 = (NI32)(length - 1);
				res_596680 = 0;
				{
					while (1) {
						trope178009* LOC15;
						if (!(res_596680 <= HEX3Atmp_596677)) goto LA9;
						i_596395 = res_596680;
						{
							NimStringDesc* LOC14;
							if (!(0 < i_596395)) goto LA12;
							LOC14 = 0;
							LOC14 = rawNewString(tnl_175613->Sup.len + 2);
appendString(LOC14, ((NimStringDesc*) &TMP4263));
appendString(LOC14, tnl_175613);
							app_178060(&s, LOC14);
						}
						LA12: ;
						LOC15 = 0;
						LOC15 = genobjectfields_596358(p, typ, (*n).kindU.S6.Sons->data[i_596395]);
						app_178052(&s, LOC15);
						res_596680 += 1;
					} LA9: ;
				}
			}
			memset((void*)LOC16, 0, sizeof(LOC16));
			LOC16[0] = torope_178082(((NI64) (length)));
			LOC16[1] = s;
			result = ropef_178107(((NimStringDesc*) &TMP4288), LOC16, 2);
		}
		LA2: ;
	}
	break;
	case ((NU8) 3):
	{
		TY555018 LOC18;
		field = (*n).kindU.S4.Sym;
		s = gentypeinfo_596354(p, (*field).Typ);
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = manglename_596315(field);
		LOC18[1] = s;
		LOC18[2] = makejsstring_596344((*(*field).Name).S);
		result = ropef_178107(((NimStringDesc*) &TMP4289), LOC18, 3);
	}
	break;
	case ((NU8) 138):
	{
		TY558593 LOC61;
		NI64 LOC62;
		length = sonslen_227249(n);
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA22;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4290));
		}
		LA22: ;
		field = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		s = gentypeinfo_596354(p, (*field).Typ);
		{
			NI i_596498;
			NI HEX3Atmp_596689;
			NI res_596692;
			i_596498 = 0;
			HEX3Atmp_596689 = 0;
			HEX3Atmp_596689 = (NI32)(length - 1);
			res_596692 = 1;
			{
				while (1) {
					TY589896 LOC59;
					tnode226816* LOC60;
					if (!(res_596692 <= HEX3Atmp_596689)) goto LA26;
					i_596498 = res_596692;
					b = (*n).kindU.S6.Sons->data[i_596498];
					u = NIM_NIL;
					switch ((*b).Kind) {
					case ((NU8) 85):
					{
						{
							NI LOC30;
							LOC30 = 0;
							LOC30 = sonslen_227249(b);
							if (!(LOC30 < 2)) goto LA31;
							internalerror_198987((*b).Info, ((NimStringDesc*) &TMP4291));
						}
						LA31: ;
						{
							NI j_596526;
							NI HEX3Atmp_596684;
							NI LOC34;
							NI res_596687;
							j_596526 = 0;
							HEX3Atmp_596684 = 0;
							LOC34 = 0;
							LOC34 = sonslen_227249(b);
							HEX3Atmp_596684 = (NI32)(LOC34 - 2);
							res_596687 = 0;
							{
								while (1) {
									if (!(res_596687 <= HEX3Atmp_596684)) goto LA36;
									j_596526 = res_596687;
									{
										if (!!((u == NIM_NIL))) goto LA39;
										app_178060(&u, ((NimStringDesc*) &TMP4263));
									}
									LA39: ;
									{
										TY589896 LOC45;
										NI64 LOC46;
										NI64 LOC47;
										if (!((*(*b).kindU.S6.Sons->data[j_596526]).Kind == ((NU8) 44))) goto LA43;
										memset((void*)LOC45, 0, sizeof(LOC45));
										LOC46 = 0;
										LOC46 = getordvalue_264187((*(*b).kindU.S6.Sons->data[j_596526]).kindU.S6.Sons->data[0]);
										LOC45[0] = torope_178082(LOC46);
										LOC47 = 0;
										LOC47 = getordvalue_264187((*(*b).kindU.S6.Sons->data[j_596526]).kindU.S6.Sons->data[1]);
										LOC45[1] = torope_178082(LOC47);
										appf_178115(&u, ((NimStringDesc*) &TMP4292), LOC45, 2);
									}
									goto LA41;
									LA43: ;
									{
										NI64 LOC49;
										trope178009* LOC50;
										LOC49 = 0;
										LOC49 = getordvalue_264187((*b).kindU.S6.Sons->data[j_596526]);
										LOC50 = 0;
										LOC50 = torope_178082(LOC49);
										app_178052(&u, LOC50);
									}
									LA41: ;
									res_596687 += 1;
								} LA36: ;
							}
						}
					}
					break;
					case ((NU8) 88):
					{
						NI64 LOC52;
						LOC52 = 0;
						LOC52 = lengthord_264016((*field).Typ);
						u = torope_178082(LOC52);
					}
					break;
					default:
					{
						internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4293));
					}
					break;
					}
					{
						NimStringDesc* LOC58;
						if (!!((result == NIM_NIL))) goto LA56;
						LOC58 = 0;
						LOC58 = rawNewString(tnl_175613->Sup.len + 2);
appendString(LOC58, ((NimStringDesc*) &TMP4263));
appendString(LOC58, tnl_175613);
						app_178060(&result, LOC58);
					}
					LA56: ;
					memset((void*)LOC59, 0, sizeof(LOC59));
					LOC59[0] = u;
					LOC60 = 0;
					LOC60 = lastson_227261(b);
					LOC59[1] = genobjectfields_596358(p, typ, LOC60);
					appf_178115(&result, ((NimStringDesc*) &TMP4294), LOC59, 2);
					res_596692 += 1;
				} LA26: ;
			}
		}
		memset((void*)LOC61, 0, sizeof(LOC61));
		LOC61[0] = manglename_596315(field);
		LOC61[1] = s;
		LOC62 = 0;
		LOC62 = lengthord_264016((*field).Typ);
		LOC61[2] = torope_178082(LOC62);
		LOC61[3] = makejsstring_596344((*(*field).Name).S);
		LOC61[4] = result;
		result = ropef_178107(((NimStringDesc*) &TMP4295), LOC61, 5);
	}
	break;
	default:
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4290));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genobjectinfo_596724)(tproc596033* p, ttype226852* typ, trope178009* name) {
	trope178009* s;
	TY589896 LOC1;
	TY589896 LOC2;
	TY589896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_178082(((NI64) ((*typ).Kind)));
	s = ropef_178107(((NimStringDesc*) &TMP4285), LOC1, 2);
	prepend_178068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_178082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = genobjectfields_596358(p, typ, (*typ).N);
	appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4287), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_178082(((NI64) ((*typ).Sup.Id)));
	appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4286), LOC3, 2);
	{
		NIM_BOOL LOC6;
		TY589896 LOC10;
		LOC6 = 0;
		LOC6 = ((*typ).Kind == ((NU8) 17));
		if (!(LOC6)) goto LA7;
		LOC6 = !(((*typ).Sons->data[0] == NIM_NIL));
		LA7: ;
		if (!LOC6) goto LA8;
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = name;
		LOC10[1] = gentypeinfo_596354(p, (*typ).Sons->data[0]);
		appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC10, 2);
	}
	LA8: ;
}

N_NIMCALL(trope178009*, gentuplefields_596787)(tproc596033* p, ttype226852* typ) {
	trope178009* result;
	trope178009* s;
	TY589896 LOC11;
	NI LOC12;
	result = 0;
	s = NIM_NIL;
	{
		NI i_596814;
		NI HEX3Atmp_596828;
		NI LOC2;
		NI res_596831;
		i_596814 = 0;
		HEX3Atmp_596828 = 0;
		LOC2 = 0;
		LOC2 = len_231005(typ);
		HEX3Atmp_596828 = (LOC2 - 1);
		res_596831 = 0;
		{
			while (1) {
				TY589896 LOC10;
				if (!(res_596831 <= HEX3Atmp_596828)) goto LA4;
				i_596814 = res_596831;
				{
					NimStringDesc* LOC9;
					if (!(0 < i_596814)) goto LA7;
					LOC9 = 0;
					LOC9 = rawNewString(tnl_175613->Sup.len + 2);
appendString(LOC9, ((NimStringDesc*) &TMP4263));
appendString(LOC9, tnl_175613);
					app_178060(&s, LOC9);
				}
				LA7: ;
				memset((void*)LOC10, 0, sizeof(LOC10));
				LOC10[0] = torope_178082(((NI64) (i_596814)));
				LOC10[1] = gentypeinfo_596354(p, (*typ).Sons->data[i_596814]);
				appf_178115(&s, ((NimStringDesc*) &TMP4296), LOC10, 2);
				res_596831 += 1;
			} LA4: ;
		}
	}
	memset((void*)LOC11, 0, sizeof(LOC11));
	LOC12 = 0;
	LOC12 = len_231005(typ);
	LOC11[0] = torope_178082(((NI64) (LOC12)));
	LOC11[1] = s;
	result = ropef_178107(((NimStringDesc*) &TMP4288), LOC11, 2);
	return result;
}

N_NIMCALL(void, gentupleinfo_596845)(tproc596033* p, ttype226852* typ, trope178009* name) {
	trope178009* s;
	TY589896 LOC1;
	TY589896 LOC2;
	TY589896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_178082(((NI64) ((*typ).Kind)));
	s = ropef_178107(((NimStringDesc*) &TMP4285), LOC1, 2);
	prepend_178068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_178082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = gentuplefields_596787(p, typ);
	appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4287), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_178082(((NI64) ((*typ).Sup.Id)));
	appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4286), LOC3, 2);
}

N_NIMCALL(trope178009*, gentypeinfo_596354)(tproc596033* p, ttype226852* typ) {
	trope178009* result;
	ttype226852* t;
	TY178515 LOC5;
	result = 0;
	t = typ;
	{
		if (!((*t).Kind == ((NU8) 11))) goto LA3;
		t = lastson_227267(t);
	}
	LA3: ;
	memset((void*)LOC5, 0, sizeof(LOC5));
	LOC5[0] = torope_178082(((NI64) ((*t).Sup.Id)));
	result = ropef_178107(((NimStringDesc*) &TMP4279), LOC5, 1);
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = containsorincl_223916((&(*(*p).G).Typeinfogenerated), (*t).Sup.Id);
		if (!LOC8) goto LA9;
		goto BeforeRet;
	}
	LA9: ;
	switch ((*t).Kind) {
	case ((NU8) 13):
	{
		result = gentypeinfo_596354(p, (*typ).Sons->data[0]);
	}
	break;
	case ((NU8) 26):
	case ((NU8) 25):
	case ((NU8) 1):
	case ((NU8) 2):
	case ((NU8) 29):
	case ((NU8) 28):
	case ((NU8) 31) ... ((NU8) 39):
	{
		trope178009* s;
		TY589896 LOC13;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = result;
		LOC13[1] = torope_178082(((NI64) ((*t).Kind)));
		s = ropef_178107(((NimStringDesc*) &TMP4280), LOC13, 2);
		prepend_178068(&(*(*p).G).Typeinfo, s);
	}
	break;
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	case ((NU8) 24):
	case ((NU8) 20):
	case ((NU8) 19):
	{
		trope178009* s;
		TY589896 LOC15;
		TY589896 LOC16;
		ttype226852* LOC17;
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = result;
		LOC15[1] = torope_178082(((NI64) ((*t).Kind)));
		s = ropef_178107(((NimStringDesc*) &TMP4280), LOC15, 2);
		prepend_178068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC16, 0, sizeof(LOC16));
		LOC16[0] = result;
		LOC17 = 0;
		LOC17 = lastson_227267(typ);
		LOC16[1] = gentypeinfo_596354(p, LOC17);
		appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC16, 2);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		trope178009* s;
		TY589896 LOC19;
		TY589896 LOC20;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = result;
		LOC19[1] = torope_178082(((NI64) ((*t).Kind)));
		s = ropef_178107(((NimStringDesc*) &TMP4280), LOC19, 2);
		prepend_178068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC20, 0, sizeof(LOC20));
		LOC20[0] = result;
		LOC20[1] = gentypeinfo_596354(p, (*typ).Sons->data[1]);
		appf_178115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC20, 2);
	}
	break;
	case ((NU8) 14):
	{
		genenuminfo_596877(p, t, result);
	}
	break;
	case ((NU8) 17):
	{
		genobjectinfo_596724(p, t, result);
	}
	break;
	case ((NU8) 18):
	{
		gentupleinfo_596845(p, t, result);
	}
	break;
	default:
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = rawNewString(reprEnum((*t).Kind, (&NTI226258))->Sup.len + 13);
appendString(LOC25, ((NimStringDesc*) &TMP4297));
appendString(LOC25, reprEnum((*t).Kind, (&NTI226258)));
appendChar(LOC25, 41);
		internalerror_199006(LOC25);
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope178009*, createrecordvaraux_603446)(tproc596033* p, tnode226816* rec, NI* c) {
	trope178009* result;
	result = 0;
	result = NIM_NIL;
	switch ((*rec).Kind) {
	case ((NU8) 137):
	{
		{
			NI i_603465;
			NI HEX3Atmp_603570;
			NI LOC3;
			NI res_603573;
			i_603465 = 0;
			HEX3Atmp_603570 = 0;
			LOC3 = 0;
			LOC3 = sonslen_227249(rec);
			HEX3Atmp_603570 = (NI32)(LOC3 - 1);
			res_603573 = 0;
			{
				while (1) {
					trope178009* LOC6;
					if (!(res_603573 <= HEX3Atmp_603570)) goto LA5;
					i_603465 = res_603573;
					LOC6 = 0;
					LOC6 = createrecordvaraux_603446(p, (*rec).kindU.S6.Sons->data[i_603465], c);
					app_178052(&result, LOC6);
					res_603573 += 1;
				} LA5: ;
			}
		}
	}
	break;
	case ((NU8) 138):
	{
		trope178009* LOC8;
		LOC8 = 0;
		LOC8 = createrecordvaraux_603446(p, (*rec).kindU.S6.Sons->data[0], c);
		app_178052(&result, LOC8);
		{
			NI i_603508;
			NI HEX3Atmp_603576;
			NI LOC10;
			NI res_603579;
			i_603508 = 0;
			HEX3Atmp_603576 = 0;
			LOC10 = 0;
			LOC10 = sonslen_227249(rec);
			HEX3Atmp_603576 = (NI32)(LOC10 - 1);
			res_603579 = 1;
			{
				while (1) {
					tnode226816* LOC13;
					trope178009* LOC14;
					if (!(res_603579 <= HEX3Atmp_603576)) goto LA12;
					i_603508 = res_603579;
					LOC13 = 0;
					LOC13 = lastson_227261((*rec).kindU.S6.Sons->data[i_603508]);
					LOC14 = 0;
					LOC14 = createrecordvaraux_603446(p, LOC13, c);
					app_178052(&result, LOC14);
					res_603579 += 1;
				} LA12: ;
			}
		}
	}
	break;
	case ((NU8) 3):
	{
		trope178009* LOC20;
		trope178009* LOC21;
		{
			if (!(0 < (*c))) goto LA18;
			app_178060(&result, ((NimStringDesc*) &TMP4263));
		}
		LA18: ;
		LOC20 = 0;
		LOC20 = manglename_596315((*rec).kindU.S4.Sym);
		app_178052(&result, LOC20);
		app_178060(&result, ((NimStringDesc*) &TMP4306));
		LOC21 = 0;
		LOC21 = createvar_603438(p, (*(*rec).kindU.S4.Sym).Typ, NIM_FALSE);
		app_178052(&result, LOC21);
		(*c) += 1;
	}
	break;
	default:
	{
		internalerror_198987((*rec).Info, ((NimStringDesc*) &TMP4307));
	}
	break;
	}
	return result;
}

N_NIMCALL(trope178009*, createvar_603438)(tproc596033* p, ttype226852* typ, NIM_BOOL indirect) {
	trope178009* result;
	ttype226852* t;
	result = 0;
	t = skiptypes_231245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = puttoseq_603423(((NimStringDesc*) &TMP4257), indirect);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = puttoseq_603423(((NimStringDesc*) &TMP4258), indirect);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 11):
	{
		ttype226852* LOC4;
		LOC4 = 0;
		LOC4 = lastson_227267(typ);
		result = createvar_603438(p, LOC4, indirect);
	}
	break;
	case ((NU8) 19):
	{
		result = torope_178076(((NimStringDesc*) &TMP4259));
	}
	break;
	case ((NU8) 1):
	{
		result = puttoseq_603423(((NimStringDesc*) &TMP4260), indirect);
	}
	break;
	case ((NU8) 16):
	case ((NU8) 4):
	{
		NI length;
		NI64 LOC8;
		ttype226852* e;
		LOC8 = 0;
		LOC8 = lengthord_264016(t);
		length = ((NI) (LOC8));
		e = elemtype_264656(t);
		{
			TY555018 LOC13;
			if (!(32 < length)) goto LA11;
			usemagic_597168(p, ((NimStringDesc*) &TMP4276));
			usemagic_597168(p, ((NimStringDesc*) &TMP4277));
			memset((void*)LOC13, 0, sizeof(LOC13));
			LOC13[0] = torope_178082(((NI64) (length)));
			LOC13[1] = createvar_603438(p, e, NIM_FALSE);
			LOC13[2] = gentypeinfo_596354(p, e);
			result = ropef_178107(((NimStringDesc*) &TMP4278), LOC13, 3);
		}
		goto LA9;
		LA11: ;
		{
			NI i;
			result = torope_178076(((NimStringDesc*) &TMP4298));
			i = 0;
			{
				while (1) {
					trope178009* LOC21;
					if (!(i < length)) goto LA16;
					{
						if (!(0 < i)) goto LA19;
						app_178060(&result, ((NimStringDesc*) &TMP4263));
					}
					LA19: ;
					LOC21 = 0;
					LOC21 = createvar_603438(p, e, NIM_FALSE);
					app_178052(&result, LOC21);
					i += 1;
				} LA16: ;
			}
			app_178060(&result, ((NimStringDesc*) &TMP4299));
		}
		LA9: ;
	}
	break;
	case ((NU8) 18):
	{
		result = torope_178076(((NimStringDesc*) &TMP4300));
		{
			NI i_603658;
			NI HEX3Atmp_603798;
			NI LOC24;
			NI res_603801;
			i_603658 = 0;
			HEX3Atmp_603798 = 0;
			LOC24 = 0;
			LOC24 = sonslen_227255(t);
			HEX3Atmp_603798 = (LOC24 - 1);
			res_603801 = 0;
			{
				while (1) {
					NimStringDesc* LOC31;
					TY589896 LOC37;
					if (!(res_603801 <= HEX3Atmp_603798)) goto LA26;
					i_603658 = res_603801;
					{
						if (!(0 < i_603658)) goto LA29;
						app_178060(&result, ((NimStringDesc*) &TMP4263));
					}
					LA29: ;
					LOC31 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA34;
						LOC31 = copyString(((NimStringDesc*) &TMP4301));
					}
					goto LA32;
					LA34: ;
					{
						LOC31 = copyString(((NimStringDesc*) &TMP4302));
					}
					LA32: ;
					memset((void*)LOC37, 0, sizeof(LOC37));
					LOC37[0] = torope_178082(((NI64) (i_603658)));
					LOC37[1] = createvar_603438(p, (*t).Sons->data[i_603658], NIM_FALSE);
					appf_178115(&result, LOC31, LOC37, 2);
					res_603801 += 1;
				} LA26: ;
			}
		}
		app_178060(&result, ((NimStringDesc*) &TMP4303));
	}
	break;
	case ((NU8) 17):
	{
		NI c;
		result = torope_178076(((NimStringDesc*) &TMP4300));
		c = 0;
		{
			NIM_BOOL LOC41;
			NimStringDesc* LOC45;
			TY178515 LOC51;
			LOC41 = 0;
			LOC41 = !((((*t).Flags &(1<<((((NU8) 2))&31)))!=0));
			if (LOC41) goto LA42;
			LOC41 = !(((*t).Sons->data[0] == NIM_NIL));
			LA42: ;
			if (!LOC41) goto LA43;
			c += 1;
			LOC45 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA48;
				LOC45 = copyString(((NimStringDesc*) &TMP4304));
			}
			goto LA46;
			LA48: ;
			{
				LOC45 = copyString(((NimStringDesc*) &TMP4305));
			}
			LA46: ;
			memset((void*)LOC51, 0, sizeof(LOC51));
			LOC51[0] = gentypeinfo_596354(p, t);
			appf_178115(&result, LOC45, LOC51, 1);
		}
		LA43: ;
		{
			while (1) {
				trope178009* LOC54;
				if (!!((t == NIM_NIL))) goto LA53;
				LOC54 = 0;
				LOC54 = createrecordvaraux_603446(p, (*t).N, (&c));
				app_178052(&result, LOC54);
				t = (*t).Sons->data[0];
			} LA53: ;
		}
		app_178060(&result, ((NimStringDesc*) &TMP4303));
	}
	break;
	case ((NU8) 23):
	case ((NU8) 21):
	case ((NU8) 22):
	{
		{
			NU8 LOC58;
			NimStringDesc* LOC61;
			LOC58 = 0;
			LOC58 = maptype_596291(t);
			if (!(LOC58 == ((NU8) 8))) goto LA59;
			LOC61 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA64;
				LOC61 = copyString(((NimStringDesc*) &TMP4308));
			}
			goto LA62;
			LA64: ;
			{
				LOC61 = copyString(((NimStringDesc*) &TMP4309));
			}
			LA62: ;
			result = puttoseq_603423(LOC61, indirect);
		}
		goto LA56;
		LA59: ;
		{
			NimStringDesc* LOC68;
			LOC68 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA71;
				LOC68 = copyString(((NimStringDesc*) &TMP4310));
			}
			goto LA69;
			LA71: ;
			{
				LOC68 = copyString(((NimStringDesc*) &TMP4311));
			}
			LA69: ;
			result = puttoseq_603423(LOC68, indirect);
		}
		LA56: ;
	}
	break;
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 26):
	case ((NU8) 25):
	{
		NimStringDesc* LOC75;
		LOC75 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA78;
			LOC75 = copyString(((NimStringDesc*) &TMP4310));
		}
		goto LA76;
		LA78: ;
		{
			LOC75 = copyString(((NimStringDesc*) &TMP4311));
		}
		LA76: ;
		result = puttoseq_603423(LOC75, indirect);
	}
	break;
	default:
	{
		NimStringDesc* LOC82;
		LOC82 = 0;
		LOC82 = rawNewString(reprEnum((*t).Kind, (&NTI226258))->Sup.len + 11);
appendString(LOC82, ((NimStringDesc*) &TMP4312));
appendString(LOC82, reprEnum((*t).Kind, (&NTI226258)));
		internalerror_199006(LOC82);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, needsnocopy_601474)(tnode226816* y) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	ttype226852* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((TMP4313[(*y).Kind/8] &(1<<((*y).Kind%8)))!=0);
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = skiptypes_231245((*y).Typ, IL64(211106232576256));
	LOC1 = ((*LOC3).Kind == ((NU8) 22) || (*LOC3).Kind == ((NU8) 21) || (*LOC3).Kind == ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, genvarinit_603901)(tproc596033* p, tsym226846* v, tnode226816* n) {
	tcompres596023 a;
	trope178009* s;
	memset((void*)(&a), 0, sizeof(a));
	s = 0;
	{
		NimStringDesc* LOC5;
		TY589896 LOC11;
		NIM_BOOL LOC12;
		if (!((*n).Kind == ((NU8) 1))) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4253));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4254));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = manglename_596315(v);
		LOC12 = 0;
		LOC12 = isindirect_603831(v);
		LOC11[1] = createvar_603438(p, (*v).Typ, LOC12);
		appf_178115(&(*p).Body, LOC5, LOC11, 2);
	}
	goto LA1;
	LA3: ;
	{
		trope178009* LOC14;
		NU8 LOC15;
		LOC14 = 0;
		LOC14 = manglename_596315(v);
		gen_597138(p, n, (&a));
		LOC15 = 0;
		LOC15 = maptype_596291((*v).Typ);
		switch (LOC15) {
		case ((NU8) 7):
		{
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = needsnocopy_601474(n);
				if (!LOC19) goto LA20;
				s = a.Res;
			}
			goto LA17;
			LA20: ;
			{
				TY589896 LOC23;
				usemagic_597168(p, ((NimStringDesc*) &TMP4277));
				memset((void*)LOC23, 0, sizeof(LOC23));
				LOC23[0] = a.Res;
				LOC23[1] = gentypeinfo_596354(p, (*n).Typ);
				s = ropef_178107(((NimStringDesc*) &TMP4314), LOC23, 2);
			}
			LA17: ;
		}
		break;
		case ((NU8) 8):
		{
			{
				if (!!((a.Typ == ((NU8) 8)))) goto LA27;
				internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4315));
			}
			LA27: ;
			{
				NimStringDesc* LOC33;
				TY555018 LOC39;
				if (!!(((32776 & (*v).Flags) == 0))) goto LA31;
				LOC33 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA36;
					LOC33 = copyString(((NimStringDesc*) &TMP4316));
				}
				goto LA34;
				LA36: ;
				{
					LOC33 = copyString(((NimStringDesc*) &TMP4317));
				}
				LA34: ;
				memset((void*)LOC39, 0, sizeof(LOC39));
				LOC39[0] = (*v).Loc.R;
				LOC39[1] = a.Address;
				LOC39[2] = a.Res;
				appf_178115(&(*p).Body, LOC33, LOC39, 3);
			}
			goto LA29;
			LA31: ;
			{
				NimStringDesc* LOC41;
				TY555018 LOC47;
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4318));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4319));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				LOC47[0] = (*v).Loc.R;
				LOC47[1] = a.Address;
				LOC47[2] = a.Res;
				appf_178115(&(*p).Body, LOC41, LOC47, 3);
			}
			LA29: ;
			goto BeforeRet;
		}
		break;
		default:
		{
			s = a.Res;
		}
		break;
		}
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC54;
			TY589896 LOC60;
			LOC51 = 0;
			LOC51 = isindirect_603831(v);
			if (!LOC51) goto LA52;
			LOC54 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA57;
				LOC54 = copyString(((NimStringDesc*) &TMP4320));
			}
			goto LA55;
			LA57: ;
			{
				LOC54 = copyString(((NimStringDesc*) &TMP4321));
			}
			LA55: ;
			memset((void*)LOC60, 0, sizeof(LOC60));
			LOC60[0] = (*v).Loc.R;
			LOC60[1] = s;
			appf_178115(&(*p).Body, LOC54, LOC60, 2);
		}
		goto LA49;
		LA52: ;
		{
			NimStringDesc* LOC62;
			TY589896 LOC68;
			LOC62 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4253));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4254));
			}
			LA63: ;
			memset((void*)LOC68, 0, sizeof(LOC68));
			LOC68[0] = (*v).Loc.R;
			LOC68[1] = s;
			appf_178115(&(*p).Body, LOC62, LOC68, 2);
		}
		LA49: ;
	}
	LA1: ;
	BeforeRet: ;
}

N_NIMCALL(void, genconstant_597161)(tproc596033* p, tsym226846* c) {
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		trope178009* oldbody;
		LOC3 = 0;
		LOC3 = !((((*c).Loc.Flags &(1<<((((NU8) 3))&7)))!=0));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = containsorincl_223916((&(*(*p).G).Generatedsyms), (*c).Sup.Id);
		LOC3 = !(LOC5);
		LA4: ;
		if (!LOC3) goto LA6;
		oldbody = (*p).Body;
		asgnRefNoCycle((void**) (&(*p).Body), NIM_NIL);
		genvarinit_603901(p, c, (*c).Ast);
		app_178052(&(*(*p).G).Code, (*p).Body);
		asgnRefNoCycle((void**) (&(*p).Body), oldbody);
	}
	LA6: ;
}

N_NIMCALL(void, gensym_602662)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tsym226846* s;
	s = (*n).kindU.S4.Sym;
	switch ((*s).Kind) {
	case ((NU8) 8):
	case ((NU8) 9):
	case ((NU8) 3):
	case ((NU8) 5):
	case ((NU8) 11):
	{
		NU8 k;
		{
			NimStringDesc* LOC6;
			if (!((*s).Loc.R == NIM_NIL)) goto LA4;
			LOC6 = 0;
			LOC6 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC6, ((NimStringDesc*) &TMP4249));
appendString(LOC6, (*(*s).Name).S);
			internalerror_198987((*n).Info, LOC6);
		}
		LA4: ;
		k = maptype_596291((*s).Typ);
		{
			if (!(k == ((NU8) 8))) goto LA9;
			(*r).Typ = ((NU8) 8);
			{
				TY178515 LOC15;
				TY178515 LOC16;
				if (!!(((32776 & (*s).Flags) == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Address), ropef_178107(((NimStringDesc*) &TMP4250), LOC15, 1));
				memset((void*)LOC16, 0, sizeof(LOC16));
				LOC16[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4251), LOC16, 1));
			}
			goto LA11;
			LA13: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Res), con_178031((*s).Loc.R, ((NimStringDesc*) &TMP4252)));
			}
			LA11: ;
		}
		goto LA7;
		LA9: ;
		{
			NIM_BOOL LOC19;
			TY178515 LOC23;
			LOC19 = 0;
			LOC19 = !((k == ((NU8) 7)));
			if (!(LOC19)) goto LA20;
			LOC19 = !(((32776 & (*s).Flags) == 0));
			LA20: ;
			if (!LOC19) goto LA21;
			memset((void*)LOC23, 0, sizeof(LOC23));
			LOC23[0] = (*s).Loc.R;
			unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4250), LOC23, 1));
		}
		goto LA7;
		LA21: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		}
		LA7: ;
	}
	break;
	case ((NU8) 10):
	{
		genconstant_597161(p, s);
		{
			NimStringDesc* LOC30;
			if (!((*s).Loc.R == NIM_NIL)) goto LA28;
			LOC30 = 0;
			LOC30 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC30, ((NimStringDesc*) &TMP4249));
appendString(LOC30, (*(*s).Name).S);
			internalerror_198987((*n).Info, LOC30);
		}
		LA28: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	case ((NU8) 12):
	case ((NU8) 16):
	case ((NU8) 13):
	{
		trope178009* LOC32;
		LOC32 = 0;
		LOC32 = manglename_596315(s);
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		{
			NIM_BOOL LOC35;
			NIM_BOOL LOC36;
			LOC35 = 0;
			LOC36 = 0;
			LOC36 = (((*s).Loc.Flags &(1<<((((NU8) 3))&7)))!=0);
			if (LOC36) goto LA37;
			LOC36 = !(((*s).Magic == ((NU16) 0)));
			LA37: ;
			LOC35 = LOC36;
			if (LOC35) goto LA38;
			LOC35 = !(((134217760 & (*s).Flags) == 0));
			LA38: ;
			if (!LOC35) goto LA39;
		}
		goto LA33;
		LA39: ;
		{
			NIM_BOOL LOC42;
			tnode226816* LOC44;
			LOC42 = 0;
			LOC42 = ((*s).Kind == ((NU8) 13));
			if (!(LOC42)) goto LA43;
			LOC44 = 0;
			LOC44 = getbody_280270(s);
			LOC42 = ((*LOC44).Kind == ((NU8) 1));
			LA43: ;
			if (!LOC42) goto LA45;
		}
		goto LA33;
		LA45: ;
		{
			if (!(((*s).Flags &(1<<((((NU8) 4))&31)))!=0)) goto LA48;
			(*(*p).G).Forwarded = (tsymseq226818*) incrSeq(&((*(*p).G).Forwarded)->Sup, sizeof(tsym226846*));
			asgnRefNoCycle((void**) (&(*(*p).G).Forwarded->data[(*(*p).G).Forwarded->Sup.len-1]), s);
		}
		goto LA33;
		LA48: ;
		{
			NIM_BOOL LOC51;
			trope178009* newp;
			tproc596033* owner;
			LOC51 = 0;
			LOC51 = containsorincl_223916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC51)) goto LA52;
			newp = genproc_597154(p, s);
			owner = p;
			{
				while (1) {
					NIM_BOOL LOC56;
					LOC56 = 0;
					LOC56 = !((owner == NIM_NIL));
					if (!(LOC56)) goto LA57;
					LOC56 = !(((*owner).Prc == (*s).Owner));
					LA57: ;
					if (!LOC56) goto LA55;
					owner = (*owner).Up;
				} LA55: ;
			}
			{
				if (!!((owner == NIM_NIL))) goto LA60;
				app_178052(&(*owner).Locals, newp);
			}
			goto LA58;
			LA60: ;
			{
				app_178052(&(*(*p).G).Code, newp);
			}
			LA58: ;
		}
		goto LA33;
		LA52: ;
		LA33: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* LOC68;
			if (!((*s).Loc.R == NIM_NIL)) goto LA66;
			LOC68 = 0;
			LOC68 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC68, ((NimStringDesc*) &TMP4249));
appendString(LOC68, (*(*s).Name).S);
			internalerror_198987((*n).Info, LOC68);
		}
		LA66: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	}
	(*r).Kind = ((NU8) 2);
}

static N_INLINE(NIM_BOOL, isemptytype_233990)(ttype226852* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((*t).Kind == ((NU8) 3) || (*t).Kind == ((NU8) 7));
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, len_227364)(tnode226816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, isatom_233962)(tnode226816* n) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (((NU8) 0) <= (*n).Kind);
	if (!(LOC1)) goto LA2;
	LOC1 = ((*n).Kind <= ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, issimpleexpr_597250)(tnode226816* n) {
	NIM_BOOL result;
	result = 0;
	{
		if (!((*n).Kind >= ((NU8) 26) && (*n).Kind <= ((NU8) 32) || (*n).Kind >= ((NU8) 37) && (*n).Kind <= ((NU8) 39) || (*n).Kind >= ((NU8) 41) && (*n).Kind <= ((NU8) 42) || (*n).Kind == ((NU8) 45))) goto LA3;
		{
			tnode226816* c_597285;
			c_597285 = 0;
			{
				NI i_597290;
				NI HEX3Atmp_597292;
				NI LOC7;
				NI res_597294;
				i_597290 = 0;
				HEX3Atmp_597292 = 0;
				LOC7 = 0;
				LOC7 = len_227364(n);
				HEX3Atmp_597292 = (LOC7 - 1);
				res_597294 = 0;
				{
					while (1) {
						if (!(res_597294 <= HEX3Atmp_597292)) goto LA9;
						i_597290 = res_597294;
						c_597285 = (*n).kindU.S6.Sons->data[i_597290];
						{
							NIM_BOOL LOC12;
							LOC12 = 0;
							LOC12 = issimpleexpr_597250(c_597285);
							if (!!(LOC12)) goto LA13;
							result = NIM_FALSE;
							goto BeforeRet;
						}
						LA13: ;
						res_597294 += 1;
					} LA9: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = isatom_233962(n);
		if (!LOC16) goto LA17;
		result = NIM_TRUE;
	}
	goto LA1;
	LA17: ;
	LA1: ;
	BeforeRet: ;
	return result;
}

static N_INLINE(trope178009*, rdloc_596139)(tcompres596023 a) {
	trope178009* result;
	result = 0;
	result = a.Res;
	return result;
}

N_NIMCALL(trope178009*, gettemp_597313)(tproc596033* p) {
	trope178009* result;
	TY178515 LOC1;
	NimStringDesc* LOC2;
	TY178515 LOC8;
	result = 0;
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_178082(((NI64) ((*p).Unique)));
	result = ropef_178107(((NimStringDesc*) &TMP4333), LOC1, 1);
	LOC2 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA5;
		LOC2 = copyString(((NimStringDesc*) &TMP4334));
	}
	goto LA3;
	LA5: ;
	{
		LOC2 = copyString(((NimStringDesc*) &TMP4335));
	}
	LA3: ;
	memset((void*)LOC8, 0, sizeof(LOC8));
	LOC8[0] = result;
	appf_178115(&(*p).Locals, LOC2, LOC8, 1);
	return result;
}

N_NIMCALL(void, genor_597456)(tproc596033* p, tnode226816* a, tnode226816* b, tcompres596023* r) {
	tcompres596023 x;
	tcompres596023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY589896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_597250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_597250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_597138(p, a, (&x));
		gen_597138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4331));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4332));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_596139(x);
		LOC13[1] = rdloc_596139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY589896 LOC21;
		NimStringDesc* LOC22;
		TY589896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
		(*r).Kind = ((NU8) 2);
		gen_597138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4336));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4337));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_596139(x);
		LOC21[1] = rdloc_596139((*r));
		appf_178115(&(*p).Body, LOC15, LOC21, 2);
		gen_597138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4338));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4339));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_596139(y);
		LOC28[1] = rdloc_596139((*r));
		appf_178115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, genand_597353)(tproc596033* p, tnode226816* a, tnode226816* b, tcompres596023* r) {
	tcompres596023 x;
	tcompres596023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY589896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_597250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_597250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_597138(p, a, (&x));
		gen_597138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4340));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4341));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_596139(x);
		LOC13[1] = rdloc_596139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY589896 LOC21;
		NimStringDesc* LOC22;
		TY589896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
		(*r).Kind = ((NU8) 2);
		gen_597138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4342));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4343));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_596139(x);
		LOC21[1] = rdloc_596139((*r));
		appf_178115(&(*p).Body, LOC15, LOC21, 2);
		gen_597138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4338));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4339));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_596139(y);
		LOC28[1] = rdloc_596139((*r));
		appf_178115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, arithaux_598211)(tproc596033* p, tnode226816* n, tcompres596023* r, NU16 op, tmagicops597659 ops) {
	tcompres596023 x;
	tcompres596023 y;
	NI i;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	i = !((((*p).Options &(1<<((((NU8) 5))&31)))!=0));
	usemagic_597168(p, ops[(op)- 37][(i)- 0]);
	{
		NI LOC3;
		TY589896 LOC6;
		LOC3 = 0;
		LOC3 = sonslen_227249(n);
		if (!(2 < LOC3)) goto LA4;
		gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
		gen_597138(p, (*n).kindU.S6.Sons->data[2], (&y));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_596139(x);
		LOC6[1] = rdloc_596139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(ops[(op)- 37][((NI32)(((NI) (i)) + 2))- 0], LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		TY178515 LOC8;
		gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_596139((*r));
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(ops[(op)- 37][((NI32)(((NI) (i)) + 2))- 0], LOC8, 1));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, arith_598306)(tproc596033* p, tnode226816* n, tcompres596023* r, NU16 op) {
	tmagicops597659 LOC1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	{
		if (!((*p).Target == ((NU8) 0))) goto LA4;
		genericAssign((void*)LOC1, (void*)jsops_597665, (&NTI597659));
	}
	goto LA2;
	LA4: ;
	{
		genericAssign((void*)LOC1, (void*)luaops_597860, (&NTI597659));
	}
	LA2: ;
	arithaux_598211(p, n, r, op, LOC1);
}

N_NIMCALL(void, unaryexpr_598179)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	TY178515 LOC1;
	usemagic_597168(p, magic);
	gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_596139((*r));
	unsureAsgnRef((void**) (&(*r).Res), ropef_178107(frmt, LOC1, 1));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genrepr_604850)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	ttype226852* t;
	t = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 44):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4441));
	}
	break;
	case ((NU8) 14):
	case ((NU8) 15):
	{
		TY589896 LOC3;
		gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
		usemagic_597168(p, ((NimStringDesc*) &TMP4325));
		(*r).Kind = ((NU8) 1);
		memset((void*)LOC3, 0, sizeof(LOC3));
		LOC3[0] = gentypeinfo_596354(p, t);
		LOC3[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4442), LOC3, 2));
	}
	break;
	default:
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4443));
	}
	break;
	}
}

N_NIMCALL(void, genswap_601643)(tproc596033* p, tnode226816* n) {
	tcompres596023 a;
	tcompres596023 b;
	trope178009* tmp;
	TY178515 LOC1;
	NimStringDesc* LOC22;
	TY555018 LOC28;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&a));
	gen_597138(p, (*n).kindU.S6.Sons->data[2], (&b));
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_178082(((NI64) ((*p).Unique)));
	tmp = ropef_178107(((NimStringDesc*) &TMP4333), LOC1, 1);
	{
		ttype226852* LOC4;
		NU8 LOC5;
		trope178009* tmp2;
		TY178515 LOC8;
		NimStringDesc* LOC15;
		TY555018 LOC21;
		LOC4 = 0;
		LOC4 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
		LOC5 = 0;
		LOC5 = maptype_596291(LOC4);
		if (!(LOC5 == ((NU8) 8))) goto LA6;
		(*p).Unique += 1;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = torope_178082(((NI64) ((*p).Unique)));
		tmp2 = ropef_178107(((NimStringDesc*) &TMP4333), LOC8, 1);
		{
			NIM_BOOL LOC11;
			LOC11 = 0;
			LOC11 = !((a.Typ == ((NU8) 8)));
			if (LOC11) goto LA12;
			LOC11 = !((b.Typ == ((NU8) 8)));
			LA12: ;
			if (!LOC11) goto LA13;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4444));
		}
		LA13: ;
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4445));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4446));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = tmp;
		LOC21[1] = a.Address;
		LOC21[2] = b.Address;
		appf_178115(&(*p).Body, LOC15, LOC21, 3);
		tmp = tmp2;
	}
	LA6: ;
	LOC22 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA25;
		LOC22 = copyString(((NimStringDesc*) &TMP4447));
	}
	goto LA23;
	LA25: ;
	{
		LOC22 = copyString(((NimStringDesc*) &TMP4448));
	}
	LA23: ;
	memset((void*)LOC28, 0, sizeof(LOC28));
	LOC28[0] = tmp;
	LOC28[1] = a.Res;
	LOC28[2] = b.Res;
	appf_178115(&(*p).Body, LOC22, LOC28, 3);
}

N_NIMCALL(void, binaryexpr_598058)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres596023 x;
	tcompres596023 y;
	TY589896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	usemagic_597168(p, magic);
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_597138(p, (*n).kindU.S6.Sons->data[2], (&y));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_596139(x);
	LOC1[1] = rdloc_596139(y);
	unsureAsgnRef((void**) (&(*r).Res), ropef_178107(frmt, LOC1, 2));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genconstrstr_604664)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	NI LOC25;
	memset((void*)(&a), 0, sizeof(a));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&a));
	(*r).Kind = ((NU8) 1);
	{
		ttype226852* LOC3;
		TY178515 LOC6;
		trope178009* LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
		if (!((*LOC3).Kind == ((NU8) 2))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = a.Res;
		LOC7 = 0;
		LOC7 = ropef_178107(((NimStringDesc*) &TMP4457), LOC6, 1);
		app_178052(&(*r).Res, LOC7);
	}
	goto LA1;
	LA4: ;
	{
		TY178515 LOC9;
		trope178009* LOC10;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = a.Res;
		LOC10 = 0;
		LOC10 = ropef_178107(((NimStringDesc*) &TMP4458), LOC9, 1);
		app_178052(&(*r).Res, LOC10);
	}
	LA1: ;
	{
		NI i_604731;
		NI HEX3Atmp_604830;
		NI LOC12;
		NI res_604833;
		i_604731 = 0;
		HEX3Atmp_604830 = 0;
		LOC12 = 0;
		LOC12 = sonslen_227249(n);
		HEX3Atmp_604830 = (NI32)(LOC12 - 2);
		res_604833 = 2;
		{
			while (1) {
				if (!(res_604833 <= HEX3Atmp_604830)) goto LA14;
				i_604731 = res_604833;
				gen_597138(p, (*n).kindU.S6.Sons->data[i_604731], (&a));
				{
					ttype226852* LOC17;
					TY178515 LOC20;
					trope178009* LOC21;
					LOC17 = 0;
					LOC17 = skiptypes_231245((*(*n).kindU.S6.Sons->data[i_604731]).Typ, IL64(211106242013440));
					if (!((*LOC17).Kind == ((NU8) 2))) goto LA18;
					memset((void*)LOC20, 0, sizeof(LOC20));
					LOC20[0] = a.Res;
					LOC21 = 0;
					LOC21 = ropef_178107(((NimStringDesc*) &TMP4459), LOC20, 1);
					app_178052(&(*r).Res, LOC21);
				}
				goto LA15;
				LA18: ;
				{
					TY178515 LOC23;
					trope178009* LOC24;
					memset((void*)LOC23, 0, sizeof(LOC23));
					LOC23[0] = a.Res;
					LOC24 = 0;
					LOC24 = ropef_178107(((NimStringDesc*) &TMP4460), LOC23, 1);
					app_178052(&(*r).Res, LOC24);
				}
				LA15: ;
				res_604833 += 1;
			} LA14: ;
		}
	}
	LOC25 = 0;
	LOC25 = sonslen_227249(n);
	gen_597138(p, (*n).kindU.S6.Sons->data[(NI32)(LOC25 - 1)], (&a));
	{
		NI LOC28;
		ttype226852* LOC29;
		TY178515 LOC32;
		trope178009* LOC33;
		LOC28 = 0;
		LOC28 = sonslen_227249(n);
		LOC29 = 0;
		LOC29 = skiptypes_231245((*(*n).kindU.S6.Sons->data[(NI32)(LOC28 - 1)]).Typ, IL64(211106242013440));
		if (!((*LOC29).Kind == ((NU8) 2))) goto LA30;
		memset((void*)LOC32, 0, sizeof(LOC32));
		LOC32[0] = a.Res;
		LOC33 = 0;
		LOC33 = ropef_178107(((NimStringDesc*) &TMP4461), LOC32, 1);
		app_178052(&(*r).Res, LOC33);
	}
	goto LA26;
	LA30: ;
	{
		TY178515 LOC35;
		trope178009* LOC36;
		memset((void*)LOC35, 0, sizeof(LOC35));
		LOC35[0] = a.Res;
		LOC36 = 0;
		LOC36 = ropef_178107(((NimStringDesc*) &TMP4462), LOC35, 1);
		app_178052(&(*r).Res, LOC36);
	}
	LA26: ;
}

N_NIMCALL(void, gennew_604504)(tproc596033* p, tnode226816* n) {
	tcompres596023 a;
	ttype226852* t;
	ttype226852* LOC1;
	TY589896 LOC2;
	memset((void*)(&a), 0, sizeof(a));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&a));
	LOC1 = 0;
	LOC1 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	t = (*LOC1).Sons->data[0];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = a.Res;
	LOC2[1] = createvar_603438(p, t, NIM_TRUE);
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4469), LOC2, 2);
}

N_NIMCALL(void, genord_604615)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	ttype226852* LOC1;
	LOC1 = 0;
	LOC1 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	switch ((*LOC1).Kind) {
	case ((NU8) 14):
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 2):
	{
		gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU8) 1):
	{
		NimStringDesc* LOC4;
		LOC4 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA7;
			LOC4 = copyString(((NimStringDesc*) &TMP4470));
		}
		goto LA5;
		LA7: ;
		{
			LOC4 = copyString(((NimStringDesc*) &TMP4471));
		}
		LA5: ;
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), LOC4);
	}
	break;
	default:
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4472));
	}
	break;
	}
}

N_NIMCALL(void, gennewseq_604551)(tproc596033* p, tnode226816* n) {
	tcompres596023 x;
	tcompres596023 y;
	ttype226852* t;
	ttype226852* LOC1;
	TY555018 LOC2;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_597138(p, (*n).kindU.S6.Sons->data[2], (&y));
	LOC1 = 0;
	LOC1 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	t = (*LOC1).Sons->data[0];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rdloc_596139(x);
	LOC2[1] = rdloc_596139(y);
	LOC2[2] = createvar_603438(p, t, NIM_FALSE);
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4498), LOC2, 3);
}

N_NIMCALL(void, genof_604895)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 x;
	ttype226852* t;
	memset((void*)(&x), 0, sizeof(x));
	t = skiptypes_231245((*(*n).kindU.S6.Sons->data[2]).Typ, IL64(211106248304896));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
	{
		TY589896 LOC5;
		if (!(((*t).Flags &(1<<((((NU8) 2))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = x.Res;
		LOC5[1] = gentypeinfo_596354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4499), LOC5, 2));
	}
	goto LA1;
	LA3: ;
	{
		TY589896 LOC7;
		usemagic_597168(p, ((NimStringDesc*) &TMP4500));
		memset((void*)LOC7, 0, sizeof(LOC7));
		LOC7[0] = x.Res;
		LOC7[1] = gentypeinfo_596354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4501), LOC7, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genreset_604978)(tproc596033* p, tnode226816* n) {
	tcompres596023 x;
	TY589896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	usemagic_597168(p, ((NimStringDesc*) &TMP4502));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = x.Res;
	LOC1[1] = gentypeinfo_596354(p, (*(*n).kindU.S6.Sons->data[1]).Typ);
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4503), LOC1, 2);
}

static N_INLINE(tnode226816*, HEX5BHEX5D_227698)(tnode226816* n, NI i) {
	tnode226816* result;
	result = 0;
	result = (*n).kindU.S6.Sons->data[i];
	return result;
}

N_NIMCALL(void, genarg_603096)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_597138(p, n, (&a));
	{
		if (!(a.Typ == ((NU8) 8))) goto LA3;
		app_178052(&(*r).Res, a.Address);
		app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
		app_178052(&(*r).Res, a.Res);
	}
	goto LA1;
	LA3: ;
	{
		app_178052(&(*r).Res, a.Res);
	}
	LA1: ;
}

N_NIMCALL(void, genecho_603334)(tproc596033* p, tnode226816* n_603337, tcompres596023* r) {
	tnode226816* n;
	tnode226816* LOC1;
	usemagic_597168(p, ((NimStringDesc*) &TMP4504));
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4505));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_227698(n_603337, 1);
	n = skipconv_274732(LOC1);
	{
		NimStringDesc* LOC6;
		if (!!(((*n).Kind == ((NU8) 41)))) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_199126(TMP4506);
		internalerror_199006(LOC6);
	}
	LA4: ;
	{
		NI i_603379;
		NI HEX3Atmp_603400;
		NI LOC8;
		NI res_603403;
		i_603379 = 0;
		HEX3Atmp_603400 = 0;
		LOC8 = 0;
		LOC8 = sonslen_227249(n);
		HEX3Atmp_603400 = (NI32)(LOC8 - 1);
		res_603403 = 0;
		{
			while (1) {
				if (!(res_603403 <= HEX3Atmp_603400)) goto LA10;
				i_603379 = res_603403;
				{
					tnode226816* it;
					it = (*n).kindU.S6.Sons->data[i_603379];
					{
						NIM_BOOL LOC14;
						LOC14 = 0;
						LOC14 = iscompiletimeonly_274466((*it).Typ);
						if (!LOC14) goto LA15;
						goto LA11;
					}
					LA15: ;
					{
						if (!(0 < i_603379)) goto LA19;
						app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
					}
					LA19: ;
					genarg_603096(p, it, r);
				} LA11: ;
				res_603403 += 1;
			} LA10: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4507));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, ternaryexpr_598110)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres596023 x;
	tcompres596023 y;
	tcompres596023 z;
	TY555018 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	memset((void*)(&z), 0, sizeof(z));
	usemagic_597168(p, magic);
	gen_597138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_597138(p, (*n).kindU.S6.Sons->data[2], (&y));
	gen_597138(p, (*n).kindU.S6.Sons->data[3], (&z));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_596139(x);
	LOC1[1] = rdloc_596139(y);
	LOC1[2] = rdloc_596139(z);
	unsureAsgnRef((void**) (&(*r).Res), ropef_178107(frmt, LOC1, 3));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genargs_603124)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4513));
	{
		NI i_603143;
		NI HEX3Atmp_603164;
		NI LOC2;
		NI res_603167;
		i_603143 = 0;
		HEX3Atmp_603164 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_603164 = (NI32)(LOC2 - 1);
		res_603167 = 1;
		{
			while (1) {
				if (!(res_603167 <= HEX3Atmp_603164)) goto LA4;
				i_603143 = res_603167;
				{
					tnode226816* it;
					it = (*n).kindU.S6.Sons->data[i_603143];
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_274466((*it).Typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!(1 < i_603143)) goto LA13;
						app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
					}
					LA13: ;
					genarg_603096(p, it, r);
				} LA5: ;
				res_603167 += 1;
			} LA4: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4507));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencall_603187)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
	genargs_603124(p, n, r);
}

N_NIMCALL(void, genmagic_605024)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	trope178009* line;
	trope178009* filen;
	NU16 op;
	memset((void*)(&a), 0, sizeof(a));
	line = 0;
	filen = 0;
	op = (*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Magic;
	switch (op) {
	case ((NU16) 135):
	{
		genor_597456(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 134):
	{
		genand_597353(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 37) ... ((NU16) 132):
	{
		arith_598306(p, n, r, op);
	}
	break;
	case ((NU16) 160):
	{
		genrepr_604850(p, n, r);
	}
	break;
	case ((NU16) 167):
	{
		genswap_601643(p, n);
	}
	break;
	case ((NU16) 18):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA9;
			unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4449));
		}
		goto LA7;
		LA9: ;
		{
			unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4348), ((NimStringDesc*) &TMP4450));
		}
		LA7: ;
	}
	break;
	case ((NU16) 20):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA15;
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4451));
		}
		goto LA13;
		LA15: ;
		{
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4348), ((NimStringDesc*) &TMP4349));
		}
		LA13: ;
	}
	break;
	case ((NU16) 19):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA21;
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4451));
		}
		goto LA19;
		LA21: ;
		{
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4344), ((NimStringDesc*) &TMP4346));
		}
		LA19: ;
	}
	break;
	case ((NU16) 155):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4452), ((NimStringDesc*) &TMP4453));
	}
	break;
	case ((NU16) 156):
	{
		{
			ttype226852* LOC28;
			LOC28 = 0;
			LOC28 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
			if (!((*LOC28).Kind == ((NU8) 29))) goto LA29;
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4454));
		}
		goto LA26;
		LA29: ;
		{
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4455));
		}
		LA26: ;
	}
	break;
	case ((NU16) 157):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4456));
	}
	break;
	case ((NU16) 146):
	{
		genconstrstr_604664(p, n, r);
	}
	break;
	case ((NU16) 136):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4463), ((NimStringDesc*) &TMP4464));
	}
	break;
	case ((NU16) 137):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4465), ((NimStringDesc*) &TMP4466));
	}
	break;
	case ((NU16) 138):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4465), ((NimStringDesc*) &TMP4467));
	}
	break;
	case ((NU16) 168):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4468));
	}
	break;
	case ((NU16) 133):
	{
		genrepr_604850(p, n, r);
	}
	break;
	case ((NU16) 24):
	case ((NU16) 25):
	{
		gennew_604504(p, n);
	}
	break;
	case ((NU16) 6):
	{
		NI64 LOC41;
		LOC41 = 0;
		LOC41 = getsize_264199((*(*n).kindU.S6.Sons->data[1]).Typ);
		unsureAsgnRef((void**) (&(*r).Res), torope_178082(LOC41));
	}
	break;
	case ((NU16) 34):
	case ((NU16) 169):
	{
		gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU16) 23):
	{
		genord_604615(p, n, r);
	}
	break;
	case ((NU16) 28):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4473));
	}
	break;
	case ((NU16) 30):
	case ((NU16) 27):
	case ((NU16) 29):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4474));
	}
	break;
	case ((NU16) 5):
	{
		{
			ttype226852* LOC49;
			LOC49 = 0;
			LOC49 = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
			if (!((*LOC49).Kind == ((NU8) 28))) goto LA50;
			unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4475));
		}
		goto LA47;
		LA50: ;
		{
			unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4473));
		}
		LA47: ;
	}
	break;
	case ((NU16) 21):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA56;
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4454));
		}
		goto LA54;
		LA56: ;
		{
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4344), ((NimStringDesc*) &TMP4476));
		}
		LA54: ;
	}
	break;
	case ((NU16) 22):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA62;
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4477));
		}
		goto LA60;
		LA62: ;
		{
			binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4348), ((NimStringDesc*) &TMP4478));
		}
		LA60: ;
	}
	break;
	case ((NU16) 162):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4479));
	}
	break;
	case ((NU16) 163):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4480));
	}
	break;
	case ((NU16) 33):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4481), ((NimStringDesc*) &TMP4482));
	}
	break;
	case ((NU16) 141):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4483), ((NimStringDesc*) &TMP4484));
	}
	break;
	case ((NU16) 140):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4485), ((NimStringDesc*) &TMP4486));
	}
	break;
	case ((NU16) 139):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4487), ((NimStringDesc*) &TMP4488));
	}
	break;
	case ((NU16) 142):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4489), ((NimStringDesc*) &TMP4490));
	}
	break;
	case ((NU16) 143):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4491), ((NimStringDesc*) &TMP4492));
	}
	break;
	case ((NU16) 144):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4493), ((NimStringDesc*) &TMP4494));
	}
	break;
	case ((NU16) 31):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4495));
	}
	break;
	case ((NU16) 32):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4496));
	}
	break;
	case ((NU16) 159):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4497));
	}
	break;
	case ((NU16) 228) ... ((NU16) 260):
	{
		localerror_198955((*n).Info, ((NU16) 212), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 26):
	{
		gennewseq_604551(p, n);
	}
	break;
	case ((NU16) 9):
	{
		genof_604895(p, n, r);
	}
	break;
	case ((NU16) 175):
	{
		genreset_604978(p, n);
	}
	break;
	case ((NU16) 10):
	{
		genecho_603334(p, n, r);
	}
	break;
	case ((NU16) 12):
	case ((NU16) 13):
	{
		localerror_198955((*n).Info, ((NU16) 224), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 170):
	{
		binaryexpr_598058(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4508));
	}
	break;
	case ((NU16) 171):
	{
		ternaryexpr_598110(p, n, r, ((NimStringDesc*) &TMP4345), ((NimStringDesc*) &TMP4509));
	}
	break;
	case ((NU16) 172):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4510), ((NimStringDesc*) &TMP4511));
	}
	break;
	case ((NU16) 173):
	{
		unaryexpr_598179(p, n, r, ((NimStringDesc*) &TMP4510), ((NimStringDesc*) &TMP4512));
	}
	break;
	default:
	{
		gencall_603187(p, n, r);
	}
	break;
	}
}

N_NIMCALL(void, geninfixcall_603213)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 op;
	gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		TY589896 LOC9;
		if (!((*r).Typ == ((NU8) 8))) goto LA3;
		{
			if (!((*r).Address == NIM_NIL)) goto LA7;
			globalerror_198945((*n).Info, ((NimStringDesc*) &TMP4514));
		}
		LA7: ;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = (*r).Address;
		LOC9[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4515), LOC9, 2));
		unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
		(*r).Typ = ((NU8) 0);
	}
	LA3: ;
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4516));
	memset((void*)(&op), 0, sizeof(op));
	gen_597138(p, (*n).kindU.S6.Sons->data[0], (&op));
	app_178052(&(*r).Res, op.Res);
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4513));
	{
		NI i_603294;
		NI HEX3Atmp_603314;
		NI LOC11;
		NI res_603317;
		i_603294 = 0;
		HEX3Atmp_603314 = 0;
		LOC11 = 0;
		LOC11 = sonslen_227249(n);
		HEX3Atmp_603314 = (NI32)(LOC11 - 1);
		res_603317 = 2;
		{
			while (1) {
				if (!(res_603317 <= HEX3Atmp_603314)) goto LA13;
				i_603294 = res_603317;
				{
					if (!(2 < i_603294)) goto LA16;
					app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
				}
				LA16: ;
				genarg_603096(p, (*n).kindU.S6.Sons->data[i_603294], r);
				res_603317 += 1;
			} LA13: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4507));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gensetconstr_605322)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	tcompres596023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	usemagic_597168(p, ((NimStringDesc*) &TMP4517));
	unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4518)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_605342;
		NI HEX3Atmp_605410;
		NI LOC2;
		NI res_605413;
		i_605342 = 0;
		HEX3Atmp_605410 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_605410 = (NI32)(LOC2 - 1);
		res_605413 = 0;
		{
			while (1) {
				tnode226816* it;
				if (!(res_605413 <= HEX3Atmp_605410)) goto LA4;
				i_605342 = res_605413;
				{
					if (!(0 < i_605342)) goto LA7;
					app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_605342];
				{
					TY589896 LOC13;
					if (!((*it).Kind == ((NU8) 44))) goto LA11;
					gen_597138(p, (*it).kindU.S6.Sons->data[0], (&a));
					gen_597138(p, (*it).kindU.S6.Sons->data[1], (&b));
					memset((void*)LOC13, 0, sizeof(LOC13));
					LOC13[0] = a.Res;
					LOC13[1] = b.Res;
					appf_178115(&(*r).Res, ((NimStringDesc*) &TMP4292), LOC13, 2);
				}
				goto LA9;
				LA11: ;
				{
					gen_597138(p, it, (&a));
					app_178052(&(*r).Res, a.Res);
				}
				LA9: ;
				res_605413 += 1;
			} LA4: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4507));
}

N_NIMCALL(void, genarrayconstr_605430)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4298)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_605449;
		NI HEX3Atmp_605471;
		NI LOC2;
		NI res_605474;
		i_605449 = 0;
		HEX3Atmp_605471 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_605471 = (NI32)(LOC2 - 1);
		res_605474 = 0;
		{
			while (1) {
				if (!(res_605474 <= HEX3Atmp_605471)) goto LA4;
				i_605449 = res_605474;
				{
					if (!(0 < i_605449)) goto LA7;
					app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
				}
				LA7: ;
				gen_597138(p, (*n).kindU.S6.Sons->data[i_605449], (&a));
				app_178052(&(*r).Res, a.Res);
				res_605474 += 1;
			} LA4: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4299));
}

N_NIMCALL(void, gentupleconstr_605491)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4300)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_605510;
		NI HEX3Atmp_605569;
		NI LOC2;
		NI res_605572;
		i_605510 = 0;
		HEX3Atmp_605569 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_605569 = (NI32)(LOC2 - 1);
		res_605572 = 0;
		{
			while (1) {
				tnode226816* it;
				NimStringDesc* LOC13;
				TY589896 LOC19;
				if (!(res_605572 <= HEX3Atmp_605569)) goto LA4;
				i_605510 = res_605572;
				{
					if (!(0 < i_605510)) goto LA7;
					app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_605510];
				{
					if (!((*it).Kind == ((NU8) 34))) goto LA11;
					it = (*it).kindU.S6.Sons->data[1];
				}
				LA11: ;
				gen_597138(p, it, (&a));
				LOC13 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA16;
					LOC13 = copyString(((NimStringDesc*) &TMP4519));
				}
				goto LA14;
				LA16: ;
				{
					LOC13 = copyString(((NimStringDesc*) &TMP4302));
				}
				LA14: ;
				memset((void*)LOC19, 0, sizeof(LOC19));
				LOC19[0] = torope_178082(((NI64) (i_605510)));
				LOC19[1] = a.Res;
				appf_178115(&(*r).Res, LOC13, LOC19, 2);
				res_605572 += 1;
			} LA4: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4303));
}

N_NIMCALL(void, genobjconstr_605589)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4300)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_605608;
		NI HEX3Atmp_605729;
		NI LOC2;
		NI res_605732;
		i_605608 = 0;
		HEX3Atmp_605729 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_605729 = (NI32)(LOC2 - 1);
		res_605732 = 1;
		{
			while (1) {
				tnode226816* it;
				tsym226846* f;
				NimStringDesc* LOC18;
				TY589896 LOC24;
				if (!(res_605732 <= HEX3Atmp_605729)) goto LA4;
				i_605608 = res_605732;
				{
					if (!(1 < i_605608)) goto LA7;
					app_178060(&(*r).Res, ((NimStringDesc*) &TMP4263));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_605608];
				{
					NimStringDesc* LOC13;
					if (!!(((*it).Kind == ((NU8) 34)))) goto LA11;
					LOC13 = 0;
					LOC13 = HEX24_199126(TMP4520);
					internalerror_199006(LOC13);
				}
				LA11: ;
				gen_597138(p, (*it).kindU.S6.Sons->data[1], (&a));
				f = (*(*it).kindU.S6.Sons->data[0]).kindU.S4.Sym;
				{
					if (!((*f).Loc.R == NIM_NIL)) goto LA16;
					asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_596315(f));
				}
				LA16: ;
				LOC18 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA21;
					LOC18 = copyString(((NimStringDesc*) &TMP4521));
				}
				goto LA19;
				LA21: ;
				{
					LOC18 = copyString(((NimStringDesc*) &TMP4522));
				}
				LA19: ;
				memset((void*)LOC24, 0, sizeof(LOC24));
				LOC24[0] = (*f).Loc.R;
				LOC24[1] = a.Res;
				appf_178115(&(*r).Res, LOC18, LOC24, 2);
				res_605732 += 1;
			} LA4: ;
		}
	}
	app_178060(&(*r).Res, ((NimStringDesc*) &TMP4303));
}

N_NIMCALL(void, genconv_605749)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	ttype226852* dest;
	ttype226852* src;
	dest = skiptypes_231245((*n).Typ, IL64(211106242013440));
	src = skiptypes_231245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY178515 LOC13;
		LOC3 = 0;
		LOC3 = !(((*dest).Kind == (*src).Kind));
		if (!(LOC3)) goto LA4;
		LOC3 = ((*src).Kind == ((NU8) 1));
		LA4: ;
		if (!LOC3) goto LA5;
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4523));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4471));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(LOC7, LOC13, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA5: ;
}

N_NIMCALL(NI, getfieldposition_601790)(tnode226816* f) {
	NI result;
	result = 0;
	switch ((*f).Kind) {
	case ((NU8) 6) ... ((NU8) 15):
	{
		result = ((NI) ((*f).kindU.S1.Intval));
	}
	break;
	case ((NU8) 3):
	{
		result = (*(*f).kindU.S4.Sym).Position;
	}
	break;
	default:
	{
		internalerror_198987((*f).Info, ((NimStringDesc*) &TMP4527));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genfieldaddr_601828)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	tnode226816* b;
	memset((void*)(&a), 0, sizeof(a));
	(*r).Typ = ((NU8) 8);
	{
		if (!((*n).Kind == ((NU8) 64))) goto LA3;
		b = (*n).kindU.S6.Sons->data[0];
	}
	goto LA1;
	LA3: ;
	{
		b = n;
	}
	LA1: ;
	gen_597138(p, (*b).kindU.S6.Sons->data[0], (&a));
	{
		ttype226852* LOC8;
		NimStringDesc* LOC11;
		NI LOC12;
		NimStringDesc* LOC13;
		LOC8 = 0;
		LOC8 = skiptypes_231245((*(*b).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		if (!((*LOC8).Kind == ((NU8) 18))) goto LA9;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = getfieldposition_601790((*b).kindU.S6.Sons->data[1]);
		LOC13 = 0;
		LOC13 = nimIntToStr(LOC12);
		LOC11 = rawNewString(LOC13->Sup.len + 5);
appendString(LOC11, ((NimStringDesc*) &TMP4526));
appendString(LOC11, LOC13);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_596344(LOC11));
	}
	goto LA6;
	LA9: ;
	{
		tsym226846* f;
		NimStringDesc* LOC23;
		{
			if (!!(((*(*b).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA17;
			internalerror_198987((*(*b).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4528));
		}
		LA17: ;
		f = (*(*b).kindU.S6.Sons->data[1]).kindU.S4.Sym;
		{
			if (!((*f).Loc.R == NIM_NIL)) goto LA21;
			asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_596315(f));
		}
		LA21: ;
		LOC23 = 0;
		LOC23 = ropetostr_178101((*f).Loc.R);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_596344(LOC23));
	}
	LA6: ;
	{
		NimStringDesc* LOC28;
		if (!!(!((a.Typ == ((NU8) 8))))) goto LA26;
		LOC28 = 0;
		LOC28 = HEX24_199126(TMP4529);
		internalerror_199006(LOC28);
	}
	LA26: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaddr_602180)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	genfieldaddr_601828(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genarrayaddr_602232)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 a;
	tcompres596023 b;
	NI64 first;
	tnode226816* m;
	ttype226852* typ;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	first = 0;
	(*r).Typ = ((NU8) 8);
	{
		if (!((*n).Kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.Sons->data[0];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	gen_597138(p, (*m).kindU.S6.Sons->data[0], (&a));
	gen_597138(p, (*m).kindU.S6.Sons->data[1], (&b));
	{
		NIM_BOOL LOC8;
		NimStringDesc* LOC12;
		LOC8 = 0;
		LOC8 = !((a.Typ == ((NU8) 8)));
		if (!(LOC8)) goto LA9;
		LOC8 = !((b.Typ == ((NU8) 8)));
		LA9: ;
		if (!!(LOC8)) goto LA10;
		LOC12 = 0;
		LOC12 = HEX24_199126(TMP4530);
		internalerror_199006(LOC12);
	}
	LA10: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	typ = skiptypes_231245((*(*m).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
	{
		if (!((*typ).Kind == ((NU8) 16) || (*typ).Kind == ((NU8) 4))) goto LA15;
		first = firstord_264004((*typ).Sons->data[0]);
	}
	goto LA13;
	LA15: ;
	{
		first = IL64(0);
	}
	LA13: ;
	{
		NIM_BOOL LOC20;
		NIM_BOOL LOC22;
		TY555018 LOC25;
		LOC20 = 0;
		LOC20 = (((*p).Options &(1<<((((NU8) 4))&31)))!=0);
		if (!(LOC20)) goto LA21;
		LOC22 = 0;
		LOC22 = isconstexpr_262921((*m).kindU.S6.Sons->data[1]);
		LOC20 = !(LOC22);
		LA21: ;
		if (!LOC20) goto LA23;
		usemagic_597168(p, ((NimStringDesc*) &TMP4531));
		memset((void*)LOC25, 0, sizeof(LOC25));
		LOC25[0] = b.Res;
		LOC25[1] = torope_178082(first);
		LOC25[2] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4532), LOC25, 3));
	}
	goto LA18;
	LA23: ;
	{
		TY589896 LOC29;
		if (!!((first == IL64(0)))) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = b.Res;
		LOC29[1] = torope_178082(first);
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4533), LOC29, 2));
	}
	goto LA18;
	LA27: ;
	{
		unsureAsgnRef((void**) (&(*r).Res), b.Res);
	}
	LA18: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genaddr_602480)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	switch ((*(*n).kindU.S6.Sons->data[0]).Kind) {
	case ((NU8) 3):
	{
		tsym226846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((*s).Loc.R == NIM_NIL)) goto LA4;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4524));
		}
		LA4: ;
		switch ((*s).Kind) {
		case ((NU8) 8):
		case ((NU8) 9):
		case ((NU8) 11):
		{
			(*r).Kind = ((NU8) 1);
			{
				NU8 LOC9;
				LOC9 = 0;
				LOC9 = maptype_596291((*(*n).kindU.S6.Sons->data[0]).Typ);
				if (!(LOC9 == ((NU8) 7))) goto LA10;
				(*r).Typ = ((NU8) 0);
				unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
			}
			goto LA7;
			LA10: ;
			{
				if (!!(((32776 & (*s).Flags) == 0))) goto LA13;
				(*r).Typ = ((NU8) 8);
				unsureAsgnRef((void**) (&(*r).Address), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4257)));
			}
			goto LA7;
			LA13: ;
			{
				gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
			}
			LA7: ;
		}
		break;
		default:
		{
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4525));
		}
		break;
		}
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaddr_602180(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaddr_601828(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		ttype226852* ty;
		ty = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		{
			ttype226852* LOC24;
			if (!((*ty).Kind == ((NU8) 22) || (*ty).Kind == ((NU8) 21))) goto LA22;
			LOC24 = 0;
			LOC24 = lastson_227267(ty);
			ty = skiptypes_231245(LOC24, IL64(211106242013440));
		}
		LA22: ;
		switch ((*ty).Kind) {
		case ((NU8) 16):
		case ((NU8) 4):
		case ((NU8) 27):
		case ((NU8) 24):
		case ((NU8) 28):
		case ((NU8) 29):
		case ((NU8) 48):
		{
			genarrayaddr_602232(p, n, r);
		}
		break;
		case ((NU8) 18):
		{
			genfieldaddr_601828(p, n, r);
		}
		break;
		default:
		{
			NimStringDesc* LOC28;
			LOC28 = 0;
			LOC28 = rawNewString(reprEnum((*ty).Kind, (&NTI226258))->Sup.len + 21);
appendString(LOC28, ((NimStringDesc*) &TMP4534));
appendString(LOC28, reprEnum((*ty).Kind, (&NTI226258)));
appendChar(LOC28, 41);
			internalerror_198987((*n).Info, LOC28);
		}
		break;
		}
	}
	break;
	default:
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4535));
	}
	break;
	}
}

N_NIMCALL(void, genderef_603017)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	{
		NU8 LOC3;
		LOC3 = 0;
		LOC3 = maptype_596291((*(*n).kindU.S6.Sons->data[0]).Typ);
		if (!(LOC3 == ((NU8) 7))) goto LA4;
		gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA4: ;
	{
		tcompres596023 a;
		TY589896 LOC11;
		memset((void*)(&a), 0, sizeof(a));
		gen_597138(p, (*n).kindU.S6.Sons->data[0], (&a));
		{
			if (!!((a.Typ == ((NU8) 8)))) goto LA9;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4536));
		}
		LA9: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = a.Address;
		LOC11[1] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4515), LOC11, 2));
	}
	LA1: ;
}

N_NIMCALL(void, genarrayaccess_602411)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	ttype226852* ty;
	TY589896 LOC14;
	ty = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
	{
		ttype226852* LOC5;
		if (!((*ty).Kind == ((NU8) 22) || (*ty).Kind == ((NU8) 21))) goto LA3;
		LOC5 = 0;
		LOC5 = lastson_227267(ty);
		ty = skiptypes_231245(LOC5, IL64(211106242013440));
	}
	LA3: ;
	switch ((*ty).Kind) {
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 27):
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 48):
	{
		genarrayaddr_602232(p, n, r);
	}
	break;
	case ((NU8) 18):
	{
		genfieldaddr_601828(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString(reprEnum((*ty).Kind, (&NTI226258))->Sup.len + 21);
appendString(LOC9, ((NimStringDesc*) &TMP4534));
appendString(LOC9, reprEnum((*ty).Kind, (&NTI226258)));
appendChar(LOC9, 41);
		internalerror_198987((*n).Info, LOC9);
	}
	break;
	}
	(*r).Typ = ((NU8) 0);
	{
		if (!((*r).Res == NIM_NIL)) goto LA12;
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4537));
	}
	LA12: ;
	memset((void*)LOC14, 0, sizeof(LOC14));
	LOC14[0] = (*r).Address;
	LOC14[1] = (*r).Res;
	unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4515), LOC14, 2));
	unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genfieldaccess_602026)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	(*r).Typ = ((NU8) 0);
	gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		ttype226852* LOC3;
		TY589896 LOC6;
		NI LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		if (!((*LOC3).Kind == ((NU8) 18))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = (*r).Res;
		LOC7 = 0;
		LOC7 = getfieldposition_601790((*n).kindU.S6.Sons->data[1]);
		LOC6[1] = torope_178082(((NI64) (LOC7)));
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4538), LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		tsym226846* f;
		TY589896 LOC17;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA11;
			internalerror_198987((*(*n).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4528));
		}
		LA11: ;
		f = (*(*n).kindU.S6.Sons->data[1]).kindU.S4.Sym;
		{
			if (!((*f).Loc.R == NIM_NIL)) goto LA15;
			asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_596315(f));
		}
		LA15: ;
		memset((void*)LOC17, 0, sizeof(LOC17));
		LOC17[0] = (*r).Res;
		LOC17[1] = (*f).Loc.R;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4539), LOC17, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaccess_602206)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	genfieldaccess_602026(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, upconv_605822)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genrangechck_605848)(tproc596033* p, tnode226816* n, tcompres596023* r, NimStringDesc* magic) {
	tcompres596023 a;
	tcompres596023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		TY555018 LOC5;
		if (!(((*p).Options &(1<<((((NU8) 3))&31)))!=0)) goto LA3;
		gen_597138(p, (*n).kindU.S6.Sons->data[1], (&a));
		gen_597138(p, (*n).kindU.S6.Sons->data[2], (&b));
		usemagic_597168(p, ((NimStringDesc*) &TMP4540));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = (*r).Res;
		LOC5[1] = a.Res;
		LOC5[2] = b.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4541), LOC5, 3));
		(*r).Kind = ((NU8) 1);
	}
	LA3: ;
}

N_NIMCALL(void, convstrtocstr_605926)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 72))) goto LA3;
		gen_597138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY178515 LOC10;
		gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4544));
		}
		LA8: ;
		usemagic_597168(p, ((NimStringDesc*) &TMP4545));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4546), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, convcstrtostr_606024)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 71))) goto LA3;
		gen_597138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY178515 LOC10;
		gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4547));
		}
		LA8: ;
		usemagic_597168(p, ((NimStringDesc*) &TMP4325));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4326), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, genblock_599973)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	NI idx;
	NI labl;
	NimStringDesc* LOC9;
	TY178515 LOC15;
	NimStringDesc* LOC16;
	TY178515 LOC22;
	(*p).Unique += 1;
	idx = (*p).Blocks->Sup.len;
	{
		tsym226846* sym;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA7;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4548));
		}
		LA7: ;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		(*sym).Loc.K = ((NU8) 11);
		(*sym).Position = (NI32)(idx + 1);
	}
	LA3: ;
	(*p).Blocks = (TY596071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock596025), (NI32)(idx + 1));
	(*p).Blocks->data[idx].Id = ((NI32)-((*p).Unique));
	labl = (*p).Unique;
	LOC9 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA12;
		LOC9 = copyString(((NimStringDesc*) &TMP4549));
	}
	goto LA10;
	LA12: ;
	{
		LOC9 = copyString(((NimStringDesc*) &TMP4345));
	}
	LA10: ;
	memset((void*)LOC15, 0, sizeof(LOC15));
	LOC15[0] = torope_178082(((NI64) (labl)));
	appf_178115(&(*p).Body, LOC9, LOC15, 1);
	gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	LOC16 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4550));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4551));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_178082(((NI64) (labl)));
	appf_178115(&(*p).Body, LOC16, LOC22, 1);
	(*p).Blocks = (TY596071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock596025), idx);
}

N_NIMCALL(void, moveinto_598653)(tproc596033* p, tcompres596023* src, tcompres596023 dest) {
	{
		if (!!(((*src).Kind == ((NU8) 0)))) goto LA3;
		{
			TY589896 LOC9;
			if (!!((dest.Kind == ((NU8) 0)))) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_596139(dest);
			LOC9[1] = rdloc_596139((*src));
			appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4469), LOC9, 2);
		}
		goto LA5;
		LA7: ;
		{
			TY178515 LOC11;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = rdloc_596139((*src));
			appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4556), LOC11, 1);
		}
		LA5: ;
		(*src).Kind = ((NU8) 0);
		unsureAsgnRef((void**) (&(*src).Res), NIM_NIL);
	}
	LA3: ;
}

N_NIMCALL(void, genif_600921)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 cond;
	tcompres596023 stmt;
	NI toclose;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	toclose = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_233990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
	}
	LA4: ;
	{
		NI i_600942;
		NI HEX3Atmp_601114;
		NI LOC7;
		NI res_601117;
		i_600942 = 0;
		HEX3Atmp_601114 = 0;
		LOC7 = 0;
		LOC7 = sonslen_227249(n);
		HEX3Atmp_601114 = (NI32)(LOC7 - 1);
		res_601117 = 0;
		{
			while (1) {
				tnode226816* it;
				NimStringDesc* LOC41;
				TY554703 LOC47;
				if (!(res_601117 <= HEX3Atmp_601114)) goto LA9;
				i_600942 = res_601117;
				it = (*n).kindU.S6.Sons->data[i_600942];
				{
					NI LOC12;
					NimStringDesc* LOC26;
					TY178515 LOC32;
					LOC12 = 0;
					LOC12 = sonslen_227249(it);
					if (!!((LOC12 == 1))) goto LA13;
					{
						NimStringDesc* LOC19;
						TY554703 LOC25;
						if (!(0 < i_600942)) goto LA17;
						LOC19 = 0;
						{
							if (!((*p).Target == ((NU8) 0))) goto LA22;
							LOC19 = copyString(((NimStringDesc*) &TMP4552));
						}
						goto LA20;
						LA22: ;
						{
							LOC19 = copyString(((NimStringDesc*) &TMP4553));
						}
						LA20: ;
						memset((void*)LOC25, 0, sizeof(LOC25));
						appf_178115(&(*p).Body, LOC19, LOC25, 0);
						toclose += 1;
					}
					LA17: ;
					gen_597138(p, (*it).kindU.S6.Sons->data[0], (&cond));
					LOC26 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA29;
						LOC26 = copyString(((NimStringDesc*) &TMP4554));
					}
					goto LA27;
					LA29: ;
					{
						LOC26 = copyString(((NimStringDesc*) &TMP4555));
					}
					LA27: ;
					memset((void*)LOC32, 0, sizeof(LOC32));
					LOC32[0] = rdloc_596139(cond);
					appf_178115(&(*p).Body, LOC26, LOC32, 1);
					gen_597138(p, (*it).kindU.S6.Sons->data[1], (&stmt));
				}
				goto LA10;
				LA13: ;
				{
					NimStringDesc* LOC34;
					TY554703 LOC40;
					LOC34 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA37;
						LOC34 = copyString(((NimStringDesc*) &TMP4552));
					}
					goto LA35;
					LA37: ;
					{
						LOC34 = copyString(((NimStringDesc*) &TMP4553));
					}
					LA35: ;
					memset((void*)LOC40, 0, sizeof(LOC40));
					appf_178115(&(*p).Body, LOC34, LOC40, 0);
					gen_597138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
				}
				LA10: ;
				moveinto_598653(p, (&stmt), (*r));
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4557));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4558));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				appf_178115(&(*p).Body, LOC41, LOC47, 0);
				res_601117 += 1;
			} LA9: ;
		}
	}
	{
		NimStringDesc* LOC52;
		NimStringDesc* LOC53;
		if (!((*p).Target == ((NU8) 0))) goto LA50;
		LOC52 = 0;
		LOC53 = 0;
		LOC53 = nsuRepeatChar(toclose, 125);
		LOC52 = rawNewString(LOC53->Sup.len + tnl_175613->Sup.len + 0);
appendString(LOC52, LOC53);
appendString(LOC52, tnl_175613);
		app_178060(&(*p).Body, LOC52);
	}
	goto LA48;
	LA50: ;
	{
		{
			NI i_601102;
			NI res_601122;
			i_601102 = 0;
			res_601122 = 1;
			{
				while (1) {
					TY554703 LOC58;
					if (!(res_601122 <= toclose)) goto LA57;
					i_601102 = res_601122;
					memset((void*)LOC58, 0, sizeof(LOC58));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4558), LOC58, 0);
					res_601122 += 1;
				} LA57: ;
			}
		}
	}
	LA48: ;
}

static N_INLINE(NI, tolinenumber_198073)(tlineinfo196539 info) {
	NI result;
	result = 0;
	result = ((NI) (info.Line));
	return result;
}

N_NIMCALL(void, genlinedir_598328)(tproc596033* p, tnode226816* n) {
	NI line;
	line = tolinenumber_198073((*n).Info);
	{
		NimStringDesc* LOC5;
		TY589896 LOC11;
		NimStringDesc* LOC12;
		if (!(((*p).Options &(1<<((((NU8) 10))&31)))!=0)) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4560));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4561));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC12 = 0;
		LOC12 = tofilename_198025((*n).Info.Fileindex);
		LOC11[0] = torope_178076(LOC12);
		LOC11[1] = torope_178082(((NI64) (line)));
		appf_178115(&(*p).Body, LOC5, LOC11, 2);
	}
	LA3: ;
	{
		NIM_BOOL LOC15;
		NIM_BOOL LOC17;
		TY178515 LOC21;
		LOC15 = 0;
		LOC15 = ((163840 & (*p).Options) == 163840);
		if (!(LOC15)) goto LA16;
		LOC17 = 0;
		LOC17 = ((*p).Prc == NIM_NIL);
		if (LOC17) goto LA18;
		LOC17 = !((((*(*p).Prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA18: ;
		LOC15 = LOC17;
		LA16: ;
		if (!LOC15) goto LA19;
		usemagic_597168(p, ((NimStringDesc*) &TMP4562));
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = torope_178082(((NI64) (line)));
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4563), LOC21, 1);
	}
	goto LA13;
	LA19: ;
	{
		NIM_BOOL LOC23;
		NIM_BOOL LOC25;
		TY178515 LOC29;
		LOC23 = 0;
		LOC23 = ((98304 & (*p).Options) == 98304);
		if (!(LOC23)) goto LA24;
		LOC25 = 0;
		LOC25 = ((*p).Prc == NIM_NIL);
		if (LOC25) goto LA26;
		LOC25 = !((((*(*p).Prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA26: ;
		LOC23 = LOC25;
		LA24: ;
		if (!LOC23) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = torope_178082(((NI64) (line)));
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4564), LOC29, 1);
	}
	goto LA13;
	LA27: ;
	LA13: ;
}

N_NIMCALL(void, genwhilestmt_598506)(tproc596033* p, tnode226816* n) {
	tcompres596023 cond;
	NI length;
	trope178009* labl;
	NimStringDesc* LOC7;
	TY178515 LOC13;
	NimStringDesc* LOC14;
	TY589896 LOC20;
	NimStringDesc* LOC21;
	TY178515 LOC27;
	memset((void*)(&cond), 0, sizeof(cond));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = isemptytype_233990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_199126(TMP4559);
		internalerror_199006(LOC6);
	}
	LA4: ;
	genlinedir_598328(p, n);
	(*p).Unique += 1;
	length = (*p).Blocks->Sup.len;
	(*p).Blocks = (TY596071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock596025), (NI32)(length + 1));
	(*p).Blocks->data[length].Id = ((NI32)-((*p).Unique));
	(*p).Blocks->data[length].Isloop = NIM_TRUE;
	labl = torope_178082(((NI64) ((*p).Unique)));
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4565));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4566));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = labl;
	appf_178115(&(*p).Body, LOC7, LOC13, 1);
	gen_597138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC14 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4567));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP4568));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = cond.Res;
	LOC20[1] = labl;
	appf_178115(&(*p).Body, LOC14, LOC20, 2);
	genstmt_597147(p, (*n).kindU.S6.Sons->data[1]);
	LOC21 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA24;
		LOC21 = copyString(((NimStringDesc*) &TMP4557));
	}
	goto LA22;
	LA24: ;
	{
		LOC21 = copyString(((NimStringDesc*) &TMP4569));
	}
	LA22: ;
	memset((void*)LOC27, 0, sizeof(LOC27));
	LOC27[0] = labl;
	appf_178115(&(*p).Body, LOC21, LOC27, 1);
	(*p).Blocks = (TY596071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock596025), length);
}

N_NIMCALL(void, genvarstmt_604046)(tproc596033* p, tnode226816* n) {
	{
		NI i_604062;
		NI HEX3Atmp_604458;
		NI LOC2;
		NI res_604461;
		i_604062 = 0;
		HEX3Atmp_604458 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_604458 = (NI32)(LOC2 - 1);
		res_604461 = 0;
		{
			while (1) {
				tnode226816* a;
				if (!(res_604461 <= HEX3Atmp_604458)) goto LA4;
				i_604062 = res_604461;
				a = (*n).kindU.S6.Sons->data[i_604062];
				{
					if (!!(((*a).Kind == ((NU8) 125)))) goto LA7;
					{
						tnode226816* unpacked;
						if (!((*a).Kind == ((NU8) 36))) goto LA11;
						unpacked = lowertupleunpacking_425184(a, (*p).Prc);
						genstmt_597147(p, unpacked);
					}
					goto LA9;
					LA11: ;
					{
						tsym226846* v;
						v = (*(*a).kindU.S6.Sons->data[0]).kindU.S4.Sym;
						{
							if (!!((((*v).Loc.Flags &(1<<((((NU8) 3))&7)))!=0))) goto LA16;
							genlinedir_598328(p, a);
							genvarinit_603901(p, v, (*a).kindU.S6.Sons->data[2]);
						}
						LA16: ;
					}
					LA9: ;
				}
				LA7: ;
				res_604461 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gencasejs_599363)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 cond;
	tcompres596023 stmt;
	NIM_BOOL stringswitch;
	ttype226852* LOC1;
	TY554703 LOC46;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_598328(p, n);
	gen_597138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		TY178515 LOC6;
		if (!stringswitch) goto LA4;
		usemagic_597168(p, ((NimStringDesc*) &TMP4545));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_596139(cond);
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4571), LOC6, 1);
	}
	goto LA2;
	LA4: ;
	{
		TY178515 LOC8;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_596139(cond);
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4572), LOC8, 1);
	}
	LA2: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = isemptytype_233990((*n).Typ);
		if (!!(LOC11)) goto LA12;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
	}
	LA12: ;
	{
		NI i_599432;
		NI HEX3Atmp_599659;
		NI LOC15;
		NI res_599662;
		i_599432 = 0;
		HEX3Atmp_599659 = 0;
		LOC15 = 0;
		LOC15 = sonslen_227249(n);
		HEX3Atmp_599659 = (NI32)(LOC15 - 1);
		res_599662 = 1;
		{
			while (1) {
				tnode226816* it;
				if (!(res_599662 <= HEX3Atmp_599659)) goto LA17;
				i_599432 = res_599662;
				it = (*n).kindU.S6.Sons->data[i_599432];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					tnode226816* LOC40;
					TY554703 LOC41;
					{
						NI j_599460;
						NI HEX3Atmp_599654;
						NI LOC20;
						NI res_599657;
						j_599460 = 0;
						HEX3Atmp_599654 = 0;
						LOC20 = 0;
						LOC20 = sonslen_227249(it);
						HEX3Atmp_599654 = (NI32)(LOC20 - 2);
						res_599657 = 0;
						{
							while (1) {
								tnode226816* e;
								if (!(res_599657 <= HEX3Atmp_599654)) goto LA22;
								j_599460 = res_599657;
								e = (*it).kindU.S6.Sons->data[j_599460];
								{
									tnode226816* v;
									if (!((*e).Kind == ((NU8) 44))) goto LA25;
									v = copynode_227323((*e).kindU.S6.Sons->data[0]);
									{
										while (1) {
											TY178515 LOC29;
											if (!((*v).kindU.S1.Intval <= (*(*e).kindU.S6.Sons->data[1]).kindU.S1.Intval)) goto LA28;
											gen_597138(p, v, (&cond));
											memset((void*)LOC29, 0, sizeof(LOC29));
											LOC29[0] = rdloc_596139(cond);
											appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4573), LOC29, 1);
											(*v).kindU.S1.Intval += 1;
										} LA28: ;
									}
								}
								goto LA23;
								LA25: ;
								{
									{
										if (!stringswitch) goto LA33;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY178515 LOC36;
											memset((void*)LOC36, 0, sizeof(LOC36));
											LOC36[0] = makejsstring_596344((*e).kindU.S3.Strval);
											appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4573), LOC36, 1);
										}
										break;
										default:
										{
											internalerror_198987((*e).Info, ((NimStringDesc*) &TMP4574));
										}
										break;
										}
									}
									goto LA31;
									LA33: ;
									{
										TY178515 LOC39;
										gen_597138(p, e, (&cond));
										memset((void*)LOC39, 0, sizeof(LOC39));
										LOC39[0] = rdloc_596139(cond);
										appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4573), LOC39, 1);
									}
									LA31: ;
								}
								LA23: ;
								res_599657 += 1;
							} LA22: ;
						}
					}
					LOC40 = 0;
					LOC40 = lastson_227261(it);
					gen_597138(p, LOC40, (&stmt));
					moveinto_598653(p, (&stmt), (*r));
					memset((void*)LOC41, 0, sizeof(LOC41));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4575), LOC41, 0);
				}
				break;
				case ((NU8) 88):
				{
					TY554703 LOC43;
					TY554703 LOC44;
					memset((void*)LOC43, 0, sizeof(LOC43));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4576), LOC43, 0);
					gen_597138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_598653(p, (&stmt), (*r));
					memset((void*)LOC44, 0, sizeof(LOC44));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4577), LOC44, 0);
				}
				break;
				default:
				{
					internalerror_198987((*it).Info, ((NimStringDesc*) &TMP4578));
				}
				break;
				}
				res_599662 += 1;
			} LA17: ;
		}
	}
	memset((void*)LOC46, 0, sizeof(LOC46));
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4557), LOC46, 0);
}

N_NIMCALL(void, gencaselua_599694)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	tcompres596023 cond;
	tcompres596023 stmt;
	NIM_BOOL stringswitch;
	ttype226852* LOC1;
	trope178009* tmp;
	TY589896 LOC6;
	TY554703 LOC52;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_598328(p, n);
	gen_597138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		if (!stringswitch) goto LA4;
		usemagic_597168(p, ((NimStringDesc*) &TMP4579));
	}
	LA4: ;
	tmp = gettemp_597313(p);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = tmp;
	LOC6[1] = rdloc_596139(cond);
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4469), LOC6, 2);
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = isemptytype_233990((*n).Typ);
		if (!!(LOC9)) goto LA10;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
	}
	LA10: ;
	{
		NI i_599759;
		NI HEX3Atmp_599944;
		NI LOC13;
		NI res_599947;
		i_599759 = 0;
		HEX3Atmp_599944 = 0;
		LOC13 = 0;
		LOC13 = sonslen_227249(n);
		HEX3Atmp_599944 = (NI32)(LOC13 - 1);
		res_599947 = 1;
		{
			while (1) {
				tnode226816* it;
				if (!(res_599947 <= HEX3Atmp_599944)) goto LA15;
				i_599759 = res_599947;
				it = (*n).kindU.S6.Sons->data[i_599759];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					TY554703 LOC47;
					tnode226816* LOC48;
					{
						TY554703 LOC21;
						if (!!((i_599759 == 1))) goto LA19;
						memset((void*)LOC21, 0, sizeof(LOC21));
						appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4580), LOC21, 0);
					}
					goto LA17;
					LA19: ;
					{
						TY554703 LOC23;
						memset((void*)LOC23, 0, sizeof(LOC23));
						appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4581), LOC23, 0);
					}
					LA17: ;
					{
						NI j_599803;
						NI HEX3Atmp_599939;
						NI LOC25;
						NI res_599942;
						j_599803 = 0;
						HEX3Atmp_599939 = 0;
						LOC25 = 0;
						LOC25 = sonslen_227249(it);
						HEX3Atmp_599939 = (NI32)(LOC25 - 2);
						res_599942 = 0;
						{
							while (1) {
								tnode226816* e;
								if (!(res_599942 <= HEX3Atmp_599939)) goto LA27;
								j_599803 = res_599942;
								{
									if (!!((j_599803 == 0))) goto LA30;
									app_178060(&(*p).Body, ((NimStringDesc*) &TMP4582));
								}
								LA30: ;
								e = (*it).kindU.S6.Sons->data[j_599803];
								{
									tcompres596023 ia;
									tcompres596023 ib;
									TY555018 LOC36;
									if (!((*e).Kind == ((NU8) 44))) goto LA34;
									memset((void*)(&ia), 0, sizeof(ia));
									memset((void*)(&ib), 0, sizeof(ib));
									gen_597138(p, (*e).kindU.S6.Sons->data[0], (&ia));
									gen_597138(p, (*e).kindU.S6.Sons->data[1], (&ib));
									memset((void*)LOC36, 0, sizeof(LOC36));
									LOC36[0] = tmp;
									LOC36[1] = rdloc_596139(ia);
									LOC36[2] = rdloc_596139(ib);
									appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4583), LOC36, 3);
								}
								goto LA32;
								LA34: ;
								{
									{
										if (!stringswitch) goto LA40;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY589896 LOC43;
											memset((void*)LOC43, 0, sizeof(LOC43));
											LOC43[0] = tmp;
											LOC43[1] = makejsstring_596344((*e).kindU.S3.Strval);
											appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4584), LOC43, 2);
										}
										break;
										default:
										{
											internalerror_198987((*e).Info, ((NimStringDesc*) &TMP4574));
										}
										break;
										}
									}
									goto LA38;
									LA40: ;
									{
										TY589896 LOC46;
										gen_597138(p, e, (&cond));
										memset((void*)LOC46, 0, sizeof(LOC46));
										LOC46[0] = tmp;
										LOC46[1] = rdloc_596139(cond);
										appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4585), LOC46, 2);
									}
									LA38: ;
								}
								LA32: ;
								res_599942 += 1;
							} LA27: ;
						}
					}
					memset((void*)LOC47, 0, sizeof(LOC47));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4586), LOC47, 0);
					LOC48 = 0;
					LOC48 = lastson_227261(it);
					gen_597138(p, LOC48, (&stmt));
					moveinto_598653(p, (&stmt), (*r));
				}
				break;
				case ((NU8) 88):
				{
					TY554703 LOC50;
					memset((void*)LOC50, 0, sizeof(LOC50));
					appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4553), LOC50, 0);
					gen_597138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_598653(p, (&stmt), (*r));
				}
				break;
				default:
				{
					internalerror_198987((*it).Info, ((NimStringDesc*) &TMP4578));
				}
				break;
				}
				res_599947 += 1;
			} LA15: ;
		}
	}
	memset((void*)LOC52, 0, sizeof(LOC52));
	appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4587), LOC52, 0);
}

N_NIMCALL(void, genreturnstmt_606122)(tproc596033* p, tnode226816* n) {
	NimStringDesc* LOC10;
	TY554703 LOC16;
	{
		if (!((*p).Procdef == NIM_NIL)) goto LA3;
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4588));
	}
	LA3: ;
	(*p).Beforeretneeded = NIM_TRUE;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA7;
		genstmt_597147(p, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA5;
	LA7: ;
	{
		genlinedir_598328(p, n);
	}
	LA5: ;
	LOC10 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA13;
		LOC10 = copyString(((NimStringDesc*) &TMP4589));
	}
	goto LA11;
	LA13: ;
	{
		LOC10 = copyString(((NimStringDesc*) &TMP4590));
	}
	LA11: ;
	memset((void*)LOC16, 0, sizeof(LOC16));
	appf_178115(&(*p).Body, LOC10, LOC16, 0);
}

N_NIMCALL(void, genbreakstmt_600159)(tproc596033* p, tnode226816* n) {
	NI idx;
	NimStringDesc* LOC16;
	TY178515 LOC22;
	idx = 0;
	genlinedir_598328(p, n);
	{
		tsym226846* sym;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		idx = (NI32)((*sym).Position - 1);
	}
	goto LA1;
	LA3: ;
	{
		idx = (NI32)((*p).Blocks->Sup.len - 1);
		{
			while (1) {
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = (0 <= idx);
				if (!(LOC8)) goto LA9;
				LOC8 = !((*p).Blocks->data[idx].Isloop);
				LA9: ;
				if (!LOC8) goto LA7;
				idx -= 1;
			} LA7: ;
		}
		{
			NIM_BOOL LOC12;
			LOC12 = 0;
			LOC12 = (idx < 0);
			if (LOC12) goto LA13;
			LOC12 = !((*p).Blocks->data[idx].Isloop);
			LA13: ;
			if (!LOC12) goto LA14;
			internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4591));
		}
		LA14: ;
	}
	LA1: ;
	(*p).Blocks->data[idx].Id = ((*p).Blocks->data[idx].Id > 0? ((*p).Blocks->data[idx].Id) : -((*p).Blocks->data[idx].Id));
	LOC16 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4592));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4593));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_178082(((NI64) ((*p).Blocks->data[idx].Id)));
	appf_178115(&(*p).Body, LOC16, LOC22, 1);
}

N_NIMCALL(void, genasgnaux_601511)(tproc596033* p, tnode226816* x, tnode226816* y, NIM_BOOL nocopyneeded) {
	tcompres596023 a;
	tcompres596023 b;
	NU8 LOC1;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_597138(p, x, (&a));
	gen_597138(p, y, (&b));
	LOC1 = 0;
	LOC1 = maptype_596291((*x).Typ);
	switch (LOC1) {
	case ((NU8) 7):
	{
		{
			NIM_BOOL LOC5;
			TY589896 LOC9;
			LOC5 = 0;
			LOC5 = needsnocopy_601474(y);
			if (LOC5) goto LA6;
			LOC5 = nocopyneeded;
			LA6: ;
			if (!LOC5) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_596139(a);
			LOC9[1] = rdloc_596139(b);
			appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4469), LOC9, 2);
		}
		goto LA3;
		LA7: ;
		{
			TY555018 LOC11;
			usemagic_597168(p, ((NimStringDesc*) &TMP4277));
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = a.Res;
			LOC11[1] = b.Res;
			LOC11[2] = gentypeinfo_596354(p, (*y).Typ);
			appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4594), LOC11, 3);
		}
		LA3: ;
	}
	break;
	case ((NU8) 8):
	{
		TY557045 LOC19;
		{
			NIM_BOOL LOC15;
			LOC15 = 0;
			LOC15 = !((a.Typ == ((NU8) 8)));
			if (LOC15) goto LA16;
			LOC15 = !((b.Typ == ((NU8) 8)));
			LA16: ;
			if (!LOC15) goto LA17;
			internalerror_198987((*x).Info, ((NimStringDesc*) &TMP4595));
		}
		LA17: ;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = a.Address;
		LOC19[1] = b.Address;
		LOC19[2] = a.Res;
		LOC19[3] = b.Res;
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4596), LOC19, 4);
	}
	break;
	default:
	{
		TY589896 LOC21;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = a.Res;
		LOC21[1] = b.Res;
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4469), LOC21, 2);
	}
	break;
	}
}

N_NIMCALL(void, genasgn_601567)(tproc596033* p, tnode226816* n) {
	genlinedir_598328(p, n);
	genasgnaux_601511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_FALSE);
}

N_NIMCALL(void, genfastasgn_601605)(tproc596033* p, tnode226816* n) {
	genlinedir_598328(p, n);
	genasgnaux_601511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_TRUE);
}

N_NIMCALL(void, genasmstmt_600653)(tproc596033* p, tnode226816* n) {
	genlinedir_598328(p, n);
	{
		NI i_600813;
		NI HEX3Atmp_600901;
		NI LOC2;
		NI res_600904;
		i_600813 = 0;
		HEX3Atmp_600901 = 0;
		LOC2 = 0;
		LOC2 = sonslen_227249(n);
		HEX3Atmp_600901 = (NI32)(LOC2 - 1);
		res_600904 = 0;
		{
			while (1) {
				if (!(res_600904 <= HEX3Atmp_600901)) goto LA4;
				i_600813 = res_600904;
				switch ((*(*n).kindU.S6.Sons->data[i_600813]).Kind) {
				case ((NU8) 20) ... ((NU8) 22):
				{
					app_178060(&(*p).Body, (*(*n).kindU.S6.Sons->data[i_600813]).kindU.S3.Strval);
				}
				break;
				case ((NU8) 3):
				{
					trope178009* LOC7;
					LOC7 = 0;
					LOC7 = manglename_596315((*(*n).kindU.S6.Sons->data[i_600813]).kindU.S4.Sym);
					app_178052(&(*p).Body, LOC7);
				}
				break;
				default:
				{
					internalerror_198987((*(*n).kindU.S6.Sons->data[i_600813]).Info, ((NimStringDesc*) &TMP4597));
				}
				break;
				}
				res_600904 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gentry_598693)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	trope178009* safepoint;
	TY178515 LOC6;
	NimStringDesc* LOC7;
	TY178515 LOC13;
	NimStringDesc* LOC19;
	TY554703 LOC25;
	NI length;
	tcompres596023 a;
	NI i;
	genlinedir_598328(p, n);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_233990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_597313(p));
	}
	LA4: ;
	(*p).Unique += 1;
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = torope_178082(((NI64) ((*p).Unique)));
	safepoint = ropef_178107(((NimStringDesc*) &TMP4333), LOC6, 1);
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4598));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4599));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = safepoint;
	appf_178115(&(*p).Body, LOC7, LOC13, 1);
	{
		NimStringDesc* LOC18;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA16;
		LOC18 = 0;
		LOC18 = rawNewString(tnl_175613->Sup.len + 13);
appendString(LOC18, ((NimStringDesc*) &TMP4600));
appendString(LOC18, tnl_175613);
		app_178060(&(*p).Body, LOC18);
	}
	LA16: ;
	LOC19 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA22;
		LOC19 = copyString(((NimStringDesc*) &TMP4601));
	}
	goto LA20;
	LA22: ;
	{
		LOC19 = copyString(((NimStringDesc*) &TMP4602));
	}
	LA20: ;
	memset((void*)LOC25, 0, sizeof(LOC25));
	appf_178115(&(*p).Body, LOC19, LOC25, 0);
	length = sonslen_227249(n);
	memset((void*)(&a), 0, sizeof(a));
	gen_597138(p, (*n).kindU.S6.Sons->data[0], (&a));
	moveinto_598653(p, (&a), (*r));
	i = 1;
	{
		NIM_BOOL LOC28;
		NIM_BOOL LOC29;
		TY554703 LOC34;
		LOC28 = 0;
		LOC29 = 0;
		LOC29 = ((*p).Target == ((NU8) 0));
		if (!(LOC29)) goto LA30;
		LOC29 = (1 < length);
		LA30: ;
		LOC28 = LOC29;
		if (!(LOC28)) goto LA31;
		LOC28 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 87));
		LA31: ;
		if (!LOC28) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4603), LOC34, 0);
	}
	goto LA26;
	LA32: ;
	{
		TY554703 LOC38;
		if (!((*p).Target == ((NU8) 1))) goto LA36;
		memset((void*)LOC38, 0, sizeof(LOC38));
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4604), LOC38, 0);
	}
	goto LA26;
	LA36: ;
	LA26: ;
	{
		while (1) {
			NIM_BOOL LOC41;
			NI blen;
			LOC41 = 0;
			LOC41 = (i < length);
			if (!(LOC41)) goto LA42;
			LOC41 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 87));
			LA42: ;
			if (!LOC41) goto LA40;
			blen = sonslen_227249((*n).kindU.S6.Sons->data[i]);
			{
				if (!(blen == 1)) goto LA45;
				{
					NimStringDesc* LOC51;
					TY554703 LOC57;
					if (!(1 < i)) goto LA49;
					LOC51 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA54;
						LOC51 = copyString(((NimStringDesc*) &TMP4552));
					}
					goto LA52;
					LA54: ;
					{
						LOC51 = copyString(((NimStringDesc*) &TMP4553));
					}
					LA52: ;
					memset((void*)LOC57, 0, sizeof(LOC57));
					appf_178115(&(*p).Body, LOC51, LOC57, 0);
				}
				LA49: ;
				gen_597138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0], (&a));
				moveinto_598653(p, (&a), (*r));
				{
					NimStringDesc* LOC62;
					TY554703 LOC68;
					if (!(1 < i)) goto LA60;
					LOC62 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA65;
						LOC62 = copyString(((NimStringDesc*) &TMP4557));
					}
					goto LA63;
					LA65: ;
					{
						LOC62 = copyString(((NimStringDesc*) &TMP4558));
					}
					LA63: ;
					memset((void*)LOC68, 0, sizeof(LOC68));
					appf_178115(&(*p).Body, LOC62, LOC68, 0);
				}
				LA60: ;
			}
			goto LA43;
			LA45: ;
			{
				trope178009* orexpr;
				NimStringDesc* LOC92;
				TY589896 LOC98;
				NimStringDesc* LOC99;
				TY554703 LOC105;
				orexpr = NIM_NIL;
				usemagic_597168(p, ((NimStringDesc*) &TMP4500));
				{
					NI j_598956;
					NI HEX3Atmp_599266;
					NI res_599269;
					j_598956 = 0;
					HEX3Atmp_599266 = 0;
					HEX3Atmp_599266 = (NI32)(blen - 2);
					res_599269 = 0;
					{
						while (1) {
							TY589896 LOC87;
							if (!(res_599269 <= HEX3Atmp_599266)) goto LA72;
							j_598956 = res_599269;
							{
								if (!!(((*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_598956]).Kind == ((NU8) 4)))) goto LA75;
								internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4605));
							}
							LA75: ;
							{
								NimStringDesc* LOC81;
								if (!!((orexpr == NIM_NIL))) goto LA79;
								LOC81 = 0;
								{
									if (!((*p).Target == ((NU8) 0))) goto LA84;
									LOC81 = copyString(((NimStringDesc*) &TMP4606));
								}
								goto LA82;
								LA84: ;
								{
									LOC81 = copyString(((NimStringDesc*) &TMP4582));
								}
								LA82: ;
								app_178060(&orexpr, LOC81);
							}
							LA79: ;
							memset((void*)LOC87, 0, sizeof(LOC87));
							LOC87[0] = safepoint;
							LOC87[1] = gentypeinfo_596354(p, (*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_598956]).Typ);
							appf_178115(&orexpr, ((NimStringDesc*) &TMP4607), LOC87, 2);
							res_599269 += 1;
						} LA72: ;
					}
				}
				{
					if (!(1 < i)) goto LA90;
					app_178060(&(*p).Body, ((NimStringDesc*) &TMP4608));
				}
				LA90: ;
				LOC92 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA95;
					LOC92 = copyString(((NimStringDesc*) &TMP4609));
				}
				goto LA93;
				LA95: ;
				{
					LOC92 = copyString(((NimStringDesc*) &TMP4610));
				}
				LA93: ;
				memset((void*)LOC98, 0, sizeof(LOC98));
				LOC98[0] = safepoint;
				LOC98[1] = orexpr;
				appf_178115(&(*p).Body, LOC92, LOC98, 2);
				gen_597138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[(NI32)(blen - 1)], (&a));
				moveinto_598653(p, (&a), (*r));
				LOC99 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA102;
					LOC99 = copyString(((NimStringDesc*) &TMP4557));
				}
				goto LA100;
				LA102: ;
				{
					LOC99 = copyString(((NimStringDesc*) &TMP4558));
				}
				LA100: ;
				memset((void*)LOC105, 0, sizeof(LOC105));
				appf_178115(&(*p).Body, LOC99, LOC105, 0);
			}
			LA43: ;
			i += 1;
		} LA40: ;
	}
	{
		NimStringDesc* LOC110;
		if (!((*p).Target == ((NU8) 0))) goto LA108;
		LOC110 = 0;
		LOC110 = rawNewString(tnl_175613->Sup.len + tnl_175613->Sup.len + 40);
appendString(LOC110, ((NimStringDesc*) &TMP4611));
appendString(LOC110, tnl_175613);
appendString(LOC110, ((NimStringDesc*) &TMP4612));
appendString(LOC110, tnl_175613);
		app_178060(&(*p).Body, LOC110);
	}
	LA108: ;
	{
		NIM_BOOL LOC113;
		LOC113 = 0;
		LOC113 = (i < length);
		if (!(LOC113)) goto LA114;
		LOC113 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 107));
		LA114: ;
		if (!LOC113) goto LA115;
		genstmt_597147(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0]);
	}
	LA115: ;
	{
		NimStringDesc* LOC121;
		if (!((*p).Target == ((NU8) 0))) goto LA119;
		LOC121 = 0;
		LOC121 = rawNewString(tnl_175613->Sup.len + 1);
appendString(LOC121, ((NimStringDesc*) &TMP4303));
appendString(LOC121, tnl_175613);
		app_178060(&(*p).Body, LOC121);
	}
	LA119: ;
	{
		if (!((*p).Target == ((NU8) 1))) goto LA124;
		{
			NIM_BOOL LOC128;
			LOC128 = 0;
			LOC128 = (i < length);
			if (!(LOC128)) goto LA129;
			LOC128 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 107));
			LA129: ;
			if (!LOC128) goto LA130;
			genstmt_597147(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0]);
		}
		LA130: ;
	}
	LA124: ;
}

N_NIMCALL(void, genraisestmt_599292)(tproc596033* p, tnode226816* n) {
	genlinedir_598328(p, n);
	{
		tcompres596023 a;
		ttype226852* typ;
		TY589896 LOC5;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		memset((void*)(&a), 0, sizeof(a));
		gen_597138(p, (*n).kindU.S6.Sons->data[0], (&a));
		typ = skiptypes_231245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
		usemagic_597168(p, ((NimStringDesc*) &TMP4613));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = rdloc_596139(a);
		LOC5[1] = makejsstring_596344((*(*(*typ).Sym).Name).S);
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4614), LOC5, 2);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		usemagic_597168(p, ((NimStringDesc*) &TMP4615));
		LOC7 = 0;
		LOC7 = rawNewString(tnl_175613->Sup.len + 19);
appendString(LOC7, ((NimStringDesc*) &TMP4616));
appendString(LOC7, tnl_175613);
		app_178060(&(*p).Body, LOC7);
	}
	LA1: ;
}

N_NIMCALL(void, gen_597138)(tproc596033* p, tnode226816* n, tcompres596023* r) {
	(*r).Typ = ((NU8) 0);
	(*r).Kind = ((NU8) 0);
	unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
	switch ((*n).Kind) {
	case ((NU8) 3):
	{
		gensym_602662(p, n, r);
	}
	break;
	case ((NU8) 5) ... ((NU8) 10):
	{
		unsureAsgnRef((void**) (&(*r).Res), torope_178082((*n).kindU.S1.Intval));
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 23):
	{
		{
			NIM_BOOL LOC6;
			LOC6 = 0;
			LOC6 = isemptytype_233990((*n).Typ);
			if (!LOC6) goto LA7;
		}
		goto LA4;
		LA7: ;
		{
			NU8 LOC10;
			LOC10 = 0;
			LOC10 = maptype_596291((*n).Typ);
			if (!(LOC10 == ((NU8) 8))) goto LA11;
			(*r).Typ = ((NU8) 8);
			{
				if (!((*p).Target == ((NU8) 0))) goto LA15;
				unsureAsgnRef((void**) (&(*r).Address), torope_178076(((NimStringDesc*) &TMP4322)));
			}
			goto LA13;
			LA15: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), torope_178076(((NimStringDesc*) &TMP4323)));
			}
			LA13: ;
			unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4324)));
			(*r).Kind = ((NU8) 1);
		}
		goto LA4;
		LA11: ;
		{
			{
				if (!((*p).Target == ((NU8) 0))) goto LA21;
				unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4322)));
			}
			goto LA19;
			LA21: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4323)));
			}
			LA19: ;
			(*r).Kind = ((NU8) 1);
		}
		LA4: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		{
			ttype226852* LOC27;
			TY178515 LOC30;
			LOC27 = 0;
			LOC27 = skiptypes_231245((*n).Typ, IL64(211106242013440));
			if (!((*LOC27).Kind == ((NU8) 28))) goto LA28;
			usemagic_597168(p, ((NimStringDesc*) &TMP4325));
			memset((void*)LOC30, 0, sizeof(LOC30));
			LOC30[0] = makejsstring_596344((*n).kindU.S3.Strval);
			unsureAsgnRef((void**) (&(*r).Res), ropef_178107(((NimStringDesc*) &TMP4326), LOC30, 1));
		}
		goto LA25;
		LA28: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), makejsstring_596344((*n).kindU.S3.Strval));
		}
		LA25: ;
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 16) ... ((NU8) 18):
	{
		NF f;
		f = (*n).kindU.S2.Floatval;
		{
			if (!!((f == f))) goto LA35;
			unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4327)));
		}
		goto LA33;
		LA35: ;
		{
			if (!(f == 0.0)) goto LA38;
			unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4328)));
		}
		goto LA33;
		LA38: ;
		{
			if (!(f == ((NF)(5.0000000000000000e-01) * (NF)(f)))) goto LA41;
			{
				if (!(0.0 < f)) goto LA45;
				unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4329)));
			}
			goto LA43;
			LA45: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_178076(((NimStringDesc*) &TMP4330)));
			}
			LA43: ;
		}
		goto LA33;
		LA41: ;
		{
			NimStringDesc* LOC49;
			LOC49 = 0;
			LOC49 = tostrmaxprecision_235024(f);
			unsureAsgnRef((void**) (&(*r).Res), torope_178076(LOC49));
		}
		LA33: ;
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	case ((NU8) 32):
	{
		{
			NIM_BOOL LOC53;
			LOC53 = 0;
			LOC53 = ((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3));
			if (!(LOC53)) goto LA54;
			LOC53 = !(((*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Magic == ((NU16) 0)));
			LA54: ;
			if (!LOC53) goto LA55;
			genmagic_605024(p, n, r);
		}
		goto LA51;
		LA55: ;
		{
			NIM_BOOL LOC58;
			NIM_BOOL LOC59;
			NI LOC62;
			LOC58 = 0;
			LOC59 = 0;
			LOC59 = ((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3));
			if (!(LOC59)) goto LA60;
			LOC59 = (((*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Flags &(1<<((((NU8) 27))&31)))!=0);
			LA60: ;
			LOC58 = LOC59;
			if (!(LOC58)) goto LA61;
			LOC62 = 0;
			LOC62 = len_227364(n);
			LOC58 = (2 <= LOC62);
			LA61: ;
			if (!LOC58) goto LA63;
			geninfixcall_603213(p, n, r);
		}
		goto LA51;
		LA63: ;
		{
			gencall_603187(p, n, r);
		}
		LA51: ;
	}
	break;
	case ((NU8) 39):
	{
		gensetconstr_605322(p, n, r);
	}
	break;
	case ((NU8) 41):
	{
		genarrayconstr_605430(p, n, r);
	}
	break;
	case ((NU8) 37):
	{
		gentupleconstr_605491(p, n, r);
	}
	break;
	case ((NU8) 38):
	{
		genobjconstr_605589(p, n, r);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		genconv_605749(p, n, r);
	}
	break;
	case ((NU8) 63):
	case ((NU8) 64):
	{
		genaddr_602480(p, n, r);
	}
	break;
	case ((NU8) 47):
	case ((NU8) 65):
	{
		genderef_603017(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		genarrayaccess_602411(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaccess_602026(p, n, r);
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaccess_602206(p, n, r);
	}
	break;
	case ((NU8) 66):
	{
		gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	break;
	case ((NU8) 67):
	{
		upconv_605822(p, n, r);
	}
	break;
	case ((NU8) 61):
	{
		gen_597138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU8) 68):
	{
		genrangechck_605848(p, n, r, ((NimStringDesc*) &TMP4542));
	}
	break;
	case ((NU8) 69):
	{
		genrangechck_605848(p, n, r, ((NimStringDesc*) &TMP4543));
	}
	break;
	case ((NU8) 70):
	{
		genrangechck_605848(p, n, r, ((NimStringDesc*) &TMP4540));
	}
	break;
	case ((NU8) 71):
	{
		convstrtocstr_605926(p, n, r);
	}
	break;
	case ((NU8) 72):
	{
		convcstrtostr_606024(p, n, r);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 51):
	case ((NU8) 52):
	{
		tsym226846* s;
		trope178009* LOC86;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		LOC86 = 0;
		LOC86 = manglename_596315(s);
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		{
			NIM_BOOL LOC89;
			LOC89 = 0;
			LOC89 = (((*s).Loc.Flags &(1<<((((NU8) 3))&7)))!=0);
			if (LOC89) goto LA90;
			LOC89 = !(((*s).Magic == ((NU16) 0)));
			LA90: ;
			if (!LOC89) goto LA91;
		}
		goto LA87;
		LA91: ;
		{
			NIM_BOOL LOC94;
			trope178009* LOC97;
			LOC94 = 0;
			LOC94 = containsorincl_223916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC94)) goto LA95;
			LOC97 = 0;
			LOC97 = genproc_597154(p, s);
			app_178052(&(*p).Locals, LOC97);
		}
		goto LA87;
		LA95: ;
		LA87: ;
	}
	break;
	case ((NU8) 4):
	{
		unsureAsgnRef((void**) (&(*r).Res), gentypeinfo_596354(p, (*n).Typ));
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	{
		NIM_BOOL isexpr;
		NIM_BOOL LOC100;
		LOC100 = 0;
		LOC100 = isemptytype_233990((*n).Typ);
		isexpr = !(LOC100);
		{
			NI i_606785;
			NI HEX3Atmp_606932;
			NI LOC102;
			NI res_606935;
			i_606785 = 0;
			HEX3Atmp_606932 = 0;
			LOC102 = 0;
			LOC102 = sonslen_227249(n);
			HEX3Atmp_606932 = (NI32)((NI32)(LOC102 - 1) - ((NI) (isexpr)));
			res_606935 = 0;
			{
				while (1) {
					if (!(res_606935 <= HEX3Atmp_606932)) goto LA104;
					i_606785 = res_606935;
					genstmt_597147(p, (*n).kindU.S6.Sons->data[i_606785]);
					res_606935 += 1;
				} LA104: ;
			}
		}
		{
			tnode226816* LOC109;
			if (!isexpr) goto LA107;
			LOC109 = 0;
			LOC109 = lastson_227261(n);
			gen_597138(p, LOC109, r);
		}
		LA107: ;
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		genblock_599973(p, n, r);
	}
	break;
	case ((NU8) 92):
	case ((NU8) 48):
	{
		genif_600921(p, n, r);
	}
	break;
	case ((NU8) 96):
	{
		genwhilestmt_598506(p, n);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		genvarstmt_604046(p, n);
	}
	break;
	case ((NU8) 101):
	{
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4570));
	}
	break;
	case ((NU8) 97):
	{
		{
			if (!((*p).Target == ((NU8) 0))) goto LA119;
			gencasejs_599363(p, n, r);
		}
		goto LA117;
		LA119: ;
		{
			gencaselua_599694(p, n, r);
		}
		LA117: ;
	}
	break;
	case ((NU8) 109):
	{
		genreturnstmt_606122(p, n);
	}
	break;
	case ((NU8) 110):
	{
		genbreakstmt_600159(p, n);
	}
	break;
	case ((NU8) 73):
	{
		genasgn_601567(p, n);
	}
	break;
	case ((NU8) 74):
	{
		genfastasgn_601605(p, n);
	}
	break;
	case ((NU8) 114):
	{
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA129;
			genlinedir_598328(p, n);
			gen_597138(p, (*n).kindU.S6.Sons->data[0], r);
		}
		LA129: ;
	}
	break;
	case ((NU8) 89):
	{
		genasmstmt_600653(p, n);
	}
	break;
	case ((NU8) 106):
	{
		gentry_598693(p, n, r);
	}
	break;
	case ((NU8) 108):
	{
		genraisestmt_599292(p, n);
	}
	break;
	case ((NU8) 98):
	case ((NU8) 125):
	case ((NU8) 84):
	case ((NU8) 121):
	case ((NU8) 116):
	case ((NU8) 117):
	case ((NU8) 118):
	case ((NU8) 119):
	case ((NU8) 120):
	case ((NU8) 83):
	case ((NU8) 82):
	case ((NU8) 90):
	{
	}
	break;
	case ((NU8) 79):
	case ((NU8) 80):
	case ((NU8) 81):
	{
		tsym226846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((65600 & (*s).Flags) == 64)) goto LA138;
			gensym_602662(p, (*n).kindU.S6.Sons->data[0], r);
			unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
		}
		LA138: ;
	}
	break;
	case ((NU8) 155):
	case ((NU8) 156):
	{
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4617));
	}
	break;
	case ((NU8) 91):
	{
		tnode226816* LOC142;
		LOC142 = 0;
		LOC142 = lastson_227261(n);
		gen_597138(p, LOC142, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC144;
		LOC144 = 0;
		LOC144 = rawNewString(reprEnum((*n).Kind, (&NTI226029))->Sup.len + 24);
appendString(LOC144, ((NimStringDesc*) &TMP4618));
appendString(LOC144, reprEnum((*n).Kind, (&NTI226029)));
		internalerror_198987((*n).Info, LOC144);
	}
	break;
	}
}

N_NIMCALL(void, genstmt_597147)(tproc596033* p, tnode226816* n) {
	tcompres596023 r;
	memset((void*)(&r), 0, sizeof(r));
	gen_597138(p, n, (&r));
	{
		TY178515 LOC5;
		if (!!((r.Res == NIM_NIL))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = r.Res;
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4619), LOC5, 1);
	}
	LA3: ;
}

N_NIMCALL(void, genmodule_607013)(tproc596033* p, tnode226816* n) {
	{
		TY589896 LOC5;
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC6 = 0;
		LOC6 = rawNewString((*(*(*(*p).Module).Module).Name).S->Sup.len + 7);
appendString(LOC6, ((NimStringDesc*) &TMP4248));
appendString(LOC6, (*(*(*(*p).Module).Module).Name).S);
		LOC5[0] = makejsstring_596344(LOC6);
		LOC7 = 0;
		LOC7 = tofilename_198025((*(*(*p).Module).Module).Info.Fileindex);
		LOC5[1] = makejsstring_596344(LOC7);
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4246), LOC5, 2);
	}
	LA3: ;
	genstmt_597147(p, n);
	{
		TY554703 LOC12;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA10;
		memset((void*)LOC12, 0, sizeof(LOC12));
		appf_178115(&(*p).Body, ((NimStringDesc*) &TMP4620), LOC12, 0);
	}
	LA10: ;
}

N_NIMCALL(tnode226816*, myprocess_607062)(tpasscontext287005* b, tnode226816* n) {
	tnode226816* result;
	tjsgen596015* m;
	tproc596033* p;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_287083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = n;
	m = ((tjsgen596015*) (b));
	{
		if (!((*m).Module == NIM_NIL)) goto LA8;
		internalerror_198987((*n).Info, ((NimStringDesc*) &TMP4238));
	}
	LA8: ;
	p = newproc_596207(globals_606952, m, NIM_NIL, (*(*m).Module).Options);
	genmodule_607013(p, n);
	app_178052(&(*(*p).G).Code, (*p).Locals);
	app_178052(&(*(*p).G).Code, (*p).Body);
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope178009*, wholecode_607094)(tjsgen596015* m) {
	trope178009* result;
	tnode226816* disp;
	result = 0;
	{
		tsym226846* prc_607110;
		tsymseq226818* HEX3Atmp_607161;
		NI i_607164;
		NI l_607166;
		prc_607110 = 0;
		HEX3Atmp_607161 = 0;
		HEX3Atmp_607161 = (*globals_606952).Forwarded;
		i_607164 = 0;
		l_607166 = HEX3Atmp_607161->Sup.len;
		{
			while (1) {
				if (!(i_607164 < l_607166)) goto LA3;
				prc_607110 = HEX3Atmp_607161->data[i_607164];
				{
					NIM_BOOL LOC6;
					tproc596033* p;
					trope178009* LOC9;
					LOC6 = 0;
					LOC6 = containsorincl_223916((&(*globals_606952).Generatedsyms), (*prc_607110).Sup.Id);
					if (!!(LOC6)) goto LA7;
					p = newproc_596207(globals_606952, m, NIM_NIL, (*(*m).Module).Options);
					LOC9 = 0;
					LOC9 = genproc_597154(p, prc_607110);
					app_178052(&(*(*p).G).Code, LOC9);
				}
				LA7: ;
				i_607164 += 1;
			} LA3: ;
		}
	}
	disp = generatemethoddispatchers_424508();
	{
		NI i_607125;
		NI HEX3Atmp_607168;
		NI LOC11;
		NI res_607171;
		i_607125 = 0;
		HEX3Atmp_607168 = 0;
		LOC11 = 0;
		LOC11 = sonslen_227249(disp);
		HEX3Atmp_607168 = (NI32)(LOC11 - 1);
		res_607171 = 0;
		{
			while (1) {
				tsym226846* prc;
				if (!(res_607171 <= HEX3Atmp_607168)) goto LA13;
				i_607125 = res_607171;
				prc = (*(*disp).kindU.S6.Sons->data[i_607125]).kindU.S4.Sym;
				{
					NIM_BOOL LOC16;
					tproc596033* p;
					trope178009* LOC19;
					LOC16 = 0;
					LOC16 = containsorincl_223916((&(*globals_606952).Generatedsyms), (*prc).Sup.Id);
					if (!!(LOC16)) goto LA17;
					p = newproc_596207(globals_606952, m, NIM_NIL, (*(*m).Module).Options);
					LOC19 = 0;
					LOC19 = genproc_597154(p, prc);
					app_178052(&(*(*p).G).Code, LOC19);
				}
				LA17: ;
				res_607171 += 1;
			} LA13: ;
		}
	}
	result = con_178024((*globals_606952).Typeinfo, (*globals_606952).Code);
	return result;
}

N_NIMCALL(trope178009*, genheader_607000)(void) {
	trope178009* result;
	TY178515 LOC1;
	result = 0;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_178076(((NimStringDesc*) &TMP4623));
	result = ropef_178107(((NimStringDesc*) &TMP4622), LOC1, 1);
	return result;
}

N_NIMCALL(tnode226816*, myclose_607197)(tpasscontext287005* b, tnode226816* n) {
	tnode226816* result;
	tjsgen596015* m;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_287083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = myprocess_607062(b, n);
	m = ((tjsgen596015*) (b));
	{
		trope178009* code;
		NimStringDesc* outfile;
		trope178009* LOC24;
		trope178009* LOC25;
		NIM_BOOL LOC26;
		if (!(((*(*m).Module).Flags &(1<<((((NU8) 12))&31)))!=0)) goto LA8;
		code = wholecode_607094(m);
		{
			if (!(0 < outfile_170124->Sup.len)) goto LA12;
			{
				NIM_BOOL LOC16;
				LOC16 = 0;
				LOC16 = nosisAbsolute(outfile_170124);
				if (!LOC16) goto LA17;
				outfile = outfile_170124;
			}
			goto LA14;
			LA17: ;
			{
				NimStringDesc* LOC20;
				LOC20 = 0;
				LOC20 = nosgetCurrentDir();
				outfile = HEX2F_117299(LOC20, outfile_170124);
			}
			LA14: ;
		}
		goto LA10;
		LA12: ;
		{
			NimStringDesc* LOC22;
			NimStringDesc* LOC23;
			LOC22 = 0;
			LOC22 = tofilename_198025(((NI32) ((*(*m).Module).Position)));
			LOC23 = 0;
			LOC23 = completecfilepath_203855(LOC22, NIM_TRUE);
			outfile = noschangeFileExt(LOC23, ((NimStringDesc*) &TMP4621));
		}
		LA10: ;
		LOC24 = 0;
		LOC24 = genheader_607000();
		LOC25 = 0;
		LOC25 = con_178024(LOC24, code);
		LOC26 = 0;
		LOC26 = writeropeifnotequal_178094(LOC25, outfile);
	}
	LA8: ;
	BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenDatInit)(void) {
static TNimNode* TMP4235[5];
static TNimNode* TMP4239[12];
static TNimNode* TMP4240[2];
NI TMP4242;
static char* NIM_CONST TMP4241[2] = {
"targetJS", 
"targetLua"};
static TNimNode* TMP4243[2];
static TNimNode TMP983[26];
NTI596015.size = sizeof(tjsgen596015);
NTI596015.kind = 17;
NTI596015.base = (&NTI287005);
TMP983[0].kind = 1;
TMP983[0].offset = offsetof(tjsgen596015, Module);
TMP983[0].typ = (&NTI226814);
TMP983[0].name = "module";
NTI596015.node = &TMP983[0];
NTI596017.size = sizeof(tjsgen596015*);
NTI596017.kind = 22;
NTI596017.base = (&NTI596015);
NTI596017.marker = TMP4234;
NTI596027.size = sizeof(tglobals596027);
NTI596027.kind = 18;
NTI596027.base = 0;
NTI596027.flags = 2;
TMP4235[0] = &TMP983[2];
TMP983[2].kind = 1;
TMP983[2].offset = offsetof(tglobals596027, Typeinfo);
TMP983[2].typ = (&NTI178007);
TMP983[2].name = "typeInfo";
TMP4235[1] = &TMP983[3];
TMP983[3].kind = 1;
TMP983[3].offset = offsetof(tglobals596027, Code);
TMP983[3].typ = (&NTI178007);
TMP983[3].name = "code";
TMP4235[2] = &TMP983[4];
TMP983[4].kind = 1;
TMP983[4].offset = offsetof(tglobals596027, Forwarded);
TMP983[4].typ = (&NTI226818);
TMP983[4].name = "forwarded";
TMP4235[3] = &TMP983[5];
TMP983[5].kind = 1;
TMP983[5].offset = offsetof(tglobals596027, Generatedsyms);
TMP983[5].typ = (&NTI223056);
TMP983[5].name = "generatedSyms";
TMP4235[4] = &TMP983[6];
TMP983[6].kind = 1;
TMP983[6].offset = offsetof(tglobals596027, Typeinfogenerated);
TMP983[6].typ = (&NTI223056);
TMP983[6].name = "typeInfoGenerated";
TMP983[1].len = 5; TMP983[1].kind = 2; TMP983[1].sons = &TMP4235[0];
NTI596027.node = &TMP983[1];
NTI596029.size = sizeof(tglobals596027*);
NTI596029.kind = 22;
NTI596029.base = (&NTI596027);
NTI596029.flags = 2;
NTI596029.marker = TMP4236;
NTI596033.size = sizeof(tproc596033);
NTI596033.kind = 18;
NTI596033.base = 0;
TMP4239[0] = &TMP983[8];
TMP983[8].kind = 1;
TMP983[8].offset = offsetof(tproc596033, Procdef);
TMP983[8].typ = (&NTI226808);
TMP983[8].name = "procDef";
TMP4239[1] = &TMP983[9];
TMP983[9].kind = 1;
TMP983[9].offset = offsetof(tproc596033, Prc);
TMP983[9].typ = (&NTI226814);
TMP983[9].name = "prc";
TMP4239[2] = &TMP983[10];
TMP983[10].kind = 1;
TMP983[10].offset = offsetof(tproc596033, Locals);
TMP983[10].typ = (&NTI178007);
TMP983[10].name = "locals";
TMP4239[3] = &TMP983[11];
TMP983[11].kind = 1;
TMP983[11].offset = offsetof(tproc596033, Body);
TMP983[11].typ = (&NTI178007);
TMP983[11].name = "body";
TMP4239[4] = &TMP983[12];
TMP983[12].kind = 1;
TMP983[12].offset = offsetof(tproc596033, Options);
TMP983[12].typ = (&NTI170016);
TMP983[12].name = "options";
TMP4239[5] = &TMP983[13];
TMP983[13].kind = 1;
TMP983[13].offset = offsetof(tproc596033, Module);
TMP983[13].typ = (&NTI596017);
TMP983[13].name = "module";
TMP4239[6] = &TMP983[14];
TMP983[14].kind = 1;
TMP983[14].offset = offsetof(tproc596033, G);
TMP983[14].typ = (&NTI596029);
TMP983[14].name = "g";
TMP4239[7] = &TMP983[15];
TMP983[15].kind = 1;
TMP983[15].offset = offsetof(tproc596033, Beforeretneeded);
TMP983[15].typ = (&NTI138);
TMP983[15].name = "beforeRetNeeded";
TMP4239[8] = &TMP983[16];
NTI596013.size = sizeof(NU8);
NTI596013.kind = 14;
NTI596013.base = 0;
NTI596013.flags = 3;
for (TMP4242 = 0; TMP4242 < 2; TMP4242++) {
TMP983[TMP4242+17].kind = 1;
TMP983[TMP4242+17].offset = TMP4242;
TMP983[TMP4242+17].name = TMP4241[TMP4242];
TMP4240[TMP4242] = &TMP983[TMP4242+17];
}
TMP983[19].len = 2; TMP983[19].kind = 2; TMP983[19].sons = &TMP4240[0];
NTI596013.node = &TMP983[19];
TMP983[16].kind = 1;
TMP983[16].offset = offsetof(tproc596033, Target);
TMP983[16].typ = (&NTI596013);
TMP983[16].name = "target";
TMP4239[9] = &TMP983[20];
TMP983[20].kind = 1;
TMP983[20].offset = offsetof(tproc596033, Unique);
TMP983[20].typ = (&NTI108);
TMP983[20].name = "unique";
TMP4239[10] = &TMP983[21];
NTI596025.size = sizeof(tblock596025);
NTI596025.kind = 18;
NTI596025.base = 0;
NTI596025.flags = 3;
TMP4243[0] = &TMP983[23];
TMP983[23].kind = 1;
TMP983[23].offset = offsetof(tblock596025, Id);
TMP983[23].typ = (&NTI108);
TMP983[23].name = "id";
TMP4243[1] = &TMP983[24];
TMP983[24].kind = 1;
TMP983[24].offset = offsetof(tblock596025, Isloop);
TMP983[24].typ = (&NTI138);
TMP983[24].name = "isLoop";
TMP983[22].len = 2; TMP983[22].kind = 2; TMP983[22].sons = &TMP4243[0];
NTI596025.node = &TMP983[22];
NTI596071.size = sizeof(TY596071*);
NTI596071.kind = 24;
NTI596071.base = (&NTI596025);
NTI596071.flags = 2;
NTI596071.marker = TMP4244;
TMP983[21].kind = 1;
TMP983[21].offset = offsetof(tproc596033, Blocks);
TMP983[21].typ = (&NTI596071);
TMP983[21].name = "blocks";
TMP4239[11] = &TMP983[25];
TMP983[25].kind = 1;
TMP983[25].offset = offsetof(tproc596033, Up);
TMP983[25].typ = (&NTI596031);
TMP983[25].name = "up";
TMP983[7].len = 12; TMP983[7].kind = 2; TMP983[7].sons = &TMP4239[0];
NTI596033.node = &TMP983[7];
NTI596031.size = sizeof(tproc596033*);
NTI596031.kind = 22;
NTI596031.base = (&NTI596033);
NTI596031.marker = TMP4245;
NTI597657.size = sizeof(tmagicfrmt597657);
NTI597657.kind = 16;
NTI597657.base = (&NTI149);
NTI597657.flags = 2;
NTI597659.size = sizeof(tmagicops597659);
NTI597659.kind = 16;
NTI597659.base = (&NTI597657);
NTI597659.flags = 2;
}

