text: /* Generated by Nim Compiler v0.15.0 */
  /*   (c) 2016 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  #define NIM_INTBITS 32
  
  #include "nimbase.h"
  #include <string.h>
  typedef struct Tcgen531027 Tcgen531027;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct Ropeobj180006 Ropeobj180006;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct Cell47304 Cell47304;
  typedef struct Cellseq47320 Cellseq47320;
  typedef struct Gcheap49818 Gcheap49818;
  typedef struct Gcstack49816 Gcstack49816;
  typedef struct Memregion29485 Memregion29485;
  typedef struct Smallchunk29439 Smallchunk29439;
  typedef struct Llchunk29479 Llchunk29479;
  typedef struct Bigchunk29441 Bigchunk29441;
  typedef struct Intset29414 Intset29414;
  typedef struct Trunk29410 Trunk29410;
  typedef struct Avlnode29483 Avlnode29483;
  typedef struct Gcstat49814 Gcstat49814;
  typedef struct Cellset47316 Cellset47316;
  typedef struct Pagedesc47312 Pagedesc47312;
  typedef struct Ttypeseq294836 Ttypeseq294836;
  typedef struct Ttype294840 Ttype294840;
  typedef struct Intset270030 Intset270030;
  typedef struct Trunk270026 Trunk270026;
  typedef struct Trunkseq270028 Trunkseq270028;
  typedef struct Tpasscontext343002 Tpasscontext343002;
  typedef struct Tsym294834 Tsym294834;
  typedef struct Tidobj201004 Tidobj201004;
  typedef struct TNimObject TNimObject;
  typedef struct TY294929 TY294929;
  typedef struct Tstrtable294806 Tstrtable294806;
  typedef struct Tsymseq294804 Tsymseq294804;
  typedef struct Tident201010 Tident201010;
  typedef struct Tlineinfo193336 Tlineinfo193336;
  typedef struct Tnode294802 Tnode294802;
  typedef struct Tloc294816 Tloc294816;
  typedef struct Tlib294820 Tlib294820;
  typedef struct TY531153 TY531153;
  typedef struct TY205018 TY205018;
  typedef struct Tidtable294850 Tidtable294850;
  typedef struct Tidpairseq294848 Tidpairseq294848;
  typedef struct Tlinkedlist148013 Tlinkedlist148013;
  typedef struct Tlistentry148007 Tlistentry148007;
  typedef struct Tcproc531021 Tcproc531021;
  typedef struct Tnodetable294862 Tnodetable294862;
  typedef struct Tnodepairseq294860 Tnodepairseq294860;
  typedef struct Debuginfo205009 Debuginfo205009;
  typedef struct TY205021 TY205021;
  typedef struct TY205023 TY205023;
  typedef struct Tnodeseq294796 Tnodeseq294796;
  typedef struct TY193350 TY193350;
  typedef struct TY531095 TY531095;
  typedef struct Trodreader334021 Trodreader334021;
  typedef struct TY294960 TY294960;
  typedef struct TY205017 TY205017;
  typedef struct Enumdesc205007 Enumdesc205007;
  typedef struct Tinfocc275008 Tinfocc275008;
  typedef struct Tblock531019 Tblock531019;
  typedef struct Ttraversalclosure539019 Ttraversalclosure539019;
  typedef struct TY136002 TY136002;
  typedef struct Tbitset341004 Tbitset341004;
  typedef struct TY193612 TY193612;
  typedef struct Tfileinfo193334 Tfileinfo193334;
  typedef struct Tinfoos178035 Tinfoos178035;
  typedef struct Tinfocpu178476 Tinfocpu178476;
  typedef struct Tstrentry148009 Tstrentry148009;
  typedef struct TY129506 TY129506;
  typedef struct Basechunk29437 Basechunk29437;
  typedef struct Freecell29429 Freecell29429;
  typedef struct Tinstantiation294824 Tinstantiation294824;
  typedef struct Tidpair294846 Tidpair294846;
  typedef struct Tnodepair294858 Tnodepair294858;
  typedef struct Filenamemapping205005 Filenamemapping205005;
  typedef struct TY334033 TY334033;
  typedef struct Tindex334019 Tindex334019;
  typedef struct Tiitable301142 Tiitable301142;
  typedef struct Tiipairseq301140 Tiipairseq301140;
  typedef struct Table334054 Table334054;
  typedef struct Keyvaluepairseq334057 Keyvaluepairseq334057;
  typedef struct Memfile332202 Memfile332202;
  typedef struct TY294961 TY294961;
  typedef struct Tiipair301138 Tiipair301138;
  typedef struct Keyvaluepair334060 Keyvaluepair334060;
  typedef NU8 Tnimkind3403;
  typedef NU8 Tnimtypeflag3409Set;
  typedef N_NIMCALL_PTR(void, TY3489) (void* p0, NI op0);
  typedef N_NIMCALL_PTR(void*, TY3494) (void* p0);
  struct  TNimType  {
  NI size;
  Tnimkind3403 kind;
  Tnimtypeflag3409Set flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  TY3489 marker;
  TY3494 deepcopy;
  };
  typedef NU8 Tnimnodekind3405;
  struct  TNimNode  {
  Tnimnodekind3405 kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  typedef N_NIMCALL_PTR(void, Globalmarkerproc55802) (void);
  struct  TGenericSeq  {
  NI len;
  NI reserved;
  };
  struct  NimStringDesc  {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  struct  Cell47304  {
  NI refcount;
  TNimType* typ;
  };
  struct  Cellseq47320  {
  NI len;
  NI cap;
  Cell47304** d;
  };
  typedef Smallchunk29439* TY29500[512];
  typedef Trunk29410* Trunkbuckets29412[256];
  struct  Intset29414  {
  Trunkbuckets29412 data;
  };
  struct  Memregion29485  {
  NI minlargeobj;
  NI maxlargeobj;
  TY29500 freesmallchunks;
  Llchunk29479* llmem;
  NI currmem;
  NI maxmem;
  NI freemem;
  NI lastsize;
  Bigchunk29441* freechunkslist;
  Intset29414 chunkstarts;
  Avlnode29483* root;
  Avlnode29483* deleted;
  Avlnode29483* last;
  Avlnode29483* freeavlnodes;
  NIM_BOOL locked;
  };
  struct  Gcstat49814  {
  NI stackscans;
  NI cyclecollections;
  NI maxthreshold;
  NI maxstacksize;
  NI maxstackcells;
  NI cycletablesize;
  NI64 maxpause;
  };
  struct  Cellset47316  {
  NI counter;
  NI max;
  Pagedesc47312* head;
  Pagedesc47312** data;
  };
  struct  Gcheap49818  {
  Gcstack49816* stack;
  void* stackbottom;
  NI cyclethreshold;
  Cellseq47320 zct;
  Cellseq47320 decstack;
  Cellseq47320 tempstack;
  NI recgclock;
  Memregion29485 region;
  Gcstat49814 stat;
  Cellset47316 marked;
  Cellseq47320 additionalroots;
  };
  struct  Intset270030  {
  NI counter;
  NI max;
  Trunk270026* head;
  Trunkseq270028* data;
  };
  struct  TNimObject  {
  TNimType* m_type;
  };
  struct  Tidobj201004  {
    TNimObject Sup;
  NI id;
  };
  typedef NU8 Tsymkind294435;
  struct  Tstrtable294806  {
  NI counter;
  Tsymseq294804* data;
  };
  typedef NU16 Tmagic294524;
  struct  Tlineinfo193336  {
  NI16 line;
  NI16 col;
  NI32 fileindex;
  };
  typedef NU32 Tsymflag294184Set;
  typedef NU32 Toption171009Set;
  typedef NU8 Tlockind294808;
  typedef NU8 Tstorageloc294812;
  typedef NU16 Tlocflag294810Set;
  struct  Tloc294816  {
  Tlockind294808 k;
  Tstorageloc294812 s;
  Tlocflag294810Set flags;
  Ttype294840* t;
  Ropeobj180006* r;
  };
  struct  Tsym294834  {
    Tidobj201004 Sup;
  Tsymkind294435 kind;
  union{
  struct {Ttypeseq294836* typeinstcache;
  } S1;
  struct {TY294929* procinstcache;
  Tsym294834* gcunsafetyreason;
  } S2;
  struct {TY294929* usedgenerics;
  Tstrtable294806 tab;
  } S3;
  struct {Tsym294834* guard;
  NI bitsize;
  } S4;
  } kindU;
  Tmagic294524 magic;
  Ttype294840* typ;
  Tident201010* name;
  Tlineinfo193336 info;
  Tsym294834* owner;
  Tsymflag294184Set flags;
  Tnode294802* ast;
  Toption171009Set options;
  NI position;
  NI offset;
  Tloc294816 loc;
  Tlib294820* annex;
  Tnode294802* constraint;
  };
  struct TY205018 {
  NimStringDesc* Field0;
  NI Field1;
  };
  struct  Tpasscontext343002  {
    TNimObject Sup;
  NIM_BOOL fromcache;
  };
  typedef Ropeobj180006* Tcfilesections531009[18];
  typedef NU8 Codegenflag531025Set;
  struct  Tidtable294850  {
  NI counter;
  Tidpairseq294848* data;
  };
  struct  Tlinkedlist148013  {
  Tlistentry148007* head;
  Tlistentry148007* tail;
  NI counter;
  };
  struct  Tnodetable294862  {
  NI counter;
  Tnodepairseq294860* data;
  };
  typedef Ropeobj180006* TY531136[10];
  struct  Tcgen531027  {
    Tpasscontext343002 Sup;
  Tcfilesections531009 s;
  Codegenflag531025Set flags;
  Tsym294834* module;
  NimStringDesc* filename;
  NimStringDesc* cfilename;
  Ropeobj180006* tmpbase;
  Tidtable294850 typecache;
  Tidtable294850 forwtypecache;
  Intset270030 declaredthings;
  Intset270030 declaredprotos;
  Tlinkedlist148013 headerfiles;
  Intset270030 typeinfomarker;
  Tcproc531021* initproc;
  Tcproc531021* postinitproc;
  Tcproc531021* preinitproc;
  Ttypeseq294836* typestack;
  Tnodetable294862 datacache;
  Tsymseq294804* forwardedprocs;
  NI typenodes;
  NI nimtypes;
  Ropeobj180006* typenodesname;
  Ropeobj180006* nimtypesname;
  NI labels;
  TY531136 extensionloaders;
  Ropeobj180006* injectstmt;
  };
  struct  Debuginfo205009  {
  NI version;
  TY205021* files;
  TY205023* enums;
  NIM_BOOL conflicts;
  };
  struct  Tident201010  {
    Tidobj201004 Sup;
  NimStringDesc* s;
  Tident201010* next;
  NI h;
  };
  struct  Tcproc531021  {
  Tsym294834* prc;
  NIM_BOOL beforeretneeded;
  NIM_BOOL threadvaraccessed;
  Tlineinfo193336 lastlineinfo;
  Tnodeseq294796* nestedtrystmts;
  NI inexceptblock;
  TY193350* finallysafepoints;
  NI labels;
  TY531095* blocks;
  NI breakidx;
  Toption171009Set options;
  NI maxframelen;
  Tcgen531027* module;
  NI withinloop;
  NI splitdecls;
  NI gcframeid;
  Ropeobj180006* gcframetype;
  };
  typedef NU8 Tsymflag294184;
  typedef NU8 Codegenflag531025;
  typedef NU8 Toption171009;
  typedef NU64 Tglobaloption171013Set;
  typedef NU8 Tglobaloption171013;
  typedef NU8 Tcommands171076;
  typedef NU16 Tnodeflag294427Set;
  typedef NU8 Tnodekind294020;
  struct  Tnode294802  {
  Ttype294840* typ;
  Tlineinfo193336 info;
  Tnodeflag294427Set flags;
  Tnodekind294020 kind;
  union{
  struct {NI64 intval;
  } S1;
  struct {NF floatval;
  } S2;
  struct {NimStringDesc* strval;
  } S3;
  struct {Tsym294834* sym;
  } S4;
  struct {Tident201010* ident;
  } S5;
  struct {Tnodeseq294796* sons;
  } S6;
  } kindU;
  NimStringDesc* comment;
  };
  typedef Ropeobj180006* TY535289[1];
  typedef NU8 Tlocflag294810;
  struct  Tlistentry148007  {
    TNimObject Sup;
  Tlistentry148007* prev;
  Tlistentry148007* next;
  };
  typedef NU8 Tlibkind294818;
  struct  Tlib294820  {
    Tlistentry148007 Sup;
  Tlibkind294818 kind;
  NIM_BOOL generated;
  NIM_BOOL isoverriden;
  Ropeobj180006* name;
  Tnode294802* path;
  };
  typedef NU8 Tcfilesection531005;
  typedef NU8 Ttypekind294244;
  typedef NU8 Tcallingconvention294002;
  typedef NU32 Ttypeflag294431Set;
  struct  Ttype294840  {
    Tidobj201004 Sup;
  Ttypekind294244 kind;
  Tcallingconvention294002 callconv;
  Ttypeflag294431Set flags;
  Ttypeseq294836* sons;
  Tnode294802* n;
  Tsym294834* owner;
  Tsym294834* sym;
  Tsym294834* destructor;
  Tsym294834* deepcopy;
  Tsym294834* assignment;
  TY294960* methods;
  NI64 size;
  NI16 align;
  NI16 locklevel;
  Tloc294816 loc;
  };
  typedef Ropeobj180006* TY534811[2];
  typedef NU8 Tctypekind531007;
  typedef NU64 Ttypekind294244Set;
  typedef NU8 Ttypeflag294431;
  typedef NimStringDesc* TY535943[14];
  typedef NU8 Tprefereddesc322011;
  typedef Ropeobj180006* TY180507[1];
  struct  Enumdesc205007  {
  NI size;
  NU32 owner;
  NI id;
  NimStringDesc* name;
  TY205017* values;
  };
  typedef Ropeobj180006* TY537235[4];
  typedef NimStringDesc* TY294016[10];
  typedef Ropeobj180006* TY537238[3];
  struct  Ropeobj180006  {
    TNimObject Sup;
  Ropeobj180006* left;
  Ropeobj180006* right;
  NI length;
  NimStringDesc* data;
  };
  typedef NU8 Tinfoccprop275004Set;
  struct Tinfocc275008 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  NimStringDesc* Field3;
  NimStringDesc* Field4;
  NimStringDesc* Field5;
  NimStringDesc* Field6;
  NimStringDesc* Field7;
  NimStringDesc* Field8;
  NimStringDesc* Field9;
  NimStringDesc* Field10;
  NimStringDesc* Field11;
  NimStringDesc* Field12;
  NimStringDesc* Field13;
  NimStringDesc* Field14;
  NimStringDesc* Field15;
  NimStringDesc* Field16;
  NimStringDesc* Field17;
  NimStringDesc* Field18;
  NimStringDesc* Field19;
  Tinfoccprop275004Set Field20;
  };
  typedef Tinfocc275008 TY275427[13];
  typedef NU8 Tsystemcc275002;
  typedef NU8 Tnodeflag294427;
  typedef NU8 Tcprocsection531011;
  typedef Ropeobj180006* Tcprocsections531013[3];
  struct  Tblock531019  {
  NI id;
  Ropeobj180006* label;
  Tcprocsections531013 sections;
  NIM_BOOL isloop;
  NI16 nestedtrystmts;
  NI16 nestedexceptstmts;
  NI16 framelen;
  };
  typedef NU8 Tgcmode171080;
  typedef NU8 Ttypeinforeason539016;
  struct  Ttraversalclosure539019  {
  Tcproc531021* p;
  NimStringDesc* visitorfrmt;
  };
  typedef NU8 Ttypefieldresult322145;
  typedef NU8 Tinfoccprop275004;
  typedef Ropeobj180006* TY538847[6];
  typedef Ropeobj180006* TY538401[7];
  typedef Ropeobj180006* TY538475[5];
  typedef NU16 Tmsgkind193002;
  typedef NU8 Tassignmentflag540302Set;
  typedef NU8 Tassignmentflag540302;
  typedef NimStringDesc* TY554655[19];
  typedef NimStringDesc* TY553642[3];
  typedef NimStringDesc* TY558764[4];
  typedef NimStringDesc* TY553828[42];
  typedef NimStringDesc* TY553281[7];
  typedef NU8 Trenderflag313004Set;
  typedef NimStringDesc* TY559052[2];
  typedef NU8 Tclosuretypekind537679;
  typedef NimStringDesc* TY558428[6];
  typedef NU8 Tanalysisresult475003;
  typedef NU8 char136Set[32];
  typedef NU8 Tdistinctcompare326427;
  typedef NU8 Ttypecmpflag326429Set;
  typedef NU16 Tspecialword277003;
  typedef NU8 Tsystemos178004;
  struct  Tfileinfo193334  {
  NimStringDesc* fullpath;
  NimStringDesc* projpath;
  NimStringDesc* shortname;
  Ropeobj180006* quotedname;
  Ropeobj180006* quotedfullname;
  TY193350* lines;
  NimStringDesc* dirtyfile;
  };
  typedef NU8 Tinfoosprop178031Set;
  struct Tinfoos178035 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  NimStringDesc* Field3;
  NimStringDesc* Field4;
  NimStringDesc* Field5;
  NimStringDesc* Field6;
  NimStringDesc* Field7;
  NimStringDesc* Field8;
  NimStringDesc* Field9;
  NimStringDesc* Field10;
  NimStringDesc* Field11;
  Tinfoosprop178031Set Field12;
  };
  typedef Tinfoos178035 TY178082[24];
  typedef NU8 Tendian178474;
  struct Tinfocpu178476 {
  NimStringDesc* Field0;
  NI Field1;
  Tendian178474 Field2;
  NI Field3;
  NI Field4;
  };
  typedef Tinfocpu178476 TY178510[19];
  typedef NU8 Tsystemcpu178452;
  struct  Tstrentry148009  {
    Tlistentry148007 Sup;
  NimStringDesc* data;
  };
  struct TY129506 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  };
  struct  Gcstack49816  {
  Gcstack49816* prev;
  Gcstack49816* next;
  void* starts;
  void* pos;
  NI maxstacksize;
  };
  struct  Basechunk29437  {
  NI prevsize;
  NI size;
  NIM_BOOL used;
  };
  struct  Smallchunk29439  {
    Basechunk29437 Sup;
  Smallchunk29439* next;
  Smallchunk29439* prev;
  Freecell29429* freelist;
  NI free;
  NI acc;
  NF data;
  };
  struct  Llchunk29479  {
  NI size;
  NI acc;
  Llchunk29479* next;
  };
  struct  Bigchunk29441  {
    Basechunk29437 Sup;
  Bigchunk29441* next;
  Bigchunk29441* prev;
  NI align;
  NF data;
  };
  typedef NI TY29418[16];
  struct  Trunk29410  {
  Trunk29410* next;
  NI key;
  TY29418 bits;
  };
  typedef Avlnode29483* TY29490[2];
  struct  Avlnode29483  {
  TY29490 link;
  NI key;
  NI upperbound;
  NI level;
  };
  struct  Pagedesc47312  {
  Pagedesc47312* next;
  NI key;
  TY29418 bits;
  };
  struct  Trunk270026  {
  Trunk270026* next;
  NI key;
  TY29418 bits;
  };
  struct  Tidpair294846  {
  Tidobj201004* key;
  TNimObject* val;
  };
  struct  Tnodepair294858  {
  NI h;
  Tnode294802* key;
  NI val;
  };
  struct  Filenamemapping205005  {
  NimStringDesc* package;
  NimStringDesc* file;
  NU32 mangled;
  };
  typedef NU8 Treasonforrecompile334002;
  struct  Tiitable301142  {
  NI counter;
  Tiipairseq301140* data;
  };
  struct  Tindex334019  {
  NI lastidxkey;
  NI lastidxval;
  Tiitable301142 tab;
  NimStringDesc* r;
  NI offset;
  };
  struct  Table334054  {
  Keyvaluepairseq334057* data;
  NI counter;
  };
  struct  Memfile332202  {
  void* mem;
  NI size;
  int handle;
  };
  struct  Trodreader334021  {
    TNimObject Sup;
  NI pos;
  NCSTRING s;
  Toption171009Set options;
  Treasonforrecompile334002 reason;
  TY334033* moddeps;
  TY334033* files;
  NI dataidx;
  NI convertersidx;
  NI initidx;
  NI interfidx;
  NI compilerprocsidx;
  NI methodsidx;
  NimStringDesc* filename;
  Tindex334019 index;
  Tindex334019 imports;
  NI readerindex;
  NI line;
  NI moduleid;
  Table334054 syms;
  Memfile332202 memfile;
  Tsymseq294804* methods;
  NimStringDesc* origfile;
  NIM_BOOL inviewmode;
  };
  struct TY294961 {
  NI Field0;
  Tsym294834* Field1;
  };
  struct  Freecell29429  {
  Freecell29429* next;
  NI zerofield;
  };
  struct  Tinstantiation294824  {
  Tsym294834* sym;
  Ttypeseq294836* concretetypes;
  NI compilesid;
  };
  struct  Tiipair301138  {
  NI key;
  NI val;
  };
  struct Keyvaluepair334060 {
  NI Field0;
  NI Field1;
  Tsym294834* Field2;
  };
  struct Ttypeseq294836 {
    TGenericSeq Sup;
    Ttype294840* data[SEQ_DECL_SIZE];
  };
  struct TY531153 {
    TGenericSeq Sup;
    Tcgen531027* data[SEQ_DECL_SIZE];
  };
  struct Tsymseq294804 {
    TGenericSeq Sup;
    Tsym294834* data[SEQ_DECL_SIZE];
  };
  struct TY205017 {
    TGenericSeq Sup;
    TY205018 data[SEQ_DECL_SIZE];
  };
  struct TY136002 {
    TGenericSeq Sup;
    NimStringDesc* data[SEQ_DECL_SIZE];
  };
  struct Tbitset341004 {
    TGenericSeq Sup;
    NI8 data[SEQ_DECL_SIZE];
  };
  struct TY531095 {
    TGenericSeq Sup;
    Tblock531019 data[SEQ_DECL_SIZE];
  };
  struct TY193350 {
    TGenericSeq Sup;
    Ropeobj180006* data[SEQ_DECL_SIZE];
  };
  struct Tnodeseq294796 {
    TGenericSeq Sup;
    Tnode294802* data[SEQ_DECL_SIZE];
  };
  struct TY193612 {
    TGenericSeq Sup;
    Tfileinfo193334 data[SEQ_DECL_SIZE];
  };
  struct Trunkseq270028 {
    TGenericSeq Sup;
    Trunk270026* data[SEQ_DECL_SIZE];
  };
  struct TY294929 {
    TGenericSeq Sup;
    Tinstantiation294824* data[SEQ_DECL_SIZE];
  };
  struct Tidpairseq294848 {
    TGenericSeq Sup;
    Tidpair294846 data[SEQ_DECL_SIZE];
  };
  struct Tnodepairseq294860 {
    TGenericSeq Sup;
    Tnodepair294858 data[SEQ_DECL_SIZE];
  };
  struct TY205021 {
    TGenericSeq Sup;
    Filenamemapping205005 data[SEQ_DECL_SIZE];
  };
  struct TY205023 {
    TGenericSeq Sup;
    Enumdesc205007 data[SEQ_DECL_SIZE];
  };
  struct TY294960 {
    TGenericSeq Sup;
    TY294961 data[SEQ_DECL_SIZE];
  };
  struct TY334033 {
    TGenericSeq Sup;
    NI32 data[SEQ_DECL_SIZE];
  };
  struct Tiipairseq301140 {
    TGenericSeq Sup;
    Tiipair301138 data[SEQ_DECL_SIZE];
  };
  struct Keyvaluepairseq334057 {
    TGenericSeq Sup;
    Keyvaluepair334060 data[SEQ_DECL_SIZE];
  };
  N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
  N_NIMCALL(void, T839829468_2)(void);
  N_NIMCALL(void, nimRegisterGlobalMarker)(Globalmarkerproc55802 markerproc0);
  N_NIMCALL(void, T839829468_3)(void);
  N_NIMCALL(Ropeobj180006*, rope_180277_2381377266)(NimStringDesc* s0);
  static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
  static N_INLINE(Cell47304*, usrtocell_51440_1689653243)(void* usr0);
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47304* c0);
  N_NOINLINE(void, addzct_51417_1689653243)(Cellseq47320* s0, Cell47304* c0);
  N_NIMCALL(void, T839829468_5)(void);
  N_NIMCALL(void, T839829468_6)(void);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
  N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0);
  N_NIMCALL(void, T839829468_7)(void);
  N_NIMCALL(void, initintset_270885_2627731572)(Intset270030* Result);
  N_NOINLINE(void, chckNil)(void* p0);
  N_NIMCALL(void, genericReset)(void* dest0, TNimType* mt0);
  N_NIMCALL(void, T839829468_8)(void);
  N_NIMCALL(Tcgen531027*, newmodule_565045_839829468)(Tsym294834* module0);
  N_NIMCALL(Tcgen531027*, getcgenmodule_534226_839829468)(Tsym294834* s0);
  N_NIMCALL(void, internalerror_198113_155036129)(NimStringDesc* errmsg0);
  N_NIMCALL(NimStringDesc*, HEX24_198185_1689653243)(TY205018 x0);
  N_NIMCALL(Tcgen531027*, rawnewmodule_565038_839829468)(Tsym294834* module0);
  N_NIMCALL(Tcgen531027*, rawnewmodule_564663_839829468)(Tsym294834* module0, NimStringDesc* filename0);
  N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0);
  N_NIMCALL(NimStringDesc*, HEX24_8401_1689653243)(NU64 x0);
  N_NIMCALL(NU32, hashowner_534977_839829468)(Tsym294834* s0);
  N_NIMCALL(NU32, register_205121_1926258066)(Debuginfo205009* self0, NimStringDesc* package0, NimStringDesc* file0);
  N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
  N_NIMCALL(void, initlinkedlist_148031_3771138726)(Tlinkedlist148013* list0);
  N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
  N_NIMCALL(void, initidtable_298019_850551059)(Tidtable294850* x0);
  N_NIMCALL(Tcproc531021*, newproc_531206_3723162438)(Tsym294834* prc0, Tcgen531027* module0);
  static N_INLINE(void, asgnRef)(void** dest0, void* src0);
  static N_INLINE(void, incref_53419_1689653243)(Cell47304* c0);
  static N_INLINE(void, decref_53001_1689653243)(Cell47304* c0);
  N_NIMCALL(Toption171009Set, initprocoptions_564635_839829468)(Tcgen531027* m0);
  N_NIMCALL(Tcproc531021*, newpreinitproc_564625_839829468)(Tcgen531027* m0);
  N_NIMCALL(Tcproc531021*, newpostinitproc_564630_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, initnodetable_298085_850551059)(Tnodetable294862* x0);
  N_NIMCALL(Ropeobj180006*, gettempname_535596_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, HEX26_180418_2381377266)(Ropeobj180006* a0, Ropeobj180006* b0);
  N_NIMCALL(Ropeobj180006*, rope_180401_2381377266)(NI64 i0);
  N_NIMCALL(NimStringDesc*, tofullpath_194264_155036129)(NI32 fileidx0);
  N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0);
  N_NIMCALL(NimStringDesc*, tofilename_194260_155036129)(NI32 fileidx0);
  N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename0, NimStringDesc* ext0);
  N_NIMCALL(NimStringDesc*, completecfilepath_275854_2528170400)(NimStringDesc* cfile0, NIM_BOOL createsubdir0);
  N_NIMCALL(void, readmergeinfo_532613_2760143328)(NimStringDesc* cfilename0, Tcgen531027* m0);
  N_NIMCALL(NimStringDesc*, getcfile_565204_839829468)(Tcgen531027* m0);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
  N_NIMCALL(NimStringDesc*, withpackagename_172073_2607990831)(NimStringDesc* path0);
  static N_INLINE(NIM_BOOL, skipcodegen_343085_2355241294)(Tnode294802* n0);
  N_NIMCALL(void, genstmts_541244_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(void, expr_541248_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, fillprocloc_541201_839829468)(Tsym294834* sym0);
  N_NIMCALL(void, fillloc_534282_839829468)(Tloc294816* a0, Tlockind294808 k0, Ttype294840* typ0, Ropeobj180006* r0, Tstorageloc294812 s0);
  N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
  N_NIMCALL(Ropeobj180006*, manglename_535205_839829468)(Tsym294834* s0);
  N_NIMCALL(NIM_BOOL, iskeyword_534960_839829468)(Tident201010* w0);
  N_NIMCALL(NimStringDesc*, mangle_530847_2036603609)(NimStringDesc* name0);
  N_NIMCALL(void, add_180487_2381377266)(Ropeobj180006** a0, NimStringDesc* b0);
  N_NIMCALL(void, add_180482_2381377266)(Ropeobj180006** a0, Ropeobj180006* b0);
  N_NIMCALL(Ropeobj180006*, HEX25_180905_2381377266)(NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(void, genprocprototype_541254_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, useheader_534369_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(NIM_BOOL, includestr_148249_3771138726)(Tlinkedlist148013* list0, NimStringDesc* data0);
  N_NIMCALL(NimStringDesc*, getstr_299230_850551059)(Tnode294802* a0);
  N_NIMCALL(Tsym294834*, getmodule_301123_2984716966)(Tsym294834* s0);
  N_NIMCALL(NIM_BOOL, containsorincl_270862_2627731572)(Intset270030* s0, NI key0);
  N_NIMCALL(Ropeobj180006*, ropecg_534407_839829468)(Tcgen531027* m0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x0);
  static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_79210_1689653243, NI last0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
  N_NIMCALL(Ropeobj180006*, cgsym_534403_839829468)(Tcgen531027* m0, NimStringDesc* name0);
  N_NIMCALL(Tsym294834*, getcompilerproc_340746_3937434831)(NimStringDesc* name0);
  N_NIMCALL(void, genproc_534951_839829468)(Tcgen531027* m0, Tsym294834* prc0);
  N_NIMCALL(NIM_BOOL, isactivated_563431_839829468)(Tsym294834* prc0);
  N_NIMCALL(void, addforwardedproc_534203_839829468)(Tcgen531027* m0, Tsym294834* prc0);
  N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
  N_NIMCALL(void, genprocnoforward_562906_839829468)(Tcgen531027* m0, Tsym294834* prc0);
  N_NIMCALL(void, genprocaux_562284_839829468)(Tcgen531027* m0, Tsym294834* prc0);
  N_NIMCALL(Ropeobj180006*, genprocheader_537867_839829468)(Tcgen531027* m0, Tsym294834* prc0);
  N_NIMCALL(void, genclinedir_534813_839829468)(Ropeobj180006** r0, Tlineinfo193336 info0);
  N_NIMCALL(void, genclinedir_534725_839829468)(Ropeobj180006** r0, NimStringDesc* filename0, NI line0);
  N_NIMCALL(void, addf_181205_2381377266)(Ropeobj180006** c0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(NimStringDesc*, makesinglelinecstring_530835_2036603609)(NimStringDesc* s0);
  N_NIMCALL(NI, safelinenm_534721_839829468)(Tlineinfo193336 info0);
  static N_INLINE(NI, tolinenumber_194415_155036129)(Tlineinfo193336 info0);
  N_NIMCALL(void, genprocparams_536115_839829468)(Tcgen531027* m0, Ttype294840* t0, Ropeobj180006** rettype0, Ropeobj180006** params0, Intset270030* check0, NIM_BOOL declareenvironment0, NIM_BOOL weakdep0);
  N_NIMCALL(NIM_BOOL, isinvalidreturntype_535548_839829468)(Ttype294840* rettype0);
  N_NIMCALL(Tctypekind531007, maptype_535393_839829468)(Ttype294840* typ0);
  N_NIMCALL(Tctypekind531007, mapsettype_535389_839829468)(Ttype294840* typ0);
  N_NIMCALL(NI64, getsize_322135_3876443242)(Ttype294840* typ0);
  N_NIMCALL(Ttype294840*, lastson_297377_850551059)(Ttype294840* n0);
  N_NIMCALL(NI64, firstord_322001_3876443242)(Ttype294840* t0);
  N_NIMCALL(Ttype294840*, skiptypes_298099_850551059)(Ttype294840* t0, Ttypekind294244Set kinds0);
  N_NIMCALL(NIM_BOOL, isimportedcpptype_535476_839829468)(Ttype294840* t0);
  N_NIMCALL(NIM_BOOL, needscomplexassignment_535509_839829468)(Ttype294840* typ0);
  N_NIMCALL(NIM_BOOL, containsgarbagecollectedref_322117_3876443242)(Ttype294840* typ0);
  static N_INLINE(NIM_BOOL, isobjlackingtypefield_535513_839829468)(Ttype294840* typ0);
  N_NIMCALL(NIM_BOOL, ispureobject_322138_3876443242)(Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, gettypedescaux_535503_839829468)(Tcgen531027* m0, Ttype294840* typ0, Intset270030* check0);
  N_NIMCALL(Ttype294840*, getuniquetype_530640_2036603609)(Ttype294840* key0);
  N_NIMCALL(Ropeobj180006*, gettypepre_535972_839829468)(Tcgen531027* m0, Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, getsimpletypedesc_535936_839829468)(Tcgen531027* m0, Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, typenameorliteral_535898_839829468)(Ttype294840* t0, NimStringDesc* literal0);
  N_NIMCALL(Ropeobj180006*, gettypename_535313_839829468)(Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, typename_535292_839829468)(Ttype294840* typ0);
  N_NIMCALL(NimStringDesc*, reprEnum)(NI e0, TNimType* typ0);
  N_NIMCALL(Ropeobj180006*, cachegettype_535591_839829468)(Tidtable294850 tab0, Ttype294840* key0);
  N_NIMCALL(TNimObject*, idtableget_301086_2984716966)(Tidtable294850 t0, Tidobj201004* key0);
  N_NIMCALL(NimStringDesc*, typetostring_322017_3876443242)(Ttype294840* typ0, Tprefereddesc322011 prefer0);
  N_NIMCALL(Ttype294840*, elemtype_322394_3876443242)(Ttype294840* t0);
  N_NIMCALL(Ropeobj180006*, HEX26_180447_2381377266)(Ropeobj180006* a0, NimStringDesc* b0);
  N_NIMCALL(Ropeobj180006*, gettypeforward_536039_839829468)(Tcgen531027* m0, Ttype294840* typ0);
  N_NIMCALL(NIM_BOOL, isimportedtype_535449_839829468)(Ttype294840* t0);
  N_NIMCALL(NimStringDesc*, getforwardstructformat_536015_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, structorunion_536001_839829468)(Ttype294840* t0);
  N_NIMCALL(void, idtableput_301094_2984716966)(Tidtable294850* t0, Tidobj201004* key0, TNimObject* val0);
  N_NIMCALL(void, pushtype_535958_839829468)(Tcgen531027* m0, Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, gettypedescweak_536079_839829468)(Tcgen531027* m0, Ttype294840* t0, Intset270030* check0);
  N_NIMCALL(void, internalerror_198100_155036129)(Tlineinfo193336 info0, NimStringDesc* errmsg0);
  N_NIMCALL(NIM_BOOL, hasenum_205230_1926258066)(Debuginfo205009 self0, NimStringDesc* ename0, NI id0, NU32 owner0);
  N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0);
  static N_INLINE(NI, len_295081_850551059)(Tnode294802* n0);
  N_NIMCALL(void, registerenum_205419_1926258066)(Debuginfo205009* self0, Enumdesc205007* ed0);
  N_NIMCALL(void, genericSeqAssign)(void* dest0, void* src_86404_1689653243, TNimType* mt0);
  N_NIMCALL(void, appcg_534632_839829468)(Tcgen531027* m0, Ropeobj180006** c0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(NI64, lengthord_322007_3876443242)(Ttype294840* t0);
  N_NIMCALL(NIM_BOOL, scancppgenericslot_536827_839829468)(NimStringDesc* pat0, NI* cursor0, NI* outidx0, NI* outstars0);
  N_NIMCALL(Ttype294840*, resolvestarsincpptype_536891_839829468)(Ttype294840* typ0, NI idx0, NI stars0);
  N_NIMCALL(NI, len_297339_850551059)(Ttype294840* n0);
  N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
  N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
  N_NIMCALL(Ropeobj180006*, getrecorddesc_536643_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0, Intset270030* check0);
  N_NIMCALL(Ropeobj180006*, getrecordfields_536636_839829468)(Tcgen531027* m0, Ttype294840* typ0, Intset270030* check0);
  N_NIMCALL(Ropeobj180006*, genrecordfieldsaux_536421_839829468)(Tcgen531027* m0, Tnode294802* n0, Ropeobj180006* accessexpr0, Ttype294840* rectype0, Intset270030* check0);
  N_NIMCALL(NI, sonslen_297351_850551059)(Tnode294802* n0);
  N_NIMCALL(Tnode294802*, lastson_297364_850551059)(Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, HEX26_180452_2381377266)(NimStringDesc* a0, Ropeobj180006* b0);
  N_NIMCALL(Ropeobj180006*, manglerecfieldname_536361_839829468)(Tsym294834* field0, Ttype294840* rectype0);
  N_NIMCALL(NimStringDesc*, manglefield_534973_839829468)(Tident201010* name0);
  N_NIMCALL(NIM_CHAR, nsuToUpperAsciiChar)(NIM_CHAR c0);
  N_NIMCALL(Ropeobj180006*, gettupledesc_536777_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0, Intset270030* check0);
  N_NIMCALL(NI, sonslen_297327_850551059)(Ttype294840* n0);
  N_NIMCALL(void, excl_270841_2627731572)(Intset270030* s0, NI key0);
  static N_INLINE(NIM_BOOL, iscompiletimeonly_330706_3876443242)(Ttype294840* t0);
  N_NIMCALL(Tstorageloc294812, paramstorageloc_536098_839829468)(Tsym294834* param0);
  N_NIMCALL(NIM_BOOL, ccgintroducedptr_535609_839829468)(Tsym294834* s0);
  N_NIMCALL(Tctypekind531007, mapreturntype_535445_839829468)(Ttype294840* typ0);
  N_NIMCALL(Tnode294802*, easyresultasgn_562191_839829468)(Tnode294802* n0);
  static N_INLINE(Tnode294802*, HEX5BHEX5D_295238_850551059)(Tnode294802* n0, NI i0);
  N_NIMCALL(Tnode294802*, getbody_337227_1724185294)(Tsym294834* s0);
  N_NIMCALL(Ropeobj180006*, localvardecl_540532_839829468)(Tcproc531021* p0, Tsym294834* s0);
  N_NIMCALL(Ropeobj180006*, gettypedesc_537671_839829468)(Tcgen531027* m0, Ttype294840* typ0);
  N_NIMCALL(void, initlocexprsingleuse_541289_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* result0);
  N_NIMCALL(void, initloc_534273_839829468)(Tloc294816* result0, Tlockind294808 k0, Ttype294840* typ0, Tstorageloc294812 s0);
  N_NIMCALL(void, linefmt_534714_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  static N_INLINE(Ropeobj180006**, s_531179_3723162438)(Tcproc531021* p0, Tcprocsection531011 s0);
  N_NIMCALL(Ropeobj180006*, indentline_534656_839829468)(Tcproc531021* p0, Ropeobj180006* r0);
  N_NIMCALL(void, prepend_180893_2381377266)(Ropeobj180006** a0, Ropeobj180006* b0);
  N_NIMCALL(Ropeobj180006*, rdloc_540188_839829468)(Tloc294816 a0);
  N_NIMCALL(void, assignlocalvar_540614_839829468)(Tcproc531021* p0, Tsym294834* s0);
  N_NIMCALL(void, line_534690_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, Ropeobj180006* r0);
  N_NIMCALL(void, localdebuginfo_540449_839829468)(Tcproc531021* p0, Tsym294834* s0);
  N_NIMCALL(void, linef_534700_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(Ropeobj180006*, makecstring_193638_155036129)(NimStringDesc* s0);
  N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s0);
  N_NIMCALL(Ropeobj180006*, gentypeinfo_537941_839829468)(Tcgen531027* m0, Ttype294840* t_537944_839829468);
  N_NIMCALL(Tcgen531027*, bmod_531201_3723162438)(Tsym294834* module0);
  N_NIMCALL(void, gentypeinfoauxbase_537960_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0, Ropeobj180006* base0);
  N_NIMCALL(NIM_BOOL, canformacycle_322123_3876443242)(Ttype294840* typ0);
  N_NIMCALL(void, gentupleinfo_538549_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0);
  N_NIMCALL(Ropeobj180006*, getnimnode_537945_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ttype294840*, fakeclosuretype_539010_839829468)(Tsym294834* owner0);
  N_NIMCALL(Ttype294840*, newtype_297107_850551059)(Ttypekind294244 kind0, Tsym294834* owner0);
  N_NIMCALL(void, rawaddson_298394_850551059)(Ttype294840* father0, Ttype294840* son0);
  N_NIMCALL(void, gentypeinfoaux_538027_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0);
  N_NIMCALL(Ropeobj180006*, gentraverseproc_539632_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttypeinforeason539016 reason0);
  N_NIMCALL(void, gentraverseprocseq_539399_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Ttype294840* typ0);
  N_NIMCALL(void, gettemp_539032_839829468)(Tcproc531021* p0, Ttype294840* t0, Tloc294816* result0, NIM_BOOL needsinit0);
  N_NIMCALL(void, constructloc_540388_839829468)(Tcproc531021* p0, Tloc294816 loc0, NIM_BOOL istemp0);
  static N_INLINE(NIM_BOOL, iscomplexvaluetype_540317_839829468)(Ttype294840* t0);
  N_NIMCALL(void, usestringh_534345_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, addrloc_540204_839829468)(Tloc294816 a0);
  N_NIMCALL(void, genobjectinit_540242_839829468)(Tcproc531021* p0, Tcprocsection531011 section0, Ttype294840* t0, Tloc294816 a0, NIM_BOOL takeaddr0);
  N_NIMCALL(Ttypefieldresult322145, analyseobjectwithtypefield_322149_3876443242)(Ttype294840* t0);
  N_NIMCALL(Ttype294840*, getsystype_340150_3937434831)(Ttypekind294244 kind0);
  N_NIMCALL(void, gentraverseproc_539022_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Ttype294840* typ_539027_839829468);
  static N_INLINE(Ropeobj180006*, parentobj_539257_839829468)(Ropeobj180006* accessor0, Tcgen531027* m0);
  N_NIMCALL(void, gentraverseproc_539039_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Tnode294802* n0);
  N_NIMCALL(void, gencaserange_539028_839829468)(Tcproc531021* p0, Tnode294802* branch0);
  N_NIMCALL(Ropeobj180006*, genliteral_541273_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, genliteral_551476_839829468)(Tcproc531021* p0, Tnode294802* n0, Ttype294840* ty0);
  N_NIMCALL(Ropeobj180006*, intliteral_541270_839829468)(NI64 i0);
  N_NIMCALL(Ropeobj180006*, int64literal_551430_839829468)(NI64 i0);
  N_NIMCALL(Ropeobj180006*, uint64literal_551442_839829468)(NU64 i0);
  N_NIMCALL(NI, nodetabletestorset_344682_1142335848)(Tnodetable294862* t0, Tnode294802* key0, NI val0);
  N_NIMCALL(Ropeobj180006*, getstrlit_551468_839829468)(Tcgen531027* m0, NimStringDesc* s0);
  N_NIMCALL(NimStringDesc*, tostrmaxprecision_300007_3471544153)(NF f0);
  N_NIMCALL(Tnode294802*, copynode_298528_850551059)(Tnode294802* src0);
  N_NIMCALL(void, linecg_534707_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(void, genarrayinfo_539005_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0);
  N_NIMCALL(void, gensetinfo_538867_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0);
  N_NIMCALL(void, genenuminfo_538597_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0);
  N_NIMCALL(void, genobjectinfo_538506_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0);
  N_NIMCALL(void, genobjectfields_538104_839829468)(Tcgen531027* m0, Ttype294840* typ0, Tnode294802* n0, Ropeobj180006* expr0);
  N_NIMCALL(Ropeobj180006*, discriminatortablename_538057_839829468)(Tcgen531027* m0, Ttype294840* objtype_538060_839829468, Tsym294834* d0);
  N_NIMCALL(Tsym294834*, lookupinrecord_301119_2984716966)(Tnode294802* n0, Tident201010* field0);
  N_NIMCALL(NI64, getordvalue_322129_3876443242)(Tnode294802* n0);
  N_NIMCALL(void, gendeepcopyproc_540066_839829468)(Tcgen531027* m0, Tsym294834* s0, Ropeobj180006* result0);
  N_NIMCALL(void, initlocalvar_540398_839829468)(Tcproc531021* p0, Tsym294834* v0, NIM_BOOL immediateasgn0);
  N_NIMCALL(void, fillresult_535865_839829468)(Tsym294834* param0);
  N_NIMCALL(void, assignparam_540994_839829468)(Tcproc531021* p0, Tsym294834* s0);
  N_NIMCALL(void, closuresetup_562158_839829468)(Tcproc531021* p0, Tsym294834* prc0);
  N_NIMCALL(Ropeobj180006*, initgcframe_540435_839829468)(Tcproc531021* p0);
  N_NIMCALL(Ropeobj180006*, initframe_562140_839829468)(Tcproc531021* p0, Ropeobj180006* procname0, Ropeobj180006* filename0);
  N_NIMCALL(Ropeobj180006*, quotedfilename_198818_155036129)(Tlineinfo193336 i0);
  N_NIMCALL(void, appcg_534648_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(Ropeobj180006*, deinitgcframe_540441_839829468)(Tcproc531021* p0);
  N_NIMCALL(Ropeobj180006*, deinitframe_562150_839829468)(Tcproc531021* p0);
  N_NIMCALL(Tcgen531027*, findpendingmodule_534241_839829468)(Tcgen531027* m0, Tsym294834* s0);
  N_NIMCALL(void, symindynamiclib_561929_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(NIM_BOOL, isgetprocaddr_561442_839829468)(Tlib294820* lib0);
  N_NIMCALL(void, loaddynamiclib_561480_839829468)(Tcgen531027* m0, Tlib294820* lib0);
  N_NIMCALL(void, libcandidates_172605_2607990831)(NimStringDesc* s0, TY136002** dest0);
  N_NIMCALL(void, rawmessage_196612_155036129)(Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(void, initlocexpr_541283_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* result0);
  N_NIMCALL(Ropeobj180006*, mangledynlibproc_540816_839829468)(Tsym294834* sym0);
  N_NIMCALL(NimStringDesc*, HEX24_180856_2381377266)(Ropeobj180006* r0);
  N_NIMCALL(void, symindynamiclibpartial_562071_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, genvarprototype_541236_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, genvarprototypeaux_546254_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, declarethreadvar_540676_839829468)(Tcgen531027* m0, Tsym294834* s0, NIM_BOOL isextern0);
  static N_INLINE(NIM_BOOL, emulatedthreadvars_534949_839829468)(void);
  static N_INLINE(NIM_BOOL, crossescppboundary_562754_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, putlocintodest_541258_839829468)(Tcproc531021* p0, Tloc294816* d0, Tloc294816 s0);
  N_NIMCALL(void, genassignment_541264_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0);
  N_NIMCALL(void, genrefassign_540311_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0);
  static N_INLINE(NIM_BOOL, usesnativegc_171177_2607990831)(void);
  N_NIMCALL(void, optasgnloc_551788_839829468)(Tloc294816 a0, Ttype294840* t0, Ropeobj180006* field0, Tloc294816* Result);
  N_NIMCALL(void, genoptasgntuple_552001_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0);
  N_NIMCALL(void, gengenericasgn_552167_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0);
  N_NIMCALL(NI, asgncomplexity_551750_839829468)(Tnode294802* n0);
  N_NIMCALL(void, genoptasgnobject_552084_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0, Tnode294802* t0);
  N_NIMCALL(void, genericAssign)(void* dest0, void* src0, TNimType* mt0);
  N_NIMCALL(void, localerror_198085_155036129)(Tlineinfo193336 info0, NimStringDesc* arg0);
  N_NIMCALL(NIM_BOOL, issimpleconst_534311_839829468)(Ttype294840* typ0);
  N_NIMCALL(void, putintodest_552468_839829468)(Tcproc531021* p0, Tloc294816* d0, Ttype294840* t0, Ropeobj180006* r0, Tstorageloc294812 s0);
  N_NIMCALL(void, gencomplexconst_560249_839829468)(Tcproc531021* p0, Tsym294834* sym0, Tloc294816* d0);
  N_NIMCALL(void, requestconstimpl_541240_839829468)(Tcproc531021* p0, Tsym294834* sym0);
  N_NIMCALL(Ropeobj180006*, genconstexpr_556849_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, tobitset_342001_452470228)(Tnode294802* s0, Tbitset341004** b0);
  N_NIMCALL(Ropeobj180006*, genrawsetdata_551629_839829468)(Tbitset341004* cs0, NI size0);
  N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x0, NI len0);
  N_NIMCALL(NI64, bitsettoword_551578_839829468)(Tbitset341004* s0, NI size0);
  N_NIMCALL(Ropeobj180006*, genconstseq_561371_839829468)(Tcproc531021* p0, Tnode294802* n0, Ttype294840* t0);
  N_NIMCALL(void, appcg_534640_839829468)(Tcgen531027* m0, Tcfilesection531005 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(Ropeobj180006*, genconstsimplelist_561299_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, gennamedconstexpr_561284_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, accessthreadlocalvar_534945_839829468)(Tcproc531021* p0, Tsym294834* s0);
  static N_INLINE(Ropeobj180006**, procsec_531194_3723162438)(Tcproc531021* p0, Tcprocsection531011 s0);
  static N_INLINE(NIM_BOOL, isemptytype_299440_850551059)(Ttype294840* t0);
  N_NIMCALL(void, putdataintodest_552436_839829468)(Tcproc531021* p0, Tloc294816* d0, Ttype294840* t0, Ropeobj180006* r0);
  N_NIMCALL(void, genlinedir_534823_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(Ropeobj180006*, sourceline_194068_155036129)(Tlineinfo193336 i0);
  N_NIMCALL(NIM_BOOL, freshlineinfo_534818_839829468)(Tcproc531021* p0, Tlineinfo193336 info0);
  N_NIMCALL(void, genmagicexpr_559033_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0);
  N_NIMCALL(void, genandor_556311_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0);
  N_NIMCALL(Ropeobj180006*, getlabel_541217_839829468)(Tcproc531021* p0);
  N_NIMCALL(void, fixlabel_541230_839829468)(Tcproc531021* p0, Ropeobj180006* labl0);
  N_NIMCALL(void, unaryarith_554646_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0);
  N_NIMCALL(void, unaryarithoverflow_553633_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0);
  N_NIMCALL(void, binaryfloatarith_558728_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0);
  N_NIMCALL(void, binaryarith_553819_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0);
  N_NIMCALL(void, geneqproc_554214_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, binaryarithoverflow_553262_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0);
  N_NIMCALL(Ropeobj180006*, binaryarithoverflowraw_553235_839829468)(Tcproc531021* p0, Ttype294840* t0, Tloc294816 a0, Tloc294816 b0, NimStringDesc* frmt0);
  N_NIMCALL(Ropeobj180006*, rdcharloc_540227_839829468)(Tloc294816 a0);
  N_NIMCALL(NI64, lastord_322004_3876443242)(Ttype294840* t0);
  N_NIMCALL(void, genrepr_557339_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(Ropeobj180006*, lenfield_541305_839829468)(Tcproc531021* p0);
  N_NIMCALL(void, gcusage_556439_839829468)(Tnode294802* n0);
  N_NIMCALL(void, message_198095_155036129)(Tlineinfo193336 info0, Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(NimStringDesc*, rendertree_313044_382274130)(Tnode294802* n0, Trenderflag313004Set renderflags0);
  N_NIMCALL(void, gengettypeinfo_557383_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genswap_557638_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, unaryexpr_553209_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, binarystmt_552501_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, genstrconcat_556452_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genstrappend_556554_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genseqelemappend_556683_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genstrequals_558666_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, binaryexpr_552549_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, genisnil_554620_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, gendollar_557391_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, genof_557331_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genof_557201_839829468)(Tcproc531021* p0, Tnode294802* x0, Ttype294840* typ0, Tloc294816* d0);
  N_NIMCALL(void, globalerror_198071_155036129)(Tlineinfo193336 info0, Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(Ropeobj180006*, genofhelper_557139_839829468)(Tcproc531021* p0, Ttype294840* dest0, Ropeobj180006* a0);
  N_NIMCALL(void, gennew_556782_839829468)(Tcproc531021* p0, Tnode294802* e0);
  N_NIMCALL(void, rawgennew_556741_839829468)(Tcproc531021* p0, Tloc294816 a0, Ropeobj180006* sizeexpr_556745_839829468);
  N_NIMCALL(void, gennewfinalize_557110_839829468)(Tcproc531021* p0, Tnode294802* e0);
  N_NIMCALL(void, gennewseq_556824_839829468)(Tcproc531021* p0, Tnode294802* e0);
  N_NIMCALL(void, gennewseqaux_556795_839829468)(Tcproc531021* p0, Tloc294816 dest0, Ropeobj180006* length0);
  N_NIMCALL(void, gennewseqofcap_556836_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, gensomecast_558480_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(Ropeobj180006*, getclosuretype_537683_839829468)(Tcgen531027* m0, Ttype294840* t0, Tclosuretypekind537679 kind0);
  N_NIMCALL(void, genord_558474_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, unaryexprchar_553222_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, genarraylen_557415_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0);
  N_NIMCALL(void, unarystmt_552527_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, gensetlengthstr_557632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, gensetlengthseq_557500_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, gensetop_558419_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0);
  N_NIMCALL(void, binarystmtinexcl_557857_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(Ropeobj180006*, rdsetelemloc_557662_839829468)(Tloc294816 a0, Ttype294840* settype0);
  N_NIMCALL(void, binaryexprchar_552809_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, geninop_558009_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, fewcmps_557803_839829468)(Tnode294802* s0);
  N_NIMCALL(void, geninexpraux_555496_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* a0, Tloc294816* b0, Tloc294816* d0);
  N_NIMCALL(void, binaryexprin_557837_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* a0, Tloc294816* b0, Tloc294816* d0, NimStringDesc* frmt0);
  N_NIMCALL(void, gencall_545632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genclosurecall_542452_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0);
  N_NIMCALL(Ropeobj180006*, genarg_541787_839829468)(Tcproc531021* p0, Tnode294802* n_541790_839829468, Tsym294834* param0, Tnode294802* call0);
  static N_INLINE(Ropeobj180006*, genargstringtocstring_541776_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, openarrayloc_541665_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Tnode294802*, skipconv_330882_3876443242)(Tnode294802* n0);
  N_NIMCALL(Tmagic294524, getmagic_320502_2616423590)(Tnode294802* op0);
  N_NIMCALL(Ropeobj180006*, genargnoparam_541938_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, getrawproctype_542459_839829468)(Tcproc531021* p0, Ttype294840* t0);
  N_NIMCALL(NIM_BOOL, leftappearsonrightside_541329_839829468)(Tnode294802* le0, Tnode294802* ri0);
  N_NIMCALL(Tanalysisresult475003, ispartof_475340_788060399)(Tnode294802* a0, Tnode294802* b0);
  static N_INLINE(NIM_BOOL, hasnoinit_541383_839829468)(Tnode294802* call0);
  N_NIMCALL(void, resetloc_540350_839829468)(Tcproc531021* p0, Tloc294816* loc0);
  N_NIMCALL(Ropeobj180006*, addcomma_542464_839829468)(Ropeobj180006* r0);
  N_NIMCALL(void, geninfixcall_543929_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, contains_110056_4286263276)(NimStringDesc* s0, char136Set chars0);
  N_NIMCALL(Ropeobj180006*, genpatterncall_543699_839829468)(Tcproc531021* p0, Tnode294802* ri_543702_839829468, NimStringDesc* pat0, Ttype294840* typ_543704_839829468);
  N_NIMCALL(Ropeobj180006*, genotherarg_541277_839829468)(Tcproc531021* p0, Tnode294802* ri0, NI i0, Ttype294840* typ0);
  N_NIMCALL(Ropeobj180006*, genthisarg_543475_839829468)(Tcproc531021* p0, Tnode294802* ri_543478_839829468, NI i0, Ttype294840* typ0);
  N_NIMCALL(Tnode294802*, skipaddrderef_543433_839829468)(Tnode294802* node0);
  N_NIMCALL(void, fixupcall_541410_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0, Ropeobj180006* callee0, Ropeobj180006* params0);
  N_NIMCALL(void, gennamedparamcall_544616_839829468)(Tcproc531021* p0, Tnode294802* ri0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, contains_110046_4286263276)(NimStringDesc* s0, NIM_CHAR c0);
  N_NIMCALL(void, genprefixcall_541960_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0);
  static N_INLINE(void, poststmtactions_534942_839829468)(Tcproc531021* p0);
  N_NIMCALL(void, genreset_556731_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, genecho_556369_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(NimStringDesc*, nsuRepeatStr)(NimStringDesc* s0, NI n0);
  N_NIMCALL(void, genarrtoseq_557046_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  N_NIMCALL(void, genseqconstr_557004_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  N_NIMCALL(void, localerror_198080_155036129)(Tlineinfo193336 info0, Tmsgkind193002 msg0, NimStringDesc* arg0);
  N_NIMCALL(Tnode294802*, wrapprocforspawn_437501_2218250499)(Tsym294834* owner0, Tnode294802* spawnexpr0, Ttype294840* rettype0, Tnode294802* barrier0, Tnode294802* dest0);
  N_NIMCALL(Tnode294802*, liftparallel_480822_1773027539)(Tsym294834* owner0, Tnode294802* n0);
  N_NIMCALL(void, gendeepcopy_552374_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0);
  N_NIMCALL(NIM_BOOL, isdeepconstexpr_320566_2616423590)(Tnode294802* n0);
  N_NIMCALL(Ropeobj180006*, gensetnode_551664_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, gensetconstr_559496_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x0);
  N_NIMCALL(void, exprcomplexconst_560684_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genarrayconstr_560207_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, handleconstexpr_556853_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, gentupleconstr_559618_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genobjconstr_556903_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(Tsym294834*, lookupfieldagain_555153_839829468)(Tcproc531021* p0, Ttype294840* ty_555156_839829468, Tsym294834* field0, Ropeobj180006** r0);
  N_NIMCALL(void, genfieldcheck_555504_839829468)(Tcproc531021* p0, Tnode294802* e0, Ropeobj180006* obj0, Tsym294834* field0, Ttype294840* origty0);
  N_NIMCALL(Tnode294802*, newstrnode_295678_850551059)(Tnodekind294020 kind0, NimStringDesc* strval0);
  N_NIMCALL(void, gencast_558537_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genconv_558632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, comparetypes_328214_3876443242)(Ttype294840* x0, Ttype294840* y0, Tdistinctcompare326427 cmp0, Ttypecmpflag326429Set flags0);
  N_NIMCALL(void, genaddr_555051_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  static N_INLINE(NIM_BOOL, iscppref_554807_839829468)(Tcproc531021* p0, Ttype294840* typ0);
  N_NIMCALL(void, genbracketexpr_556277_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genarrayelem_556093_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, isconstexpr_320510_2616423590)(Tnode294802* n0);
  N_NIMCALL(void, genopenarrayelem_556169_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0);
  N_NIMCALL(void, genseqelem_556205_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0);
  N_NIMCALL(void, gencstringelem_556144_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0);
  N_NIMCALL(void, gentupleelem_555124_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genderef_545921_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NIM_BOOL enforcederef0);
  N_NIMCALL(void, genrecordfield_555448_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(Ttype294840*, genrecordfieldaux_555096_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tloc294816* a0);
  N_NIMCALL(void, gencheckedrecordfield_556046_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0);
  N_NIMCALL(void, genblock_548083_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(NI, startblock_545978_839829468)(Tcproc531021* p0, NimStringDesc* start0, Ropeobj180006** args0, NI args0Len0);
  N_NIMCALL(void, endblock_546060_839829468)(Tcproc531021* p0);
  N_NIMCALL(void, endblock_546035_839829468)(Tcproc531021* p0, Ropeobj180006* blockend0);
  N_NIMCALL(Ropeobj180006*, blockbody_546025_839829468)(Tblock531019* b0);
  N_NIMCALL(void, genstmtlistexpr_560402_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genif_546982_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, downconv_560581_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(NI, inheritancediff_328252_3876443242)(Ttype294840* a0, Ttype294840* b0);
  N_NIMCALL(void, upconv_560431_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genrangechck_558590_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0, NimStringDesc* magic0);
  N_NIMCALL(void, convstrtocstr_558642_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, convcstrtostr_558654_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, genclosure_559836_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  static N_INLINE(NIM_BOOL, isconstclosure_559810_839829468)(Tnode294802* n0);
  static N_INLINE(NIM_BOOL, isroutine_299323_850551059)(Tsym294834* s0);
  N_NIMCALL(void, genwhilestmt_547984_839829468)(Tcproc531021* p0, Tnode294802* t0);
  static N_INLINE(Ropeobj180006*, assignlabel_546020_839829468)(Tblock531019* b0);
  N_NIMCALL(NIM_BOOL, stmtscontainpragma_530083_2036603609)(Tnode294802* n0, Tspecialword277003 w0);
  N_NIMCALL(void, gencomputedgoto_547744_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, genvarstmt_546854_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, gensinglevar_546276_839829468)(Tcproc531021* p0, Tnode294802* a0);
  N_NIMCALL(void, gengotovar_546258_839829468)(Tcproc531021* p0, Tnode294802* value0);
  N_NIMCALL(void, assignglobalvar_540819_839829468)(Tcproc531021* p0, Tsym294834* s0);
  N_NIMCALL(void, varindynamiclib_540812_839829468)(Tcgen531027* m0, Tsym294834* sym0);
  N_NIMCALL(void, registergcroot_545762_839829468)(Tcproc531021* p0, Tsym294834* v0);
  N_NIMCALL(Ropeobj180006*, gentraverseprocforglobal_540032_839829468)(Tcgen531027* m0, Tsym294834* s0);
  static N_INLINE(NIM_BOOL, isassignedimmediately_545781_839829468)(Tnode294802* n0);
  N_NIMCALL(NIM_BOOL, containshiddenpointer_322120_3876443242)(Ttype294840* typ0);
  static N_INLINE(void, loadinto_545928_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* a0);
  N_NIMCALL(void, genasgncall_545695_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0);
  N_NIMCALL(void, genclosurevar_546832_839829468)(Tcproc531021* p0, Tnode294802* a0);
  N_NIMCALL(void, genvartuple_545794_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Tnode294802*, lowertupleunpacking_435037_2218250499)(Tnode294802* n0, Tsym294834* owner0);
  N_NIMCALL(void, genconststmt_546909_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(NIM_BOOL, containscompiletimeonly_330721_3876443242)(Ttype294840* t0);
  static N_INLINE(NIM_BOOL, emitlazily_534248_839829468)(Tsym294834* s0);
  N_NIMCALL(void, gencase_549826_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  N_NIMCALL(void, genstringcase_549416_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  N_NIMCALL(NI, nextpoweroftwo_101629_1009420244)(NI x0);
  N_NIMCALL(void, gencasestringbranch_549100_839829468)(Tcproc531021* p0, Tnode294802* b0, Tloc294816 e0, Ropeobj180006* labl0, Ropeobj180006** branches0, NI branches0Len0);
  N_NIMCALL(NI64, hashstring_530100_2036603609)(NimStringDesc* s0);
  N_NIMCALL(Ropeobj180006*, gencasesecondpass_548965_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NI labid0, NI until0);
  N_NIMCALL(void, exprblock_546103_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(void, gencasegeneric_549087_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0);
  N_NIMCALL(Ropeobj180006*, genifforcaseuntil_549021_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0, NI until0, Tloc294816 a0);
  N_NIMCALL(void, gencasegenericbranch_548910_839829468)(Tcproc531021* p0, Tnode294802* b0, Tloc294816 e0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0, Ropeobj180006* labl0);
  N_NIMCALL(void, gengotoforcase_547673_839829468)(Tcproc531021* p0, Tnode294802* casestmt0);
  N_NIMCALL(void, genordinalcase_549724_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0);
  N_NIMCALL(NI, ifswitchsplitpoint_549615_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(NIM_BOOL, branchhastoobigrange_549575_839829468)(Tnode294802* b0);
  N_NIMCALL(void, genreturnstmt_547617_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(void, blockleaveactions_547442_839829468)(Tcproc531021* p0, NI howmanytrys0, NI howmanyexcepts0);
  static N_INLINE(Tnode294802*, pop_320246_1689653243)(Tnodeseq294796** s0);
  N_NIMCALL(void, genbreakstmt_548444_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(void, genasgn_551239_839829468)(Tcproc531021* p0, Tnode294802* e0, NIM_BOOL fastasgn0);
  N_NIMCALL(NIM_BOOL, fielddiscriminantcheckneeded_551080_839829468)(Tcproc531021* p0, Tnode294802* asgn0);
  N_NIMCALL(void, asgnfielddiscriminant_551209_839829468)(Tcproc531021* p0, Tnode294802* e0);
  N_NIMCALL(void, gendiscriminantcheck_551144_839829468)(Tcproc531021* p0, Tloc294816 a0, Tloc294816 tmp0, Ttype294840* objtype0, Tsym294834* field0);
  N_NIMCALL(Ropeobj180006*, discriminatortabledecl_538094_839829468)(Tcgen531027* m0, Ttype294840* objtype0, Tsym294834* d0);
  N_NIMCALL(void, genasmstmt_550659_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(Ropeobj180006*, genasmoremitstmt_550529_839829468)(Tcproc531021* p0, Tnode294802* t0, NIM_BOOL isasmstmt0);
  N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0);
  N_NIMCALL(void, gentrycpp_549865_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  static N_INLINE(void, gensimpleblock_546095_839829468)(Tcproc531021* p0, Tnode294802* stmts0);
  N_NIMCALL(void, gentry_550114_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0);
  N_NIMCALL(NIM_BOOL, isdefined_202011_1967573533)(NimStringDesc* symbol0);
  N_NIMCALL(void, line_534695_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* r0);
  static N_INLINE(Ropeobj180006*, pop_180530_1689653243)(TY193350** s0);
  N_NIMCALL(void, genraisestmt_548828_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(NimStringDesc*, getraisefrmt_548824_839829468)(Tcproc531021* p0);
  N_NIMCALL(void, gentypesection_540184_839829468)(Tcgen531027* m0, Tnode294802* n0);
  N_NIMCALL(void, genpragma_551039_839829468)(Tcproc531021* p_551041_839829468, Tnode294802* n0);
  N_NIMCALL(Tspecialword277003, whichpragma_320911_2616423590)(Tnode294802* n0);
  N_NIMCALL(void, genemit_550839_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(Tcfilesection531005, determinesection_550819_839829468)(Tnode294802* n0);
  N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s0, NimStringDesc* prefix0);
  N_NIMCALL(void, genbreakpoint_550862_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(void, genwatchpoint_551016_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(Tsym294834*, skipgenericowner_299279_850551059)(Tsym294834* s0);
  N_NIMCALL(void, genparforstmt_548208_839829468)(Tcproc531021* p0, Tnode294802* t0);
  N_NIMCALL(void, genstate_546117_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, gengotostate_546144_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, genbreakstate_546229_839829468)(Tcproc531021* p0, Tnode294802* n0);
  N_NIMCALL(void, registermoduletomain_564243_839829468)(Tsym294834* m0);
  N_NIMCALL(Ropeobj180006*, getinitname_564235_839829468)(Tsym294834* m0);
  N_NIMCALL(Ropeobj180006*, getsomeinitname_563904_839829468)(Tsym294834* m0, NimStringDesc* suffix0);
  N_NIMCALL(Ropeobj180006*, getdatinitname_564239_839829468)(Tsym294834* m0);
  N_NIMCALL(Tnode294802*, generatemethoddispatchers_434151_3853300031)(void);
  N_NIMCALL(void, genmainproc_563729_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, genfilenames_563688_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, finishmodule_565420_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, updatecachedmodule_565813_839829468)(Tcgen531027* m0);
  N_NIMCALL(NIM_BOOL, mergerequired_532832_2760143328)(Tcgen531027* m0);
  N_NIMCALL(void, mergefiles_533241_2760143328)(NimStringDesc* cfilename0, Tcgen531027* m0);
  N_NIMCALL(void, geninitcode_564286_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, gensectionstart_532081_2760143328)(Tcprocsection531011 ps0);
  N_NIMCALL(Ropeobj180006*, gensectionend_532116_2760143328)(Tcprocsection531011 ps0);
  N_NIMCALL(Ropeobj180006*, gensectionstart_532015_2760143328)(Tcfilesection531005 fs0);
  N_NIMCALL(Ropeobj180006*, gensectionend_532050_2760143328)(Tcfilesection531005 fs0);
  N_NIMCALL(void, finishtypedescriptions_537842_839829468)(Tcgen531027* m0);
  N_NIMCALL(Ropeobj180006*, genmodule_564491_839829468)(Tcgen531027* m0, NimStringDesc* cfile0);
  N_NIMCALL(Ropeobj180006*, getfileheader_563683_839829468)(NimStringDesc* cfile0);
  N_NIMCALL(Ropeobj180006*, getcopyright_563665_839829468)(NimStringDesc* cfile0);
  N_NIMCALL(NimStringDesc*, getcompilecfilecmd_276284_2528170400)(NimStringDesc* cfilename0, NIM_BOOL isexternal0);
  static N_INLINE(void, addinttypes_563659_839829468)(Ropeobj180006** result0);
  N_NIMCALL(Ropeobj180006*, genmergeinfo_532203_2760143328)(Tcgen531027* m0);
  N_NIMCALL(void, generatethreadlocalstorage_540717_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, generateheaders_562104_839829468)(Tcgen531027* m0);
  N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s0, NIM_CHAR sub0, NIM_CHAR by0);
  N_NIMCALL(void, writerope_180836_2381377266)(Ropeobj180006* head0, NimStringDesc* filename0, NIM_BOOL usewarning0);
  N_NIMCALL(void, addfiletocompile_275863_2528170400)(NimStringDesc* filename0);
  N_NIMCALL(void, addfiletolink_275872_2528170400)(NimStringDesc* filename0);
  N_NIMCALL(void, writemodule_565637_839829468)(Tcgen531027* m0, NIM_BOOL pending0);
  N_NIMCALL(void, generatethreadvarssize_540771_839829468)(Tcgen531027* m0);
  N_NIMCALL(NIM_BOOL, shouldrecompile_565621_839829468)(Ropeobj180006* code0, NimStringDesc* cfile0);
  N_NIMCALL(NimStringDesc*, toobjfile_275859_2528170400)(NimStringDesc* filename0);
  N_NIMCALL(NIM_BOOL, writeropeifnotequal_181511_2381377266)(Ropeobj180006* r0, NimStringDesc* filename0);
  N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0);
  N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a0, NimStringDesc* b0);
  N_NIMCALL(void, writemapping_276789_2528170400)(Ropeobj180006* gsymbolmapping0);
  N_NIMCALL(void, writeheader_565152_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY129506* Result);
  N_NIMCALL(void, resetmodule_564763_839829468)(Tcgen531027* m0);
  N_NIMCALL(void, nullify_564833_839829468)(Ropeobj180006** arr0);
  N_NIMCALL(void, nullify_564858_839829468)(Ropeobj180006** arr0);
  STRING_LITERAL(T839829468_4, "\011", 1);
  STRING_LITERAL(T839829468_10, "compiler/cgen.nim", 17);
  NIM_CONST TY205018 T839829468_9 = {((NimStringDesc*) &T839829468_10),
  ((NI) 1158)}
  ;
  STRING_LITERAL(T839829468_11, "T", 1);
  STRING_LITERAL(T839829468_12, "_", 1);
  STRING_LITERAL(T839829468_13, "added pending module twice: ", 28);
  STRING_LITERAL(T839829468_14, ".h", 2);
  STRING_LITERAL(T839829468_15, ".cpp", 4);
  STRING_LITERAL(T839829468_16, ".m", 2);
  STRING_LITERAL(T839829468_17, ".c", 2);
  STRING_LITERAL(T839829468_18, "0", 1);
  STRING_LITERAL(T839829468_19, "$", 1);
  STRING_LITERAL(T839829468_20, "ropes: invalid format string $", 30);
  STRING_LITERAL(T839829468_21, "$N#line $2 $1$N", 15);
  STRING_LITERAL(T839829468_22, "N_LIB_IMPORT ", 13);
  STRING_LITERAL(T839829468_23, "N_LIB_EXPORT ", 13);
  STRING_LITERAL(T839829468_24, "static ", 7);
  STRING_LITERAL(T839829468_25, "mapType", 7);
  STRING_LITERAL(T839829468_26, "void", 4);
  STRING_LITERAL(T839829468_27, "getTypeDescAux: t == nil", 24);
  STRING_LITERAL(T839829468_28, "TY", 2);
  STRING_LITERAL(T839829468_29, "getTypeName: ", 13);
  STRING_LITERAL(T839829468_30, "void*", 5);
  STRING_LITERAL(T839829468_31, "NimStringDesc", 13);
  STRING_LITERAL(T839829468_32, "NimStringDesc*", 14);
  STRING_LITERAL(T839829468_33, "NCSTRING", 8);
  STRING_LITERAL(T839829468_34, "NIM_BOOL", 8);
  STRING_LITERAL(T839829468_35, "NIM_CHAR", 8);
  STRING_LITERAL(T839829468_36, "NI", 2);
  STRING_LITERAL(T839829468_37, "NI8", 3);
  STRING_LITERAL(T839829468_38, "NI16", 4);
  STRING_LITERAL(T839829468_39, "NI32", 4);
  STRING_LITERAL(T839829468_40, "NI64", 4);
  STRING_LITERAL(T839829468_41, "NF", 2);
  STRING_LITERAL(T839829468_42, "NF32", 4);
  STRING_LITERAL(T839829468_43, "NF64", 4);
  STRING_LITERAL(T839829468_44, "NF128", 5);
  STRING_LITERAL(T839829468_45, "NU", 2);
  STRING_LITERAL(T839829468_46, "NU8", 3);
  STRING_LITERAL(T839829468_47, "NU16", 4);
  STRING_LITERAL(T839829468_48, "NU32", 4);
  STRING_LITERAL(T839829468_49, "NU64", 4);
  NIM_CONST TY535943 Numericaltypetostr_535941_839829468 = {((NimStringDesc*) &T839829468_36),
  ((NimStringDesc*) &T839829468_37),
  ((NimStringDesc*) &T839829468_38),
  ((NimStringDesc*) &T839829468_39),
  ((NimStringDesc*) &T839829468_40),
  ((NimStringDesc*) &T839829468_41),
  ((NimStringDesc*) &T839829468_42),
  ((NimStringDesc*) &T839829468_43),
  ((NimStringDesc*) &T839829468_44),
  ((NimStringDesc*) &T839829468_45),
  ((NimStringDesc*) &T839829468_46),
  ((NimStringDesc*) &T839829468_47),
  ((NimStringDesc*) &T839829468_48),
  ((NimStringDesc*) &T839829468_49)}
  ;
  STRING_LITERAL(T839829468_50, "tyStatic for getSimpleTypeDesc", 30);
  STRING_LITERAL(T839829468_51, "cannot generate C type for: ", 28);
  STRING_LITERAL(T839829468_52, "&", 1);
  STRING_LITERAL(T839829468_53, "*", 1);
  STRING_LITERAL(T839829468_54, "$1 $2;$n", 8);
  STRING_LITERAL(T839829468_55, "typedef $1 $2 $2;$n", 19);
  STRING_LITERAL(T839829468_56, "union", 5);
  STRING_LITERAL(T839829468_57, "struct", 6);
  STRING_LITERAL(T839829468_58, "getTypeForward(", 15);
  STRING_LITERAL(T839829468_59, "typedef NI32 $1;$n", 18);
  STRING_LITERAL(T839829468_60, "typedef NU8 $1;$n", 17);
  STRING_LITERAL(T839829468_61, "typedef NU16 $1;$n", 18);
  STRING_LITERAL(T839829468_62, "typedef NI64 $1;$n", 18);
  STRING_LITERAL(T839829468_63, "getTypeDescAux: enum", 20);
  STRING_LITERAL(T839829468_64, "typedef $1_PTR($2, $3) $4;$n", 28);
  STRING_LITERAL(T839829468_65, "N_NIMCALL", 9);
  STRING_LITERAL(T839829468_66, "N_STDCALL", 9);
  STRING_LITERAL(T839829468_67, "N_CDECL", 7);
  STRING_LITERAL(T839829468_68, "N_SAFECALL", 10);
  STRING_LITERAL(T839829468_69, "N_SYSCALL", 9);
  STRING_LITERAL(T839829468_70, "N_INLINE", 8);
  STRING_LITERAL(T839829468_71, "N_NOINLINE", 10);
  STRING_LITERAL(T839829468_72, "N_FASTCALL", 10);
  STRING_LITERAL(T839829468_73, "N_CLOSURE", 9);
  STRING_LITERAL(T839829468_74, "N_NOCONV", 8);
  NIM_CONST TY294016 Callingconvtostr_535585_839829468 = {((NimStringDesc*) &T839829468_65),
  ((NimStringDesc*) &T839829468_66),
  ((NimStringDesc*) &T839829468_67),
  ((NimStringDesc*) &T839829468_68),
  ((NimStringDesc*) &T839829468_69),
  ((NimStringDesc*) &T839829468_70),
  ((NimStringDesc*) &T839829468_71),
  ((NimStringDesc*) &T839829468_72),
  ((NimStringDesc*) &T839829468_73),
  ((NimStringDesc*) &T839829468_74)}
  ;
  STRING_LITERAL(T839829468_75, "typedef struct {$nN_NIMCALL_PTR($2, ClPrc) $3;$nvoid* ClEnv;$n}"
  " $1;$n", 69);
  STRING_LITERAL(T839829468_76, "struct $2 : #TGenericSeq {$n", 28);
  STRING_LITERAL(T839829468_77, "struct $2 {$n  #TGenericSeq Sup;$n", 34);
  STRING_LITERAL(T839829468_78, "  $1 data[SEQ_DECL_SIZE];$n};$n", 31);
  STRING_LITERAL(T839829468_79, "TGenericSeq", 11);
  STRING_LITERAL(T839829468_80, "typedef $1 $2[$3];$n", 20);
  STRING_LITERAL(T839829468_81, "invalid apostrophe type parameter index", 39);
  STRING_LITERAL(T839829468_82, "<", 1);
  STRING_LITERAL(T839829468_83, " COMMA ", 7);
  STRING_LITERAL(T839829468_84, "> ", 2);
  extern NIM_CONST TY275427 Cc_275413_2528170400;
  STRING_LITERAL(T839829468_85, " {$n", 4);
  STRING_LITERAL(T839829468_86, " {$n#TNimType* m_type;$n", 24);
  STRING_LITERAL(T839829468_87, " : public $1 {$n", 16);
  STRING_LITERAL(T839829468_88, " {$n  $1 Sup;$n", 15);
  STRING_LITERAL(T839829468_89, "genRecordFieldsAux", 18);
  STRING_LITERAL(T839829468_90, "$1.$2", 5);
  STRING_LITERAL(T839829468_91, "S", 1);
  STRING_LITERAL(T839829468_92, "struct {", 8);
  STRING_LITERAL(T839829468_93, "} $1;$n", 7);
  STRING_LITERAL(T839829468_94, "genRecordFieldsAux(record case branch)", 38);
  STRING_LITERAL(T839829468_95, "union{$n$1} $2;$n", 17);
  STRING_LITERAL(T839829468_96, "mangleRecFieldName", 18);
  STRING_LITERAL(T839829468_97, "$1 $2[SEQ_DECL_SIZE];$n", 23);
  STRING_LITERAL(T839829468_98, "$1 $2:$3;$n", 11);
  STRING_LITERAL(T839829468_99, "genRecordFieldsAux()", 20);
  STRING_LITERAL(T839829468_100, "char dummy;$n", 13);
  STRING_LITERAL(T839829468_101, "};", 2);
  STRING_LITERAL(T839829468_102, "$1 $2 {$n", 9);
  STRING_LITERAL(T839829468_103, "$1 Field$2;$n", 13);
  STRING_LITERAL(T839829468_104, "char dummy;", 11);
  STRING_LITERAL(T839829468_105, "Set", 3);
  STRING_LITERAL(T839829468_106, "typedef NU$2 $1;$n", 18);
  STRING_LITERAL(T839829468_107, "typedef NU8 $1[$2];$n", 21);
  STRING_LITERAL(T839829468_108, "getTypeDescAux(", 15);
  STRING_LITERAL(T839829468_109, "genProcParams", 13);
  STRING_LITERAL(T839829468_110, ", ", 2);
  STRING_LITERAL(T839829468_111, " ", 1);
  STRING_LITERAL(T839829468_112, ", NI $1Len$2", 12);
  STRING_LITERAL(T839829468_113, " Result", 7);
  STRING_LITERAL(T839829468_114, "void* ClEnv", 11);
  STRING_LITERAL(T839829468_115, "...", 3);
  STRING_LITERAL(T839829468_116, "void)", 5);
  STRING_LITERAL(T839829468_117, ")", 1);
  STRING_LITERAL(T839829468_118, "(", 1);
  STRING_LITERAL(T839829468_119, "$1($2, $3)$4", 12);
  STRING_LITERAL(T839829468_120, "proc has no result symbol", 25);
  STRING_LITERAL(T839829468_121, " register", 9);
  STRING_LITERAL(T839829468_122, " volatile", 9);
  STRING_LITERAL(T839829468_123, "$1 = $2;$n", 10);
  STRING_LITERAL(T839829468_124, "(*$1)", 5);
  STRING_LITERAL(T839829468_125, ";", 1);
  STRING_LITERAL(T839829468_126, "FR.s[$1].address = (void*)$3; FR.s[$1].typ = $4; FR.s[$1].name "
  "= $2;$n", 70);
  STRING_LITERAL(T839829468_127, "NTI$1", 5);
  STRING_LITERAL(T839829468_128, "(&", 2);
  STRING_LITERAL(T839829468_129, "TNimType", 8);
  STRING_LITERAL(T839829468_130, "TNimNode", 8);
  STRING_LITERAL(T839829468_131, "extern TNimType $1; /* $2 */$n", 30);
  STRING_LITERAL(T839829468_132, "0", 1);
  STRING_LITERAL(T839829468_133, "void*", 5);
  STRING_LITERAL(T839829468_134, "$1.size = sizeof($2);$n$1.kind = $3;$n$1.base = $4;$n", 53);
  STRING_LITERAL(T839829468_135, "$1.flags = $2;$n", 16);
  STRING_LITERAL(T839829468_136, "TNimType $1; /* $2 */$n", 23);
  STRING_LITERAL(T839829468_137, "genTypeInfo(", 12);
  STRING_LITERAL(T839829468_138, "$1[$2]", 6);
  STRING_LITERAL(T839829468_139, "static TNimNode* $1[$2];$n", 26);
  STRING_LITERAL(T839829468_140, "$1[$2] = &$3;$n", 15);
  STRING_LITERAL(T839829468_141, "$1.kind = 1;$n$1.offset = offsetof($2, Field$3);$n$1.typ = $4;$"
  "n$1.name = \"Field$3\";$n", 86);
  STRING_LITERAL(T839829468_142, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n", 45);
  STRING_LITERAL(T839829468_143, "$1.len = $2; $1.kind = 2;$n", 27);
  STRING_LITERAL(T839829468_144, "$1.node = &$2;$n", 16);
  STRING_LITERAL(T839829468_145, "#nimGCvisit((void*)$1, op);$n", 29);
  STRING_LITERAL(T839829468_146, "N_NIMCALL(void, $1)(void* p, NI op)", 35);
  STRING_LITERAL(T839829468_147, "$1 a;$n", 7);
  STRING_LITERAL(T839829468_148, "a = ($1)p;$n", 12);
  STRING_LITERAL(T839829468_149, "LOC", 3);
  STRING_LITERAL(T839829468_150, "$1 = ($2)0;$n", 13);
  STRING_LITERAL(T839829468_151, "<string.h>", 10);
  STRING_LITERAL(T839829468_152, "memset((void*)$1, 0, sizeof($2));$n", 35);
  STRING_LITERAL(T839829468_153, ".Sup", 4);
  STRING_LITERAL(T839829468_154, "$1.m_type = $2;$n", 17);
  STRING_LITERAL(T839829468_155, "#objectInit($1, $2);$n", 22);
  STRING_LITERAL(T839829468_156, "for ($1 = 0; $1 < $2->$3; $1++) {$n", 35);
  STRING_LITERAL(T839829468_157, "len", 3);
  STRING_LITERAL(T839829468_158, "Sup.len", 7);
  STRING_LITERAL(T839829468_159, "for ($1 = 0; $1 < $2; $1++) {$n", 31);
  STRING_LITERAL(T839829468_160, "}$n", 3);
  STRING_LITERAL(T839829468_161, "$1.Sup", 6);
  STRING_LITERAL(T839829468_162, "genTraverseProc", 15);
  STRING_LITERAL(T839829468_163, "switch ($1.$2) {$n", 18);
  STRING_LITERAL(T839829468_164, "case $1 ... $2:$n", 17);
  STRING_LITERAL(T839829468_165, "genLiteral: ty is nil", 21);
  STRING_LITERAL(T839829468_166, "(-2147483647 -1)", 16);
  STRING_LITERAL(T839829468_167, "IL64($1)", 8);
  STRING_LITERAL(T839829468_168, "(IL64(-9223372036854775807) - IL64(1))", 38);
  STRING_LITERAL(T839829468_169, "NIM_TRUE", 8);
  STRING_LITERAL(T839829468_170, "NIM_FALSE", 9);
  STRING_LITERAL(T839829468_171, "ULL", 3);
  STRING_LITERAL(T839829468_172, "(($1) $2)", 9);
  STRING_LITERAL(T839829468_173, "static NIM_CONST $1 $2 = {NIM_NIL,NIM_NIL};$n", 45);
  STRING_LITERAL(T839829468_174, "NIM_NIL", 7);
  STRING_LITERAL(T839829468_175, "((#NimStringDesc*) NIM_NIL)", 27);
  STRING_LITERAL(T839829468_176, "((#NimStringDesc*) &$1)", 23);
  STRING_LITERAL(T839829468_177, "STRING_LITERAL($1, $2, $3);$n", 29);
  STRING_LITERAL(T839829468_178, "((#NimStringDesc*) &$1$2)", 25);
  STRING_LITERAL(T839829468_179, "genLiteral(", 11);
  STRING_LITERAL(T839829468_180, "case $1:$n", 10);
  STRING_LITERAL(T839829468_181, "default:$n", 10);
  STRING_LITERAL(T839829468_182, "break;$n", 8);
  STRING_LITERAL(T839829468_183, "} $n", 4);
  STRING_LITERAL(T839829468_184, "genTraverseProc()", 17);
  STRING_LITERAL(T839829468_185, "$1.Field$2", 10);
  STRING_LITERAL(T839829468_186, "$1.ClEnv", 8);
  STRING_LITERAL(T839829468_187, "$1->data[$2]", 12);
  STRING_LITERAL(T839829468_188, "a", 1);
  STRING_LITERAL(T839829468_189, "(*a)", 4);
  STRING_LITERAL(T839829468_190, "$1 {$n$2$3$4}$n", 15);
  STRING_LITERAL(T839829468_191, "$1;$n", 5);
  STRING_LITERAL(T839829468_192, "$1.marker = $2;$n", 17);
  STRING_LITERAL(T839829468_193, "$1.len = $2; $1.kind = 0;$n$3.node = &$1;$n", 43);
  STRING_LITERAL(T839829468_194, "$1.offset = $2;$n", 17);
  STRING_LITERAL(T839829468_195, "NI $1;$n", 8);
  STRING_LITERAL(T839829468_196, "static char* NIM_CONST $1[$2] = {$n$3};$n", 41);
  STRING_LITERAL(T839829468_197, "for ($1 = 0; $1 < $2; $1++) {$n$3[$1+$4].kind = 1;$n$3[$1+$4].o"
  "ffset = $1;$n$3[$1+$4].name = $5[$1];$n$6[$1] = &$3[$1+$4];$n}$n", 127);
  STRING_LITERAL(T839829468_198, "$1.len = $2; $1.kind = 2; $1.sons = &$3[0];$n$4.node = &$1;$n", 61);
  STRING_LITERAL(T839829468_199, "$1.flags = 1<<2;$n", 18);
  STRING_LITERAL(T839829468_200, "anonymous obj with discriminator", 32);
  STRING_LITERAL(T839829468_201, "NimDT_$1_$2", 11);
  STRING_LITERAL(T839829468_202, "$1.kind = 3;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
  "ame = $5;$n$1.sons = &$6[0];$n$1.len = $7;$n", 107);
  STRING_LITERAL(T839829468_203, "TNimNode* $1[$2];$n", 19);
  STRING_LITERAL(T839829468_204, "genObjectFields; nkOfBranch broken", 34);
  STRING_LITERAL(T839829468_205, "genObjectFields(nkRecCase)", 26);
  STRING_LITERAL(T839829468_206, "$1.kind = 1;$n$1.offset = offsetof($2, $3);$n$1.typ = $4;$n$1.n"
  "ame = $5;$n", 74);
  STRING_LITERAL(T839829468_207, "genObjectFields", 15);
  STRING_LITERAL(T839829468_208, "$1.deepcopy =(void* (N_RAW_NIMCALL*)(void*))$2;$n", 49);
  STRING_LITERAL(T839829468_209, "\011return $1;$n", 13);
  STRING_LITERAL(T839829468_210, "Result", 6);
  STRING_LITERAL(T839829468_211, "closure generation failed", 25);
  STRING_LITERAL(T839829468_212, "$1 = ($2) ClEnv;$n", 18);
  STRING_LITERAL(T839829468_213, "__declspec(noreturn) ", 21);
  STRING_LITERAL(T839829468_214, "__declspec(naked) ", 18);
  STRING_LITERAL(T839829468_215, "$N$1 {$n$2$3$4}$N$N", 19);
  STRING_LITERAL(T839829468_216, "$N$1 {$N", 8);
  STRING_LITERAL(T839829468_217, "struct {$1} GCFRAME;$n", 22);
  STRING_LITERAL(T839829468_218, "nimFrame", 8);
  STRING_LITERAL(T839829468_219, "VarSlot", 7);
  STRING_LITERAL(T839829468_220, "\011nimfrs($1, $2, $3, $4)$N", 25);
  STRING_LITERAL(T839829468_221, "\011nimfr($1, $2)$N", 16);
  STRING_LITERAL(T839829468_222, "\011#nimProfile();$n", 17);
  STRING_LITERAL(T839829468_223, "{", 1);
  STRING_LITERAL(T839829468_224, "\011}BeforeRet: ;$n", 16);
  STRING_LITERAL(T839829468_225, "if (((NU)&GCFRAME) < 4096) #nimGCFrame(&GCFRAME);$n", 51);
  STRING_LITERAL(T839829468_226, "\011#popFrame();$n", 15);
  STRING_LITERAL(T839829468_227, "}$N", 3);
  STRING_LITERAL(T839829468_228, "static void* $1;$n", 18);
  STRING_LITERAL(T839829468_229, "||", 2);
  STRING_LITERAL(T839829468_230, "($1 = #nimLoadLibrary((#NimStringDesc*) &$2))$n", 47);
  STRING_LITERAL(T839829468_231, "if (!($1)) #nimLoadLibraryError((#NimStringDesc*) &$2);$n", 57);
  STRING_LITERAL(T839829468_232, "if (!($1 = #nimLoadLibrary($2))) #nimLoadLibraryError($2);$n", 60);
  STRING_LITERAL(T839829468_233, "loadDynamicLib", 14);
  STRING_LITERAL(T839829468_234, "Dl_$1", 5);
  STRING_LITERAL(T839829468_235, "\011$1 = ($2) ($3$4));$n", 21);
  NIM_CONST TY205018 T839829468_236 = {((NimStringDesc*) &T839829468_10),
  ((NI) 535)}
  ;
  STRING_LITERAL(T839829468_237, "wrong index: ", 13);
  STRING_LITERAL(T839829468_238, "\011$1 = ($2) #nimGetProcAddr($3, $4);$n", 37);
  STRING_LITERAL(T839829468_239, "$2 $1;$n", 8);
  STRING_LITERAL(T839829468_240, "extern ", 7);
  STRING_LITERAL(T839829468_241, "NIM_THREADVAR ", 14);
  STRING_LITERAL(T839829468_242, " $1;$n", 6);
  STRING_LITERAL(T839829468_243, "cgsym: ", 7);
  STRING_LITERAL(T839829468_244, ": ", 2);
  STRING_LITERAL(T839829468_245, "extern $1 $2;$n", 15);
  STRING_LITERAL(T839829468_246, "extern \"C\" ", 11);
  STRING_LITERAL(T839829468_247, " __attribute__((naked))", 23);
  STRING_LITERAL(T839829468_248, " __attribute__((noreturn))", 26);
  STRING_LITERAL(T839829468_249, "#asgnRef((void**) $1, $2);$n", 28);
  STRING_LITERAL(T839829468_250, "#asgnRefNoCycle((void**) $1, $2);$n", 35);
  STRING_LITERAL(T839829468_251, "#unsureAsgnRef((void**) $1, $2);$n", 34);
  STRING_LITERAL(T839829468_252, "#genericSeqAssign($1, $2, $3);$n", 32);
  STRING_LITERAL(T839829468_253, "$1 = #copyString($2);$n", 23);
  STRING_LITERAL(T839829468_254, "$3 = $1; $1 = #copyStringRC1($2);$n", 35);
  STRING_LITERAL(T839829468_255, "if ($1) #nimGCunrefNoCycle($1);$n", 33);
  STRING_LITERAL(T839829468_256, "#unsureAsgnRef((void**) $1, #copyString($2));$n", 47);
  STRING_LITERAL(T839829468_257, ".", 1);
  STRING_LITERAL(T839829468_258, "ClEnv", 5);
  STRING_LITERAL(T839829468_259, "$1.ClPrc = $2.ClPrc;$n", 22);
  STRING_LITERAL(T839829468_260, "Field$1", 7);
  STRING_LITERAL(T839829468_261, "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n", 53);
  STRING_LITERAL(T839829468_262, "#genericShallowAssign((void*)$1, (void*)$2, $3);$n", 50);
  STRING_LITERAL(T839829468_263, "#genericAssign((void*)$1, (void*)$2, $3);$n", 43);
  STRING_LITERAL(T839829468_265, "compiler/ccgexprs.nim", 21);
  NIM_CONST TY205018 T839829468_264 = {((NimStringDesc*) &T839829468_265),
  ((NI) 320)}
  ;
  STRING_LITERAL(T839829468_266, "#genericAssignOpenArray((void*)$1, (void*)$2, $1Len0, $3);$n", 60);
  STRING_LITERAL(T839829468_267, "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($1[0])*$1Len0);$n", 63);
  STRING_LITERAL(T839829468_268, "memcpy((void*)$1, (NIM_CONST void*)$2, $3);$n", 45);
  STRING_LITERAL(T839829468_269, "genAssignment: ", 15);
  STRING_LITERAL(T839829468_270, "request to generate code for .compileTime proc: ", 48);
  STRING_LITERAL(T839829468_271, "expr: proc not init ", 20);
  STRING_LITERAL(T839829468_272, "NIM_CONST $1 $2 = $3;$n", 23);
  STRING_LITERAL(T839829468_273, "{$n", 3);
  STRING_LITERAL(T839829468_274, "0x$1,$n", 7);
  STRING_LITERAL(T839829468_275, "0x$1, ", 6);
  STRING_LITERAL(T839829468_276, "0x$1}$n", 7);
  STRING_LITERAL(T839829468_277, "{{$1, $1}", 9);
  STRING_LITERAL(T839829468_278, ", {", 3);
  STRING_LITERAL(T839829468_279, ",$n", 3);
  STRING_LITERAL(T839829468_280, "}", 1);
  STRING_LITERAL(T839829468_281, "NIM_CONST struct {$n  #TGenericSeq Sup;$n  $1 data[$2];$n} $3 ="
  " $4;$n", 69);
  STRING_LITERAL(T839829468_282, "(($1)&$2)", 9);
  STRING_LITERAL(T839829468_283, "$1,$n", 5);
  STRING_LITERAL(T839829468_284, "extern NIM_CONST $1 $2;$n", 25);
  STRING_LITERAL(T839829468_285, "expr: var not init ", 19);
  STRING_LITERAL(T839829468_286, "\011NimThreadVars* NimTV;$n", 24);
  STRING_LITERAL(T839829468_287, "\011NimTV = (NimThreadVars*) #GetThreadLocalVars();$n", 50);
  STRING_LITERAL(T839829468_288, "NimTV->", 7);
  STRING_LITERAL(T839829468_289, "expr: temp not init ", 20);
  STRING_LITERAL(T839829468_290, "expr: param not init ", 21);
  STRING_LITERAL(T839829468_291, "expr(", 5);
  STRING_LITERAL(T839829468_292, "); unknown symbol", 17);
  STRING_LITERAL(T839829468_293, "//", 2);
  STRING_LITERAL(T839829468_294, "#endb($1, $2);$n", 16);
  STRING_LITERAL(T839829468_295, "nimln($1, $2);$n", 16);
  STRING_LITERAL(T839829468_296, "LA", 2);
  STRING_LITERAL(T839829468_297, "if ($1) goto $2;$n", 18);
  STRING_LITERAL(T839829468_298, "if (!($1)) goto $2;$n", 21);
  STRING_LITERAL(T839829468_299, "$1: ;$n", 7);
  STRING_LITERAL(T839829468_300, "!($1)", 5);
  STRING_LITERAL(T839829468_301, "$1", 2);
  STRING_LITERAL(T839829468_302, "($3)((NU$2) ~($1))", 18);
  STRING_LITERAL(T839829468_303, "-($1)", 5);
  STRING_LITERAL(T839829468_304, "($1 > 0? ($1) : -($1))", 22);
  STRING_LITERAL(T839829468_305, "(($3)(NU)(NU8)($1))", 19);
  STRING_LITERAL(T839829468_306, "(($3)(NU64)(NU8)($1))", 21);
  STRING_LITERAL(T839829468_307, "(($3)(NU)(NU16)($1))", 20);
  STRING_LITERAL(T839829468_308, "(($3)(NU64)(NU16)($1))", 22);
  STRING_LITERAL(T839829468_309, "(($3)(NU64)(NU32)($1))", 22);
  STRING_LITERAL(T839829468_310, "(($3)(NU64)(NU)($1))", 20);
  STRING_LITERAL(T839829468_311, "(($3)(NU8)(NU)($1))", 19);
  STRING_LITERAL(T839829468_312, "(($3)(NU16)(NU)($1))", 20);
  STRING_LITERAL(T839829468_313, "(($3)(NU32)(NU64)($1))", 22);
  STRING_LITERAL(T839829468_314, "((double) ($1))", 15);
  STRING_LITERAL(T839829468_315, "float64ToInt32($1)", 18);
  STRING_LITERAL(T839829468_316, "float64ToInt64($1)", 18);
  NIM_CONST TY554655 unarithtab_554653_839829468 = {((NimStringDesc*) &T839829468_300),
  ((NimStringDesc*) &T839829468_301),
  ((NimStringDesc*) &T839829468_302),
  ((NimStringDesc*) &T839829468_301),
  ((NimStringDesc*) &T839829468_303),
  ((NimStringDesc*) &T839829468_304),
  ((NimStringDesc*) &T839829468_305),
  ((NimStringDesc*) &T839829468_306),
  ((NimStringDesc*) &T839829468_307),
  ((NimStringDesc*) &T839829468_308),
  ((NimStringDesc*) &T839829468_309),
  ((NimStringDesc*) &T839829468_310),
  ((NimStringDesc*) &T839829468_311),
  ((NimStringDesc*) &T839829468_312),
  ((NimStringDesc*) &T839829468_313),
  ((NimStringDesc*) &T839829468_314),
  ((NimStringDesc*) &T839829468_314),
  ((NimStringDesc*) &T839829468_315),
  ((NimStringDesc*) &T839829468_316)}
  ;
  STRING_LITERAL(T839829468_317, "if ($1 == $2) #raiseOverflow();$n", 33);
  STRING_LITERAL(T839829468_318, "((NI$2)-($1))", 13);
  NIM_CONST TY553642 opr_553640_839829468 = {((NimStringDesc*) &T839829468_318),
  ((NimStringDesc*) &T839829468_303),
  ((NimStringDesc*) &T839829468_304)}
  ;
  STRING_LITERAL(T839829468_319, "(($4)($2) $1 ($4)($3))", 22);
  STRING_LITERAL(T839829468_320, "+", 1);
  STRING_LITERAL(T839829468_321, "-", 1);
  STRING_LITERAL(T839829468_322, "/", 1);
  NIM_CONST TY558764 opr_558762_839829468 = {((NimStringDesc*) &T839829468_320),
  ((NimStringDesc*) &T839829468_321),
  ((NimStringDesc*) &T839829468_53),
  ((NimStringDesc*) &T839829468_322)}
  ;
  STRING_LITERAL(T839829468_323, "#nanCheck($1);$n", 16);
  STRING_LITERAL(T839829468_324, "#infCheck($1);$n", 16);
  STRING_LITERAL(T839829468_325, "(($4)($1) + ($4)($2))", 21);
  STRING_LITERAL(T839829468_326, "(($4)($1) - ($4)($2))", 21);
  STRING_LITERAL(T839829468_327, "(($4)($1) * ($4)($2))", 21);
  STRING_LITERAL(T839829468_328, "(($4)($1) / ($4)($2))", 21);
  STRING_LITERAL(T839829468_329, "($4)((NU$3)($1) >> (NU$3)($2))", 30);
  STRING_LITERAL(T839829468_330, "($4)((NU$3)($1) << (NU$3)($2))", 30);
  STRING_LITERAL(T839829468_331, "($4)($1 & $2)", 13);
  STRING_LITERAL(T839829468_332, "($4)($1 | $2)", 13);
  STRING_LITERAL(T839829468_333, "($4)($1 ^ $2)", 13);
  STRING_LITERAL(T839829468_334, "(($1 <= $2) ? $1 : $2)", 22);
  STRING_LITERAL(T839829468_335, "(($1 >= $2) ? $1 : $2)", 22);
  STRING_LITERAL(T839829468_336, "($4)((NU$3)($1) + (NU$3)($2))", 29);
  STRING_LITERAL(T839829468_337, "($4)((NU$3)($1) - (NU$3)($2))", 29);
  STRING_LITERAL(T839829468_338, "($4)((NU$3)($1) * (NU$3)($2))", 29);
  STRING_LITERAL(T839829468_339, "($4)((NU$3)($1) / (NU$3)($2))", 29);
  STRING_LITERAL(T839829468_340, "($4)((NU$3)($1) % (NU$3)($2))", 29);
  STRING_LITERAL(T839829468_341, "($1 == $2)", 10);
  STRING_LITERAL(T839829468_342, "($1 <= $2)", 10);
  STRING_LITERAL(T839829468_343, "($1 < $2)", 9);
  STRING_LITERAL(T839829468_344, "((NU$3)($1) <= (NU$3)($2))", 26);
  STRING_LITERAL(T839829468_345, "((NU$3)($1) < (NU$3)($2))", 25);
  STRING_LITERAL(T839829468_346, "((NU64)($1) <= (NU64)($2))", 26);
  STRING_LITERAL(T839829468_347, "((NU64)($1) < (NU64)($2))", 25);
  STRING_LITERAL(T839829468_348, "((NU8)($1) == (NU8)($2))", 24);
  STRING_LITERAL(T839829468_349, "((NU8)($1) <= (NU8)($2))", 24);
  STRING_LITERAL(T839829468_350, "((NU8)($1) < (NU8)($2))", 23);
  STRING_LITERAL(T839829468_351, "($1 != $2)", 10);
  NIM_CONST TY553828 binarithtab_553826_839829468 = {((NimStringDesc*) &T839829468_325),
  ((NimStringDesc*) &T839829468_326),
  ((NimStringDesc*) &T839829468_327),
  ((NimStringDesc*) &T839829468_328),
  ((NimStringDesc*) &T839829468_329),
  ((NimStringDesc*) &T839829468_330),
  ((NimStringDesc*) &T839829468_331),
  ((NimStringDesc*) &T839829468_332),
  ((NimStringDesc*) &T839829468_333),
  ((NimStringDesc*) &T839829468_334),
  ((NimStringDesc*) &T839829468_335),
  ((NimStringDesc*) &T839829468_334),
  ((NimStringDesc*) &T839829468_335),
  ((NimStringDesc*) &T839829468_336),
  ((NimStringDesc*) &T839829468_337),
  ((NimStringDesc*) &T839829468_338),
  ((NimStringDesc*) &T839829468_339),
  ((NimStringDesc*) &T839829468_340),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_342),
  ((NimStringDesc*) &T839829468_343),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_342),
  ((NimStringDesc*) &T839829468_343),
  ((NimStringDesc*) &T839829468_344),
  ((NimStringDesc*) &T839829468_345),
  ((NimStringDesc*) &T839829468_346),
  ((NimStringDesc*) &T839829468_347),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_342),
  ((NimStringDesc*) &T839829468_343),
  ((NimStringDesc*) &T839829468_348),
  ((NimStringDesc*) &T839829468_349),
  ((NimStringDesc*) &T839829468_350),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_342),
  ((NimStringDesc*) &T839829468_343),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_341),
  ((NimStringDesc*) &T839829468_342),
  ((NimStringDesc*) &T839829468_343),
  ((NimStringDesc*) &T839829468_351)}
  ;
  STRING_LITERAL(T839829468_352, "($1.ClPrc == $2.ClPrc && $1.ClEnv == $2.ClEnv)", 46);
  STRING_LITERAL(T839829468_353, "($#)($# + $#)", 13);
  STRING_LITERAL(T839829468_354, "($#)($# - $#)", 13);
  STRING_LITERAL(T839829468_355, "($#)($# * $#)", 13);
  STRING_LITERAL(T839829468_356, "($#)($# / $#)", 13);
  STRING_LITERAL(T839829468_357, "($#)($# % $#)", 13);
  NIM_CONST TY553281 opr_553279_839829468 = {((NimStringDesc*) &T839829468_353),
  ((NimStringDesc*) &T839829468_354),
  ((NimStringDesc*) &T839829468_355),
  ((NimStringDesc*) &T839829468_356),
  ((NimStringDesc*) &T839829468_357),
  ((NimStringDesc*) &T839829468_353),
  ((NimStringDesc*) &T839829468_354)}
  ;
  STRING_LITERAL(T839829468_358, "((NU8)($1))", 11);
  STRING_LITERAL(T839829468_359, "if ($1 < $2 || $1 > $3) #raiseOverflow();$n", 43);
  STRING_LITERAL(T839829468_360, "$# = #addInt64($#, $#);$n", 25);
  STRING_LITERAL(T839829468_361, "$# = #subInt64($#, $#);$n", 25);
  STRING_LITERAL(T839829468_362, "$# = #mulInt64($#, $#);$n", 25);
  STRING_LITERAL(T839829468_363, "$# = #divInt64($#, $#);$n", 25);
  STRING_LITERAL(T839829468_364, "$# = #modInt64($#, $#);$n", 25);
  NIM_CONST TY553281 prc64_553274_839829468 = {((NimStringDesc*) &T839829468_360),
  ((NimStringDesc*) &T839829468_361),
  ((NimStringDesc*) &T839829468_362),
  ((NimStringDesc*) &T839829468_363),
  ((NimStringDesc*) &T839829468_364),
  ((NimStringDesc*) &T839829468_360),
  ((NimStringDesc*) &T839829468_361)}
  ;
  STRING_LITERAL(T839829468_365, "$# = #addInt($#, $#);$n", 23);
  STRING_LITERAL(T839829468_366, "$# = #subInt($#, $#);$n", 23);
  STRING_LITERAL(T839829468_367, "$# = #mulInt($#, $#);$n", 23);
  STRING_LITERAL(T839829468_368, "$# = #divInt($#, $#);$n", 23);
  STRING_LITERAL(T839829468_369, "$# = #modInt($#, $#);$n", 23);
  NIM_CONST TY553281 prc_553269_839829468 = {((NimStringDesc*) &T839829468_365),
  ((NimStringDesc*) &T839829468_366),
  ((NimStringDesc*) &T839829468_367),
  ((NimStringDesc*) &T839829468_368),
  ((NimStringDesc*) &T839829468_369),
  ((NimStringDesc*) &T839829468_365),
  ((NimStringDesc*) &T839829468_366)}
  ;
  STRING_LITERAL(T839829468_370, "($#)($#)", 8);
  STRING_LITERAL(T839829468_371, "#reprInt((NI64)$1)", 18);
  STRING_LITERAL(T839829468_372, "#reprFloat($1)", 14);
  STRING_LITERAL(T839829468_373, "#reprBool($1)", 13);
  STRING_LITERAL(T839829468_374, "#reprChar($1)", 13);
  STRING_LITERAL(T839829468_375, "#reprEnum((NI)$1, $2)", 21);
  STRING_LITERAL(T839829468_376, "#reprStr($1)", 12);
  STRING_LITERAL(T839829468_377, "#reprSet($1, $2)", 16);
  STRING_LITERAL(T839829468_378, "$1, $1Len0", 10);
  STRING_LITERAL(T839829468_379, "$1->data, $1->$2", 16);
  STRING_LITERAL(T839829468_380, "$1, $2", 6);
  STRING_LITERAL(T839829468_381, "genRepr()", 9);
  STRING_LITERAL(T839829468_382, "#reprOpenArray($1, $2)", 22);
  STRING_LITERAL(T839829468_383, "#reprAny($1, $2)", 16);
  STRING_LITERAL(T839829468_384, "\'repr\' doesn\'t support \'void\' type", 34);
  STRING_LITERAL(T839829468_385, "($1 - 1)", 8);
  STRING_LITERAL(T839829468_386, "#subInt($1, 1)", 14);
  STRING_LITERAL(T839829468_387, "binaryStmt", 10);
  STRING_LITERAL(T839829468_388, "$1 += $2;$n", 11);
  STRING_LITERAL(T839829468_389, "$1 -= $2;$n", 11);
  NIM_CONST TY559052 opr_559050_839829468 = {((NimStringDesc*) &T839829468_388),
  ((NimStringDesc*) &T839829468_389)}
  ;
  NIM_CONST TY559052 fun64_559055_839829468 = {((NimStringDesc*) &T839829468_360),
  ((NimStringDesc*) &T839829468_361)}
  ;
  NIM_CONST TY559052 fun_559060_839829468 = {((NimStringDesc*) &T839829468_365),
  ((NimStringDesc*) &T839829468_366)}
  ;
  STRING_LITERAL(T839829468_390, "#appendChar($1, $2);$n", 22);
  STRING_LITERAL(T839829468_391, "$1->$2 + ", 9);
  STRING_LITERAL(T839829468_392, "#appendString($1, $2);$n", 24);
  STRING_LITERAL(T839829468_393, "$1 = #rawNewString($2$3);$n", 27);
  STRING_LITERAL(T839829468_394, "$1 = #addChar($1, $2);$n", 24);
  STRING_LITERAL(T839829468_395, "$1 = #resizeString($1, $2$3);$n", 31);
  STRING_LITERAL(T839829468_396, "$1 = ($2) #incrSeqV2(&($1)->Sup, sizeof($3));$n", 47);
  STRING_LITERAL(T839829468_397, "$1 = ($2) #incrSeqV2($1, sizeof($3));$n", 39);
  STRING_LITERAL(T839829468_398, "$1->data[$1->$2]", 16);
  STRING_LITERAL(T839829468_399, "++$1->$2;$n", 11);
  STRING_LITERAL(T839829468_400, "(($1) && ($1)->$2 == 0)", 23);
  STRING_LITERAL(T839829468_401, "#eqStrings($1, $2)", 18);
  STRING_LITERAL(T839829468_402, "(#cmpStrings($1, $2) <= 0)", 26);
  STRING_LITERAL(T839829468_403, "(#cmpStrings($1, $2) < 0)", 25);
  STRING_LITERAL(T839829468_404, "$1.ClPrc == 0", 13);
  STRING_LITERAL(T839829468_405, "$1 == 0", 7);
  STRING_LITERAL(T839829468_406, "#nimIntToStr($1)", 16);
  STRING_LITERAL(T839829468_407, "#nimInt64ToStr($1)", 18);
  STRING_LITERAL(T839829468_408, "#nimBoolToStr($1)", 17);
  STRING_LITERAL(T839829468_409, "#nimCharToStr($1)", 17);
  STRING_LITERAL(T839829468_410, "#nimFloatToStr($1)", 18);
  STRING_LITERAL(T839829468_411, "#cstrToNimstr($1)", 17);
  STRING_LITERAL(T839829468_412, "no \'of\' operator available for pure objects", 43);
  STRING_LITERAL(T839829468_413, "(($1) && ($2))", 14);
  STRING_LITERAL(T839829468_414, "$1.m_type == $2", 15);
  STRING_LITERAL(T839829468_415, "Nim_OfCheck_CACHE", 17);
  STRING_LITERAL(T839829468_416, "static TNimType* $#[2];$n", 25);
  STRING_LITERAL(T839829468_417, "#isObjWithCache($#.m_type, $#, $#)", 34);
  STRING_LITERAL(T839829468_418, "($1)", 4);
  STRING_LITERAL(T839829468_419, "sizeof($1)", 10);
  STRING_LITERAL(T839829468_420, "if ($1) #nimGCunref($1);$n", 26);
  STRING_LITERAL(T839829468_421, "($1) #newObjRC1($2, $3)", 23);
  STRING_LITERAL(T839829468_422, "($1) #newObj($2, $3)", 20);
  STRING_LITERAL(T839829468_423, "$1->finalizer = (void*)$2;$n", 28);
  STRING_LITERAL(T839829468_424, "($1) #newObj($2, sizeof($3))", 28);
  STRING_LITERAL(T839829468_425, "($1) #newSeqRC1($2, $3)", 23);
  STRING_LITERAL(T839829468_426, "($1) #newSeq($2, $3)", 20);
  STRING_LITERAL(T839829468_427, "($1)#nimNewSeqOfCap($2, $3)", 27);
  STRING_LITERAL(T839829468_428, "((NI)sizeof($1))", 16);
  STRING_LITERAL(T839829468_429, "(*($1*) ($2))", 13);
  STRING_LITERAL(T839829468_430, "(($1) ($2))", 11);
  STRING_LITERAL(T839829468_431, "($1Len0-1)", 10);
  STRING_LITERAL(T839829468_432, "$1Len0", 6);
  STRING_LITERAL(T839829468_433, "($1 ? (strlen($1)-1) : -1)", 26);
  STRING_LITERAL(T839829468_434, "($1 ? strlen($1) : 0)", 21);
  STRING_LITERAL(T839829468_435, "($1 ? ($1->Sup.len-1) : -1)", 27);
  STRING_LITERAL(T839829468_436, "($1 ? $1->Sup.len : 0)", 22);
  STRING_LITERAL(T839829468_437, "($1 ? ($1->len-1) : -1)", 23);
  STRING_LITERAL(T839829468_438, "($1 ? $1->len : 0)", 18);
  STRING_LITERAL(T839829468_439, "genArrayLen()", 13);
  STRING_LITERAL(T839829468_440, "($1->Sup.len)", 13);
  STRING_LITERAL(T839829468_441, "$1->len", 7);
  STRING_LITERAL(T839829468_442, "unaryStmt", 9);
  STRING_LITERAL(T839829468_443, "#nimGCref($1);$n", 16);
  STRING_LITERAL(T839829468_444, "#nimGCunref($1);$n", 18);
  STRING_LITERAL(T839829468_445, "$1 = #setLengthStr($1, $2);$n", 29);
  STRING_LITERAL(T839829468_446, "$1 = ($3) #setLengthSeq(&($1)->Sup, sizeof($4), $2);$n", 54);
  STRING_LITERAL(T839829468_447, "$1 = ($3) #setLengthSeq($1, sizeof($4), $2);$n", 46);
  STRING_LITERAL(T839829468_448, "($1- $2)", 8);
  STRING_LITERAL(T839829468_449, "$1 |= ((", 8);
  STRING_LITERAL(T839829468_450, ")1)<<(($2)%(sizeof(", 19);
  STRING_LITERAL(T839829468_451, ")*8));$n", 8);
  STRING_LITERAL(T839829468_452, "$1 &= ~(((", 10);
  STRING_LITERAL(T839829468_453, ")1) << (($2) % (sizeof(", 23);
  STRING_LITERAL(T839829468_454, ")*8)));$n", 9);
  STRING_LITERAL(T839829468_455, "#countBits32($1)", 16);
  STRING_LITERAL(T839829468_456, "#countBits64($1)", 16);
  STRING_LITERAL(T839829468_457, "(($1 & ~ $2 ==0)&&($1 != $2))", 29);
  STRING_LITERAL(T839829468_458, "(($1 & ~ $2)==0)", 16);
  STRING_LITERAL(T839829468_459, "($1 & $2)", 9);
  STRING_LITERAL(T839829468_460, "($1 | $2)", 9);
  STRING_LITERAL(T839829468_461, "($1 & ~ $2)", 11);
  STRING_LITERAL(T839829468_462, "($1 ^ $2)", 9);
  STRING_LITERAL(T839829468_463, "fewCmps", 7);
  STRING_LITERAL(T839829468_464, "$1 >= $2 && $1 <= $3", 20);
  STRING_LITERAL(T839829468_465, "$1 == $2", 8);
  STRING_LITERAL(T839829468_466, " || ", 4);
  STRING_LITERAL(T839829468_467, "(($1 &(1U<<((NU)($2)&7U)))!=0)", 30);
  STRING_LITERAL(T839829468_468, "(($1 &(1U<<((NU)($2)&15U)))!=0)", 31);
  STRING_LITERAL(T839829468_469, "(($1 &(1U<<((NU)($2)&31U)))!=0)", 31);
  STRING_LITERAL(T839829468_470, "(($1 &((NU64)1<<((NU)($2)&63U)))!=0)", 36);
  STRING_LITERAL(T839829468_471, "(($1[(NU)($2)>>3] &(1U<<((NU)($2)&7U)))!=0)", 43);
  STRING_LITERAL(T839829468_472, "genSetOp()", 10);
  STRING_LITERAL(T839829468_473, "$1[(NU)($2)>>3] |=(1U<<($2&7U));$n", 34);
  STRING_LITERAL(T839829468_474, "$1[(NU)($2)>>3] &= ~(1U<<($2&7U));$n", 36);
  STRING_LITERAL(T839829468_475, "#cardSet($1, ", 13);
  STRING_LITERAL(T839829468_476, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
  "0);$n  if (!$3) break;}$n", 88);
  STRING_LITERAL(T839829468_477, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
  "0);$n  if (!$3) break;}$nif ($3) $3 = (memcmp($4, $5, $2) != 0);"
  "$n", 129);
  STRING_LITERAL(T839829468_478, "|", 1);
  STRING_LITERAL(T839829468_479, "& ~", 3);
  STRING_LITERAL(T839829468_480, "^", 1);
  NIM_CONST TY558428 lookupopr_558426_839829468 = {((NimStringDesc*) &T839829468_476),
  ((NimStringDesc*) &T839829468_477),
  ((NimStringDesc*) &T839829468_52),
  ((NimStringDesc*) &T839829468_478),
  ((NimStringDesc*) &T839829468_479),
  ((NimStringDesc*) &T839829468_480)}
  ;
  STRING_LITERAL(T839829468_481, "(memcmp($1, $2, ", 16);
  STRING_LITERAL(T839829468_482, ")==0)", 5);
  STRING_LITERAL(T839829468_483, "for ($1 = 0; $1 < $2; $1++) $n  $3[$1] = $4[$1] $6 $5[$1];$n", 60);
  STRING_LITERAL(T839829468_484, "genSetOp", 8);
  STRING_LITERAL(T839829468_485, "$1->data", 8);
  STRING_LITERAL(T839829468_486, "($1)+($2), ($3)-($2)+1", 22);
  STRING_LITERAL(T839829468_487, "(*$1)->data+($2), ($3)-($2)+1", 29);
  STRING_LITERAL(T839829468_488, "$1->data+($2), ($3)-($2)+1", 26);
  STRING_LITERAL(T839829468_489, "openArrayLoc: ", 14);
  STRING_LITERAL(T839829468_490, "", 0);
  STRING_LITERAL(T839829468_491, "(*$1)->data, (*$1)->$2", 22);
  STRING_LITERAL(T839829468_492, "$1.ClPrc($3$1.ClEnv)", 20);
  STRING_LITERAL(T839829468_493, "$1.ClEnv? $1.ClPrc($3$1.ClEnv):(($4)($1.ClPrc))($2)", 51);
  STRING_LITERAL(T839829468_494, "$1 = 0;$n", 9);
  STRING_LITERAL(T839829468_495, "#chckNil((void*)$1);$n", 22);
  STRING_LITERAL(T839829468_496, "#genericReset((void*)$1, $2);$n", 31);
  STRING_LITERAL(T839829468_497, ";$n", 3);
  STRING_LITERAL(T839829468_499, "compiler/ccgcalls.nim", 21);
  NIM_CONST TY205018 T839829468_498 = {((NimStringDesc*) &T839829468_499),
  ((NI) 423)}
  ;
  static NIM_CONST char136Set T839829468_500 = {
  0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00,
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
  ;
  STRING_LITERAL(T839829468_501, "wrong argument count", 20);
  STRING_LITERAL(T839829468_502, "call expression expected for C++ pattern", 40);
  NIM_CONST TY205018 T839829468_503 = {((NimStringDesc*) &T839829468_499),
  ((NI) 328)}
  ;
  STRING_LITERAL(T839829468_504, "->", 2);
  STRING_LITERAL(T839829468_505, ");$n", 4);
  STRING_LITERAL(T839829468_506, "[", 1);
  NIM_CONST TY205018 T839829468_507 = {((NimStringDesc*) &T839829468_499),
  ((NI) 472)}
  ;
  STRING_LITERAL(T839829468_508, "varargs for objective C method?", 31);
  STRING_LITERAL(T839829468_509, "Result: ", 8);
  STRING_LITERAL(T839829468_510, "];$n", 4);
  STRING_LITERAL(T839829468_511, "]", 1);
  NIM_CONST TY205018 T839829468_512 = {((NimStringDesc*) &T839829468_265),
  ((NI) 925)}
  ;
  STRING_LITERAL(T839829468_513, "<stdio.h>", 9);
  STRING_LITERAL(T839829468_514, ", \"nil\"", 7);
  STRING_LITERAL(T839829468_515, ", $1? ($1)->data:\"nil\"", 22);
  STRING_LITERAL(T839829468_516, "printf($1$2);$n", 15);
  STRING_LITERAL(T839829468_517, "%s", 2);
  STRING_LITERAL(T839829468_518, "fflush(stdout);$n", 17);
  STRING_LITERAL(T839829468_519, "#genericDeepCopy((void*)$1, (void*)$2, $3);$n", 45);
  STRING_LITERAL(T839829468_520, "#genericSeqDeepCopy($1, $2, $3);$n", 34);
  STRING_LITERAL(T839829468_521, "#genericDeepCopyOpenArray((void*)$1, (void*)$2, $1Len0, $3);$n", 62);
  STRING_LITERAL(T839829468_522, "genDeepCopy: ", 13);
  STRING_LITERAL(T839829468_523, "genMagicExpr: ", 14);
  STRING_LITERAL(T839829468_524, "static NIM_CONST $1 $2 = $3;$n", 30);
  STRING_LITERAL(T839829468_525, "memset($1, 0, sizeof($1));$n", 28);
  STRING_LITERAL(T839829468_526, "for ($1 = $3; $1 <= $4; $1++) $n$2[(NU)($1)>>3] |=(1U<<((NU)($1"
  ")&7U));$n", 72);
  STRING_LITERAL(T839829468_527, "$1[(NU)($2)>>3] |=(1U<<((NU)($2)&7U));$n", 40);
  STRING_LITERAL(T839829468_528, "for ($1 = $3; $1 <= $4; $1++) $n$2 |=((", 39);
  STRING_LITERAL(T839829468_529, ")(1)<<(($1)%(sizeof(", 20);
  STRING_LITERAL(T839829468_530, "$1 |=((", 7);
  STRING_LITERAL(T839829468_531, ")(1)<<(($2)%(sizeof(", 20);
  STRING_LITERAL(T839829468_532, "genCheckedRecordField", 21);
  STRING_LITERAL(T839829468_533, "genObjConstr", 12);
  STRING_LITERAL(T839829468_534, "if ($1) #raiseFieldError(((#NimStringDesc*) &$2));$n", 52);
  STRING_LITERAL(T839829468_535, "if (!($1)) #raiseFieldError(((#NimStringDesc*) &$2));$n", 55);
  STRING_LITERAL(T839829468_536, "LOC$1.source", 12);
  STRING_LITERAL(T839829468_537, "union { $1 source; $2 dest; } LOC$3;$n", 38);
  STRING_LITERAL(T839829468_538, "LOC$#.dest", 10);
  STRING_LITERAL(T839829468_539, "if ((NU)($1) > (NU)($2)) #raiseIndexError();$n", 46);
  STRING_LITERAL(T839829468_540, "if ($1 < $2 || $1 > $3) #raiseIndexError();$n", 45);
  STRING_LITERAL(T839829468_541, "$1[($2)- $3]", 12);
  STRING_LITERAL(T839829468_542, "if ((NU)($1) >= (NU)($2Len0)) #raiseIndexError();$n", 51);
  STRING_LITERAL(T839829468_543, "if ((NU)($1) > (NU)($2->$3)) #raiseIndexError();$n", 50);
  STRING_LITERAL(T839829468_544, "if ((NU)($1) >= (NU)($2->$3)) #raiseIndexError();$n", 51);
  STRING_LITERAL(T839829468_545, "genTupleElem", 12);
  STRING_LITERAL(T839829468_546, ".Field$1", 8);
  STRING_LITERAL(T839829468_547, "expr(nkBracketExpr, ", 20);
  STRING_LITERAL(T839829468_548, "genDeref ", 9);
  STRING_LITERAL(T839829468_549, "genRecordFieldAux", 17);
  STRING_LITERAL(T839829468_550, "genRecordField 3", 16);
  STRING_LITERAL(T839829468_551, ".$1", 3);
  STRING_LITERAL(T839829468_552, "} $1: ;$n", 9);
  STRING_LITERAL(T839829468_553, "FR.len-=$1;$n", 13);
  STRING_LITERAL(T839829468_554, "FR.len+=$1;$n", 13);
  STRING_LITERAL(T839829468_555, "if (!$1) goto $2;$n", 19);
  STRING_LITERAL(T839829468_556, "goto $1;$n", 10);
  STRING_LITERAL(T839829468_557, "genIf()", 7);
  STRING_LITERAL(T839829468_558, "->Sup", 5);
  STRING_LITERAL(T839829468_559, "$1 = &$2;$n", 11);
  STRING_LITERAL(T839829468_560, "if ($1) #chckObj($2.m_type, $3);$n", 34);
  STRING_LITERAL(T839829468_561, "#chckObj($1.m_type, $2);$n", 26);
  STRING_LITERAL(T839829468_562, "(($1)#$5($2, $3, $4))", 21);
  STRING_LITERAL(T839829468_563, "chckRangeF", 10);
  STRING_LITERAL(T839829468_564, "chckRange64", 11);
  STRING_LITERAL(T839829468_565, "chckRange", 9);
  STRING_LITERAL(T839829468_566, "CNSTCLOSURE", 11);
  STRING_LITERAL(T839829468_567, "closure to closure created", 26);
  STRING_LITERAL(T839829468_568, "$1.ClPrc = $2; $1.ClEnv = $3;$n", 31);
  STRING_LITERAL(T839829468_569, "while (1) {$n", 13);
  STRING_LITERAL(T839829468_570, "case statement must be exhaustive for computed goto", 51);
  STRING_LITERAL(T839829468_571, "case statement has too many cases for computed goto", 51);
  STRING_LITERAL(T839829468_572, "case statement has to start at 0 for computed goto", 50);
  STRING_LITERAL(T839829468_573, "no case statement found for computed goto", 41);
  STRING_LITERAL(T839829468_574, "TMP$1", 5);
  STRING_LITERAL(T839829468_575, "static void* $#[$#] = {", 23);
  STRING_LITERAL(T839829468_576, "&&TMP$#, ", 9);
  STRING_LITERAL(T839829468_577, "&&TMP$#};$n", 11);
  STRING_LITERAL(T839829468_578, "goto *$#[$#];$n", 15);
  STRING_LITERAL(T839829468_579, "range notation not available for computed goto", 46);
  STRING_LITERAL(T839829468_580, "TMP$#:$n", 8);
  STRING_LITERAL(T839829468_581, "#nimProfile();$n", 16);
  STRING_LITERAL(T839829468_582, "\'goto\' target must be a literal value", 37);
  STRING_LITERAL(T839829468_583, "goto NIMSTATE_$#;$n", 19);
  STRING_LITERAL(T839829468_584, "$1 = ($2*) #nimGetProcAddr($3, $4);$n", 37);
  STRING_LITERAL(T839829468_585, "$2* $1;$n", 9);
  STRING_LITERAL(T839829468_586, "#dbgRegisterGlobal($1, &$2, $3);$n", 34);
  STRING_LITERAL(T839829468_587, "#nimGCvisit((void*)$1, 0);$n", 28);
  STRING_LITERAL(T839829468_588, "N_NIMCALL(void, $1)(void)", 25);
  STRING_LITERAL(T839829468_589, "#nimRegisterGlobalMarker($1);$n", 31);
  STRING_LITERAL(T839829468_590, "$#($#);$n", 9);
  STRING_LITERAL(T839829468_591, "$# = $#;$n", 10);
  STRING_LITERAL(T839829468_592, "genVarTuple", 11);
  STRING_LITERAL(T839829468_593, "genConstStmt", 12);
  STRING_LITERAL(T839829468_594, "for statement not eliminated", 28);
  STRING_LITERAL(T839829468_595, "if (#eqStrings($1, $2)) goto $3;$n", 34);
  STRING_LITERAL(T839829468_596, "switch (#hashString($1) & $2) {$n", 33);
  STRING_LITERAL(T839829468_597, "case $1: $n$2break;$n", 21);
  STRING_LITERAL(T839829468_598, "goto LA$1;$n", 12);
  STRING_LITERAL(T839829468_599, "LA$1: ;$n", 9);
  STRING_LITERAL(T839829468_600, "if ($1 >= $2 && $1 <= $3) goto $4;$n", 36);
  STRING_LITERAL(T839829468_601, "if ($1 == $2) goto $3;$n", 24);
  STRING_LITERAL(T839829468_602, "NIMSTATE_$#:$n", 14);
  STRING_LITERAL(T839829468_603, "switch ($1) {$n", 15);
  STRING_LITERAL(T839829468_604, "default: __assume(0);$n", 23);
  STRING_LITERAL(T839829468_605, "#popSafePoint();$n", 18);
  STRING_LITERAL(T839829468_606, "#popCurrentException();$n", 25);
  STRING_LITERAL(T839829468_607, "if ($1.status != 0) #popCurrentException();$n", 45);
  STRING_LITERAL(T839829468_608, "goto BeforeRet;$n", 17);
  STRING_LITERAL(T839829468_609, "no loop to break", 16);
  STRING_LITERAL(T839829468_610, "extern $1", 9);
  STRING_LITERAL(T839829468_611, "#FieldDiscriminantCheck((NI)(NU)($1), (NI)(NU)($2), $3, $4);$n", 62);
  STRING_LITERAL(T839829468_612, "genAsmOrEmitStmt()", 18);
  STRING_LITERAL(T839829468_613, "\"", 1);
  STRING_LITERAL(T839829468_614, "\\n\"\012", 4);
  STRING_LITERAL(T839829468_615, "Exception", 9);
  STRING_LITERAL(T839829468_616, "E_Base", 6);
  STRING_LITERAL(T839829468_617, "try {$n", 7);
  STRING_LITERAL(T839829468_618, "} catch (NimException& $1) {$n", 30);
  STRING_LITERAL(T839829468_619, "#setFrame((TFrame*)&FR);$n", 26);
  STRING_LITERAL(T839829468_620, "else ", 5);
  STRING_LITERAL(T839829468_621, "#isObj($1.exp->m_type, $2)", 26);
  STRING_LITERAL(T839829468_622, "if ($1) ", 8);
  STRING_LITERAL(T839829468_623, "throw;$n", 8);
  STRING_LITERAL(T839829468_624, "<setjmp.h>", 10);
  STRING_LITERAL(T839829468_625, "#TSafePoint $1;$n", 17);
  STRING_LITERAL(T839829468_626, "#pushSafePoint(&$1);$n", 22);
  STRING_LITERAL(T839829468_627, "nimStdSetjmp", 12);
  STRING_LITERAL(T839829468_628, "$1.status = setjmp($1.context);$n", 33);
  STRING_LITERAL(T839829468_629, "nimSigSetjmp", 12);
  STRING_LITERAL(T839829468_630, "$1.status = sigsetjmp($1.context, 0);$n", 39);
  STRING_LITERAL(T839829468_631, "nimRawSetjmp", 12);
  STRING_LITERAL(T839829468_632, "$1.status = _setjmp($1.context);$n", 34);
  STRING_LITERAL(T839829468_633, "if ($1.status == 0) {$n", 23);
  STRING_LITERAL(T839829468_634, "else {$n", 8);
  STRING_LITERAL(T839829468_635, "else", 4);
  STRING_LITERAL(T839829468_636, "$1.status = 0;$n", 16);
  STRING_LITERAL(T839829468_637, "#isObj(#getCurrentException()->Sup.m_type, $1)", 46);
  STRING_LITERAL(T839829468_638, "#isObj(#getCurrentException()->m_type, $1)", 42);
  STRING_LITERAL(T839829468_639, "if ($1) {$n", 11);
  STRING_LITERAL(T839829468_640, "if ($1.status != 0) #reraiseException();$n", 42);
  STRING_LITERAL(T839829468_641, "#raiseException((#Exception*)$1, $2);$n", 39);
  STRING_LITERAL(T839829468_642, "#reraiseException();$n", 22);
  STRING_LITERAL(T839829468_643, "/*TYPESECTION*/", 15);
  STRING_LITERAL(T839829468_644, "/*VARSECTION*/", 14);
  STRING_LITERAL(T839829468_645, "/*INCLUDESECTION*/", 18);
  STRING_LITERAL(T839829468_646, "bp", 2);
  STRING_LITERAL(T839829468_647, "#dbgRegisterBreakpoint($1, (NCSTRING)$2, (NCSTRING)$3);$n", 57);
  STRING_LITERAL(T839829468_648, "#dbgRegisterWatchpoint($1, (NCSTRING)$2, $3);$n", 47);
  STRING_LITERAL(T839829468_649, "#pragma omp parallel for $4$nfor ($1 = $2; $1 <= $3; ++$1)", 58);
  STRING_LITERAL(T839829468_651, "compiler/ccgstmts.nim", 21);
  NIM_CONST TY205018 T839829468_650 = {((NimStringDesc*) &T839829468_651),
  ((NI) 145)}
  ;
  STRING_LITERAL(T839829468_652, "STATE$1: ;$n", 12);
  STRING_LITERAL(T839829468_653, "case -1: goto BeforeRet;$n", 26);
  STRING_LITERAL(T839829468_654, "case $1: goto STATE$1;$n", 24);
  STRING_LITERAL(T839829468_655, "if (((NI*) $1)[0] < 0) break;$n", 31);
  STRING_LITERAL(T839829468_656, "if ((((NI*) $1.ClEnv)[0]) < 0) break;$n", 39);
  STRING_LITERAL(T839829468_657, "); unknown node kind", 20);
  NIM_CONST TY205018 T839829468_658 = {((NimStringDesc*) &T839829468_651),
  ((NI) 1122)}
  ;
  STRING_LITERAL(T839829468_659, "Init000", 7);
  STRING_LITERAL(T839829468_660, "DatInit000", 10);
  STRING_LITERAL(T839829468_661, "NIM_EXTERNC N_NOINLINE(void, $1)(void);$N", 41);
  STRING_LITERAL(T839829468_662, "\011$1();$N", 8);
  STRING_LITERAL(T839829468_663, "N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_CDECL(void, NimMa"
  "in)(void) {$N\011void (*volatile inner)();$N\011PreMain();$N\011inner = N"
  "imMainInner;$N$2\011(*inner)();$N}$N$N", 162);
  STRING_LITERAL(T839829468_664, "N_STDCALL(int, WinMain)(HINSTANCE hCurInstance, $N             "
  "           HINSTANCE hPrevInstance, $N                        LP"
  "STR lpCmdLine, int nCmdShow) {$N\011NimMain();$N\011return nim_program"
  "_result;$N}$N$N", 206);
  STRING_LITERAL(T839829468_665, "N_LIB_EXPORT N_CDECL(void, NimMainInner)(void) {$N$1}$N$NN_CDEC"
  "L(void, NimMain)(void) {$N\011void (*volatile inner)();$N\011PreMain()"
  ";$N\011inner = NimMainInner;$N$2\011(*inner)();$N}$N$N", 175);
  STRING_LITERAL(T839829468_666, "BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, $N    "
  "                LPVOID lpvReserved) {$N\011if(fwdreason == DLL_PROC"
  "ESS_ATTACH) {$N\011NimMain();$N}$N\011return 1;$N}$N$N", 175);
  STRING_LITERAL(T839829468_667, "<windows.h>", 11);
  STRING_LITERAL(T839829468_668, "void NIM_POSIX_INIT NimMainInit(void) {$N\011NimMain();$N}$N$N", 59);
  STRING_LITERAL(T839829468_669, "int cmdCount;$Nchar** cmdLine;$Nchar** gEnv;$NN_CDECL(void, Nim"
  "MainInner)(void) {$N$1}$N$NN_CDECL(void, NimMain)(void) {$N\011void"
  " (*volatile inner)();$N\011PreMain();$N\011inner = NimMainInner;$N$2\011("
  "*inner)();$N}$N$N", 208);
  STRING_LITERAL(T839829468_670, "int main(void) {$N\011NimMain();$N\011return 0;$N}$N$N", 48);
  STRING_LITERAL(T839829468_671, "int main(int argc, char** args, char** env) {$N\011cmdLine = args;"
  "$N\011cmdCount = argc;$N\011gEnv = env;$N\011NimMain();$N\011return nim_prog"
  "ram_result;$N}$N$N", 145);
  STRING_LITERAL(T839829468_672, "dbgRegisterBreakpoint", 21);
  STRING_LITERAL(T839829468_673, "dbgRegisterFilename", 19);
  STRING_LITERAL(T839829468_674, "dbgRegisterFilename($1);$N", 26);
  STRING_LITERAL(T839829468_675, "\011#initStackBottomWith((void *)&inner);$N", 40);
  STRING_LITERAL(T839829468_676, "void PreMainInner() {$N\011systemInit000();$N$1$2$3}$N$Nvoid PreMa"
  "in() {$N\011void (*volatile inner)();$N\011systemDatInit000();$N\011inner"
  " = PreMainInner;$N$4$5\011(*inner)();$N}$N$N", 168);
  STRING_LITERAL(T839829468_677, "\011#initThreadVarsEmulation();$N", 30);
  STRING_LITERAL(T839829468_678, "still forwarded: ", 17);
  STRING_LITERAL(T839829468_679, "NIM_EXTERNC N_NOINLINE(void, $1)(void) {$N", 42);
  STRING_LITERAL(T839829468_680, "static #TNimNode $1[$2];$n", 26);
  STRING_LITERAL(T839829468_681, "static #TNimType $1[$2];$n", 26);
  STRING_LITERAL(T839829468_682, "\011TFrame FR; FR.len = 0;$N", 25);
  STRING_LITERAL(T839829468_683, "}$N$N", 5);
  STRING_LITERAL(T839829468_684, "N_NIMCALL(void, nimLoadProcs$1)(void) {$2}$N$N", 46);
  STRING_LITERAL(T839829468_685, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2016 Andreas Rump"
  "f */$N/* The generated code is subject to the original license. "
  "*/$N", 131);
  STRING_LITERAL(T839829468_686, "0.15.0", 6);
  STRING_LITERAL(T839829468_687, "/* Generated by Nim Compiler v$1 */$N/*   (c) 2016 Andreas Rump"
  "f */$N/* The generated code is subject to the original license. "
  "*/$N/* Compiled for: $2, $3, $4 */$N/* Command for C compiler:$n"
  "   $5 */$N", 201);
  extern NIM_CONST TY178082 Os_178068_4151366050;
  extern NIM_CONST TY178510 Cpu_178496_4151366050;
  STRING_LITERAL(T839829468_688, "#define NIM_INTBITS $1", 22);
  STRING_LITERAL(T839829468_689, "typedef struct {$1} NimThreadVars;$n", 36);
  STRING_LITERAL(T839829468_690, "#include \"nimbase.h\"", 20);
  STRING_LITERAL(T839829468_691, "#include \"$1\"$N", 15);
  STRING_LITERAL(T839829468_692, "#include $1$N", 13);
  STRING_LITERAL(T839829468_693, "extern \"C\"", 10);
  STRING_LITERAL(T839829468_694, "$#NI NimThreadVarsSize(){return (NI)sizeof(NimThreadVars);}$n", 61);
  STRING_LITERAL(T839829468_695, "__$1__", 6);
  STRING_LITERAL(T839829468_696, "#ifndef $1$n#define $1$n", 24);
  STRING_LITERAL(T839829468_697, "N_CDECL(void, NimMain)(void);$n", 31);
  STRING_LITERAL(T839829468_698, "#endif /* $1 */$n", 17);
  Tcgen531027* generatedheader_534201_839829468;
  extern TNimType NTI531015; /* BModule */
  Ropeobj180006* indent_534655_839829468;
  extern TNimType NTI180004; /* Rope */
  extern Gcheap49818 gch_49858_1689653243;
  Ropeobj180006* nimtv_540656_839829468;
  Ttypeseq294836* nimtvdeps_540674_839829468;
  extern TNimType NTI294836; /* TTypeSeq */
  Intset270030 nimtvdeclared_540675_839829468;
  extern TNimType NTI270030; /* IntSet */
  NI breakpointid_550860_839829468;
  Ropeobj180006* gbreakpoints_550861_839829468;
  extern TY531153* gmodules_531170_3723162438;
  extern TNimType NTI531027; /* TCGen */
  extern Debuginfo205009 gdebuginfo_205470_1926258066;
  extern Toption171009Set goptions_171128_2607990831;
  extern TNimType NTI294804; /* TSymSeq */
  extern Tglobaloption171013Set gglobaloptions_171130_2607990831;
  extern NimStringDesc* headerfile_171138_2607990831;
  extern NimStringDesc* gprojectfull_171211_2607990831;
  extern Tcommands171076 gcmd_171132_2607990831;
  extern NI gerrorcounter_194072_155036129;
  extern Ropeobj180006* rnl_180903_2381377266;
  extern NI gforwardedprocscounter_531171_3723162438;
  extern TNimType NTI294244; /* TTypeKind */
  extern TNimType NTI205017; /* seq[(string, int)] */
  extern Tsystemcc275002 ccompiler_275431_2528170400;
  extern NimStringDesc* tnl_178644_4151366050;
  extern NI floatsize_178642_4151366050;
  extern Tgcmode171080 gselectedgc_171133_2607990831;
  extern TNimType NTI294020; /* TNodeKind */
  extern TNimType NTI136002; /* seq[string] */
  extern TNimType NTI294435; /* TSymKind */
  extern TNimType NTI294816; /* TLoc */
  extern NI intsize_178641_4151366050;
  extern TNimType NTI294524; /* TMagic */
  extern TNimType NTI193350; /* seq[Rope] */
  extern TNimType NTI294796; /* TNodeSeq */
  extern Ropeobj180006* mainmodprocs_531148_3723162438;
  extern Ropeobj180006* maindatinit_531151_3723162438;
  extern Ropeobj180006* mainmodinit_531149_3723162438;
  extern Ropeobj180006* othermodsinit_531150_3723162438;
  extern Tsystemos178004 targetos_178629_4151366050;
  extern TY193612* fileinfos_193629_155036129;
  extern Tsystemcpu178452 targetcpu_178627_4151366050;
  extern Ropeobj180006* gmapping_531152_3723162438;
  N_NIMCALL(void, T839829468_2)(void) {
  	nimGCvisit((void*)generatedheader_534201_839829468, 0);
  }
  N_NIMCALL(void, T839829468_3)(void) {
  	nimGCvisit((void*)indent_534655_839829468, 0);
  }
  
  static N_INLINE(Cell47304*, usrtocell_51440_1689653243)(void* usr0) {
  	Cell47304* result0;
  	result0 = (Cell47304*)0;
  	result0 = ((Cell47304*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell47304))))));
  	return result0;
  }
  
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47304* c0) {
  	addzct_51417_1689653243((&gch_49858_1689653243.zct), c0);
  }
  
  static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
  	{
  		Cell47304* c0;
  		if (!!((src0 == NIM_NIL))) goto LA3;
  		c0 = usrtocell_51440_1689653243(src0);
  		(*c0).refcount += ((NI) 8);
  	}
  	LA3: ;
  	{
  		Cell47304* c0;
  		if (!!(((*dest0) == NIM_NIL))) goto LA7;
  		c0 = usrtocell_51440_1689653243((*dest0));
  		{
  			(*c0).refcount -= ((NI) 8);
  			if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
  			rtladdzct_52601_1689653243(c0);
  		}
  		LA11: ;
  	}
  	LA7: ;
  	(*dest0) = src0;
  }
  N_NIMCALL(void, T839829468_5)(void) {
  	nimGCvisit((void*)nimtv_540656_839829468, 0);
  }
  N_NIMCALL(void, T839829468_6)(void) {
  	nimGCvisit((void*)nimtvdeps_540674_839829468, 0);
  }
  
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
  	Cell47304* c0;
  	c0 = usrtocell_51440_1689653243(p0);
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  N_NIMCALL(void, T839829468_7)(void) {
  	nimGCvisit((void*)nimtvdeclared_540675_839829468.head, 0);
  	nimGCvisit((void*)nimtvdeclared_540675_839829468.data, 0);
  }
  N_NIMCALL(void, T839829468_8)(void) {
  	nimGCvisit((void*)gbreakpoints_550861_839829468, 0);
  }
  
  N_NIMCALL(Tcgen531027*, getcgenmodule_534226_839829468)(Tsym294834* s0) {
  	Tcgen531027* result0;
  	result0 = (Tcgen531027*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (((NI) 0) <= (*s0).position);
  		if (!(LOC3)) goto LA4;
  		LOC3 = ((*s0).position < (gmodules_531170_3723162438 ? gmodules_531170_3723162438->Sup.len : 0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = gmodules_531170_3723162438->data[(*s0).position];
  	}
  	goto LA1;
  	LA5: ;
  	{
  		result0 = NIM_NIL;
  	}
  	LA1: ;
  	return result0;
  }
  
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0) {
  	void* LOC1;
  	LOC1 = (void*)0;
  	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
  }
  
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
  	copymem_7485_1689653243(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
  	(*dest0).Sup.len += (*src0).Sup.len;
  }
  
  N_NIMCALL(NU32, hashowner_534977_839829468)(Tsym294834* s0) {
  	NU32 result0;
  	Tsym294834* m0;
  	Tsym294834* p0;
  	result0 = (NU32)0;
  	m0 = s0;
  	{
  		while (1) {
  			if (!!(((*m0).kind == ((Tsymkind294435) 6)))) goto LA2;
  			m0 = (*m0).owner;
  		} LA2: ;
  	}
  	p0 = (*m0).owner;
  	result0 = register_205121_1926258066((&gdebuginfo_205470_1926258066), (*(*p0).name).s, (*(*m0).name).s);
  	return result0;
  }
  
  static N_INLINE(void, incref_53419_1689653243)(Cell47304* c0) {
  	(*c0).refcount = (NI)((NU32)((*c0).refcount) + (NU32)(((NI) 8)));
  }
  
  static N_INLINE(void, decref_53001_1689653243)(Cell47304* c0) {
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  
  static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
  	{
  		Cell47304* LOC5;
  		if (!!((src0 == NIM_NIL))) goto LA3;
  		LOC5 = (Cell47304*)0;
  		LOC5 = usrtocell_51440_1689653243(src0);
  		incref_53419_1689653243(LOC5);
  	}
  	LA3: ;
  	{
  		Cell47304* LOC10;
  		if (!!(((*dest0) == NIM_NIL))) goto LA8;
  		LOC10 = (Cell47304*)0;
  		LOC10 = usrtocell_51440_1689653243((*dest0));
  		decref_53001_1689653243(LOC10);
  	}
  	LA8: ;
  	(*dest0) = src0;
  }
  
  N_NIMCALL(Toption171009Set, initprocoptions_564635_839829468)(Tcgen531027* m0) {
  	Toption171009Set result0;
  	memset((void*)(&result0), 0, sizeof(result0));
  	{
  		if (!(((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 13))&31U)))!=0)) goto LA3;
  		result0 = (goptions_171128_2607990831 & ~ 32768);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = goptions_171128_2607990831;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Tcproc531021*, newpreinitproc_564625_839829468)(Tcgen531027* m0) {
  	Tcproc531021* result0;
  	result0 = (Tcproc531021*)0;
  	result0 = newproc_531206_3723162438(NIM_NIL, m0);
  	(*result0).labels = ((NI) 100000);
  	return result0;
  }
  
  N_NIMCALL(Tcproc531021*, newpostinitproc_564630_839829468)(Tcgen531027* m0) {
  	Tcproc531021* result0;
  	result0 = (Tcproc531021*)0;
  	result0 = newproc_531206_3723162438(NIM_NIL, m0);
  	(*result0).labels = ((NI) 200000);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettempname_535596_839829468)(Tcgen531027* m0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rope_180401_2381377266(((NI64) ((*m0).labels)));
  	result0 = HEX26_180418_2381377266((*m0).tmpbase, LOC1);
  	(*m0).labels += ((NI) 1);
  	return result0;
  }
  
  N_NIMCALL(Tcgen531027*, rawnewmodule_564663_839829468)(Tsym294834* module0, NimStringDesc* filename0) {
  	Tcgen531027* result0;
  	NimStringDesc* LOC1;
  	NU32 LOC2;
  	NimStringDesc* LOC3;
  	NimStringDesc* LOC4;
  	NimStringDesc* LOC5;
  	result0 = (Tcgen531027*)0;
  	result0 = (Tcgen531027*) newObj((&NTI531015), sizeof(Tcgen531027));
  	(*result0).Sup.Sup.m_type = (&NTI531027);
  	LOC1 = (NimStringDesc*)0;
  	LOC2 = (NU32)0;
  	LOC2 = hashowner_534977_839829468(module0);
  	LOC3 = (NimStringDesc*)0;
  	LOC3 = HEX24_8401_1689653243(((NU64) (LOC2)));
  	LOC1 = rawNewString(LOC3->Sup.len + 2);
  appendString(LOC1, ((NimStringDesc*) &T839829468_11));
  appendString(LOC1, LOC3);
  appendString(LOC1, ((NimStringDesc*) &T839829468_12));
  	asgnRefNoCycle((void**) (&(*result0).tmpbase), rope_180277_2381377266(LOC1));
  	initlinkedlist_148031_3771138726((&(*result0).headerfiles));
  	initintset_270885_2627731572((&(*result0).declaredthings));
  	initintset_270885_2627731572((&(*result0).declaredprotos));
  	LOC4 = (NimStringDesc*)0;
  	LOC4 = (*result0).cfilename; (*result0).cfilename = copyStringRC1(filename0);
  	if (LOC4) nimGCunrefNoCycle(LOC4);
  	LOC5 = (NimStringDesc*)0;
  	LOC5 = (*result0).filename; (*result0).filename = copyStringRC1(filename0);
  	if (LOC5) nimGCunrefNoCycle(LOC5);
  	initidtable_298019_850551059((&(*result0).typecache));
  	initidtable_298019_850551059((&(*result0).forwtypecache));
  	asgnRefNoCycle((void**) (&(*result0).module), module0);
  	initintset_270885_2627731572((&(*result0).typeinfomarker));
  	asgnRef((void**) (&(*result0).initproc), newproc_531206_3723162438(NIM_NIL, result0));
  	(*(*result0).initproc).options = initprocoptions_564635_839829468(result0);
  	asgnRef((void**) (&(*result0).preinitproc), newpreinitproc_564625_839829468(result0));
  	asgnRef((void**) (&(*result0).postinitproc), newpostinitproc_564630_839829468(result0));
  	initnodetable_298085_850551059((&(*result0).datacache));
  	if ((*result0).typestack) nimGCunrefNoCycle((*result0).typestack);
  	(*result0).typestack = (Ttypeseq294836*) newSeqRC1((&NTI294836), 0);
  	if ((*result0).forwardedprocs) nimGCunrefNoCycle((*result0).forwardedprocs);
  	(*result0).forwardedprocs = (Tsymseq294804*) newSeqRC1((&NTI294804), 0);
  	asgnRefNoCycle((void**) (&(*result0).typenodesname), gettempname_535596_839829468(result0));
  	asgnRefNoCycle((void**) (&(*result0).nimtypesname), gettempname_535596_839829468(result0));
  	{
  		if (!(((*module0).flags &(1U<<((NU)(((Tsymflag294184) 13))&31U)))!=0)) goto LA8;
  		(*result0).flags |= ((NU8)1)<<((((Codegenflag531025) 0))%(sizeof(NU8)*8));
  		(*(*result0).preinitproc).options &= ~(((NU32)1) << ((((Toption171009) 15)) % (sizeof(NU32)*8)));
  		(*(*result0).postinitproc).options &= ~(((NU32)1) << ((((Toption171009) 15)) % (sizeof(NU32)*8)));
  	}
  	LA8: ;
  	return result0;
  }
  
  N_NIMCALL(Tcgen531027*, rawnewmodule_565038_839829468)(Tsym294834* module0) {
  	Tcgen531027* result0;
  	NimStringDesc* LOC1;
  	result0 = (Tcgen531027*)0;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = tofullpath_194264_155036129(((NI32) ((*module0).position)));
  	result0 = rawnewmodule_564663_839829468(module0, LOC1);
  	return result0;
  }
  
  N_NIMCALL(Tcgen531027*, newmodule_565045_839829468)(Tsym294834* module0) {
  	Tcgen531027* result0;
  	result0 = (Tcgen531027*)0;
  	{
  		Tcgen531027* LOC3;
  		NimStringDesc* LOC6;
  		LOC3 = (Tcgen531027*)0;
  		LOC3 = getcgenmodule_534226_839829468(module0);
  		if (!!((LOC3 == NIM_NIL))) goto LA4;
  		LOC6 = (NimStringDesc*)0;
  		LOC6 = HEX24_198185_1689653243(T839829468_9);
  		internalerror_198113_155036129(LOC6);
  	}
  	LA4: ;
  	result0 = rawnewmodule_565038_839829468(module0);
  	{
  		if (!((gmodules_531170_3723162438 ? gmodules_531170_3723162438->Sup.len : 0) <= (*module0).position)) goto LA9;
  		gmodules_531170_3723162438 = (TY531153*) setLengthSeq(&(gmodules_531170_3723162438)->Sup, sizeof(Tcgen531027*), ((NI) ((NI)((*module0).position + ((NI) 1)))));
  	}
  	LA9: ;
  	asgnRef((void**) (&gmodules_531170_3723162438->data[(*module0).position]), result0);
  	{
  		if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 2))&63U)))!=0)) goto LA13;
  		{
  			NimStringDesc* LOC19;
  			NimStringDesc* LOC20;
  			if (!(((*module0).flags &(1U<<((NU)(((Tsymflag294184) 25))&31U)))!=0)) goto LA17;
  			LOC19 = (NimStringDesc*)0;
  			LOC20 = (NimStringDesc*)0;
  			LOC20 = tofilename_194260_155036129(((NI32) ((*module0).position)));
  			LOC19 = rawNewString(LOC20->Sup.len + 28);
  appendString(LOC19, ((NimStringDesc*) &T839829468_13));
  appendString(LOC19, LOC20);
  			internalerror_198113_155036129(LOC19);
  		}
  		LA17: ;
  	}
  	LA13: ;
  	return result0;
  }
  
  N_NIMCALL(Tpasscontext343002*, myopen_565115_839829468)(Tsym294834* module0) {
  	Tpasscontext343002* result0;
  	Tcgen531027* LOC1;
  	result0 = (Tpasscontext343002*)0;
  	LOC1 = (Tcgen531027*)0;
  	LOC1 = newmodule_565045_839829468(module0);
  	result0 = &LOC1->Sup;
  	{
  		NIM_BOOL LOC4;
  		NimStringDesc* f0;
  		NimStringDesc* LOC13;
  		NimStringDesc* LOC14;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = ((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 27))&63U)))!=0);
  		if (!(LOC4)) goto LA5;
  		LOC4 = (generatedheader_534201_839829468 == NIM_NIL);
  		LA5: ;
  		if (!LOC4) goto LA6;
  		{
  			if (!(((NI) 0) < (headerfile_171138_2607990831 ? headerfile_171138_2607990831->Sup.len : 0))) goto LA10;
  			f0 = headerfile_171138_2607990831;
  		}
  		goto LA8;
  		LA10: ;
  		{
  			f0 = gprojectfull_171211_2607990831;
  		}
  		LA8: ;
  		LOC13 = (NimStringDesc*)0;
  		LOC13 = completecfilepath_275854_2528170400(f0, NIM_TRUE);
  		LOC14 = (NimStringDesc*)0;
  		LOC14 = noschangeFileExt(LOC13, ((NimStringDesc*) &T839829468_14));
  		asgnRef((void**) (&generatedheader_534201_839829468), rawnewmodule_564663_839829468(module0, LOC14));
  		(*generatedheader_534201_839829468).flags |= ((NU8)1)<<((((Codegenflag531025) 3))%(sizeof(NU8)*8));
  	}
  	LA6: ;
  	return result0;
  }
  
  N_NIMCALL(NimStringDesc*, getcfile_565204_839829468)(Tcgen531027* m0) {
  	NimStringDesc* result0;
  	NimStringDesc* ext0;
  	NimStringDesc* LOC13;
  	NimStringDesc* LOC14;
  	result0 = (NimStringDesc*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		ext0 = copyString(((NimStringDesc*) &T839829468_15));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NIM_BOOL LOC8;
  		LOC8 = (NIM_BOOL)0;
  		LOC8 = (gcmd_171132_2607990831 == ((Tcommands171076) 3));
  		if (LOC8) goto LA9;
  		LOC8 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 28))&31U)))!=0);
  		LA9: ;
  		if (!LOC8) goto LA10;
  		ext0 = copyString(((NimStringDesc*) &T839829468_16));
  	}
  	goto LA1;
  	LA10: ;
  	{
  		ext0 = copyString(((NimStringDesc*) &T839829468_17));
  	}
  	LA1: ;
  	LOC13 = (NimStringDesc*)0;
  	LOC13 = withpackagename_172073_2607990831((*m0).cfilename);
  	LOC14 = (NimStringDesc*)0;
  	LOC14 = completecfilepath_275854_2528170400(LOC13, NIM_TRUE);
  	result0 = noschangeFileExt(LOC14, ext0);
  	return result0;
  }
  
  N_NIMCALL(Tpasscontext343002*, myopencached_565249_839829468)(Tsym294834* module0, Trodreader334021* rd0) {
  	Tpasscontext343002* result0;
  	Tcgen531027* m0;
  	NimStringDesc* LOC1;
  	result0 = (Tpasscontext343002*)0;
  	m0 = newmodule_565045_839829468(module0);
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getcfile_565204_839829468(m0);
  	readmergeinfo_532613_2760143328(LOC1, m0);
  	result0 = &m0->Sup;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, skipcodegen_343085_2355241294)(Tnode294802* n0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = (((NI) 0) < gerrorcounter_194072_155036129);
  	return result0;
  }
  
  N_NIMCALL(void, fillloc_534282_839829468)(Tloc294816* a0, Tlockind294808 k0, Ttype294840* typ0, Ropeobj180006* r0, Tstorageloc294812 s0) {
  	{
  		if (!((*a0).k == ((Tlockind294808) 0))) goto LA3;
  		(*a0).k = k0;
  		unsureAsgnRef((void**) (&(*a0).t), typ0);
  		(*a0).s = s0;
  		{
  			if (!((*a0).r == NIM_NIL)) goto LA7;
  			unsureAsgnRef((void**) (&(*a0).r), r0);
  		}
  		LA7: ;
  	}
  	LA3: ;
  }
  
  N_NIMCALL(NIM_BOOL, iskeyword_534960_839829468)(Tident201010* w0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	switch ((*w0).Sup.id) {
  	case ((NI) 200) ... ((NI) 262):
  	case ((NI) 4) ... ((NI) 70):
  	case ((NI) 138):
  	{
  		result0 = NIM_TRUE;
  		goto BeforeRet;
  	}
  	break;
  	default:
  	{
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, manglename_535205_839829468)(Tsym294834* s0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = (*s0).loc.r;
  	{
  		NIM_BOOL keeporigname0;
  		NIM_BOOL LOC5;
  		NIM_BOOL LOC6;
  		NIM_BOOL LOC9;
  		NimStringDesc* LOC10;
  		if (!(result0 == NIM_NIL)) goto LA3;
  		LOC5 = (NIM_BOOL)0;
  		LOC6 = (NIM_BOOL)0;
  		LOC6 = ((2824 &(1U<<((NU)((*s0).kind)&31U)))!=0);
  		if (!(LOC6)) goto LA7;
  		LOC6 = ((IL64(2149580812) & (*s0).flags) == 0);
  		LA7: ;
  		LOC5 = LOC6;
  		if (!(LOC5)) goto LA8;
  		LOC9 = (NIM_BOOL)0;
  		LOC9 = iskeyword_534960_839829468((*s0).name);
  		LOC5 = !(LOC9);
  		LA8: ;
  		keeporigname0 = LOC5;
  		LOC10 = (NimStringDesc*)0;
  		LOC10 = mangle_530847_2036603609((*(*s0).name).s);
  		result0 = rope_180277_2381377266(LOC10);
  		{
  			if (!keeporigname0) goto LA13;
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_18));
  		}
  		goto LA11;
  		LA13: ;
  		{
  			TY535289 LOC16;
  			Ropeobj180006* LOC17;
  			Ropeobj180006* LOC18;
  			TY535289 LOC19;
  			Ropeobj180006* LOC20;
  			NU32 LOC21;
  			Ropeobj180006* LOC22;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC17 = (Ropeobj180006*)0;
  			LOC17 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_12), LOC16, 0);
  			add_180482_2381377266(&result0, LOC17);
  			LOC18 = (Ropeobj180006*)0;
  			LOC18 = rope_180401_2381377266(((NI64) ((*s0).Sup.id)));
  			add_180482_2381377266(&result0, LOC18);
  			memset((void*)LOC19, 0, sizeof(LOC19));
  			LOC20 = (Ropeobj180006*)0;
  			LOC20 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_12), LOC19, 0);
  			add_180482_2381377266(&result0, LOC20);
  			LOC21 = (NU32)0;
  			LOC21 = hashowner_534977_839829468(s0);
  			LOC22 = (Ropeobj180006*)0;
  			LOC22 = rope_180401_2381377266(((NI64) (LOC21)));
  			add_180482_2381377266(&result0, LOC22);
  		}
  		LA11: ;
  		asgnRefNoCycle((void**) (&(*s0).loc.r), result0);
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(void, fillprocloc_541201_839829468)(Tsym294834* sym0) {
  	{
  		Ropeobj180006* LOC5;
  		if (!((*sym0).loc.k == ((Tlockind294808) 0))) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = manglename_535205_839829468(sym0);
  		fillloc_534282_839829468((&(*sym0).loc), ((Tlockind294808) 7), (*sym0).typ, LOC5, ((Tstorageloc294812) 2));
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, useheader_534369_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	{
  		NimStringDesc* LOC5;
  		NIM_BOOL LOC6;
  		if (!(((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 6))&15U)))!=0)) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = getstr_299230_850551059((*(*sym0).annex).path);
  		LOC6 = (NIM_BOOL)0;
  		LOC6 = includestr_148249_3771138726((&(*m0).headerfiles), LOC5);
  	}
  	LA3: ;
  }
  
  static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) {
  	(*dest0).data[((*dest0).Sup.len)- 0] = c0;
  	(*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0;
  	(*dest0).Sup.len += ((NI) 1);
  }
  
  N_NIMCALL(NIM_BOOL, isactivated_563431_839829468)(Tsym294834* prc0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = !(((*prc0).typ == NIM_NIL));
  	return result0;
  }
  
  N_NIMCALL(void, addforwardedproc_534203_839829468)(Tcgen531027* m0, Tsym294834* prc0) {
  	(*m0).forwardedprocs = (Tsymseq294804*) incrSeqV2(&((*m0).forwardedprocs)->Sup, sizeof(Tsym294834*));
  	asgnRefNoCycle((void**) (&(*m0).forwardedprocs->data[(*m0).forwardedprocs->Sup.len]), prc0);
  	++(*m0).forwardedprocs->Sup.len;
  	gforwardedprocscounter_531171_3723162438 += ((NI) 1);
  }
  
  N_NIMCALL(void, genclinedir_534725_839829468)(Ropeobj180006** r0, NimStringDesc* filename0, NI line0) {
  	{
  		TY534811 LOC5;
  		NimStringDesc* LOC6;
  		if (!((goptions_171128_2607990831 &(1U<<((NU)(((Toption171009) 10))&31U)))!=0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC6 = (NimStringDesc*)0;
  		LOC6 = makesinglelinecstring_530835_2036603609(filename0);
  		LOC5[0] = rope_180277_2381377266(LOC6);
  		LOC5[1] = rope_180401_2381377266(((NI64) (line0)));
  		addf_181205_2381377266(r0, ((NimStringDesc*) &T839829468_21), LOC5, 2);
  	}
  	LA3: ;
  }
  
  static N_INLINE(NI, tolinenumber_194415_155036129)(Tlineinfo193336 info0) {
  	NI result0;
  	result0 = (NI)0;
  	result0 = ((NI) (info0.line));
  	return result0;
  }
  
  N_NIMCALL(NI, safelinenm_534721_839829468)(Tlineinfo193336 info0) {
  	NI result0;
  	result0 = (NI)0;
  	result0 = tolinenumber_194415_155036129(info0);
  	{
  		if (!(result0 < ((NI) 0))) goto LA3;
  		result0 = ((NI) 0);
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(void, genclinedir_534813_839829468)(Ropeobj180006** r0, Tlineinfo193336 info0) {
  	NimStringDesc* LOC1;
  	NI LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = tofullpath_194264_155036129(info0.fileindex);
  	LOC2 = (NI)0;
  	LOC2 = safelinenm_534721_839829468(info0);
  	genclinedir_534725_839829468(r0, LOC1, LOC2);
  }
  
  N_NIMCALL(Tctypekind531007, mapsettype_535389_839829468)(Ttype294840* typ0) {
  	Tctypekind531007 result0;
  	NI64 LOC1;
  	result0 = (Tctypekind531007)0;
  	LOC1 = (NI64)0;
  	LOC1 = getsize_322135_3876443242(typ0);
  	switch (((NI) (LOC1))) {
  	case ((NI) 1):
  	{
  		result0 = ((Tctypekind531007) 4);
  	}
  	break;
  	case ((NI) 2):
  	{
  		result0 = ((Tctypekind531007) 5);
  	}
  	break;
  	case ((NI) 4):
  	{
  		result0 = ((Tctypekind531007) 6);
  	}
  	break;
  	case ((NI) 8):
  	{
  		result0 = ((Tctypekind531007) 7);
  	}
  	break;
  	default:
  	{
  		result0 = ((Tctypekind531007) 17);
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(Tctypekind531007, maptype_535393_839829468)(Ttype294840* typ0) {
  	Tctypekind531007 result0;
  	result0 = (Tctypekind531007)0;
  	switch ((*typ0).kind) {
  	case ((Ttypekind294244) 0):
  	case ((Ttypekind294244) 7):
  	{
  		result0 = ((Tctypekind531007) 0);
  	}
  	break;
  	case ((Ttypekind294244) 1):
  	{
  		result0 = ((Tctypekind531007) 2);
  	}
  	break;
  	case ((Ttypekind294244) 2):
  	{
  		result0 = ((Tctypekind531007) 1);
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		result0 = mapsettype_535389_839829468(typ0);
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 4):
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 48):
  	{
  		result0 = ((Tctypekind531007) 17);
  	}
  	break;
  	case ((Ttypekind294244) 17):
  	case ((Ttypekind294244) 18):
  	{
  		result0 = ((Tctypekind531007) 19);
  	}
  	break;
  	case ((Ttypekind294244) 10):
  	case ((Ttypekind294244) 11):
  	case ((Ttypekind294244) 12):
  	case ((Ttypekind294244) 13):
  	case ((Ttypekind294244) 15):
  	case ((Ttypekind294244) 46):
  	case ((Ttypekind294244) 47):
  	case ((Ttypekind294244) 49):
  	case ((Ttypekind294244) 8):
  	{
  		Ttype294840* LOC8;
  		LOC8 = (Ttype294840*)0;
  		LOC8 = lastson_297377_850551059(typ0);
  		result0 = maptype_535393_839829468(LOC8);
  	}
  	break;
  	case ((Ttypekind294244) 14):
  	{
  		{
  			NI64 LOC12;
  			LOC12 = (NI64)0;
  			LOC12 = firstord_322001_3876443242(typ0);
  			if (!(LOC12 < IL64(0))) goto LA13;
  			result0 = ((Tctypekind531007) 6);
  		}
  		goto LA10;
  		LA13: ;
  		{
  			NI64 LOC16;
  			LOC16 = (NI64)0;
  			LOC16 = getsize_322135_3876443242(typ0);
  			switch (((NI) (LOC16))) {
  			case ((NI) 1):
  			{
  				result0 = ((Tctypekind531007) 13);
  			}
  			break;
  			case ((NI) 2):
  			{
  				result0 = ((Tctypekind531007) 14);
  			}
  			break;
  			case ((NI) 4):
  			{
  				result0 = ((Tctypekind531007) 6);
  			}
  			break;
  			case ((NI) 8):
  			{
  				result0 = ((Tctypekind531007) 7);
  			}
  			break;
  			default:
  			{
  				internalerror_198113_155036129(((NimStringDesc*) &T839829468_25));
  			}
  			break;
  			}
  		}
  		LA10: ;
  	}
  	break;
  	case ((Ttypekind294244) 20):
  	{
  		result0 = maptype_535393_839829468((*typ0).sons->data[((NI) 0)]);
  	}
  	break;
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 23):
  	case ((Ttypekind294244) 22):
  	{
  		Ttype294840* base0;
  		Ttype294840* LOC24;
  		LOC24 = (Ttype294840*)0;
  		LOC24 = lastson_297377_850551059(typ0);
  		base0 = skiptypes_298099_850551059(LOC24, IL64(211106232576256));
  		switch ((*base0).kind) {
  		case ((Ttypekind294244) 27):
  		case ((Ttypekind294244) 4):
  		case ((Ttypekind294244) 16):
  		case ((Ttypekind294244) 48):
  		{
  			result0 = ((Tctypekind531007) 18);
  		}
  		break;
  		default:
  		{
  			result0 = ((Tctypekind531007) 20);
  		}
  		break;
  		}
  	}
  	break;
  	case ((Ttypekind294244) 26):
  	{
  		result0 = ((Tctypekind531007) 20);
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	{
  		result0 = ((Tctypekind531007) 22);
  	}
  	break;
  	case ((Ttypekind294244) 25):
  	{
  		{
  			if (!!(((*typ0).callconv == ((Tcallingconvention294002) 8)))) goto LA32;
  			result0 = ((Tctypekind531007) 23);
  		}
  		goto LA30;
  		LA32: ;
  		{
  			result0 = ((Tctypekind531007) 19);
  		}
  		LA30: ;
  	}
  	break;
  	case ((Ttypekind294244) 28):
  	{
  		result0 = ((Tctypekind531007) 21);
  	}
  	break;
  	case ((Ttypekind294244) 29):
  	{
  		result0 = ((Tctypekind531007) 24);
  	}
  	break;
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 44):
  	{
  		result0 = ((Tctypekind531007) ((NI)(((NI) ((NI)(((NI) ((*typ0).kind)) - ((NI) 31)))) + ((NI) 3))));
  	}
  	break;
  	case ((Ttypekind294244) 59):
  	{
  		{
  			Ttype294840* LOC43;
  			if (!!(((*typ0).n == NIM_NIL))) goto LA41;
  			LOC43 = (Ttype294840*)0;
  			LOC43 = lastson_297377_850551059(typ0);
  			result0 = maptype_535393_839829468(LOC43);
  		}
  		goto LA39;
  		LA41: ;
  		{
  			internalerror_198113_155036129(((NimStringDesc*) &T839829468_25));
  		}
  		LA39: ;
  	}
  	break;
  	default:
  	{
  		internalerror_198113_155036129(((NimStringDesc*) &T839829468_25));
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, isimportedcpptype_535476_839829468)(Ttype294840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = !(((*t0).sym == NIM_NIL));
  	if (!(LOC1)) goto LA2;
  	LOC1 = (((*(*t0).sym).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, needscomplexassignment_535509_839829468)(Ttype294840* typ0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = containsgarbagecollectedref_322117_3876443242(typ0);
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, isobjlackingtypefield_535513_839829468)(Ttype294840* typ0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC3;
  	NIM_BOOL LOC4;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((*typ0).kind == ((Ttypekind294244) 17));
  	if (!(LOC1)) goto LA2;
  	LOC3 = (NIM_BOOL)0;
  	LOC4 = (NIM_BOOL)0;
  	LOC4 = (((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 2))&31U)))!=0);
  	if (!(LOC4)) goto LA5;
  	LOC4 = ((*typ0).sons->data[((NI) 0)] == NIM_NIL);
  	LA5: ;
  	LOC3 = LOC4;
  	if (LOC3) goto LA6;
  	LOC3 = ispureobject_322138_3876443242(typ0);
  	LA6: ;
  	LOC1 = LOC3;
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, isinvalidreturntype_535548_839829468)(Ttype294840* rettype0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	{
  		if (!(rettype0 == NIM_NIL)) goto LA3;
  		result0 = NIM_TRUE;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		Tctypekind531007 LOC6;
  		LOC6 = (Tctypekind531007)0;
  		LOC6 = maptype_535393_839829468(rettype0);
  		switch (LOC6) {
  		case ((Tctypekind531007) 17):
  		{
  			Ttype294840* LOC8;
  			LOC8 = (Ttype294840*)0;
  			LOC8 = skiptypes_298099_850551059(rettype0, IL64(211106232576256));
  			result0 = !(((*LOC8).kind == ((Ttypekind294244) 23) || (*LOC8).kind == ((Ttypekind294244) 22) || (*LOC8).kind == ((Ttypekind294244) 21)));
  		}
  		break;
  		case ((Tctypekind531007) 19):
  		{
  			Ttype294840* t0;
  			NIM_BOOL LOC16;
  			NIM_BOOL LOC18;
  			NIM_BOOL LOC20;
  			t0 = skiptypes_298099_850551059(rettype0, IL64(211106232576256));
  			{
  				NIM_BOOL LOC12;
  				LOC12 = (NIM_BOOL)0;
  				LOC12 = isimportedcpptype_535476_839829468(rettype0);
  				if (LOC12) goto LA13;
  				LOC12 = isimportedcpptype_535476_839829468(t0);
  				LA13: ;
  				if (!LOC12) goto LA14;
  				result0 = NIM_FALSE;
  				goto BeforeRet;
  			}
  			LA14: ;
  			LOC16 = (NIM_BOOL)0;
  			LOC16 = needscomplexassignment_535509_839829468(t0);
  			if (LOC16) goto LA17;
  			LOC18 = (NIM_BOOL)0;
  			LOC18 = ((*t0).kind == ((Ttypekind294244) 17));
  			if (!(LOC18)) goto LA19;
  			LOC20 = (NIM_BOOL)0;
  			LOC20 = isobjlackingtypefield_535513_839829468(t0);
  			LOC18 = !(LOC20);
  			LA19: ;
  			LOC16 = LOC18;
  			LA17: ;
  			result0 = LOC16;
  		}
  		break;
  		default:
  		{
  			result0 = NIM_FALSE;
  		}
  		break;
  		}
  	}
  	LA1: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, typename_535292_839829468)(Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NimStringDesc* LOC5;
  		if (!!(((*typ0).sym == NIM_NIL))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = mangle_530847_2036603609((*(*(*typ0).sym).name).s);
  		result0 = rope_180277_2381377266(LOC5);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY535289 LOC7;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_28), LOC7, 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypename_535313_839829468)(Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !(((*typ0).sym == NIM_NIL));
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(((96 & (*(*typ0).sym).flags) == 0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = (*(*typ0).sym).loc.r;
  	}
  	goto LA1;
  	LA5: ;
  	{
  		{
  			Ropeobj180006* LOC12;
  			Ropeobj180006* LOC13;
  			if (!((*typ0).loc.r == NIM_NIL)) goto LA10;
  			LOC12 = (Ropeobj180006*)0;
  			LOC12 = typename_535292_839829468(typ0);
  			LOC13 = (Ropeobj180006*)0;
  			LOC13 = rope_180401_2381377266(((NI64) ((*typ0).Sup.id)));
  			asgnRefNoCycle((void**) (&(*typ0).loc.r), HEX26_180418_2381377266(LOC12, LOC13));
  		}
  		LA10: ;
  		result0 = (*typ0).loc.r;
  	}
  	LA1: ;
  	{
  		NimStringDesc* LOC18;
  		if (!(result0 == NIM_NIL)) goto LA16;
  		LOC18 = (NimStringDesc*)0;
  		LOC18 = rawNewString(reprEnum((NI)(*typ0).kind, (&NTI294244))->Sup.len + 13);
  appendString(LOC18, ((NimStringDesc*) &T839829468_29));
  appendString(LOC18, reprEnum((NI)(*typ0).kind, (&NTI294244)));
  		internalerror_198113_155036129(LOC18);
  	}
  	LA16: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, typenameorliteral_535898_839829468)(Ttype294840* t0, NimStringDesc* literal0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = !(((*t0).sym == NIM_NIL));
  		if (!(LOC4)) goto LA5;
  		LOC4 = (((*(*t0).sym).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0);
  		LA5: ;
  		LOC3 = LOC4;
  		if (!(LOC3)) goto LA6;
  		LOC3 = ((*(*t0).sym).magic == ((Tmagic294524) 0));
  		LA6: ;
  		if (!LOC3) goto LA7;
  		result0 = gettypename_535313_839829468(t0);
  	}
  	goto LA1;
  	LA7: ;
  	{
  		result0 = rope_180277_2381377266(literal0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getsimpletypedesc_535936_839829468)(Tcgen531027* m0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	switch ((*typ0).kind) {
  	case ((Ttypekind294244) 26):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_30));
  	}
  	break;
  	case ((Ttypekind294244) 28):
  	{
  		Ropeobj180006* LOC3;
  		LOC3 = (Ropeobj180006*)0;
  		LOC3 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_31));
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_32));
  	}
  	break;
  	case ((Ttypekind294244) 29):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_33));
  	}
  	break;
  	case ((Ttypekind294244) 1):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_34));
  	}
  	break;
  	case ((Ttypekind294244) 2):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_35));
  	}
  	break;
  	case ((Ttypekind294244) 5):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, ((NimStringDesc*) &T839829468_18));
  	}
  	break;
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 44):
  	{
  		result0 = typenameorliteral_535898_839829468(typ0, Numericaltypetostr_535941_839829468[((*typ0).kind)- 31]);
  	}
  	break;
  	case ((Ttypekind294244) 13):
  	case ((Ttypekind294244) 20):
  	case ((Ttypekind294244) 15):
  	{
  		result0 = getsimpletypedesc_535936_839829468(m0, (*typ0).sons->data[((NI) 0)]);
  	}
  	break;
  	case ((Ttypekind294244) 59):
  	{
  		{
  			Ttype294840* LOC15;
  			if (!!(((*typ0).n == NIM_NIL))) goto LA13;
  			LOC15 = (Ttype294840*)0;
  			LOC15 = lastson_297377_850551059(typ0);
  			result0 = getsimpletypedesc_535936_839829468(m0, LOC15);
  		}
  		goto LA11;
  		LA13: ;
  		{
  			internalerror_198113_155036129(((NimStringDesc*) &T839829468_50));
  		}
  		LA11: ;
  	}
  	break;
  	case ((Ttypekind294244) 11):
  	{
  		Ttype294840* LOC18;
  		LOC18 = (Ttype294840*)0;
  		LOC18 = lastson_297377_850551059(typ0);
  		result0 = getsimpletypedesc_535936_839829468(m0, LOC18);
  	}
  	break;
  	default:
  	{
  		result0 = NIM_NIL;
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, cachegettype_535591_839829468)(Tidtable294850 tab0, Ttype294840* key0) {
  	Ropeobj180006* result0;
  	Tidobj201004* LOC1;
  	TNimObject* LOC2;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Tidobj201004*)0;
  	LOC1 = &key0->Sup;
  	LOC2 = (TNimObject*)0;
  	LOC2 = idtableget_301086_2984716966(tab0, LOC1);
  	result0 = ((Ropeobj180006*) (LOC2));
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypepre_535972_839829468)(Tcgen531027* m0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!(typ0 == NIM_NIL)) goto LA3;
  		result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_26));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = getsimpletypedesc_535936_839829468(m0, typ0);
  		{
  			if (!(result0 == NIM_NIL)) goto LA8;
  			result0 = cachegettype_535591_839829468((*m0).typecache, typ0);
  		}
  		LA8: ;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, isimportedtype_535449_839829468)(Ttype294840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = !(((*t0).sym == NIM_NIL));
  	if (!(LOC1)) goto LA2;
  	LOC1 = (((*(*t0).sym).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(NimStringDesc*, getforwardstructformat_536015_839829468)(Tcgen531027* m0) {
  	NimStringDesc* result0;
  	result0 = (NimStringDesc*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = copyString(((NimStringDesc*) &T839829468_54));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		result0 = copyString(((NimStringDesc*) &T839829468_55));
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, structorunion_536001_839829468)(Ttype294840* t0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!(((*t0).flags &(1U<<((NU)(((Ttypeflag294431) 1))&31U)))!=0)) goto LA3;
  		result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_56));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_57));
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypeforward_536039_839829468)(Tcgen531027* m0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  {	result0 = (Ropeobj180006*)0;
  	result0 = cachegettype_535591_839829468((*m0).forwtypecache, typ0);
  	{
  		if (!!((result0 == NIM_NIL))) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	result0 = gettypepre_535972_839829468(m0, typ0);
  	{
  		if (!!((result0 == NIM_NIL))) goto LA7;
  		goto BeforeRet;
  	}
  	LA7: ;
  	switch ((*typ0).kind) {
  	case ((Ttypekind294244) 24):
  	case ((Ttypekind294244) 18):
  	case ((Ttypekind294244) 17):
  	{
  		Tidobj201004* LOC17;
  		TNimObject* LOC18;
  		result0 = gettypename_535313_839829468(typ0);
  		{
  			NIM_BOOL LOC12;
  			NimStringDesc* LOC15;
  			TY534811 LOC16;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = isimportedtype_535449_839829468(typ0);
  			if (!!(LOC12)) goto LA13;
  			LOC15 = (NimStringDesc*)0;
  			LOC15 = getforwardstructformat_536015_839829468(m0);
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = structorunion_536001_839829468(typ0);
  			LOC16[1] = result0;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 2))- 0], LOC15, LOC16, 2);
  		}
  		LA13: ;
  		LOC17 = (Tidobj201004*)0;
  		LOC17 = &typ0->Sup;
  		LOC18 = (TNimObject*)0;
  		LOC18 = &result0->Sup;
  		idtableput_301094_2984716966((&(*m0).forwtypecache), LOC17, LOC18);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC20;
  		LOC20 = (NimStringDesc*)0;
  		LOC20 = rawNewString(reprEnum((NI)(*typ0).kind, (&NTI294244))->Sup.len + 16);
  appendString(LOC20, ((NimStringDesc*) &T839829468_58));
  appendString(LOC20, reprEnum((NI)(*typ0).kind, (&NTI294244)));
  appendChar(LOC20, 41);
  		internalerror_198113_155036129(LOC20);
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(void, pushtype_535958_839829468)(Tcgen531027* m0, Ttype294840* typ0) {
  	(*m0).typestack = (Ttypeseq294836*) incrSeqV2(&((*m0).typestack)->Sup, sizeof(Ttype294840*));
  	asgnRefNoCycle((void**) (&(*m0).typestack->data[(*m0).typestack->Sup.len]), typ0);
  	++(*m0).typestack->Sup.len;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypedescweak_536079_839829468)(Tcgen531027* m0, Ttype294840* t0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	Ttype294840* etb0;
  	result0 = (Ropeobj180006*)0;
  	etb0 = skiptypes_298099_850551059(t0, IL64(211106232576256));
  	switch ((*etb0).kind) {
  	case ((Ttypekind294244) 17):
  	case ((Ttypekind294244) 18):
  	{
  		{
  			NIM_BOOL LOC4;
  			LOC4 = (NIM_BOOL)0;
  			LOC4 = isimportedcpptype_535476_839829468(etb0);
  			if (!(LOC4)) goto LA5;
  			LOC4 = ((*t0).kind == ((Ttypekind294244) 11));
  			LA5: ;
  			if (!LOC4) goto LA6;
  			result0 = gettypedescaux_535503_839829468(m0, t0, check0);
  		}
  		goto LA2;
  		LA6: ;
  		{
  			Ttype294840* x0;
  			x0 = getuniquetype_530640_2036603609(etb0);
  			result0 = gettypeforward_536039_839829468(m0, x0);
  			pushtype_535958_839829468(m0, x0);
  		}
  		LA2: ;
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	{
  		Ttype294840* x0;
  		Ropeobj180006* LOC10;
  		x0 = getuniquetype_530640_2036603609(etb0);
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = gettypeforward_536039_839829468(m0, x0);
  		result0 = HEX26_180447_2381377266(LOC10, ((NimStringDesc*) &T839829468_53));
  		pushtype_535958_839829468(m0, x0);
  	}
  	break;
  	default:
  	{
  		result0 = gettypedescaux_535503_839829468(m0, t0, check0);
  	}
  	break;
  	}
  	return result0;
  }
  
  static N_INLINE(NI, len_295081_850551059)(Tnode294802* n0) {
  	NI result0;
  	result0 = (NI)0;
  	{
  		if (!(*n0).kindU.S6.sons == 0) goto LA3;
  		result0 = ((NI) 0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, appcg_534632_839829468)(Tcgen531027* m0, Ropeobj180006** c0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006* LOC1;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = ropecg_534407_839829468(m0, frmt0, args0, args0Len0);
  	add_180482_2381377266(c0, LOC1);
  }
  
  N_NIMCALL(NIM_BOOL, scancppgenericslot_536827_839829468)(NimStringDesc* pat0, NI* cursor0, NI* outidx0, NI* outstars0) {
  	NIM_BOOL result0;
  	NI begin0;
  {	result0 = (NIM_BOOL)0;
  	(*cursor0) += ((NI) 1);
  	begin0 = (*cursor0);
  	{
  		while (1) {
  			if (!((NU8)(pat0->data[(*cursor0)]) == (NU8)(42))) goto LA2;
  			(*cursor0) += ((NI) 1);
  		} LA2: ;
  	}
  	{
  		if (!(((NU8)(pat0->data[(*cursor0)])) >= ((NU8)(48)) && ((NU8)(pat0->data[(*cursor0)])) <= ((NU8)(57)))) goto LA5;
  		(*outidx0) = ((NI) ((NI)(((NI) (((NU8)(pat0->data[(*cursor0)])))) - ((NI) 48))));
  		(*outstars0) = (NI)((*cursor0) - begin0);
  		(*cursor0) += ((NI) 1);
  		result0 = NIM_TRUE;
  		goto BeforeRet;
  	}
  	goto LA3;
  	LA5: ;
  	{
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	LA3: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ttype294840*, resolvestarsincpptype_536891_839829468)(Ttype294840* typ0, NI idx0, NI stars0) {
  	Ttype294840* result0;
  	result0 = (Ttype294840*)0;
  	{
  		NI LOC3;
  		LOC3 = (NI)0;
  		LOC3 = len_297339_850551059(typ0);
  		if (!(LOC3 <= idx0)) goto LA4;
  		internalerror_198113_155036129(((NimStringDesc*) &T839829468_81));
  	}
  	LA4: ;
  	result0 = (*typ0).sons->data[idx0];
  	{
  		NI i_536906_839829468;
  		NI res_536931_839829468;
  		i_536906_839829468 = (NI)0;
  		res_536931_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_536931_839829468 <= stars0)) goto LA8;
  				i_536906_839829468 = res_536931_839829468;
  				{
  					NIM_BOOL LOC11;
  					NI LOC13;
  					LOC11 = (NIM_BOOL)0;
  					LOC11 = !((result0 == NIM_NIL));
  					if (!(LOC11)) goto LA12;
  					LOC13 = (NI)0;
  					LOC13 = len_297339_850551059(result0);
  					LOC11 = (((NI) 0) < LOC13);
  					LA12: ;
  					if (!LOC11) goto LA14;
  					{
  						if (!((*result0).kind == ((Ttypekind294244) 11))) goto LA18;
  						result0 = (*result0).sons->data[((NI) 1)];
  					}
  					goto LA16;
  					LA18: ;
  					{
  						result0 = elemtype_322394_3876443242(result0);
  					}
  					LA16: ;
  				}
  				LA14: ;
  				res_536931_839829468 += ((NI) 1);
  			} LA8: ;
  		}
  	}
  	return result0;
  }
  
  N_NIMCALL(NimStringDesc*, manglefield_534973_839829468)(Tident201010* name0) {
  	NimStringDesc* result0;
  	result0 = (NimStringDesc*)0;
  	result0 = mangle_530847_2036603609((*name0).s);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = iskeyword_534960_839829468(name0);
  		if (!LOC3) goto LA4;
  		result0->data[((NI) 0)] = nsuToUpperAsciiChar(result0->data[((NI) 0)]);
  	}
  	LA4: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, manglerecfieldname_536361_839829468)(Tsym294834* field0, Ttype294840* rectype0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !(((*rectype0).sym == NIM_NIL));
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(((96 & (*(*rectype0).sym).flags) == 0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = (*field0).loc.r;
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NimStringDesc* LOC8;
  		LOC8 = (NimStringDesc*)0;
  		LOC8 = manglefield_534973_839829468((*field0).name);
  		result0 = rope_180277_2381377266(LOC8);
  	}
  	LA1: ;
  	{
  		if (!(result0 == NIM_NIL)) goto LA11;
  		internalerror_198100_155036129((*field0).info, ((NimStringDesc*) &T839829468_96));
  	}
  	LA11: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genrecordfieldsaux_536421_839829468)(Tcgen531027* m0, Tnode294802* n0, Ropeobj180006* accessexpr0, Ttype294840* rectype0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* ae0;
  	Ropeobj180006* uname0;
  	Ropeobj180006* sname0;
  	Ropeobj180006* a0;
  	Tnode294802* k0;
  	Tsym294834* field0;
  {	result0 = (Ropeobj180006*)0;
  	ae0 = (Ropeobj180006*)0;
  	uname0 = (Ropeobj180006*)0;
  	sname0 = (Ropeobj180006*)0;
  	a0 = (Ropeobj180006*)0;
  	k0 = (Tnode294802*)0;
  	field0 = (Tsym294834*)0;
  	result0 = NIM_NIL;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 138):
  	{
  		{
  			NI i_536447_839829468;
  			NI HEX3Atmp_536620_839829468;
  			NI LOC3;
  			NI res_536623_839829468;
  			i_536447_839829468 = (NI)0;
  			HEX3Atmp_536620_839829468 = (NI)0;
  			LOC3 = (NI)0;
  			LOC3 = sonslen_297351_850551059(n0);
  			HEX3Atmp_536620_839829468 = (NI)(LOC3 - ((NI) 1));
  			res_536623_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Ropeobj180006* LOC6;
  					if (!(res_536623_839829468 <= HEX3Atmp_536620_839829468)) goto LA5;
  					i_536447_839829468 = res_536623_839829468;
  					LOC6 = (Ropeobj180006*)0;
  					LOC6 = genrecordfieldsaux_536421_839829468(m0, (*n0).kindU.S6.sons->data[i_536447_839829468], accessexpr0, rectype0, check0);
  					add_180482_2381377266(&result0, LOC6);
  					res_536623_839829468 += ((NI) 1);
  				} LA5: ;
  			}
  		}
  	}
  	break;
  	case ((Tnodekind294020) 139):
  	{
  		Ropeobj180006* LOC12;
  		NimStringDesc* LOC13;
  		NimStringDesc* LOC14;
  		Ropeobj180006* unionbody0;
  		{
  			if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3)))) goto LA10;
  			internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_89));
  		}
  		LA10: ;
  		LOC12 = (Ropeobj180006*)0;
  		LOC12 = genrecordfieldsaux_536421_839829468(m0, (*n0).kindU.S6.sons->data[((NI) 0)], accessexpr0, rectype0, check0);
  		add_180482_2381377266(&result0, LOC12);
  		LOC13 = (NimStringDesc*)0;
  		LOC14 = (NimStringDesc*)0;
  		LOC14 = mangle_530847_2036603609((*(*(*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
  		LOC13 = rawNewString(LOC14->Sup.len + 1);
  appendString(LOC13, LOC14);
  appendChar(LOC13, 85);
  		uname0 = rope_180277_2381377266(LOC13);
  		{
  			TY534811 LOC19;
  			if (!!((accessexpr0 == NIM_NIL))) goto LA17;
  			memset((void*)LOC19, 0, sizeof(LOC19));
  			LOC19[0] = accessexpr0;
  			LOC19[1] = uname0;
  			ae0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_90), LOC19, 2);
  		}
  		goto LA15;
  		LA17: ;
  		{
  			ae0 = uname0;
  		}
  		LA15: ;
  		unionbody0 = NIM_NIL;
  		{
  			NI i_536491_839829468;
  			NI HEX3Atmp_536629_839829468;
  			NI LOC22;
  			NI res_536632_839829468;
  			i_536491_839829468 = (NI)0;
  			HEX3Atmp_536629_839829468 = (NI)0;
  			LOC22 = (NI)0;
  			LOC22 = sonslen_297351_850551059(n0);
  			HEX3Atmp_536629_839829468 = (NI)(LOC22 - ((NI) 1));
  			res_536632_839829468 = ((NI) 1);
  			{
  				while (1) {
  					if (!(res_536632_839829468 <= HEX3Atmp_536629_839829468)) goto LA24;
  					i_536491_839829468 = res_536632_839829468;
  					switch ((*(*n0).kindU.S6.sons->data[i_536491_839829468]).kind) {
  					case ((Tnodekind294020) 85):
  					case ((Tnodekind294020) 88):
  					{
  						k0 = lastson_297364_850551059((*n0).kindU.S6.sons->data[i_536491_839829468]);
  						{
  							Ropeobj180006* LOC30;
  							TY534811 LOC31;
  							Ropeobj180006* LOC32;
  							if (!!(((*k0).kind == ((Tnodekind294020) 3)))) goto LA28;
  							LOC30 = (Ropeobj180006*)0;
  							LOC30 = rope_180401_2381377266(((NI64) (i_536491_839829468)));
  							sname0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_91), LOC30);
  							memset((void*)LOC31, 0, sizeof(LOC31));
  							LOC31[0] = ae0;
  							LOC31[1] = sname0;
  							LOC32 = (Ropeobj180006*)0;
  							LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_90), LOC31, 2);
  							a0 = genrecordfieldsaux_536421_839829468(m0, k0, LOC32, rectype0, check0);
  							{
  								TY180507 LOC37;
  								if (!!((a0 == NIM_NIL))) goto LA35;
  								add_180487_2381377266(&unionbody0, ((NimStringDesc*) &T839829468_92));
  								add_180482_2381377266(&unionbody0, a0);
  								memset((void*)LOC37, 0, sizeof(LOC37));
  								LOC37[0] = sname0;
  								addf_181205_2381377266(&unionbody0, ((NimStringDesc*) &T839829468_93), LOC37, 1);
  							}
  							LA35: ;
  						}
  						goto LA26;
  						LA28: ;
  						{
  							Ropeobj180006* LOC39;
  							LOC39 = (Ropeobj180006*)0;
  							LOC39 = genrecordfieldsaux_536421_839829468(m0, k0, ae0, rectype0, check0);
  							add_180482_2381377266(&unionbody0, LOC39);
  						}
  						LA26: ;
  					}
  					break;
  					default:
  					{
  						internalerror_198113_155036129(((NimStringDesc*) &T839829468_94));
  					}
  					break;
  					}
  					res_536632_839829468 += ((NI) 1);
  				} LA24: ;
  			}
  		}
  		{
  			TY534811 LOC45;
  			if (!!((unionbody0 == NIM_NIL))) goto LA43;
  			memset((void*)LOC45, 0, sizeof(LOC45));
  			LOC45[0] = unionbody0;
  			LOC45[1] = uname0;
  			addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_95), LOC45, 2);
  		}
  		LA43: ;
  	}
  	break;
  	case ((Tnodekind294020) 3):
  	{
  		field0 = (*n0).kindU.S4.sym;
  		{
  			if (!((*(*field0).typ).kind == ((Ttypekind294244) 62))) goto LA49;
  			goto BeforeRet;
  		}
  		LA49: ;
  		sname0 = manglerecfieldname_536361_839829468(field0, rectype0);
  		{
  			TY534811 LOC55;
  			if (!!((accessexpr0 == NIM_NIL))) goto LA53;
  			memset((void*)LOC55, 0, sizeof(LOC55));
  			LOC55[0] = accessexpr0;
  			LOC55[1] = sname0;
  			ae0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_90), LOC55, 2);
  		}
  		goto LA51;
  		LA53: ;
  		{
  			ae0 = sname0;
  		}
  		LA51: ;
  		fillloc_534282_839829468((&(*field0).loc), ((Tlockind294808) 5), (*field0).typ, ae0, ((Tstorageloc294812) 0));
  		{
  			NIM_BOOL LOC59;
  			Ttype294840* fieldtype0;
  			LOC59 = (NIM_BOOL)0;
  			LOC59 = isimportedcpptype_535476_839829468(rectype0);
  			if (!!(LOC59)) goto LA60;
  			fieldtype0 = skiptypes_298099_850551059((*field0).loc.t, IL64(211106232576256));
  			{
  				NIM_BOOL LOC64;
  				TY534811 LOC68;
  				Ttype294840* LOC69;
  				LOC64 = (NIM_BOOL)0;
  				LOC64 = ((*fieldtype0).kind == ((Ttypekind294244) 16));
  				if (!(LOC64)) goto LA65;
  				LOC64 = (((*fieldtype0).flags &(1U<<((NU)(((Ttypeflag294431) 0))&31U)))!=0);
  				LA65: ;
  				if (!LOC64) goto LA66;
  				memset((void*)LOC68, 0, sizeof(LOC68));
  				LOC69 = (Ttype294840*)0;
  				LOC69 = elemtype_322394_3876443242(fieldtype0);
  				LOC68[0] = gettypedescaux_535503_839829468(m0, LOC69, check0);
  				LOC68[1] = sname0;
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_97), LOC68, 2);
  			}
  			goto LA62;
  			LA66: ;
  			{
  				TY534811 LOC73;
  				if (!((*fieldtype0).kind == ((Ttypekind294244) 24))) goto LA71;
  				memset((void*)LOC73, 0, sizeof(LOC73));
  				LOC73[0] = gettypedescweak_536079_839829468(m0, (*field0).loc.t, check0);
  				LOC73[1] = sname0;
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_54), LOC73, 2);
  			}
  			goto LA62;
  			LA71: ;
  			{
  				TY537238 LOC77;
  				NimStringDesc* LOC78;
  				if (!!(((*field0).kindU.S4.bitsize == ((NI) 0)))) goto LA75;
  				memset((void*)LOC77, 0, sizeof(LOC77));
  				LOC77[0] = gettypedescaux_535503_839829468(m0, (*field0).loc.t, check0);
  				LOC77[1] = sname0;
  				LOC78 = (NimStringDesc*)0;
  				LOC78 = nimIntToStr((*field0).kindU.S4.bitsize);
  				LOC77[2] = rope_180277_2381377266(LOC78);
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_98), LOC77, 3);
  			}
  			goto LA62;
  			LA75: ;
  			{
  				TY534811 LOC80;
  				memset((void*)LOC80, 0, sizeof(LOC80));
  				LOC80[0] = gettypedescaux_535503_839829468(m0, (*field0).loc.t, check0);
  				LOC80[1] = sname0;
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_54), LOC80, 2);
  			}
  			LA62: ;
  		}
  		LA60: ;
  	}
  	break;
  	default:
  	{
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_99));
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getrecordfields_536636_839829468)(Tcgen531027* m0, Ttype294840* typ0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = genrecordfieldsaux_536421_839829468(m0, (*typ0).n, NIM_NIL, typ0, check0);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getrecorddesc_536643_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	NIM_BOOL hasfield0;
  	Ropeobj180006* attribute0;
  	TY537238 LOC6;
  	Ropeobj180006* desc0;
  	NimStringDesc* LOC46;
  	result0 = (Ropeobj180006*)0;
  	hasfield0 = NIM_FALSE;
  	{
  		if (!(((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 21))&31U)))!=0)) goto LA3;
  		attribute0 = rope_180277_2381377266(Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field19);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		attribute0 = NIM_NIL;
  	}
  	LA1: ;
  	memset((void*)LOC6, 0, sizeof(LOC6));
  	LOC6[0] = structorunion_536001_839829468(typ0);
  	LOC6[1] = name0;
  	LOC6[2] = attribute0;
  	result0 = ropecg_534407_839829468(m0, Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field18, LOC6, 3);
  	{
  		if (!((*typ0).kind == ((Ttypekind294244) 17))) goto LA9;
  		{
  			if (!((*typ0).sons->data[((NI) 0)] == NIM_NIL)) goto LA13;
  			{
  				NIM_BOOL LOC17;
  				NIM_BOOL LOC18;
  				TY535289 LOC23;
  				LOC17 = (NIM_BOOL)0;
  				LOC18 = (NIM_BOOL)0;
  				LOC18 = !(((*typ0).sym == NIM_NIL));
  				if (!(LOC18)) goto LA19;
  				LOC18 = (((*(*typ0).sym).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0);
  				LA19: ;
  				LOC17 = LOC18;
  				if (LOC17) goto LA20;
  				LOC17 = (((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 2))&31U)))!=0);
  				LA20: ;
  				if (!LOC17) goto LA21;
  				memset((void*)LOC23, 0, sizeof(LOC23));
  				appcg_534632_839829468(m0, &result0, ((NimStringDesc*) &T839829468_85), LOC23, 0);
  			}
  			goto LA15;
  			LA21: ;
  			{
  				TY534811 LOC25;
  				memset((void*)LOC25, 0, sizeof(LOC25));
  				LOC25[0] = name0;
  				LOC25[1] = attribute0;
  				appcg_534632_839829468(m0, &result0, ((NimStringDesc*) &T839829468_86), LOC25, 2);
  				hasfield0 = NIM_TRUE;
  			}
  			LA15: ;
  		}
  		goto LA11;
  		LA13: ;
  		{
  			NIM_BOOL LOC27;
  			TY180507 LOC31;
  			Ttype294840* LOC32;
  			LOC27 = (NIM_BOOL)0;
  			LOC27 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC27) goto LA28;
  			LOC27 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA28: ;
  			if (!LOC27) goto LA29;
  			memset((void*)LOC31, 0, sizeof(LOC31));
  			LOC32 = (Ttype294840*)0;
  			LOC32 = skiptypes_298099_850551059((*typ0).sons->data[((NI) 0)], IL64(211106247215360));
  			LOC31[0] = gettypedescaux_535503_839829468(m0, LOC32, check0);
  			appcg_534632_839829468(m0, &result0, ((NimStringDesc*) &T839829468_87), LOC31, 1);
  			hasfield0 = NIM_TRUE;
  		}
  		goto LA11;
  		LA29: ;
  		{
  			TY180507 LOC34;
  			Ttype294840* LOC35;
  			memset((void*)LOC34, 0, sizeof(LOC34));
  			LOC35 = (Ttype294840*)0;
  			LOC35 = skiptypes_298099_850551059((*typ0).sons->data[((NI) 0)], IL64(211106247215360));
  			LOC34[0] = gettypedescaux_535503_839829468(m0, LOC35, check0);
  			appcg_534632_839829468(m0, &result0, ((NimStringDesc*) &T839829468_88), LOC34, 1);
  			hasfield0 = NIM_TRUE;
  		}
  		LA11: ;
  	}
  	goto LA7;
  	LA9: ;
  	{
  		TY180507 LOC37;
  		memset((void*)LOC37, 0, sizeof(LOC37));
  		LOC37[0] = name0;
  		addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_85), LOC37, 1);
  	}
  	LA7: ;
  	desc0 = getrecordfields_536636_839829468(m0, typ0, check0);
  	{
  		NIM_BOOL LOC40;
  		TY535289 LOC44;
  		LOC40 = (NIM_BOOL)0;
  		LOC40 = (desc0 == NIM_NIL);
  		if (!(LOC40)) goto LA41;
  		LOC40 = !(hasfield0);
  		LA41: ;
  		if (!LOC40) goto LA42;
  		memset((void*)LOC44, 0, sizeof(LOC44));
  		addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_100), LOC44, 0);
  	}
  	goto LA38;
  	LA42: ;
  	{
  		add_180482_2381377266(&result0, desc0);
  	}
  	LA38: ;
  	LOC46 = (NimStringDesc*)0;
  	LOC46 = rawNewString(tnl_178644_4151366050->Sup.len + 2);
  appendString(LOC46, ((NimStringDesc*) &T839829468_101));
  appendString(LOC46, tnl_178644_4151366050);
  	add_180487_2381377266(&result0, LOC46);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettupledesc_536777_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	TY534811 LOC1;
  	Ropeobj180006* desc0;
  	NimStringDesc* LOC13;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = structorunion_536001_839829468(typ0);
  	LOC1[1] = name0;
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_102), LOC1, 2);
  	desc0 = NIM_NIL;
  	{
  		NI i_536799_839829468;
  		NI HEX3Atmp_536820_839829468;
  		NI LOC3;
  		NI res_536823_839829468;
  		i_536799_839829468 = (NI)0;
  		HEX3Atmp_536820_839829468 = (NI)0;
  		LOC3 = (NI)0;
  		LOC3 = sonslen_297327_850551059(typ0);
  		HEX3Atmp_536820_839829468 = (NI)(LOC3 - ((NI) 1));
  		res_536823_839829468 = ((NI) 0);
  		{
  			while (1) {
  				TY534811 LOC6;
  				if (!(res_536823_839829468 <= HEX3Atmp_536820_839829468)) goto LA5;
  				i_536799_839829468 = res_536823_839829468;
  				memset((void*)LOC6, 0, sizeof(LOC6));
  				LOC6[0] = gettypedescaux_535503_839829468(m0, (*typ0).sons->data[i_536799_839829468], check0);
  				LOC6[1] = rope_180401_2381377266(((NI64) (i_536799_839829468)));
  				addf_181205_2381377266(&desc0, ((NimStringDesc*) &T839829468_103), LOC6, 2);
  				res_536823_839829468 += ((NI) 1);
  			} LA5: ;
  		}
  	}
  	{
  		NimStringDesc* LOC11;
  		if (!(desc0 == NIM_NIL)) goto LA9;
  		LOC11 = (NimStringDesc*)0;
  		LOC11 = rawNewString(tnl_178644_4151366050->Sup.len + 11);
  appendString(LOC11, ((NimStringDesc*) &T839829468_104));
  appendString(LOC11, tnl_178644_4151366050);
  		add_180487_2381377266(&result0, LOC11);
  	}
  	goto LA7;
  	LA9: ;
  	{
  		add_180482_2381377266(&result0, desc0);
  	}
  	LA7: ;
  	LOC13 = (NimStringDesc*)0;
  	LOC13 = rawNewString(tnl_178644_4151366050->Sup.len + 2);
  appendString(LOC13, ((NimStringDesc*) &T839829468_101));
  appendString(LOC13, tnl_178644_4151366050);
  	add_180487_2381377266(&result0, LOC13);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypedescaux_535503_839829468)(Tcgen531027* m0, Ttype294840* typ0, Intset270030* check0) {
  	Ropeobj180006* result0;
  	Ttype294840* t_536942_839829468;
  {	result0 = (Ropeobj180006*)0;
  	t_536942_839829468 = getuniquetype_530640_2036603609(typ0);
  	{
  		if (!(t_536942_839829468 == NIM_NIL)) goto LA3;
  		internalerror_198113_155036129(((NimStringDesc*) &T839829468_27));
  	}
  	LA3: ;
  	{
  		if (!!(((*t_536942_839829468).sym == NIM_NIL))) goto LA7;
  		useheader_534369_839829468(m0, (*t_536942_839829468).sym);
  	}
  	LA7: ;
  	result0 = gettypepre_535972_839829468(m0, t_536942_839829468);
  	{
  		if (!!((result0 == NIM_NIL))) goto LA11;
  		goto BeforeRet;
  	}
  	LA11: ;
  	{
  		NIM_BOOL LOC15;
  		LOC15 = (NIM_BOOL)0;
  		LOC15 = containsorincl_270862_2627731572(check0, (*t_536942_839829468).Sup.id);
  		if (!LOC15) goto LA16;
  		{
  			NIM_BOOL LOC20;
  			NimStringDesc* LOC24;
  			NimStringDesc* LOC25;
  			LOC20 = (NIM_BOOL)0;
  			LOC20 = isimportedcpptype_535476_839829468(typ0);
  			if (LOC20) goto LA21;
  			LOC20 = isimportedcpptype_535476_839829468(t_536942_839829468);
  			LA21: ;
  			if (!!(LOC20)) goto LA22;
  			LOC24 = (NimStringDesc*)0;
  			LOC25 = (NimStringDesc*)0;
  			LOC25 = typetostring_322017_3876443242(typ0, ((Tprefereddesc322011) 0));
  			LOC24 = rawNewString(LOC25->Sup.len + 28);
  appendString(LOC24, ((NimStringDesc*) &T839829468_51));
  appendString(LOC24, LOC25);
  			internalerror_198113_155036129(LOC24);
  		}
  		LA22: ;
  	}
  	LA16: ;
  	switch ((*t_536942_839829468).kind) {
  	case ((Ttypekind294244) 22):
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 23):
  	{
  		NimStringDesc* star0;
  		Ttype294840* et0;
  		Ttype294840* LOC38;
  		Ttype294840* etb0;
  		{
  			NIM_BOOL LOC29;
  			NIM_BOOL LOC30;
  			NIM_BOOL LOC33;
  			LOC29 = (NIM_BOOL)0;
  			LOC30 = (NIM_BOOL)0;
  			LOC30 = ((*t_536942_839829468).kind == ((Ttypekind294244) 23));
  			if (!(LOC30)) goto LA31;
  			LOC30 = !((((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 18))&31U)))!=0));
  			LA31: ;
  			LOC29 = LOC30;
  			if (!(LOC29)) goto LA32;
  			LOC33 = (NIM_BOOL)0;
  			LOC33 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC33) goto LA34;
  			LOC33 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA34: ;
  			LOC29 = LOC33;
  			LA32: ;
  			if (!LOC29) goto LA35;
  			star0 = copyString(((NimStringDesc*) &T839829468_52));
  		}
  		goto LA27;
  		LA35: ;
  		{
  			star0 = copyString(((NimStringDesc*) &T839829468_53));
  		}
  		LA27: ;
  		LOC38 = (Ttype294840*)0;
  		LOC38 = skiptypes_298099_850551059(typ0, IL64(211106232576256));
  		et0 = lastson_297377_850551059(LOC38);
  		etb0 = skiptypes_298099_850551059(et0, IL64(211106232576256));
  		{
  			if (!((*etb0).kind == ((Ttypekind294244) 4) || (*etb0).kind == ((Ttypekind294244) 16) || (*etb0).kind == ((Ttypekind294244) 27) || (*etb0).kind == ((Ttypekind294244) 48))) goto LA41;
  			et0 = elemtype_322394_3876443242(etb0);
  			etb0 = skiptypes_298099_850551059(et0, IL64(211106232576256));
  			star0->data[((NI) 0)] = 42;
  		}
  		LA41: ;
  		switch ((*etb0).kind) {
  		case ((Ttypekind294244) 17):
  		case ((Ttypekind294244) 18):
  		{
  			{
  				NIM_BOOL LOC46;
  				Ropeobj180006* LOC50;
  				LOC46 = (NIM_BOOL)0;
  				LOC46 = isimportedcpptype_535476_839829468(etb0);
  				if (!(LOC46)) goto LA47;
  				LOC46 = ((*et0).kind == ((Ttypekind294244) 11));
  				LA47: ;
  				if (!LOC46) goto LA48;
  				LOC50 = (Ropeobj180006*)0;
  				LOC50 = gettypedescaux_535503_839829468(m0, et0, check0);
  				result0 = HEX26_180447_2381377266(LOC50, star0);
  			}
  			goto LA44;
  			LA48: ;
  			{
  				Ttype294840* x0;
  				Ropeobj180006* name0;
  				Tidobj201004* LOC52;
  				TNimObject* LOC53;
  				x0 = getuniquetype_530640_2036603609(etb0);
  				name0 = gettypeforward_536039_839829468(m0, x0);
  				result0 = HEX26_180447_2381377266(name0, star0);
  				LOC52 = (Tidobj201004*)0;
  				LOC52 = &t_536942_839829468->Sup;
  				LOC53 = (TNimObject*)0;
  				LOC53 = &result0->Sup;
  				idtableput_301094_2984716966((&(*m0).typecache), LOC52, LOC53);
  				pushtype_535958_839829468(m0, x0);
  			}
  			LA44: ;
  		}
  		break;
  		case ((Ttypekind294244) 24):
  		{
  			Ttype294840* x0;
  			Ropeobj180006* name0;
  			Ropeobj180006* LOC55;
  			Tidobj201004* LOC56;
  			TNimObject* LOC57;
  			x0 = getuniquetype_530640_2036603609(etb0);
  			name0 = gettypeforward_536039_839829468(m0, x0);
  			LOC55 = (Ropeobj180006*)0;
  			LOC55 = HEX26_180447_2381377266(name0, ((NimStringDesc*) &T839829468_53));
  			result0 = HEX26_180447_2381377266(LOC55, star0);
  			LOC56 = (Tidobj201004*)0;
  			LOC56 = &t_536942_839829468->Sup;
  			LOC57 = (TNimObject*)0;
  			LOC57 = &result0->Sup;
  			idtableput_301094_2984716966((&(*m0).typecache), LOC56, LOC57);
  			pushtype_535958_839829468(m0, x0);
  		}
  		break;
  		default:
  		{
  			Ropeobj180006* LOC59;
  			Tidobj201004* LOC60;
  			TNimObject* LOC61;
  			LOC59 = (Ropeobj180006*)0;
  			LOC59 = gettypedescaux_535503_839829468(m0, et0, check0);
  			result0 = HEX26_180447_2381377266(LOC59, star0);
  			LOC60 = (Tidobj201004*)0;
  			LOC60 = &t_536942_839829468->Sup;
  			LOC61 = (TNimObject*)0;
  			LOC61 = &result0->Sup;
  			idtableput_301094_2984716966((&(*m0).typecache), LOC60, LOC61);
  		}
  		break;
  		}
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		Ropeobj180006* LOC63;
  		Tidobj201004* LOC64;
  		TNimObject* LOC65;
  		LOC63 = (Ropeobj180006*)0;
  		LOC63 = gettypedescweak_536079_839829468(m0, (*t_536942_839829468).sons->data[((NI) 0)], check0);
  		result0 = HEX26_180447_2381377266(LOC63, ((NimStringDesc*) &T839829468_53));
  		LOC64 = (Tidobj201004*)0;
  		LOC64 = &t_536942_839829468->Sup;
  		LOC65 = (TNimObject*)0;
  		LOC65 = &result0->Sup;
  		idtableput_301094_2984716966((&(*m0).typecache), LOC64, LOC65);
  	}
  	break;
  	case ((Ttypekind294244) 20):
  	case ((Ttypekind294244) 14):
  	{
  		Ttype294840* t0;
  		{
  			if (!((*t_536942_839829468).kind == ((Ttypekind294244) 20))) goto LA69;
  			t0 = lastson_297377_850551059(t_536942_839829468);
  		}
  		goto LA67;
  		LA69: ;
  		{
  			t0 = t_536942_839829468;
  		}
  		LA67: ;
  		result0 = cachegettype_535591_839829468((*m0).typecache, t0);
  		{
  			if (!(result0 == NIM_NIL)) goto LA74;
  			result0 = gettypename_535313_839829468(t0);
  			{
  				NIM_BOOL LOC78;
  				NIM_BOOL LOC80;
  				Tidobj201004* LOC84;
  				TNimObject* LOC85;
  				NI size0;
  				NU32 owner0;
  				LOC78 = (NIM_BOOL)0;
  				LOC78 = isimportedcpptype_535476_839829468(t0);
  				if (LOC78) goto LA79;
  				LOC80 = (NIM_BOOL)0;
  				LOC80 = (((*(*t0).sym).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0);
  				if (!(LOC80)) goto LA81;
  				LOC80 = ((*(*t0).sym).magic == ((Tmagic294524) 0));
  				LA81: ;
  				LOC78 = LOC80;
  				LA79: ;
  				if (!!(LOC78)) goto LA82;
  				LOC84 = (Tidobj201004*)0;
  				LOC84 = &t0->Sup;
  				LOC85 = (TNimObject*)0;
  				LOC85 = &result0->Sup;
  				idtableput_301094_2984716966((&(*m0).typecache), LOC84, LOC85);
  				size0 = (NI)0;
  				{
  					NI64 LOC88;
  					TY180507 LOC91;
  					LOC88 = (NI64)0;
  					LOC88 = firstord_322001_3876443242(t0);
  					if (!(LOC88 < IL64(0))) goto LA89;
  					memset((void*)LOC91, 0, sizeof(LOC91));
  					LOC91[0] = result0;
  					addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_59), LOC91, 1);
  					size0 = ((NI) 4);
  				}
  				goto LA86;
  				LA89: ;
  				{
  					NI64 LOC93;
  					LOC93 = (NI64)0;
  					LOC93 = getsize_322135_3876443242(t0);
  					size0 = ((NI) (LOC93));
  					switch (size0) {
  					case ((NI) 1):
  					{
  						TY180507 LOC95;
  						memset((void*)LOC95, 0, sizeof(LOC95));
  						LOC95[0] = result0;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_60), LOC95, 1);
  					}
  					break;
  					case ((NI) 2):
  					{
  						TY180507 LOC97;
  						memset((void*)LOC97, 0, sizeof(LOC97));
  						LOC97[0] = result0;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_61), LOC97, 1);
  					}
  					break;
  					case ((NI) 4):
  					{
  						TY180507 LOC99;
  						memset((void*)LOC99, 0, sizeof(LOC99));
  						LOC99[0] = result0;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_59), LOC99, 1);
  					}
  					break;
  					case ((NI) 8):
  					{
  						TY180507 LOC101;
  						memset((void*)LOC101, 0, sizeof(LOC101));
  						LOC101[0] = result0;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_62), LOC101, 1);
  					}
  					break;
  					default:
  					{
  						internalerror_198100_155036129((*(*t0).sym).info, ((NimStringDesc*) &T839829468_63));
  					}
  					break;
  					}
  				}
  				LA86: ;
  				owner0 = hashowner_534977_839829468((*t0).sym);
  				{
  					NIM_BOOL LOC105;
  					TY205017* vals0;
  					Enumdesc205007 LOC114;
  					LOC105 = (NIM_BOOL)0;
  					LOC105 = hasenum_205230_1926258066(gdebuginfo_205470_1926258066, (*(*(*t0).sym).name).s, ((NI) ((*(*t0).sym).info.line)), owner0);
  					if (!!(LOC105)) goto LA106;
  					vals0 = (TY205017*) newSeq((&NTI205017), 0);
  					{
  						NI i_537144_839829468;
  						NI HEX3Atmp_537648_839829468;
  						NI LOC109;
  						NI res_537651_839829468;
  						i_537144_839829468 = (NI)0;
  						HEX3Atmp_537648_839829468 = (NI)0;
  						LOC109 = (NI)0;
  						LOC109 = len_295081_850551059((*t0).n);
  						HEX3Atmp_537648_839829468 = (NI)(LOC109 - ((NI) 1));
  						res_537651_839829468 = ((NI) 0);
  						{
  							while (1) {
  								Tsym294834* field0;
  								TY205018 LOC112;
  								NimStringDesc* LOC113;
  								if (!(res_537651_839829468 <= HEX3Atmp_537648_839829468)) goto LA111;
  								i_537144_839829468 = res_537651_839829468;
  								field0 = (*(*(*t0).n).kindU.S6.sons->data[i_537144_839829468]).kindU.S4.sym;
  								memset((void*)(&LOC112), 0, sizeof(LOC112));
  								LOC112.Field0 = copyString((*(*field0).name).s);
  								LOC112.Field1 = (*field0).position;
  								vals0 = (TY205017*) incrSeqV2(&(vals0)->Sup, sizeof(TY205018));
  								LOC113 = (NimStringDesc*)0;
  								LOC113 = vals0->data[vals0->Sup.len].Field0; vals0->data[vals0->Sup.len].Field0 = copyStringRC1(LOC112.Field0);
  								if (LOC113) nimGCunrefNoCycle(LOC113);
  								vals0->data[vals0->Sup.len].Field1 = LOC112.Field1;
  								++vals0->Sup.len;
  								res_537651_839829468 += ((NI) 1);
  							} LA111: ;
  						}
  					}
  					memset((void*)(&LOC114), 0, sizeof(LOC114));
  					memset((void*)(&LOC114), 0, sizeof(LOC114));
  					LOC114.size = size0;
  					LOC114.owner = owner0;
  					LOC114.id = (*(*t0).sym).Sup.id;
  					LOC114.name = copyString((*(*(*t0).sym).name).s);
  					genericSeqAssign((&LOC114.values), vals0, (&NTI205017));
  					registerenum_205419_1926258066((&gdebuginfo_205470_1926258066), (&LOC114));
  				}
  				LA106: ;
  			}
  			LA82: ;
  		}
  		LA74: ;
  	}
  	break;
  	case ((Ttypekind294244) 25):
  	{
  		Tidobj201004* LOC116;
  		TNimObject* LOC117;
  		Ropeobj180006* rettype0;
  		Ropeobj180006* desc0;
  		result0 = gettypename_535313_839829468(t_536942_839829468);
  		LOC116 = (Tidobj201004*)0;
  		LOC116 = &t_536942_839829468->Sup;
  		LOC117 = (TNimObject*)0;
  		LOC117 = &result0->Sup;
  		idtableput_301094_2984716966((&(*m0).typecache), LOC116, LOC117);
  		rettype0 = (Ropeobj180006*)0;
  		desc0 = (Ropeobj180006*)0;
  		genprocparams_536115_839829468(m0, t_536942_839829468, &rettype0, &desc0, check0, NIM_TRUE, NIM_TRUE);
  		{
  			NIM_BOOL LOC120;
  			LOC120 = (NIM_BOOL)0;
  			LOC120 = isimportedtype_535449_839829468(t_536942_839829468);
  			if (!!(LOC120)) goto LA121;
  			{
  				TY537235 LOC127;
  				if (!!(((*t_536942_839829468).callconv == ((Tcallingconvention294002) 8)))) goto LA125;
  				memset((void*)LOC127, 0, sizeof(LOC127));
  				LOC127[0] = rope_180277_2381377266(Callingconvtostr_535585_839829468[((*t_536942_839829468).callconv)- 0]);
  				LOC127[1] = rettype0;
  				LOC127[2] = result0;
  				LOC127[3] = desc0;
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_64), LOC127, 4);
  			}
  			goto LA123;
  			LA125: ;
  			{
  				TY537238 LOC129;
  				memset((void*)LOC129, 0, sizeof(LOC129));
  				LOC129[0] = result0;
  				LOC129[1] = rettype0;
  				LOC129[2] = desc0;
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_75), LOC129, 3);
  			}
  			LA123: ;
  		}
  		LA121: ;
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	{
  		Tidobj201004* LOC144;
  		Ropeobj180006* LOC145;
  		TNimObject* LOC146;
  		result0 = cachegettype_535591_839829468((*m0).forwtypecache, t_536942_839829468);
  		{
  			Tidobj201004* LOC142;
  			TNimObject* LOC143;
  			if (!(result0 == NIM_NIL)) goto LA133;
  			result0 = gettypename_535313_839829468(t_536942_839829468);
  			{
  				NIM_BOOL LOC137;
  				NimStringDesc* LOC140;
  				TY534811 LOC141;
  				LOC137 = (NIM_BOOL)0;
  				LOC137 = isimportedtype_535449_839829468(t_536942_839829468);
  				if (!!(LOC137)) goto LA138;
  				LOC140 = (NimStringDesc*)0;
  				LOC140 = getforwardstructformat_536015_839829468(m0);
  				memset((void*)LOC141, 0, sizeof(LOC141));
  				LOC141[0] = structorunion_536001_839829468(t_536942_839829468);
  				LOC141[1] = result0;
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 2))- 0], LOC140, LOC141, 2);
  			}
  			LA138: ;
  			LOC142 = (Tidobj201004*)0;
  			LOC142 = &t_536942_839829468->Sup;
  			LOC143 = (TNimObject*)0;
  			LOC143 = &result0->Sup;
  			idtableput_301094_2984716966((&(*m0).forwtypecache), LOC142, LOC143);
  		}
  		LA133: ;
  		LOC144 = (Tidobj201004*)0;
  		LOC144 = &t_536942_839829468->Sup;
  		LOC145 = (Ropeobj180006*)0;
  		LOC145 = HEX26_180447_2381377266(result0, ((NimStringDesc*) &T839829468_53));
  		LOC146 = (TNimObject*)0;
  		LOC146 = &LOC145->Sup;
  		idtableput_301094_2984716966((&(*m0).typecache), LOC144, LOC146);
  		{
  			NIM_BOOL LOC149;
  			LOC149 = (NIM_BOOL)0;
  			LOC149 = isimportedtype_535449_839829468(t_536942_839829468);
  			if (!!(LOC149)) goto LA150;
  			{
  				Ttype294840* LOC154;
  				NimStringDesc* LOC157;
  				NimStringDesc* LOC158;
  				TY534811 LOC166;
  				LOC154 = (Ttype294840*)0;
  				LOC154 = skiptypes_298099_850551059((*t_536942_839829468).sons->data[((NI) 0)], IL64(211106232576256));
  				if (!!(((*LOC154).kind == ((Ttypekind294244) 3)))) goto LA155;
  				LOC157 = (NimStringDesc*)0;
  				LOC158 = (NimStringDesc*)0;
  				{
  					NIM_BOOL LOC161;
  					LOC161 = (NIM_BOOL)0;
  					LOC161 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  					if (LOC161) goto LA162;
  					LOC161 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  					LA162: ;
  					if (!LOC161) goto LA163;
  					LOC158 = copyString(((NimStringDesc*) &T839829468_76));
  				}
  				goto LA159;
  				LA163: ;
  				{
  					LOC158 = copyString(((NimStringDesc*) &T839829468_77));
  				}
  				LA159: ;
  				LOC157 = rawNewString(LOC158->Sup.len + 31);
  appendString(LOC157, LOC158);
  appendString(LOC157, ((NimStringDesc*) &T839829468_78));
  				memset((void*)LOC166, 0, sizeof(LOC166));
  				LOC166[0] = gettypedescaux_535503_839829468(m0, (*t_536942_839829468).sons->data[((NI) 0)], check0);
  				LOC166[1] = result0;
  				appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 4))- 0], LOC157, LOC166, 2);
  			}
  			goto LA152;
  			LA155: ;
  			{
  				result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_79));
  			}
  			LA152: ;
  		}
  		LA150: ;
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_53));
  	}
  	break;
  	case ((Ttypekind294244) 4):
  	case ((Ttypekind294244) 16):
  	{
  		NI64 n0;
  		Tidobj201004* LOC173;
  		TNimObject* LOC174;
  		n0 = lengthord_322007_3876443242(t_536942_839829468);
  		{
  			if (!(n0 <= IL64(0))) goto LA171;
  			n0 = IL64(1);
  		}
  		LA171: ;
  		result0 = gettypename_535313_839829468(t_536942_839829468);
  		LOC173 = (Tidobj201004*)0;
  		LOC173 = &t_536942_839829468->Sup;
  		LOC174 = (TNimObject*)0;
  		LOC174 = &result0->Sup;
  		idtableput_301094_2984716966((&(*m0).typecache), LOC173, LOC174);
  		{
  			NIM_BOOL LOC177;
  			Ropeobj180006* foo0;
  			TY537238 LOC180;
  			LOC177 = (NIM_BOOL)0;
  			LOC177 = isimportedtype_535449_839829468(t_536942_839829468);
  			if (!!(LOC177)) goto LA178;
  			foo0 = gettypedescaux_535503_839829468(m0, (*t_536942_839829468).sons->data[((NI) 1)], check0);
  			memset((void*)LOC180, 0, sizeof(LOC180));
  			LOC180[0] = foo0;
  			LOC180[1] = result0;
  			LOC180[2] = rope_180401_2381377266(n0);
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_80), LOC180, 3);
  		}
  		LA178: ;
  	}
  	break;
  	case ((Ttypekind294244) 17):
  	case ((Ttypekind294244) 18):
  	{
  		{
  			NIM_BOOL LOC184;
  			Ropeobj180006* cppname0;
  			NI i0;
  			NI chunkstart0;
  			Ropeobj180006* LOC226;
  			LOC184 = (NIM_BOOL)0;
  			LOC184 = isimportedcpptype_535476_839829468(t_536942_839829468);
  			if (!(LOC184)) goto LA185;
  			LOC184 = ((*typ0).kind == ((Ttypekind294244) 11));
  			LA185: ;
  			if (!LOC184) goto LA186;
  			cppname0 = gettypename_535313_839829468(t_536942_839829468);
  			i0 = ((NI) 0);
  			chunkstart0 = ((NI) 0);
  			{
  				while (1) {
  					if (!(i0 < ((*cppname0).data ? (*cppname0).data->Sup.len : 0))) goto LA189;
  					{
  						NI chunkend0;
  						NI idx0;
  						NI stars0;
  						if (!((NU8)((*cppname0).data->data[i0]) == (NU8)(39))) goto LA192;
  						chunkend0 = (i0 - 1);
  						idx0 = (NI)0;
  						stars0 = (NI)0;
  						{
  							NIM_BOOL LOC196;
  							NimStringDesc* LOC199;
  							Ttype294840* typeinslot0;
  							LOC196 = (NIM_BOOL)0;
  							LOC196 = scancppgenericslot_536827_839829468((*cppname0).data, (&i0), (&idx0), (&stars0));
  							if (!LOC196) goto LA197;
  							LOC199 = (NimStringDesc*)0;
  							LOC199 = copyStrLast((*cppname0).data, chunkstart0, chunkend0);
  							add_180487_2381377266(&result0, LOC199);
  							chunkstart0 = i0;
  							typeinslot0 = resolvestarsincpptype_536891_839829468(typ0, (NI)(idx0 + ((NI) 1)), stars0);
  							{
  								NIM_BOOL LOC202;
  								TY535289 LOC206;
  								Ropeobj180006* LOC207;
  								LOC202 = (NIM_BOOL)0;
  								LOC202 = (typeinslot0 == NIM_NIL);
  								if (LOC202) goto LA203;
  								LOC202 = ((*typeinslot0).kind == ((Ttypekind294244) 62));
  								LA203: ;
  								if (!LOC202) goto LA204;
  								memset((void*)LOC206, 0, sizeof(LOC206));
  								LOC207 = (Ropeobj180006*)0;
  								LOC207 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_26), LOC206, 0);
  								add_180482_2381377266(&result0, LOC207);
  							}
  							goto LA200;
  							LA204: ;
  							{
  								Ropeobj180006* LOC209;
  								LOC209 = (Ropeobj180006*)0;
  								LOC209 = gettypedescaux_535503_839829468(m0, typeinslot0, check0);
  								add_180482_2381377266(&result0, LOC209);
  							}
  							LA200: ;
  						}
  						LA197: ;
  					}
  					goto LA190;
  					LA192: ;
  					{
  						i0 += ((NI) 1);
  					}
  					LA190: ;
  				} LA189: ;
  			}
  			{
  				NimStringDesc* LOC215;
  				if (!!((chunkstart0 == ((NI) 0)))) goto LA213;
  				LOC215 = (NimStringDesc*)0;
  				LOC215 = copyStr((*cppname0).data, chunkstart0);
  				add_180487_2381377266(&result0, LOC215);
  			}
  			goto LA211;
  			LA213: ;
  			{
  				result0 = HEX26_180447_2381377266(cppname0, ((NimStringDesc*) &T839829468_82));
  				{
  					NI i_537516_839829468;
  					NI HEX3Atmp_537664_839829468;
  					NI LOC218;
  					NI res_537667_839829468;
  					i_537516_839829468 = (NI)0;
  					HEX3Atmp_537664_839829468 = (NI)0;
  					LOC218 = (NI)0;
  					LOC218 = len_297339_850551059(typ0);
  					HEX3Atmp_537664_839829468 = (NI)(LOC218 - ((NI) 2));
  					res_537667_839829468 = ((NI) 1);
  					{
  						while (1) {
  							Ropeobj180006* LOC225;
  							if (!(res_537667_839829468 <= HEX3Atmp_537664_839829468)) goto LA220;
  							i_537516_839829468 = res_537667_839829468;
  							{
  								if (!(((NI) 1) < i_537516_839829468)) goto LA223;
  								add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_83));
  							}
  							LA223: ;
  							LOC225 = (Ropeobj180006*)0;
  							LOC225 = gettypedescaux_535503_839829468(m0, (*typ0).sons->data[i_537516_839829468], check0);
  							add_180482_2381377266(&result0, LOC225);
  							res_537667_839829468 += ((NI) 1);
  						} LA220: ;
  					}
  				}
  				add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_84));
  			}
  			LA211: ;
  			LOC226 = (Ropeobj180006*)0;
  			LOC226 = getrecorddesc_536643_839829468(m0, t_536942_839829468, result0, check0);
  		}
  		goto LA182;
  		LA186: ;
  		{
  			Tidobj201004* LOC241;
  			TNimObject* LOC242;
  			Ropeobj180006* recdesc0;
  			result0 = cachegettype_535591_839829468((*m0).forwtypecache, t_536942_839829468);
  			{
  				Tidobj201004* LOC239;
  				TNimObject* LOC240;
  				if (!(result0 == NIM_NIL)) goto LA230;
  				result0 = gettypename_535313_839829468(t_536942_839829468);
  				{
  					NIM_BOOL LOC234;
  					NimStringDesc* LOC237;
  					TY534811 LOC238;
  					LOC234 = (NIM_BOOL)0;
  					LOC234 = isimportedtype_535449_839829468(t_536942_839829468);
  					if (!!(LOC234)) goto LA235;
  					LOC237 = (NimStringDesc*)0;
  					LOC237 = getforwardstructformat_536015_839829468(m0);
  					memset((void*)LOC238, 0, sizeof(LOC238));
  					LOC238[0] = structorunion_536001_839829468(t_536942_839829468);
  					LOC238[1] = result0;
  					addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 2))- 0], LOC237, LOC238, 2);
  				}
  				LA235: ;
  				LOC239 = (Tidobj201004*)0;
  				LOC239 = &t_536942_839829468->Sup;
  				LOC240 = (TNimObject*)0;
  				LOC240 = &result0->Sup;
  				idtableput_301094_2984716966((&(*m0).forwtypecache), LOC239, LOC240);
  			}
  			LA230: ;
  			LOC241 = (Tidobj201004*)0;
  			LOC241 = &t_536942_839829468->Sup;
  			LOC242 = (TNimObject*)0;
  			LOC242 = &result0->Sup;
  			idtableput_301094_2984716966((&(*m0).typecache), LOC241, LOC242);
  			{
  				if (!!(((*t_536942_839829468).kind == ((Ttypekind294244) 18)))) goto LA245;
  				recdesc0 = getrecorddesc_536643_839829468(m0, t_536942_839829468, result0, check0);
  			}
  			goto LA243;
  			LA245: ;
  			{
  				recdesc0 = gettupledesc_536777_839829468(m0, t_536942_839829468, result0, check0);
  			}
  			LA243: ;
  			{
  				NIM_BOOL LOC250;
  				LOC250 = (NIM_BOOL)0;
  				LOC250 = isimportedtype_535449_839829468(t_536942_839829468);
  				if (!!(LOC250)) goto LA251;
  				add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], recdesc0);
  			}
  			LA251: ;
  		}
  		LA182: ;
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		Ttype294840* LOC254;
  		Ropeobj180006* LOC255;
  		Tidobj201004* LOC256;
  		TNimObject* LOC257;
  		LOC254 = (Ttype294840*)0;
  		LOC254 = lastson_297377_850551059(t_536942_839829468);
  		LOC255 = (Ropeobj180006*)0;
  		LOC255 = gettypename_535313_839829468(LOC254);
  		result0 = HEX26_180447_2381377266(LOC255, ((NimStringDesc*) &T839829468_105));
  		LOC256 = (Tidobj201004*)0;
  		LOC256 = &t_536942_839829468->Sup;
  		LOC257 = (TNimObject*)0;
  		LOC257 = &result0->Sup;
  		idtableput_301094_2984716966((&(*m0).typecache), LOC256, LOC257);
  		{
  			NIM_BOOL LOC260;
  			NI s0;
  			NI64 LOC263;
  			LOC260 = (NIM_BOOL)0;
  			LOC260 = isimportedtype_535449_839829468(t_536942_839829468);
  			if (!!(LOC260)) goto LA261;
  			LOC263 = (NI64)0;
  			LOC263 = getsize_322135_3876443242(t_536942_839829468);
  			s0 = ((NI) (LOC263));
  			switch (s0) {
  			case ((NI) 1):
  			case ((NI) 2):
  			case ((NI) 4):
  			case ((NI) 8):
  			{
  				TY534811 LOC265;
  				memset((void*)LOC265, 0, sizeof(LOC265));
  				LOC265[0] = result0;
  				LOC265[1] = rope_180401_2381377266(((NI64) ((NI)(s0 * ((NI) 8)))));
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_106), LOC265, 2);
  			}
  			break;
  			default:
  			{
  				TY534811 LOC267;
  				NI64 LOC268;
  				memset((void*)LOC267, 0, sizeof(LOC267));
  				LOC267[0] = result0;
  				LOC268 = (NI64)0;
  				LOC268 = getsize_322135_3876443242(t_536942_839829468);
  				LOC267[1] = rope_180401_2381377266(LOC268);
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_107), LOC267, 2);
  			}
  			break;
  			}
  		}
  		LA261: ;
  	}
  	break;
  	case ((Ttypekind294244) 11):
  	case ((Ttypekind294244) 13):
  	case ((Ttypekind294244) 15):
  	case ((Ttypekind294244) 46):
  	case ((Ttypekind294244) 47):
  	case ((Ttypekind294244) 49):
  	case ((Ttypekind294244) 8):
  	{
  		Ttype294840* LOC270;
  		LOC270 = (Ttype294840*)0;
  		LOC270 = lastson_297377_850551059(t_536942_839829468);
  		result0 = gettypedescaux_535503_839829468(m0, LOC270, check0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC272;
  		LOC272 = (NimStringDesc*)0;
  		LOC272 = rawNewString(reprEnum((NI)(*t_536942_839829468).kind, (&NTI294244))->Sup.len + 16);
  appendString(LOC272, ((NimStringDesc*) &T839829468_108));
  appendString(LOC272, reprEnum((NI)(*t_536942_839829468).kind, (&NTI294244)));
  appendChar(LOC272, 41);
  		internalerror_198113_155036129(LOC272);
  		result0 = NIM_NIL;
  	}
  	break;
  	}
  	excl_270841_2627731572(check0, (*t_536942_839829468).Sup.id);
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, iscompiletimeonly_330706_3876443242)(Ttype294840* t0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = ((*t0).kind == ((Ttypekind294244) 8) || (*t0).kind == ((Ttypekind294244) 59));
  	return result0;
  }
  
  N_NIMCALL(Tstorageloc294812, paramstorageloc_536098_839829468)(Tsym294834* param0) {
  	Tstorageloc294812 result0;
  	result0 = (Tstorageloc294812)0;
  	{
  		Ttype294840* LOC3;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059((*param0).typ, 8388864);
  		if (!!(((*LOC3).kind == ((Ttypekind294244) 16) || (*LOC3).kind == ((Ttypekind294244) 27) || (*LOC3).kind == ((Ttypekind294244) 48) || (*LOC3).kind == ((Ttypekind294244) 4)))) goto LA4;
  		result0 = ((Tstorageloc294812) 2);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		result0 = ((Tstorageloc294812) 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, ccgintroducedptr_535609_839829468)(Tsym294834* s0) {
  	NIM_BOOL result0;
  	Ttype294840* pt0;
  {	result0 = (NIM_BOOL)0;
  	pt0 = skiptypes_298099_850551059((*s0).typ, IL64(211106232576256));
  	{
  		if (!(((*pt0).flags &(1U<<((NU)(((Ttypeflag294431) 13))&31U)))!=0)) goto LA3;
  		result0 = NIM_TRUE;
  		goto BeforeRet;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		if (!(((*pt0).flags &(1U<<((NU)(((Ttypeflag294431) 12))&31U)))!=0)) goto LA6;
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	goto LA1;
  	LA6: ;
  	LA1: ;
  	switch ((*pt0).kind) {
  	case ((Ttypekind294244) 17):
  	{
  		{
  			NIM_BOOL LOC11;
  			NI64 LOC13;
  			LOC11 = (NIM_BOOL)0;
  			LOC11 = (((*s0).options &(1U<<((NU)(((Toption171009) 18))&31U)))!=0);
  			if (LOC11) goto LA12;
  			LOC13 = (NI64)0;
  			LOC13 = getsize_322135_3876443242(pt0);
  			LOC11 = (((NI64) ((NI)(floatsize_178642_4151366050 * ((NI) 2)))) < LOC13);
  			LA12: ;
  			if (!LOC11) goto LA14;
  			result0 = NIM_TRUE;
  		}
  		goto LA9;
  		LA14: ;
  		{
  			NIM_BOOL LOC17;
  			LOC17 = (NIM_BOOL)0;
  			LOC17 = (((*pt0).flags &(1U<<((NU)(((Ttypeflag294431) 2))&31U)))!=0);
  			if (!(LOC17)) goto LA18;
  			LOC17 = ((*pt0).sons->data[((NI) 0)] == NIM_NIL);
  			LA18: ;
  			if (!LOC17) goto LA19;
  			result0 = NIM_FALSE;
  		}
  		goto LA9;
  		LA19: ;
  		{
  			result0 = NIM_TRUE;
  		}
  		LA9: ;
  	}
  	break;
  	case ((Ttypekind294244) 18):
  	{
  		NIM_BOOL LOC23;
  		NI64 LOC24;
  		LOC23 = (NIM_BOOL)0;
  		LOC24 = (NI64)0;
  		LOC24 = getsize_322135_3876443242(pt0);
  		LOC23 = (((NI64) ((NI)(floatsize_178642_4151366050 * ((NI) 2)))) < LOC24);
  		if (LOC23) goto LA25;
  		LOC23 = (((*s0).options &(1U<<((NU)(((Toption171009) 18))&31U)))!=0);
  		LA25: ;
  		result0 = LOC23;
  	}
  	break;
  	default:
  	{
  		result0 = NIM_FALSE;
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Tctypekind531007, mapreturntype_535445_839829468)(Ttype294840* typ0) {
  	Tctypekind531007 result0;
  	result0 = (Tctypekind531007)0;
  	result0 = maptype_535393_839829468(typ0);
  	return result0;
  }
  
  N_NIMCALL(void, genprocparams_536115_839829468)(Tcgen531027* m0, Ttype294840* t0, Ropeobj180006** rettype0, Ropeobj180006** params0, Intset270030* check0, NIM_BOOL declareenvironment0, NIM_BOOL weakdep0) {
  	unsureAsgnRef((void**) (&(*params0)), NIM_NIL);
  	{
  		NIM_BOOL LOC3;
  		TY535289 LOC7;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*t0).sons->data[((NI) 0)] == NIM_NIL);
  		if (LOC3) goto LA4;
  		LOC3 = isinvalidreturntype_535548_839829468((*t0).sons->data[((NI) 0)]);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		unsureAsgnRef((void**) (&(*rettype0)), HEX25_180905_2381377266(((NimStringDesc*) &T839829468_26), LOC7, 0));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		unsureAsgnRef((void**) (&(*rettype0)), gettypedescaux_535503_839829468(m0, (*t0).sons->data[((NI) 0)], check0));
  	}
  	LA1: ;
  	{
  		NI i_536152_839829468;
  		NI HEX3Atmp_536353_839829468;
  		NI LOC10;
  		NI res_536356_839829468;
  		i_536152_839829468 = (NI)0;
  		HEX3Atmp_536353_839829468 = (NI)0;
  		LOC10 = (NI)0;
  		LOC10 = sonslen_297351_850551059((*t0).n);
  		HEX3Atmp_536353_839829468 = (NI)(LOC10 - ((NI) 1));
  		res_536356_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_536356_839829468 <= HEX3Atmp_536353_839829468)) goto LA12;
  				i_536152_839829468 = res_536356_839829468;
  				{
  					Tsym294834* param0;
  					Ropeobj180006* LOC29;
  					Tstorageloc294812 LOC30;
  					TY535289 LOC45;
  					Ropeobj180006* LOC46;
  					Ttype294840* arr0;
  					NI j0;
  					{
  						if (!!(((*(*(*t0).n).kindU.S6.sons->data[i_536152_839829468]).kind == ((Tnodekind294020) 3)))) goto LA16;
  						internalerror_198100_155036129((*(*t0).n).info, ((NimStringDesc*) &T839829468_109));
  					}
  					LA16: ;
  					param0 = (*(*(*t0).n).kindU.S6.sons->data[i_536152_839829468]).kindU.S4.sym;
  					{
  						NIM_BOOL LOC20;
  						LOC20 = (NIM_BOOL)0;
  						LOC20 = iscompiletimeonly_330706_3876443242((*param0).typ);
  						if (!LOC20) goto LA21;
  						goto LA13;
  					}
  					LA21: ;
  					{
  						TY535289 LOC27;
  						Ropeobj180006* LOC28;
  						if (!!(((*params0) == NIM_NIL))) goto LA25;
  						memset((void*)LOC27, 0, sizeof(LOC27));
  						LOC28 = (Ropeobj180006*)0;
  						LOC28 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC27, 0);
  						add_180482_2381377266(params0, LOC28);
  					}
  					LA25: ;
  					LOC29 = (Ropeobj180006*)0;
  					LOC29 = manglename_535205_839829468(param0);
  					LOC30 = (Tstorageloc294812)0;
  					LOC30 = paramstorageloc_536098_839829468(param0);
  					fillloc_534282_839829468((&(*param0).loc), ((Tlockind294808) 4), (*param0).typ, LOC29, LOC30);
  					{
  						NIM_BOOL LOC33;
  						Ropeobj180006* LOC36;
  						TY535289 LOC37;
  						Ropeobj180006* LOC38;
  						LOC33 = (NIM_BOOL)0;
  						LOC33 = ccgintroducedptr_535609_839829468(param0);
  						if (!LOC33) goto LA34;
  						LOC36 = (Ropeobj180006*)0;
  						LOC36 = gettypedescweak_536079_839829468(m0, (*param0).typ, check0);
  						add_180482_2381377266(params0, LOC36);
  						memset((void*)LOC37, 0, sizeof(LOC37));
  						LOC38 = (Ropeobj180006*)0;
  						LOC38 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_53), LOC37, 0);
  						add_180482_2381377266(params0, LOC38);
  						(*param0).loc.flags |= ((NU16)1)<<((((Tlocflag294810) 0))%(sizeof(NU16)*8));
  						(*param0).loc.s = ((Tstorageloc294812) 0);
  					}
  					goto LA31;
  					LA34: ;
  					{
  						Ropeobj180006* LOC42;
  						if (!weakdep0) goto LA40;
  						LOC42 = (Ropeobj180006*)0;
  						LOC42 = gettypedescweak_536079_839829468(m0, (*param0).typ, check0);
  						add_180482_2381377266(params0, LOC42);
  					}
  					goto LA31;
  					LA40: ;
  					{
  						Ropeobj180006* LOC44;
  						LOC44 = (Ropeobj180006*)0;
  						LOC44 = gettypedescaux_535503_839829468(m0, (*param0).typ, check0);
  						add_180482_2381377266(params0, LOC44);
  					}
  					LA31: ;
  					memset((void*)LOC45, 0, sizeof(LOC45));
  					LOC46 = (Ropeobj180006*)0;
  					LOC46 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_111), LOC45, 0);
  					add_180482_2381377266(params0, LOC46);
  					add_180482_2381377266(params0, (*param0).loc.r);
  					arr0 = (*param0).typ;
  					{
  						if (!((*arr0).kind == ((Ttypekind294244) 23))) goto LA49;
  						arr0 = (*arr0).sons->data[((NI) 0)];
  					}
  					LA49: ;
  					j0 = ((NI) 0);
  					{
  						while (1) {
  							TY534811 LOC57;
  							if (!((*arr0).kind == ((Ttypekind294244) 27) || (*arr0).kind == ((Ttypekind294244) 48))) goto LA52;
  							{
  								if (!((*(*param0).typ).kind == ((Ttypekind294244) 23))) goto LA55;
  								(*param0).loc.s = ((Tstorageloc294812) 0);
  							}
  							LA55: ;
  							memset((void*)LOC57, 0, sizeof(LOC57));
  							LOC57[0] = (*param0).loc.r;
  							LOC57[1] = rope_180401_2381377266(((NI64) (j0)));
  							addf_181205_2381377266(params0, ((NimStringDesc*) &T839829468_112), LOC57, 2);
  							j0 += ((NI) 1);
  							arr0 = (*arr0).sons->data[((NI) 0)];
  						} LA52: ;
  					}
  				} LA13: ;
  				res_536356_839829468 += ((NI) 1);
  			} LA12: ;
  		}
  	}
  	{
  		NIM_BOOL LOC60;
  		Ttype294840* arr0;
  		TY535289 LOC76;
  		LOC60 = (NIM_BOOL)0;
  		LOC60 = !(((*t0).sons->data[((NI) 0)] == NIM_NIL));
  		if (!(LOC60)) goto LA61;
  		LOC60 = isinvalidreturntype_535548_839829468((*t0).sons->data[((NI) 0)]);
  		LA61: ;
  		if (!LOC60) goto LA62;
  		arr0 = (*t0).sons->data[((NI) 0)];
  		{
  			if (!!(((*params0) == NIM_NIL))) goto LA66;
  			add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_110));
  		}
  		LA66: ;
  		{
  			Tctypekind531007 LOC70;
  			Ropeobj180006* LOC73;
  			LOC70 = (Tctypekind531007)0;
  			LOC70 = mapreturntype_535445_839829468((*t0).sons->data[((NI) 0)]);
  			if (!!((LOC70 == ((Tctypekind531007) 17)))) goto LA71;
  			LOC73 = (Ropeobj180006*)0;
  			LOC73 = gettypedescweak_536079_839829468(m0, arr0, check0);
  			add_180482_2381377266(params0, LOC73);
  			add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_53));
  		}
  		goto LA68;
  		LA71: ;
  		{
  			Ropeobj180006* LOC75;
  			LOC75 = (Ropeobj180006*)0;
  			LOC75 = gettypedescaux_535503_839829468(m0, arr0, check0);
  			add_180482_2381377266(params0, LOC75);
  		}
  		LA68: ;
  		memset((void*)LOC76, 0, sizeof(LOC76));
  		addf_181205_2381377266(params0, ((NimStringDesc*) &T839829468_113), LOC76, 0);
  	}
  	LA62: ;
  	{
  		NIM_BOOL LOC79;
  		LOC79 = (NIM_BOOL)0;
  		LOC79 = ((*t0).callconv == ((Tcallingconvention294002) 8));
  		if (!(LOC79)) goto LA80;
  		LOC79 = declareenvironment0;
  		LA80: ;
  		if (!LOC79) goto LA81;
  		{
  			if (!!(((*params0) == NIM_NIL))) goto LA85;
  			add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_110));
  		}
  		LA85: ;
  		add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_114));
  	}
  	LA81: ;
  	{
  		if (!(((*t0).flags &(1U<<((NU)(((Ttypeflag294431) 0))&31U)))!=0)) goto LA89;
  		{
  			if (!!(((*params0) == NIM_NIL))) goto LA93;
  			add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_110));
  		}
  		LA93: ;
  		add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_115));
  	}
  	LA89: ;
  	{
  		if (!((*params0) == NIM_NIL)) goto LA97;
  		add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_116));
  	}
  	goto LA95;
  	LA97: ;
  	{
  		add_180487_2381377266(params0, ((NimStringDesc*) &T839829468_117));
  	}
  	LA95: ;
  	unsureAsgnRef((void**) (&(*params0)), HEX26_180452_2381377266(((NimStringDesc*) &T839829468_118), (*params0)));
  }
  
  N_NIMCALL(Ropeobj180006*, genprocheader_537867_839829468)(Tcgen531027* m0, Tsym294834* prc0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* rettype0;
  	Ropeobj180006* params0;
  	Intset270030 check0;
  	Ropeobj180006* LOC13;
  	result0 = (Ropeobj180006*)0;
  	rettype0 = (Ropeobj180006*)0;
  	params0 = (Ropeobj180006*)0;
  	genclinedir_534813_839829468(&result0, (*prc0).info);
  	{
  		if (!(((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 5))&15U)))!=0)) goto LA3;
  		{
  			if (!(((*m0).flags &(1U<<((NU)(((Codegenflag531025) 3))&7U)))!=0)) goto LA7;
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_22));
  		}
  		goto LA5;
  		LA7: ;
  		{
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_23));
  		}
  		LA5: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		if (!((*(*prc0).typ).callconv == ((Tcallingconvention294002) 5))) goto LA11;
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_24));
  	}
  	goto LA1;
  	LA11: ;
  	LA1: ;
  	memset((void*)(&check0), 0, sizeof(check0));
  	chckNil((void*)(&check0));
  	memset((void*)(&check0), 0, sizeof(check0));
  	initintset_270885_2627731572((&check0));
  	LOC13 = (Ropeobj180006*)0;
  	LOC13 = manglename_535205_839829468(prc0);
  	fillloc_534282_839829468((&(*prc0).loc), ((Tlockind294808) 7), (*prc0).typ, LOC13, ((Tstorageloc294812) 0));
  	genprocparams_536115_839829468(m0, (*prc0).typ, &rettype0, &params0, (&check0), NIM_TRUE, NIM_FALSE);
  	{
  		TY537235 LOC18;
  		if (!(*prc0).constraint == 0) goto LA16;
  		memset((void*)LOC18, 0, sizeof(LOC18));
  		LOC18[0] = rope_180277_2381377266(Callingconvtostr_535585_839829468[((*(*prc0).typ).callconv)- 0]);
  		LOC18[1] = rettype0;
  		LOC18[2] = (*prc0).loc.r;
  		LOC18[3] = params0;
  		addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_119), LOC18, 4);
  	}
  	goto LA14;
  	LA16: ;
  	{
  		TY537238 LOC20;
  		memset((void*)LOC20, 0, sizeof(LOC20));
  		LOC20[0] = rettype0;
  		LOC20[1] = (*prc0).loc.r;
  		LOC20[2] = params0;
  		result0 = HEX25_180905_2381377266((*(*prc0).constraint).kindU.S3.strval, LOC20, 3);
  	}
  	LA14: ;
  	return result0;
  }
  
  static N_INLINE(Tnode294802*, HEX5BHEX5D_295238_850551059)(Tnode294802* n0, NI i0) {
  	Tnode294802* result0;
  	result0 = (Tnode294802*)0;
  	result0 = (*n0).kindU.S6.sons->data[i0];
  	return result0;
  }
  
  N_NIMCALL(Tnode294802*, easyresultasgn_562191_839829468)(Tnode294802* n0) {
  	Tnode294802* result0;
  {	result0 = (Tnode294802*)0;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 115):
  	case ((Tnodekind294020) 126):
  	{
  		NI i0;
  		i0 = ((NI) 0);
  		{
  			while (1) {
  				NIM_BOOL LOC4;
  				NI LOC5;
  				Tnode294802* LOC7;
  				LOC4 = (NIM_BOOL)0;
  				LOC5 = (NI)0;
  				LOC5 = len_295081_850551059(n0);
  				LOC4 = (i0 < LOC5);
  				if (!(LOC4)) goto LA6;
  				LOC7 = (Tnode294802*)0;
  				LOC7 = HEX5BHEX5D_295238_850551059(n0, i0);
  				LOC4 = ((*LOC7).kind == ((Tnodekind294020) 1) || (*LOC7).kind >= ((Tnodekind294020) 79) && (*LOC7).kind <= ((Tnodekind294020) 81) || (*LOC7).kind == ((Tnodekind294020) 84) || (*LOC7).kind == ((Tnodekind294020) 98) || (*LOC7).kind == ((Tnodekind294020) 101) || (*LOC7).kind == ((Tnodekind294020) 125));
  				LA6: ;
  				if (!LOC4) goto LA3;
  				i0 += ((NI) 1);
  			} LA3: ;
  		}
  		{
  			NI LOC10;
  			Tnode294802* LOC13;
  			LOC10 = (NI)0;
  			LOC10 = len_295081_850551059(n0);
  			if (!(i0 < LOC10)) goto LA11;
  			LOC13 = (Tnode294802*)0;
  			LOC13 = HEX5BHEX5D_295238_850551059(n0, i0);
  			result0 = easyresultasgn_562191_839829468(LOC13);
  		}
  		LA11: ;
  	}
  	break;
  	case ((Tnodekind294020) 73):
  	case ((Tnodekind294020) 74):
  	{
  		{
  			NIM_BOOL LOC17;
  			Tnode294802* LOC18;
  			Tnode294802* LOC20;
  			LOC17 = (NIM_BOOL)0;
  			LOC18 = (Tnode294802*)0;
  			LOC18 = HEX5BHEX5D_295238_850551059(n0, ((NI) 0));
  			LOC17 = ((*LOC18).kind == ((Tnodekind294020) 3));
  			if (!(LOC17)) goto LA19;
  			LOC20 = (Tnode294802*)0;
  			LOC20 = HEX5BHEX5D_295238_850551059(n0, ((NI) 0));
  			LOC17 = (((Tsymkind294435) 11) == (*(*LOC20).kindU.S4.sym).kind);
  			LA19: ;
  			if (!LOC17) goto LA21;
  			(*n0).flags |= ((NU16)1)<<((((Tnodeflag294427) 14))%(sizeof(NU16)*8));
  			result0 = HEX5BHEX5D_295238_850551059(n0, ((NI) 1));
  			goto BeforeRet;
  		}
  		LA21: ;
  	}
  	break;
  	case ((Tnodekind294020) 109):
  	{
  		{
  			NI LOC26;
  			Tnode294802* LOC29;
  			LOC26 = (NI)0;
  			LOC26 = len_295081_850551059(n0);
  			if (!(((NI) 0) < LOC26)) goto LA27;
  			LOC29 = (Tnode294802*)0;
  			LOC29 = HEX5BHEX5D_295238_850551059(n0, ((NI) 0));
  			result0 = easyresultasgn_562191_839829468(LOC29);
  			{
  				if (!!((result0 == NIM_NIL))) goto LA32;
  				(*n0).flags |= ((NU16)1)<<((((Tnodeflag294427) 14))%(sizeof(NU16)*8));
  			}
  			LA32: ;
  		}
  		LA27: ;
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gettypedesc_537671_839829468)(Tcgen531027* m0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	Intset270030 check0;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&check0), 0, sizeof(check0));
  	chckNil((void*)(&check0));
  	memset((void*)(&check0), 0, sizeof(check0));
  	initintset_270885_2627731572((&check0));
  	result0 = gettypedescaux_535503_839829468(m0, typ0, (&check0));
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, localvardecl_540532_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		Ropeobj180006* LOC5;
  		if (!((*s0).loc.k == ((Tlockind294808) 0))) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = manglename_535205_839829468(s0);
  		fillloc_534282_839829468((&(*s0).loc), ((Tlockind294808) 2), (*s0).typ, LOC5, ((Tstorageloc294812) 2));
  		{
  			if (!((*s0).kind == ((Tsymkind294435) 9))) goto LA8;
  			(*s0).loc.flags |= ((NU16)1)<<((((Tlocflag294810) 2))%(sizeof(NU16)*8));
  		}
  		LA8: ;
  	}
  	LA3: ;
  	result0 = gettypedesc_537671_839829468((*p0).module, (*s0).loc.t);
  	{
  		if (!(*s0).constraint == 0) goto LA12;
  		{
  			if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 8))&31U)))!=0)) goto LA16;
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_121));
  		}
  		LA16: ;
  		{
  			if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 7))&31U)))!=0)) goto LA20;
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_122));
  		}
  		LA20: ;
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_111));
  		add_180482_2381377266(&result0, (*s0).loc.r);
  	}
  	goto LA10;
  	LA12: ;
  	{
  		TY534811 LOC23;
  		memset((void*)LOC23, 0, sizeof(LOC23));
  		LOC23[0] = result0;
  		LOC23[1] = (*s0).loc.r;
  		result0 = HEX25_180905_2381377266((*(*s0).constraint).kindU.S3.strval, LOC23, 2);
  	}
  	LA10: ;
  	return result0;
  }
  
  N_NIMCALL(void, initloc_534273_839829468)(Tloc294816* result0, Tlockind294808 k0, Ttype294840* typ0, Tstorageloc294812 s0) {
  	(*result0).k = k0;
  	(*result0).s = s0;
  	unsureAsgnRef((void**) (&(*result0).t), typ0);
  	unsureAsgnRef((void**) (&(*result0).r), NIM_NIL);
  	(*result0).flags = 0;
  }
  
  N_NIMCALL(void, initlocexprsingleuse_541289_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* result0) {
  	initloc_534273_839829468(result0, ((Tlockind294808) 0), (*e0).typ, ((Tstorageloc294812) 0));
  	(*result0).flags |= ((NU16)1)<<((((Tlocflag294810) 8))%(sizeof(NU16)*8));
  	expr_541248_839829468(p0, e0, result0);
  }
  
  static N_INLINE(Ropeobj180006**, s_531179_3723162438)(Tcproc531021* p0, Tcprocsection531011 s0) {
  	Ropeobj180006** result0;
  	result0 = (Ropeobj180006**)0;
  	result0 = &(*p0).blocks->data[(NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1))].sections[(s0)- 0];
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, indentline_534656_839829468)(Tcproc531021* p0, Ropeobj180006* r0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = r0;
  	{
  		NI i_534680_839829468;
  		NI HEX3Atmp_534683_839829468;
  		NI res_534686_839829468;
  		i_534680_839829468 = (NI)0;
  		HEX3Atmp_534683_839829468 = (NI)0;
  		HEX3Atmp_534683_839829468 = (NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1));
  		res_534686_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_534686_839829468 <= HEX3Atmp_534683_839829468)) goto LA3;
  				i_534680_839829468 = res_534686_839829468;
  				prepend_180893_2381377266(&result0, indent_534655_839829468);
  				res_534686_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	return result0;
  }
  
  N_NIMCALL(void, linefmt_534714_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	Ropeobj180006* LOC3;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, args0, args0Len0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = indentline_534656_839829468(p0, LOC2);
  	add_180482_2381377266(LOC1, LOC3);
  }
  
  N_NIMCALL(Ropeobj180006*, rdloc_540188_839829468)(Tloc294816 a0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = a0.r;
  	{
  		TY180507 LOC5;
  		if (!((a0.flags &(1U<<((NU)(((Tlocflag294810) 0))&15U)))!=0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = result0;
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_124), LOC5, 1);
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(void, line_534690_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, Ropeobj180006* r0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = indentline_534656_839829468(p0, r0);
  	add_180482_2381377266(LOC1, LOC2);
  }
  
  N_NIMCALL(void, linef_534700_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	Ropeobj180006* LOC3;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX25_180905_2381377266(frmt0, args0, args0Len0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = indentline_534656_839829468(p0, LOC2);
  	add_180482_2381377266(LOC1, LOC3);
  }
  
  N_NIMCALL(void, gentypeinfoauxbase_537960_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0, Ropeobj180006* base0) {
  	NI nimtypekind0;
  	Ropeobj180006* size0;
  	TY537235 LOC17;
  	NI flags0;
  	Ropeobj180006* LOC33;
  	TY534811 LOC34;
  	NimStringDesc* LOC35;
  	nimtypekind0 = (NI)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = isobjlackingtypefield_535513_839829468(typ0);
  		if (!LOC3) goto LA4;
  		nimtypekind0 = ((NI) 18);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		nimtypekind0 = ((NI) ((*typ0).kind));
  	}
  	LA1: ;
  	size0 = (Ropeobj180006*)0;
  	{
  		if (!(((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 0))&31U)))!=0)) goto LA9;
  		size0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_133));
  	}
  	goto LA7;
  	LA9: ;
  	{
  		NIM_BOOL LOC12;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC12) goto LA13;
  		LOC12 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA13: ;
  		if (!LOC12) goto LA14;
  		size0 = gettypedesc_537671_839829468(m0, origtype0);
  	}
  	goto LA7;
  	LA14: ;
  	{
  		size0 = gettypedesc_537671_839829468(m0, typ0);
  	}
  	LA7: ;
  	memset((void*)LOC17, 0, sizeof(LOC17));
  	LOC17[0] = name0;
  	LOC17[1] = size0;
  	LOC17[2] = rope_180401_2381377266(((NI64) (nimtypekind0)));
  	LOC17[3] = base0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_134), LOC17, 4);
  	flags0 = ((NI) 0);
  	{
  		NIM_BOOL LOC20;
  		LOC20 = (NIM_BOOL)0;
  		LOC20 = containsgarbagecollectedref_322117_3876443242(typ0);
  		if (!!(LOC20)) goto LA21;
  		flags0 = (NI)(flags0 | ((NI) 1));
  	}
  	LA21: ;
  	{
  		NIM_BOOL LOC25;
  		LOC25 = (NIM_BOOL)0;
  		LOC25 = canformacycle_322123_3876443242(typ0);
  		if (!!(LOC25)) goto LA26;
  		flags0 = (NI)(flags0 | ((NI) 2));
  	}
  	LA26: ;
  	{
  		TY534811 LOC32;
  		if (!!((flags0 == ((NI) 0)))) goto LA30;
  		memset((void*)LOC32, 0, sizeof(LOC32));
  		LOC32[0] = name0;
  		LOC32[1] = rope_180401_2381377266(((NI64) (flags0)));
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_135), LOC32, 2);
  	}
  	LA30: ;
  	LOC33 = (Ropeobj180006*)0;
  	LOC33 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_129));
  	memset((void*)LOC34, 0, sizeof(LOC34));
  	LOC34[0] = name0;
  	LOC35 = (NimStringDesc*)0;
  	LOC35 = typetostring_322017_3876443242(typ0, ((Tprefereddesc322011) 0));
  	LOC34[1] = rope_180277_2381377266(LOC35);
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_136), LOC34, 2);
  }
  
  N_NIMCALL(Ropeobj180006*, getnimnode_537945_839829468)(Tcgen531027* m0) {
  	Ropeobj180006* result0;
  	TY534811 LOC1;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = (*m0).typenodesname;
  	LOC1[1] = rope_180401_2381377266(((NI64) ((*m0).typenodes)));
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_138), LOC1, 2);
  	(*m0).typenodes += ((NI) 1);
  	return result0;
  }
  
  N_NIMCALL(void, gentupleinfo_538549_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0) {
  	Ropeobj180006* LOC1;
  	Ropeobj180006* expr0;
  	NI length0;
  	TY534811 LOC15;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rope_180277_2381377266(((NimStringDesc*) &T839829468_18));
  	gentypeinfoauxbase_537960_839829468(m0, typ0, typ0, name0, LOC1);
  	expr0 = getnimnode_537945_839829468(m0);
  	length0 = sonslen_297327_850551059(typ0);
  	{
  		Ropeobj180006* tmp0;
  		TY534811 LOC6;
  		TY537238 LOC12;
  		if (!(((NI) 0) < length0)) goto LA4;
  		tmp0 = gettempname_535596_839829468(m0);
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = tmp0;
  		LOC6[1] = rope_180401_2381377266(((NI64) (length0)));
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_139), LOC6, 2);
  		{
  			NI i_538571_839829468;
  			NI HEX3Atmp_538590_839829468;
  			NI res_538593_839829468;
  			i_538571_839829468 = (NI)0;
  			HEX3Atmp_538590_839829468 = (NI)0;
  			HEX3Atmp_538590_839829468 = (NI)(length0 - ((NI) 1));
  			res_538593_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Ttype294840* a0;
  					Ropeobj180006* tmp20;
  					TY537238 LOC10;
  					TY537235 LOC11;
  					if (!(res_538593_839829468 <= HEX3Atmp_538590_839829468)) goto LA9;
  					i_538571_839829468 = res_538593_839829468;
  					a0 = (*typ0).sons->data[i_538571_839829468];
  					tmp20 = getnimnode_537945_839829468(m0);
  					memset((void*)LOC10, 0, sizeof(LOC10));
  					LOC10[0] = tmp0;
  					LOC10[1] = rope_180401_2381377266(((NI64) (i_538571_839829468)));
  					LOC10[2] = tmp20;
  					addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_140), LOC10, 3);
  					memset((void*)LOC11, 0, sizeof(LOC11));
  					LOC11[0] = tmp20;
  					LOC11[1] = gettypedesc_537671_839829468(m0, typ0);
  					LOC11[2] = rope_180401_2381377266(((NI64) (i_538571_839829468)));
  					LOC11[3] = gentypeinfo_537941_839829468(m0, a0);
  					addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_141), LOC11, 4);
  					res_538593_839829468 += ((NI) 1);
  				} LA9: ;
  			}
  		}
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		LOC12[0] = expr0;
  		LOC12[1] = rope_180401_2381377266(((NI64) (length0)));
  		LOC12[2] = tmp0;
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_142), LOC12, 3);
  	}
  	goto LA2;
  	LA4: ;
  	{
  		TY534811 LOC14;
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = expr0;
  		LOC14[1] = rope_180401_2381377266(((NI64) (length0)));
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_143), LOC14, 2);
  	}
  	LA2: ;
  	memset((void*)LOC15, 0, sizeof(LOC15));
  	LOC15[0] = name0;
  	LOC15[1] = expr0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_144), LOC15, 2);
  }
  
  N_NIMCALL(Ttype294840*, fakeclosuretype_539010_839829468)(Tsym294834* owner0) {
  	Ttype294840* result0;
  	Ttype294840* LOC1;
  	Ttype294840* r0;
  	Ttype294840* LOC2;
  	result0 = (Ttype294840*)0;
  	result0 = newtype_297107_850551059(((Ttypekind294244) 18), owner0);
  	LOC1 = (Ttype294840*)0;
  	LOC1 = newtype_297107_850551059(((Ttypekind294244) 26), owner0);
  	rawaddson_298394_850551059(result0, LOC1);
  	r0 = newtype_297107_850551059(((Ttypekind294244) 22), owner0);
  	LOC2 = (Ttype294840*)0;
  	LOC2 = newtype_297107_850551059(((Ttypekind294244) 18), owner0);
  	rawaddson_298394_850551059(r0, LOC2);
  	rawaddson_298394_850551059(result0, r0);
  	return result0;
  }
  
  N_NIMCALL(void, gentypeinfoaux_538027_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0) {
  	Ropeobj180006* base0;
  	base0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		NI LOC4;
  		Ttype294840* x0;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NI)0;
  		LOC4 = sonslen_297327_850551059(typ0);
  		LOC3 = (((NI) 0) < LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = !(((*typ0).sons->data[((NI) 0)] == NIM_NIL));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		x0 = (*typ0).sons->data[((NI) 0)];
  		{
  			if (!((*typ0).kind == ((Ttypekind294244) 17))) goto LA10;
  			x0 = skiptypes_298099_850551059(x0, IL64(211106247215360));
  		}
  		LA10: ;
  		base0 = gentypeinfo_537941_839829468(m0, x0);
  	}
  	goto LA1;
  	LA6: ;
  	{
  		base0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_18));
  	}
  	LA1: ;
  	gentypeinfoauxbase_537960_839829468(m0, typ0, origtype0, name0, base0);
  }
  
  static N_INLINE(NIM_BOOL, iscomplexvaluetype_540317_839829468)(Ttype294840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC3;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((*t0).kind == ((Ttypekind294244) 16) || (*t0).kind == ((Ttypekind294244) 4) || (*t0).kind == ((Ttypekind294244) 19) || (*t0).kind == ((Ttypekind294244) 18) || (*t0).kind == ((Ttypekind294244) 17));
  	if (LOC1) goto LA2;
  	LOC3 = (NIM_BOOL)0;
  	LOC3 = ((*t0).kind == ((Ttypekind294244) 25));
  	if (!(LOC3)) goto LA4;
  	LOC3 = ((*t0).callconv == ((Tcallingconvention294002) 8));
  	LA4: ;
  	LOC1 = LOC3;
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, usestringh_534345_839829468)(Tcgen531027* m0) {
  	{
  		NIM_BOOL LOC5;
  		if (!!((((*m0).flags &(1U<<((NU)(((Codegenflag531025) 4))&7U)))!=0))) goto LA3;
  		(*m0).flags |= ((NU8)1)<<((((Codegenflag531025) 4))%(sizeof(NU8)*8));
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = includestr_148249_3771138726((&(*m0).headerfiles), ((NimStringDesc*) &T839829468_151));
  	}
  	LA3: ;
  }
  
  N_NIMCALL(Ropeobj180006*, addrloc_540204_839829468)(Tloc294816 a0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = a0.r;
  	{
  		NIM_BOOL LOC3;
  		Tctypekind531007 LOC5;
  		Ropeobj180006* LOC8;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !(((a0.flags &(1U<<((NU)(((Tlocflag294810) 0))&15U)))!=0));
  		if (!(LOC3)) goto LA4;
  		LOC5 = (Tctypekind531007)0;
  		LOC5 = maptype_535393_839829468(a0.t);
  		LOC3 = !((LOC5 == ((Tctypekind531007) 17)));
  		LA4: ;
  		if (!LOC3) goto LA6;
  		LOC8 = (Ropeobj180006*)0;
  		LOC8 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_128), result0);
  		result0 = HEX26_180447_2381377266(LOC8, ((NimStringDesc*) &T839829468_117));
  	}
  	LA6: ;
  	return result0;
  }
  
  N_NIMCALL(void, genobjectinit_540242_839829468)(Tcproc531021* p0, Tcprocsection531011 section0, Ttype294840* t0, Tloc294816 a0, NIM_BOOL takeaddr0) {
  	Ttypefieldresult322145 LOC1;
  	LOC1 = (Ttypefieldresult322145)0;
  	LOC1 = analyseobjectwithtypefield_322149_3876443242(t0);
  	switch (LOC1) {
  	case ((Ttypefieldresult322145) 0):
  	{
  	}
  	break;
  	case ((Ttypefieldresult322145) 1):
  	{
  		Ropeobj180006* r0;
  		Ttype294840* s0;
  		TY534811 LOC19;
  		r0 = rdloc_540188_839829468(a0);
  		{
  			TY180507 LOC8;
  			if (!!(takeaddr0)) goto LA6;
  			memset((void*)LOC8, 0, sizeof(LOC8));
  			LOC8[0] = r0;
  			r0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_124), LOC8, 1);
  		}
  		LA6: ;
  		s0 = skiptypes_298099_850551059(t0, IL64(211106232576256));
  		{
  			NIM_BOOL LOC11;
  			LOC11 = (NIM_BOOL)0;
  			LOC11 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC11) goto LA12;
  			LOC11 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA12: ;
  			if (!!(LOC11)) goto LA13;
  			{
  				while (1) {
  					NIM_BOOL LOC17;
  					LOC17 = (NIM_BOOL)0;
  					LOC17 = ((*s0).kind == ((Ttypekind294244) 17));
  					if (!(LOC17)) goto LA18;
  					LOC17 = !(((*s0).sons->data[((NI) 0)] == NIM_NIL));
  					LA18: ;
  					if (!LOC17) goto LA16;
  					add_180487_2381377266(&r0, ((NimStringDesc*) &T839829468_153));
  					s0 = skiptypes_298099_850551059((*s0).sons->data[((NI) 0)], IL64(211106247215360));
  				} LA16: ;
  			}
  		}
  		LA13: ;
  		memset((void*)LOC19, 0, sizeof(LOC19));
  		LOC19[0] = r0;
  		LOC19[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		linefmt_534714_839829468(p0, section0, ((NimStringDesc*) &T839829468_154), LOC19, 2);
  	}
  	break;
  	case ((Ttypefieldresult322145) 2):
  	{
  		Ropeobj180006* r0;
  		TY534811 LOC26;
  		{
  			if (!takeaddr0) goto LA23;
  			r0 = addrloc_540204_839829468(a0);
  		}
  		goto LA21;
  		LA23: ;
  		{
  			r0 = rdloc_540188_839829468(a0);
  		}
  		LA21: ;
  		memset((void*)LOC26, 0, sizeof(LOC26));
  		LOC26[0] = r0;
  		LOC26[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		linefmt_534714_839829468(p0, section0, ((NimStringDesc*) &T839829468_155), LOC26, 2);
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, constructloc_540388_839829468)(Tcproc531021* p0, Tloc294816 loc0, NIM_BOOL istemp0) {
  	Ttype294840* typ0;
  	typ0 = skiptypes_298099_850551059(loc0.t, IL64(211106233624832));
  	{
  		NIM_BOOL LOC3;
  		TY534811 LOC6;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = iscomplexvaluetype_540317_839829468(typ0);
  		if (!!(LOC3)) goto LA4;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = rdloc_540188_839829468(loc0);
  		LOC6[1] = gettypedesc_537671_839829468((*p0).module, typ0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_150), LOC6, 2);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		{
  			NIM_BOOL LOC10;
  			LOC10 = (NIM_BOOL)0;
  			LOC10 = !(istemp0);
  			if (LOC10) goto LA11;
  			LOC10 = containsgarbagecollectedref_322117_3876443242(loc0.t);
  			LA11: ;
  			if (!LOC10) goto LA12;
  			{
  				NIM_BOOL LOC16;
  				TY534811 LOC19;
  				LOC16 = (NIM_BOOL)0;
  				LOC16 = isimportedcpptype_535476_839829468(typ0);
  				if (!!(LOC16)) goto LA17;
  				usestringh_534345_839829468((*p0).module);
  				memset((void*)LOC19, 0, sizeof(LOC19));
  				LOC19[0] = addrloc_540204_839829468(loc0);
  				LOC19[1] = rdloc_540188_839829468(loc0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_152), LOC19, 2);
  			}
  			LA17: ;
  		}
  		LA12: ;
  		genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 2), loc0.t, loc0, NIM_TRUE);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gettemp_539032_839829468)(Tcproc531021* p0, Ttype294840* t0, Tloc294816* result0, NIM_BOOL needsinit0) {
  	Ropeobj180006* LOC1;
  	TY534811 LOC2;
  	(*p0).labels += ((NI) 1);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rope_180401_2381377266(((NI64) ((*p0).labels)));
  	unsureAsgnRef((void**) (&(*result0).r), HEX26_180452_2381377266(((NimStringDesc*) &T839829468_149), LOC1));
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = gettypedesc_537671_839829468((*p0).module, t0);
  	LOC2[1] = (*result0).r;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 0), ((NimStringDesc*) &T839829468_54), LOC2, 2);
  	(*result0).k = ((Tlockind294808) 1);
  	unsureAsgnRef((void**) (&(*result0).t), t0);
  	(*result0).s = ((Tstorageloc294812) 2);
  	(*result0).flags = 0;
  	constructloc_540388_839829468(p0, (*result0), !(needsinit0));
  }
  
  static N_INLINE(Ropeobj180006*, parentobj_539257_839829468)(Ropeobj180006* accessor0, Tcgen531027* m0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		TY180507 LOC7;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!!(LOC3)) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = accessor0;
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_161), LOC7, 1);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		result0 = accessor0;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, intliteral_541270_839829468)(NI64 i0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (IL64(-2147483648) < i0);
  		if (!(LOC3)) goto LA4;
  		LOC3 = (i0 <= IL64(2147483647));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = rope_180401_2381377266(i0);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		TY535289 LOC10;
  		if (!(i0 == IL64(-2147483648))) goto LA8;
  		memset((void*)LOC10, 0, sizeof(LOC10));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_166), LOC10, 0);
  	}
  	goto LA1;
  	LA8: ;
  	{
  		TY180507 LOC14;
  		if (!((IL64(-9223372036854775807) - IL64(1)) < i0)) goto LA12;
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = rope_180401_2381377266(i0);
  		result0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_167), LOC14, 1);
  	}
  	goto LA1;
  	LA12: ;
  	{
  		TY535289 LOC16;
  		memset((void*)LOC16, 0, sizeof(LOC16));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_168), LOC16, 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, int64literal_551430_839829468)(NI64 i0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		TY180507 LOC5;
  		if (!((IL64(-9223372036854775807) - IL64(1)) < i0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rope_180401_2381377266(i0);
  		result0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_167), LOC5, 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY535289 LOC7;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_168), LOC7, 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, uint64literal_551442_839829468)(NU64 i0) {
  	Ropeobj180006* result0;
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (NimStringDesc*)0;
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = HEX24_8401_1689653243(i0);
  	LOC1 = rawNewString(LOC2->Sup.len + 3);
  appendString(LOC1, LOC2);
  appendString(LOC1, ((NimStringDesc*) &T839829468_171));
  	result0 = rope_180277_2381377266(LOC1);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getstrlit_551468_839829468)(Tcgen531027* m0, NimStringDesc* s0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	TY537238 LOC2;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_79));
  	result0 = gettempname_535596_839829468(m0);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = result0;
  	LOC2[1] = makecstring_193638_155036129(s0);
  	LOC2[2] = rope_180401_2381377266(((NI64) ((s0 ? s0->Sup.len : 0))));
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_177), LOC2, 3);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genliteral_551476_839829468)(Tcproc531021* p0, Tnode294802* n0, Ttype294840* ty0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!(ty0 == NIM_NIL)) goto LA3;
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_165));
  	}
  	LA3: ;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 5) ... ((Tnodekind294020) 15):
  	{
  		Ttype294840* LOC6;
  		LOC6 = (Ttype294840*)0;
  		LOC6 = skiptypes_298099_850551059(ty0, IL64(211106242013440));
  		switch ((*LOC6).kind) {
  		case ((Ttypekind294244) 2):
  		case ((Ttypekind294244) 5):
  		{
  			result0 = intliteral_541270_839829468((*n0).kindU.S1.intval);
  		}
  		break;
  		case ((Ttypekind294244) 1):
  		{
  			{
  				TY535289 LOC13;
  				if (!!(((*n0).kindU.S1.intval == IL64(0)))) goto LA11;
  				memset((void*)LOC13, 0, sizeof(LOC13));
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_169), LOC13, 0);
  			}
  			goto LA9;
  			LA11: ;
  			{
  				TY535289 LOC15;
  				memset((void*)LOC15, 0, sizeof(LOC15));
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_170), LOC15, 0);
  			}
  			LA9: ;
  		}
  		break;
  		case ((Ttypekind294244) 35):
  		{
  			result0 = int64literal_551430_839829468((*n0).kindU.S1.intval);
  		}
  		break;
  		case ((Ttypekind294244) 44):
  		{
  			result0 = uint64literal_551442_839829468(((NU64) ((*n0).kindU.S1.intval)));
  		}
  		break;
  		default:
  		{
  			TY534811 LOC19;
  			Ttype294840* LOC20;
  			memset((void*)LOC19, 0, sizeof(LOC19));
  			LOC20 = (Ttype294840*)0;
  			LOC20 = skiptypes_298099_850551059(ty0, IL64(211106242013440));
  			LOC19[0] = gettypedesc_537671_839829468((*p0).module, LOC20);
  			LOC19[1] = intliteral_541270_839829468((*n0).kindU.S1.intval);
  			result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_172), LOC19, 2);
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tnodekind294020) 23):
  	{
  		Ttype294840* t0;
  		t0 = skiptypes_298099_850551059(ty0, IL64(211106242013440));
  		{
  			NIM_BOOL LOC24;
  			NI id0;
  			Ropeobj180006* LOC28;
  			LOC24 = (NIM_BOOL)0;
  			LOC24 = ((*t0).kind == ((Ttypekind294244) 25));
  			if (!(LOC24)) goto LA25;
  			LOC24 = ((*t0).callconv == ((Tcallingconvention294002) 8));
  			LA25: ;
  			if (!LOC24) goto LA26;
  			id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), n0, ((NI) ((*(*p0).module).labels)));
  			LOC28 = (Ropeobj180006*)0;
  			LOC28 = rope_180401_2381377266(((NI64) (id0)));
  			result0 = HEX26_180418_2381377266((*(*p0).module).tmpbase, LOC28);
  			{
  				TY534811 LOC33;
  				if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA31;
  				(*(*p0).module).labels += ((NI) 1);
  				memset((void*)LOC33, 0, sizeof(LOC33));
  				LOC33[0] = gettypedesc_537671_839829468((*p0).module, t0);
  				LOC33[1] = result0;
  				addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_173), LOC33, 2);
  			}
  			LA31: ;
  		}
  		goto LA22;
  		LA26: ;
  		{
  			result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_174));
  		}
  		LA22: ;
  	}
  	break;
  	case ((Tnodekind294020) 20) ... ((Tnodekind294020) 22):
  	{
  		{
  			TY535289 LOC40;
  			if (!(*n0).kindU.S3.strval == 0) goto LA38;
  			memset((void*)LOC40, 0, sizeof(LOC40));
  			result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_175), LOC40, 0);
  		}
  		goto LA36;
  		LA38: ;
  		{
  			Ttype294840* LOC42;
  			NI id0;
  			LOC42 = (Ttype294840*)0;
  			LOC42 = skiptypes_298099_850551059(ty0, IL64(211106242013440));
  			if (!((*LOC42).kind == ((Ttypekind294244) 28))) goto LA43;
  			id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), n0, ((NI) ((*(*p0).module).labels)));
  			{
  				TY180507 LOC49;
  				if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA47;
  				memset((void*)LOC49, 0, sizeof(LOC49));
  				LOC49[0] = getstrlit_551468_839829468((*p0).module, (*n0).kindU.S3.strval);
  				result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_176), LOC49, 1);
  			}
  			goto LA45;
  			LA47: ;
  			{
  				TY534811 LOC51;
  				memset((void*)LOC51, 0, sizeof(LOC51));
  				LOC51[0] = (*(*p0).module).tmpbase;
  				LOC51[1] = rope_180401_2381377266(((NI64) (id0)));
  				result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_178), LOC51, 2);
  			}
  			LA45: ;
  		}
  		goto LA36;
  		LA43: ;
  		{
  			result0 = makecstring_193638_155036129((*n0).kindU.S3.strval);
  		}
  		LA36: ;
  	}
  	break;
  	case ((Tnodekind294020) 16) ... ((Tnodekind294020) 18):
  	{
  		NimStringDesc* LOC54;
  		LOC54 = (NimStringDesc*)0;
  		LOC54 = tostrmaxprecision_300007_3471544153((*n0).kindU.S2.floatval);
  		result0 = rope_180277_2381377266(LOC54);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC56;
  		LOC56 = (NimStringDesc*)0;
  		LOC56 = rawNewString(reprEnum((NI)(*n0).kind, (&NTI294020))->Sup.len + 12);
  appendString(LOC56, ((NimStringDesc*) &T839829468_179));
  appendString(LOC56, reprEnum((NI)(*n0).kind, (&NTI294020)));
  appendChar(LOC56, 41);
  		internalerror_198100_155036129((*n0).info, LOC56);
  		result0 = NIM_NIL;
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genliteral_541273_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = genliteral_551476_839829468(p0, n0, (*n0).typ);
  	return result0;
  }
  
  N_NIMCALL(void, gencaserange_539028_839829468)(Tcproc531021* p0, Tnode294802* branch0) {
  	NI length0;
  	length0 = len_295081_850551059(branch0);
  	{
  		NI j_549676_839829468;
  		NI HEX3Atmp_549717_839829468;
  		NI res_549720_839829468;
  		j_549676_839829468 = (NI)0;
  		HEX3Atmp_549717_839829468 = (NI)0;
  		HEX3Atmp_549717_839829468 = (NI)(length0 - ((NI) 2));
  		res_549720_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_549720_839829468 <= HEX3Atmp_549717_839829468)) goto LA3;
  				j_549676_839829468 = res_549720_839829468;
  				{
  					Tnode294802* LOC6;
  					LOC6 = (Tnode294802*)0;
  					LOC6 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  					if (!((*LOC6).kind == ((Tnodekind294020) 44))) goto LA7;
  					{
  						TY534811 LOC13;
  						Tnode294802* LOC14;
  						Tnode294802* LOC15;
  						Tnode294802* LOC16;
  						Tnode294802* LOC17;
  						if (!((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 0))&7U)))!=0)) goto LA11;
  						memset((void*)LOC13, 0, sizeof(LOC13));
  						LOC14 = (Tnode294802*)0;
  						LOC14 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  						LOC15 = (Tnode294802*)0;
  						LOC15 = HEX5BHEX5D_295238_850551059(LOC14, ((NI) 0));
  						LOC13[0] = genliteral_541273_839829468(p0, LOC15);
  						LOC16 = (Tnode294802*)0;
  						LOC16 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  						LOC17 = (Tnode294802*)0;
  						LOC17 = HEX5BHEX5D_295238_850551059(LOC16, ((NI) 1));
  						LOC13[1] = genliteral_541273_839829468(p0, LOC17);
  						linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_164), LOC13, 2);
  					}
  					goto LA9;
  					LA11: ;
  					{
  						Tnode294802* v0;
  						Tnode294802* LOC19;
  						Tnode294802* LOC20;
  						LOC19 = (Tnode294802*)0;
  						LOC19 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  						LOC20 = (Tnode294802*)0;
  						LOC20 = HEX5BHEX5D_295238_850551059(LOC19, ((NI) 0));
  						v0 = copynode_298528_850551059(LOC20);
  						{
  							while (1) {
  								Tnode294802* LOC23;
  								Tnode294802* LOC24;
  								TY180507 LOC25;
  								LOC23 = (Tnode294802*)0;
  								LOC23 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  								LOC24 = (Tnode294802*)0;
  								LOC24 = HEX5BHEX5D_295238_850551059(LOC23, ((NI) 1));
  								if (!((*v0).kindU.S1.intval <= (*LOC24).kindU.S1.intval)) goto LA22;
  								memset((void*)LOC25, 0, sizeof(LOC25));
  								LOC25[0] = genliteral_541273_839829468(p0, v0);
  								linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_180), LOC25, 1);
  								(*v0).kindU.S1.intval += ((NI) 1);
  							} LA22: ;
  						}
  					}
  					LA9: ;
  				}
  				goto LA4;
  				LA7: ;
  				{
  					TY180507 LOC27;
  					Tnode294802* LOC28;
  					memset((void*)LOC27, 0, sizeof(LOC27));
  					LOC28 = (Tnode294802*)0;
  					LOC28 = HEX5BHEX5D_295238_850551059(branch0, j_549676_839829468);
  					LOC27[0] = genliteral_541273_839829468(p0, LOC28);
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_180), LOC27, 1);
  				}
  				LA4: ;
  				res_549720_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  }
  
  N_NIMCALL(void, gentraverseproc_539039_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Tnode294802* n0) {
  {	{
  		if (!(n0 == NIM_NIL)) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 138):
  	{
  		{
  			NI i_539068_839829468;
  			NI HEX3Atmp_539239_839829468;
  			NI LOC7;
  			NI res_539242_839829468;
  			i_539068_839829468 = (NI)0;
  			HEX3Atmp_539239_839829468 = (NI)0;
  			LOC7 = (NI)0;
  			LOC7 = sonslen_297351_850551059(n0);
  			HEX3Atmp_539239_839829468 = (NI)(LOC7 - ((NI) 1));
  			res_539242_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_539242_839829468 <= HEX3Atmp_539239_839829468)) goto LA9;
  					i_539068_839829468 = res_539242_839829468;
  					gentraverseproc_539039_839829468(c0, accessor0, (*n0).kindU.S6.sons->data[i_539068_839829468]);
  					res_539242_839829468 += ((NI) 1);
  				} LA9: ;
  			}
  		}
  	}
  	break;
  	case ((Tnodekind294020) 139):
  	{
  		Tcproc531021* p0;
  		Tsym294834* disc0;
  		TY534811 LOC15;
  		TY535289 LOC28;
  		{
  			if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3)))) goto LA13;
  			internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_162));
  		}
  		LA13: ;
  		p0 = (*c0).p;
  		disc0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		memset((void*)LOC15, 0, sizeof(LOC15));
  		LOC15[0] = accessor0;
  		LOC15[1] = (*disc0).loc.r;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_163), LOC15, 2);
  		{
  			NI i_539098_839829468;
  			NI HEX3Atmp_539249_839829468;
  			NI LOC17;
  			NI res_539252_839829468;
  			i_539098_839829468 = (NI)0;
  			HEX3Atmp_539249_839829468 = (NI)0;
  			LOC17 = (NI)0;
  			LOC17 = sonslen_297351_850551059(n0);
  			HEX3Atmp_539249_839829468 = (NI)(LOC17 - ((NI) 1));
  			res_539252_839829468 = ((NI) 1);
  			{
  				while (1) {
  					Tnode294802* branch0;
  					Tnode294802* LOC26;
  					TY535289 LOC27;
  					if (!(res_539252_839829468 <= HEX3Atmp_539249_839829468)) goto LA19;
  					i_539098_839829468 = res_539252_839829468;
  					branch0 = (*n0).kindU.S6.sons->data[i_539098_839829468];
  					{
  						if (!((*branch0).kind == ((Tnodekind294020) 85))) goto LA22;
  						gencaserange_539028_839829468((*c0).p, branch0);
  					}
  					goto LA20;
  					LA22: ;
  					{
  						TY535289 LOC25;
  						memset((void*)LOC25, 0, sizeof(LOC25));
  						linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_181), LOC25, 0);
  					}
  					LA20: ;
  					LOC26 = (Tnode294802*)0;
  					LOC26 = lastson_297364_850551059(branch0);
  					gentraverseproc_539039_839829468(c0, accessor0, LOC26);
  					memset((void*)LOC27, 0, sizeof(LOC27));
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_182), LOC27, 0);
  					res_539252_839829468 += ((NI) 1);
  				} LA19: ;
  			}
  		}
  		memset((void*)LOC28, 0, sizeof(LOC28));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_183), LOC28, 0);
  	}
  	break;
  	case ((Tnodekind294020) 3):
  	{
  		Tsym294834* field0;
  		TY534811 LOC34;
  		Ropeobj180006* LOC35;
  		field0 = (*n0).kindU.S4.sym;
  		{
  			if (!((*field0).loc.t == NIM_NIL)) goto LA32;
  			internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_184));
  		}
  		LA32: ;
  		memset((void*)LOC34, 0, sizeof(LOC34));
  		LOC34[0] = accessor0;
  		LOC34[1] = (*field0).loc.r;
  		LOC35 = (Ropeobj180006*)0;
  		LOC35 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_90), LOC34, 2);
  		gentraverseproc_539022_839829468(c0, LOC35, (*field0).loc.t);
  	}
  	break;
  	default:
  	{
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_184));
  	}
  	break;
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, linecg_534707_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	Ropeobj180006* LOC3;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, args0, args0Len0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = indentline_534656_839829468(p0, LOC2);
  	add_180482_2381377266(LOC1, LOC3);
  }
  
  N_NIMCALL(void, gentraverseproc_539022_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Ttype294840* typ_539027_839829468) {
  	Ttype294840* typ_539302_839829468;
  	Tcproc531021* p0;
  {	{
  		if (!(typ_539027_839829468 == NIM_NIL)) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	typ_539302_839829468 = getuniquetype_530640_2036603609(typ_539027_839829468);
  	p0 = (*c0).p;
  	switch ((*typ_539302_839829468).kind) {
  	case ((Ttypekind294244) 11):
  	case ((Ttypekind294244) 10):
  	case ((Ttypekind294244) 8):
  	{
  		Ttype294840* LOC6;
  		LOC6 = (Ttype294840*)0;
  		LOC6 = lastson_297377_850551059(typ_539302_839829468);
  		gentraverseproc_539022_839829468(c0, accessor0, LOC6);
  	}
  	break;
  	case ((Ttypekind294244) 4):
  	case ((Ttypekind294244) 16):
  	{
  		NI64 arraysize0;
  		Tloc294816 i0;
  		Ttype294840* LOC8;
  		TY534811 LOC9;
  		TY534811 LOC10;
  		Ropeobj180006* LOC11;
  		TY535289 LOC12;
  		arraysize0 = lengthord_322007_3876443242((*typ_539302_839829468).sons->data[((NI) 0)]);
  		memset((void*)(&i0), 0, sizeof(i0));
  		LOC8 = (Ttype294840*)0;
  		LOC8 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  		gettemp_539032_839829468(p0, LOC8, (&i0), NIM_FALSE);
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = i0.r;
  		LOC9[1] = rope_180401_2381377266(arraysize0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_159), LOC9, 2);
  		memset((void*)LOC10, 0, sizeof(LOC10));
  		LOC10[0] = accessor0;
  		LOC10[1] = i0.r;
  		LOC11 = (Ropeobj180006*)0;
  		LOC11 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_138), LOC10, 2);
  		gentraverseproc_539022_839829468(c0, LOC11, (*typ_539302_839829468).sons->data[((NI) 1)]);
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC12, 0);
  	}
  	break;
  	case ((Ttypekind294244) 17):
  	{
  		{
  			NI i_539325_839829468;
  			NI HEX3Atmp_539384_839829468;
  			NI LOC15;
  			NI res_539387_839829468;
  			i_539325_839829468 = (NI)0;
  			HEX3Atmp_539384_839829468 = (NI)0;
  			LOC15 = (NI)0;
  			LOC15 = sonslen_297327_850551059(typ_539302_839829468);
  			HEX3Atmp_539384_839829468 = (NI)(LOC15 - ((NI) 1));
  			res_539387_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Ttype294840* x0;
  					Ropeobj180006* LOC22;
  					if (!(res_539387_839829468 <= HEX3Atmp_539384_839829468)) goto LA17;
  					i_539325_839829468 = res_539387_839829468;
  					x0 = (*typ_539302_839829468).sons->data[i_539325_839829468];
  					{
  						if (!!((x0 == NIM_NIL))) goto LA20;
  						x0 = skiptypes_298099_850551059(x0, IL64(211106247215360));
  					}
  					LA20: ;
  					LOC22 = (Ropeobj180006*)0;
  					LOC22 = parentobj_539257_839829468(accessor0, (*(*c0).p).module);
  					gentraverseproc_539022_839829468(c0, LOC22, x0);
  					res_539387_839829468 += ((NI) 1);
  				} LA17: ;
  			}
  		}
  		{
  			if (!!(((*typ_539302_839829468).n == NIM_NIL))) goto LA25;
  			gentraverseproc_539039_839829468(c0, accessor0, (*typ_539302_839829468).n);
  		}
  		LA25: ;
  	}
  	break;
  	case ((Ttypekind294244) 18):
  	{
  		Ttype294840* typ0;
  		typ0 = getuniquetype_530640_2036603609(typ_539302_839829468);
  		{
  			NI i_539363_839829468;
  			NI HEX3Atmp_539392_839829468;
  			NI LOC29;
  			NI res_539395_839829468;
  			i_539363_839829468 = (NI)0;
  			HEX3Atmp_539392_839829468 = (NI)0;
  			LOC29 = (NI)0;
  			LOC29 = sonslen_297327_850551059(typ0);
  			HEX3Atmp_539392_839829468 = (NI)(LOC29 - ((NI) 1));
  			res_539395_839829468 = ((NI) 0);
  			{
  				while (1) {
  					TY534811 LOC32;
  					Ropeobj180006* LOC33;
  					if (!(res_539395_839829468 <= HEX3Atmp_539392_839829468)) goto LA31;
  					i_539363_839829468 = res_539395_839829468;
  					memset((void*)LOC32, 0, sizeof(LOC32));
  					LOC32[0] = accessor0;
  					LOC32[1] = rope_180401_2381377266(((NI64) (i_539363_839829468)));
  					LOC33 = (Ropeobj180006*)0;
  					LOC33 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_185), LOC32, 2);
  					gentraverseproc_539022_839829468(c0, LOC33, (*typ0).sons->data[i_539363_839829468]);
  					res_539395_839829468 += ((NI) 1);
  				} LA31: ;
  			}
  		}
  	}
  	break;
  	case ((Ttypekind294244) 22):
  	case ((Ttypekind294244) 28):
  	case ((Ttypekind294244) 24):
  	{
  		TY180507 LOC35;
  		memset((void*)LOC35, 0, sizeof(LOC35));
  		LOC35[0] = accessor0;
  		linecg_534707_839829468(p0, ((Tcprocsection531011) 2), (*c0).visitorfrmt, LOC35, 1);
  	}
  	break;
  	case ((Ttypekind294244) 25):
  	{
  		{
  			TY180507 LOC41;
  			TY180507 LOC42;
  			if (!((*typ_539302_839829468).callconv == ((Tcallingconvention294002) 8))) goto LA39;
  			memset((void*)LOC41, 0, sizeof(LOC41));
  			memset((void*)LOC42, 0, sizeof(LOC42));
  			LOC42[0] = accessor0;
  			LOC41[0] = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_186), LOC42, 1);
  			linecg_534707_839829468(p0, ((Tcprocsection531011) 2), (*c0).visitorfrmt, LOC41, 1);
  		}
  		LA39: ;
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, gentraverseprocseq_539399_839829468)(Ttraversalclosure539019* c0, Ropeobj180006* accessor0, Ttype294840* typ0) {
  	Tcproc531021* p0;
  	Tloc294816 i0;
  	Ttype294840* LOC1;
  	TY537238 LOC2;
  	NimStringDesc* LOC3;
  	TY534811 LOC11;
  	Ropeobj180006* LOC12;
  	TY535289 LOC13;
  	p0 = (*c0).p;
  	memset((void*)(&i0), 0, sizeof(i0));
  	LOC1 = (Ttype294840*)0;
  	LOC1 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  	gettemp_539032_839829468(p0, LOC1, (&i0), NIM_FALSE);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = i0.r;
  	LOC2[1] = accessor0;
  	LOC3 = (NimStringDesc*)0;
  	{
  		NIM_BOOL LOC6;
  		LOC6 = (NIM_BOOL)0;
  		LOC6 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC6) goto LA7;
  		LOC6 = (((*(*(*(*c0).p).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA7: ;
  		if (!LOC6) goto LA8;
  		LOC3 = copyString(((NimStringDesc*) &T839829468_157));
  	}
  	goto LA4;
  	LA8: ;
  	{
  		LOC3 = copyString(((NimStringDesc*) &T839829468_158));
  	}
  	LA4: ;
  	LOC2[2] = rope_180277_2381377266(LOC3);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_156), LOC2, 3);
  	memset((void*)LOC11, 0, sizeof(LOC11));
  	LOC11[0] = accessor0;
  	LOC11[1] = i0.r;
  	LOC12 = (Ropeobj180006*)0;
  	LOC12 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_187), LOC11, 2);
  	gentraverseproc_539022_839829468(c0, LOC12, (*typ0).sons->data[((NI) 0)]);
  	memset((void*)LOC13, 0, sizeof(LOC13));
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC13, 0);
  }
  
  N_NIMCALL(Ropeobj180006*, gentraverseproc_539632_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttypeinforeason539016 reason0) {
  	Ropeobj180006* result0;
  	Ttraversalclosure539019 c0;
  	Tcproc531021* p0;
  	Ropeobj180006* header0;
  	TY180507 LOC3;
  	Ropeobj180006* t0;
  	TY180507 LOC4;
  	TY180507 LOC5;
  	Ropeobj180006* generatedproc0;
  	TY537235 LOC20;
  	Ropeobj180006** LOC21;
  	Ropeobj180006** LOC22;
  	Ropeobj180006** LOC23;
  	TY180507 LOC24;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&c0), 0, sizeof(c0));
  	p0 = newproc_531206_3723162438(NIM_NIL, m0);
  	result0 = gettempname_535596_839829468(m0);
  	switch (reason0) {
  	case ((Ttypeinforeason539016) 0):
  	{
  		c0.visitorfrmt = copyString(((NimStringDesc*) &T839829468_145));
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	memset((void*)LOC3, 0, sizeof(LOC3));
  	LOC3[0] = result0;
  	header0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_146), LOC3, 1);
  	t0 = gettypedesc_537671_839829468(m0, typ0);
  	memset((void*)LOC4, 0, sizeof(LOC4));
  	LOC4[0] = t0;
  	linef_534700_839829468(p0, ((Tcprocsection531011) 0), ((NimStringDesc*) &T839829468_147), LOC4, 1);
  	memset((void*)LOC5, 0, sizeof(LOC5));
  	LOC5[0] = t0;
  	linef_534700_839829468(p0, ((Tcprocsection531011) 1), ((NimStringDesc*) &T839829468_148), LOC5, 1);
  	c0.p = p0;
  	{
  		Ropeobj180006* LOC10;
  		if (!((*typ0).kind == ((Ttypekind294244) 24))) goto LA8;
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = rope_180277_2381377266(((NimStringDesc*) &T839829468_188));
  		gentraverseprocseq_539399_839829468((&c0), LOC10, typ0);
  	}
  	goto LA6;
  	LA8: ;
  	{
  		{
  			Ttype294840* LOC14;
  			Ropeobj180006* LOC17;
  			LOC14 = (Ttype294840*)0;
  			LOC14 = skiptypes_298099_850551059((*typ0).sons->data[((NI) 0)], IL64(211106232576256));
  			if (!((*LOC14).kind == ((Ttypekind294244) 4) || (*LOC14).kind == ((Ttypekind294244) 16))) goto LA15;
  			LOC17 = (Ropeobj180006*)0;
  			LOC17 = rope_180277_2381377266(((NimStringDesc*) &T839829468_188));
  			gentraverseproc_539022_839829468((&c0), LOC17, (*typ0).sons->data[((NI) 0)]);
  		}
  		goto LA12;
  		LA15: ;
  		{
  			Ropeobj180006* LOC19;
  			LOC19 = (Ropeobj180006*)0;
  			LOC19 = rope_180277_2381377266(((NimStringDesc*) &T839829468_189));
  			gentraverseproc_539022_839829468((&c0), LOC19, (*typ0).sons->data[((NI) 0)]);
  		}
  		LA12: ;
  	}
  	LA6: ;
  	memset((void*)LOC20, 0, sizeof(LOC20));
  	LOC20[0] = header0;
  	LOC21 = (Ropeobj180006**)0;
  	LOC21 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  	LOC20[1] = (*LOC21);
  	LOC22 = (Ropeobj180006**)0;
  	LOC22 = s_531179_3723162438(p0, ((Tcprocsection531011) 1));
  	LOC20[2] = (*LOC22);
  	LOC23 = (Ropeobj180006**)0;
  	LOC23 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	LOC20[3] = (*LOC23);
  	generatedproc0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_190), LOC20, 4);
  	memset((void*)LOC24, 0, sizeof(LOC24));
  	LOC24[0] = header0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 7))- 0], ((NimStringDesc*) &T839829468_191), LOC24, 1);
  	add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 10))- 0], generatedproc0);
  	return result0;
  }
  
  N_NIMCALL(void, genarrayinfo_539005_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0) {
  	Ropeobj180006* LOC1;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = gentypeinfo_537941_839829468(m0, (*typ0).sons->data[((NI) 1)]);
  	gentypeinfoauxbase_537960_839829468(m0, typ0, typ0, name0, LOC1);
  }
  
  N_NIMCALL(void, gensetinfo_538867_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0) {
  	Ropeobj180006* tmp0;
  	TY537238 LOC1;
  	NI64 LOC2;
  	gentypeinfoaux_538027_839829468(m0, typ0, typ0, name0);
  	tmp0 = getnimnode_537945_839829468(m0);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = tmp0;
  	LOC2 = (NI64)0;
  	LOC2 = firstord_322001_3876443242(typ0);
  	LOC1[1] = rope_180401_2381377266(LOC2);
  	LOC1[2] = name0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_193), LOC1, 3);
  }
  
  N_NIMCALL(void, genenuminfo_538597_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ropeobj180006* name0) {
  	Ropeobj180006* nodeptrs0;
  	NI length0;
  	TY534811 LOC1;
  	Ropeobj180006* enumnames0;
  	Ropeobj180006* specialcases0;
  	NI firstnimnode0;
  	NIM_BOOL hasholes0;
  	Ropeobj180006* enumarray0;
  	Ropeobj180006* counter0;
  	TY180507 LOC24;
  	TY537238 LOC25;
  	TY538847 LOC26;
  	TY537235 LOC27;
  	gentypeinfoaux_538027_839829468(m0, typ0, typ0, name0);
  	nodeptrs0 = gettempname_535596_839829468(m0);
  	length0 = sonslen_297351_850551059((*typ0).n);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = nodeptrs0;
  	LOC1[1] = rope_180401_2381377266(((NI64) (length0)));
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_139), LOC1, 2);
  	enumnames0 = (Ropeobj180006*)0;
  	specialcases0 = (Ropeobj180006*)0;
  	firstnimnode0 = (*m0).typenodes;
  	hasholes0 = NIM_FALSE;
  	{
  		NI i_538622_839829468;
  		NI HEX3Atmp_538860_839829468;
  		NI res_538863_839829468;
  		i_538622_839829468 = (NI)0;
  		HEX3Atmp_538860_839829468 = (NI)0;
  		HEX3Atmp_538860_839829468 = (NI)(length0 - ((NI) 1));
  		res_538863_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Tsym294834* field0;
  				Ropeobj180006* elemnode0;
  				if (!(res_538863_839829468 <= HEX3Atmp_538860_839829468)) goto LA4;
  				i_538622_839829468 = res_538863_839829468;
  				field0 = (*(*(*typ0).n).kindU.S6.sons->data[i_538622_839829468]).kindU.S4.sym;
  				elemnode0 = getnimnode_537945_839829468(m0);
  				{
  					Ropeobj180006* LOC9;
  					if (!((*field0).ast == NIM_NIL)) goto LA7;
  					LOC9 = (Ropeobj180006*)0;
  					LOC9 = makecstring_193638_155036129((*(*field0).name).s);
  					add_180482_2381377266(&enumnames0, LOC9);
  				}
  				goto LA5;
  				LA7: ;
  				{
  					Ropeobj180006* LOC11;
  					LOC11 = (Ropeobj180006*)0;
  					LOC11 = makecstring_193638_155036129((*(*field0).ast).kindU.S3.strval);
  					add_180482_2381377266(&enumnames0, LOC11);
  				}
  				LA5: ;
  				{
  					NimStringDesc* LOC16;
  					if (!(i_538622_839829468 < (NI)(length0 - ((NI) 1)))) goto LA14;
  					LOC16 = (NimStringDesc*)0;
  					LOC16 = rawNewString(tnl_178644_4151366050->Sup.len + 2);
  appendString(LOC16, ((NimStringDesc*) &T839829468_110));
  appendString(LOC16, tnl_178644_4151366050);
  					add_180487_2381377266(&enumnames0, LOC16);
  				}
  				LA14: ;
  				{
  					NIM_BOOL LOC19;
  					TY534811 LOC23;
  					LOC19 = (NIM_BOOL)0;
  					LOC19 = !(((*field0).position == i_538622_839829468));
  					if (LOC19) goto LA20;
  					LOC19 = (((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 5))&31U)))!=0);
  					LA20: ;
  					if (!LOC19) goto LA21;
  					memset((void*)LOC23, 0, sizeof(LOC23));
  					LOC23[0] = elemnode0;
  					LOC23[1] = rope_180401_2381377266(((NI64) ((*field0).position)));
  					addf_181205_2381377266(&specialcases0, ((NimStringDesc*) &T839829468_194), LOC23, 2);
  					hasholes0 = NIM_TRUE;
  				}
  				LA21: ;
  				res_538863_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	enumarray0 = gettempname_535596_839829468(m0);
  	counter0 = gettempname_535596_839829468(m0);
  	memset((void*)LOC24, 0, sizeof(LOC24));
  	LOC24[0] = counter0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_195), LOC24, 1);
  	memset((void*)LOC25, 0, sizeof(LOC25));
  	LOC25[0] = enumarray0;
  	LOC25[1] = rope_180401_2381377266(((NI64) (length0)));
  	LOC25[2] = enumnames0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_196), LOC25, 3);
  	memset((void*)LOC26, 0, sizeof(LOC26));
  	LOC26[0] = counter0;
  	LOC26[1] = rope_180401_2381377266(((NI64) (length0)));
  	LOC26[2] = (*m0).typenodesname;
  	LOC26[3] = rope_180401_2381377266(((NI64) (firstnimnode0)));
  	LOC26[4] = enumarray0;
  	LOC26[5] = nodeptrs0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_197), LOC26, 6);
  	add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], specialcases0);
  	memset((void*)LOC27, 0, sizeof(LOC27));
  	LOC27[0] = getnimnode_537945_839829468(m0);
  	LOC27[1] = rope_180401_2381377266(((NI64) (length0)));
  	LOC27[2] = nodeptrs0;
  	LOC27[3] = name0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_198), LOC27, 4);
  	{
  		TY180507 LOC32;
  		if (!hasholes0) goto LA30;
  		memset((void*)LOC32, 0, sizeof(LOC32));
  		LOC32[0] = name0;
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_199), LOC32, 1);
  	}
  	LA30: ;
  }
  
  N_NIMCALL(Ropeobj180006*, discriminatortablename_538057_839829468)(Tcgen531027* m0, Ttype294840* objtype_538060_839829468, Tsym294834* d0) {
  	Ropeobj180006* result0;
  	Ttype294840* objtype0;
  	TY534811 LOC8;
  	NimStringDesc* LOC9;
  	result0 = (Ropeobj180006*)0;
  	objtype0 = objtype_538060_839829468;
  	{
  		while (1) {
  			Tsym294834* LOC3;
  			LOC3 = (Tsym294834*)0;
  			LOC3 = lookupinrecord_301119_2984716966((*objtype0).n, (*d0).name);
  			if (!(LOC3 == NIM_NIL)) goto LA2;
  			objtype0 = (*objtype0).sons->data[((NI) 0)];
  		} LA2: ;
  	}
  	{
  		if (!((*objtype0).sym == NIM_NIL)) goto LA6;
  		internalerror_198100_155036129((*d0).info, ((NimStringDesc*) &T839829468_200));
  	}
  	LA6: ;
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = rope_180401_2381377266(((NI64) ((*objtype0).Sup.id)));
  	LOC9 = (NimStringDesc*)0;
  	LOC9 = mangle_530847_2036603609((*(*d0).name).s);
  	LOC8[1] = rope_180277_2381377266(LOC9);
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_201), LOC8, 2);
  	return result0;
  }
  
  N_NIMCALL(void, genobjectfields_538104_839829468)(Tcgen531027* m0, Ttype294840* typ0, Tnode294802* n0, Ropeobj180006* expr0) {
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 138):
  	{
  		NI L0;
  		L0 = sonslen_297351_850551059(n0);
  		{
  			if (!(L0 == ((NI) 1))) goto LA4;
  			genobjectfields_538104_839829468(m0, typ0, (*n0).kindU.S6.sons->data[((NI) 0)], expr0);
  		}
  		goto LA2;
  		LA4: ;
  		{
  			Ropeobj180006* tmp0;
  			TY534811 LOC9;
  			TY537238 LOC14;
  			if (!(((NI) 0) < L0)) goto LA7;
  			tmp0 = gettempname_535596_839829468(m0);
  			memset((void*)LOC9, 0, sizeof(LOC9));
  			LOC9[0] = tmp0;
  			LOC9[1] = rope_180401_2381377266(((NI64) (L0)));
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_139), LOC9, 2);
  			{
  				NI i_538127_839829468;
  				NI HEX3Atmp_538482_839829468;
  				NI res_538485_839829468;
  				i_538127_839829468 = (NI)0;
  				HEX3Atmp_538482_839829468 = (NI)0;
  				HEX3Atmp_538482_839829468 = (NI)(L0 - ((NI) 1));
  				res_538485_839829468 = ((NI) 0);
  				{
  					while (1) {
  						Ropeobj180006* tmp20;
  						TY537238 LOC13;
  						if (!(res_538485_839829468 <= HEX3Atmp_538482_839829468)) goto LA12;
  						i_538127_839829468 = res_538485_839829468;
  						tmp20 = getnimnode_537945_839829468(m0);
  						memset((void*)LOC13, 0, sizeof(LOC13));
  						LOC13[0] = tmp0;
  						LOC13[1] = rope_180401_2381377266(((NI64) (i_538127_839829468)));
  						LOC13[2] = tmp20;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_140), LOC13, 3);
  						genobjectfields_538104_839829468(m0, typ0, (*n0).kindU.S6.sons->data[i_538127_839829468], tmp20);
  						res_538485_839829468 += ((NI) 1);
  					} LA12: ;
  				}
  			}
  			memset((void*)LOC14, 0, sizeof(LOC14));
  			LOC14[0] = expr0;
  			LOC14[1] = rope_180401_2381377266(((NI64) (L0)));
  			LOC14[2] = tmp0;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_142), LOC14, 3);
  		}
  		goto LA2;
  		LA7: ;
  		{
  			TY534811 LOC16;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = expr0;
  			LOC16[1] = rope_180401_2381377266(((NI64) (L0)));
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_143), LOC16, 2);
  		}
  		LA2: ;
  	}
  	break;
  	case ((Tnodekind294020) 139):
  	{
  		Tsym294834* field0;
  		Ropeobj180006* tmp0;
  		NI64 L0;
  		TY538401 LOC18;
  		TY534811 LOC19;
  		field0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		tmp0 = discriminatortablename_538057_839829468(m0, typ0, field0);
  		L0 = lengthord_322007_3876443242((*field0).typ);
  		memset((void*)LOC18, 0, sizeof(LOC18));
  		LOC18[0] = expr0;
  		LOC18[1] = gettypedesc_537671_839829468(m0, typ0);
  		LOC18[2] = (*field0).loc.r;
  		LOC18[3] = gentypeinfo_537941_839829468(m0, (*field0).typ);
  		LOC18[4] = makecstring_193638_155036129((*(*field0).name).s);
  		LOC18[5] = tmp0;
  		LOC18[6] = rope_180401_2381377266(L0);
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_202), LOC18, 7);
  		memset((void*)LOC19, 0, sizeof(LOC19));
  		LOC19[0] = tmp0;
  		LOC19[1] = rope_180401_2381377266((NI64)(L0 + IL64(1)));
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_203), LOC19, 2);
  		{
  			NI i_538421_839829468;
  			NI HEX3Atmp_538499_839829468;
  			NI LOC21;
  			NI res_538502_839829468;
  			i_538421_839829468 = (NI)0;
  			HEX3Atmp_538499_839829468 = (NI)0;
  			LOC21 = (NI)0;
  			LOC21 = sonslen_297351_850551059(n0);
  			HEX3Atmp_538499_839829468 = (NI)(LOC21 - ((NI) 1));
  			res_538502_839829468 = ((NI) 1);
  			{
  				while (1) {
  					Tnode294802* b0;
  					Ropeobj180006* tmp20;
  					Tnode294802* LOC24;
  					if (!(res_538502_839829468 <= HEX3Atmp_538499_839829468)) goto LA23;
  					i_538421_839829468 = res_538502_839829468;
  					b0 = (*n0).kindU.S6.sons->data[i_538421_839829468];
  					tmp20 = getnimnode_537945_839829468(m0);
  					LOC24 = (Tnode294802*)0;
  					LOC24 = lastson_297364_850551059(b0);
  					genobjectfields_538104_839829468(m0, typ0, LOC24, tmp20);
  					switch ((*b0).kind) {
  					case ((Tnodekind294020) 85):
  					{
  						{
  							NI LOC28;
  							LOC28 = (NI)0;
  							LOC28 = sonslen_297351_850551059(b0);
  							if (!(LOC28 < ((NI) 2))) goto LA29;
  							internalerror_198100_155036129((*b0).info, ((NimStringDesc*) &T839829468_204));
  						}
  						LA29: ;
  						{
  							NI j_538436_839829468;
  							NI HEX3Atmp_538492_839829468;
  							NI LOC32;
  							NI res_538495_839829468;
  							j_538436_839829468 = (NI)0;
  							HEX3Atmp_538492_839829468 = (NI)0;
  							LOC32 = (NI)0;
  							LOC32 = sonslen_297351_850551059(b0);
  							HEX3Atmp_538492_839829468 = (NI)(LOC32 - ((NI) 2));
  							res_538495_839829468 = ((NI) 0);
  							{
  								while (1) {
  									if (!(res_538495_839829468 <= HEX3Atmp_538492_839829468)) goto LA34;
  									j_538436_839829468 = res_538495_839829468;
  									{
  										NI x0;
  										NI64 LOC39;
  										NI y0;
  										NI64 LOC40;
  										if (!((*(*b0).kindU.S6.sons->data[j_538436_839829468]).kind == ((Tnodekind294020) 44))) goto LA37;
  										LOC39 = (NI64)0;
  										LOC39 = getordvalue_322129_3876443242((*(*b0).kindU.S6.sons->data[j_538436_839829468]).kindU.S6.sons->data[((NI) 0)]);
  										x0 = ((NI) (LOC39));
  										LOC40 = (NI64)0;
  										LOC40 = getordvalue_322129_3876443242((*(*b0).kindU.S6.sons->data[j_538436_839829468]).kindU.S6.sons->data[((NI) 1)]);
  										y0 = ((NI) (LOC40));
  										{
  											while (1) {
  												TY537238 LOC43;
  												if (!(x0 <= y0)) goto LA42;
  												memset((void*)LOC43, 0, sizeof(LOC43));
  												LOC43[0] = tmp0;
  												LOC43[1] = rope_180401_2381377266(((NI64) (x0)));
  												LOC43[2] = tmp20;
  												addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_140), LOC43, 3);
  												x0 += ((NI) 1);
  											} LA42: ;
  										}
  									}
  									goto LA35;
  									LA37: ;
  									{
  										TY537238 LOC45;
  										NI64 LOC46;
  										memset((void*)LOC45, 0, sizeof(LOC45));
  										LOC45[0] = tmp0;
  										LOC46 = (NI64)0;
  										LOC46 = getordvalue_322129_3876443242((*b0).kindU.S6.sons->data[j_538436_839829468]);
  										LOC45[1] = rope_180401_2381377266(LOC46);
  										LOC45[2] = tmp20;
  										addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_140), LOC45, 3);
  									}
  									LA35: ;
  									res_538495_839829468 += ((NI) 1);
  								} LA34: ;
  							}
  						}
  					}
  					break;
  					case ((Tnodekind294020) 88):
  					{
  						TY537238 LOC48;
  						memset((void*)LOC48, 0, sizeof(LOC48));
  						LOC48[0] = tmp0;
  						LOC48[1] = rope_180401_2381377266(L0);
  						LOC48[2] = tmp20;
  						addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_140), LOC48, 3);
  					}
  					break;
  					default:
  					{
  						internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_205));
  					}
  					break;
  					}
  					res_538502_839829468 += ((NI) 1);
  				} LA23: ;
  			}
  		}
  	}
  	break;
  	case ((Tnodekind294020) 3):
  	{
  		Tsym294834* field0;
  		field0 = (*n0).kindU.S4.sym;
  		{
  			TY538475 LOC55;
  			if (!((*field0).kindU.S4.bitsize == ((NI) 0))) goto LA53;
  			memset((void*)LOC55, 0, sizeof(LOC55));
  			LOC55[0] = expr0;
  			LOC55[1] = gettypedesc_537671_839829468(m0, typ0);
  			LOC55[2] = (*field0).loc.r;
  			LOC55[3] = gentypeinfo_537941_839829468(m0, (*field0).typ);
  			LOC55[4] = makecstring_193638_155036129((*(*field0).name).s);
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_206), LOC55, 5);
  		}
  		LA53: ;
  	}
  	break;
  	default:
  	{
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_207));
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, genobjectinfo_538506_839829468)(Tcgen531027* m0, Ttype294840* typ0, Ttype294840* origtype0, Ropeobj180006* name0) {
  	Ropeobj180006* tmp0;
  	TY534811 LOC12;
  	Ttype294840* t0;
  	{
  		if (!((*typ0).kind == ((Ttypekind294244) 17))) goto LA3;
  		gentypeinfoaux_538027_839829468(m0, typ0, origtype0, name0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		Ropeobj180006* LOC6;
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = rope_180277_2381377266(((NimStringDesc*) &T839829468_18));
  		gentypeinfoauxbase_537960_839829468(m0, typ0, origtype0, name0, LOC6);
  	}
  	LA1: ;
  	tmp0 = getnimnode_537945_839829468(m0);
  	{
  		NIM_BOOL LOC9;
  		LOC9 = (NIM_BOOL)0;
  		LOC9 = isimportedcpptype_535476_839829468(typ0);
  		if (!!(LOC9)) goto LA10;
  		genobjectfields_538104_839829468(m0, typ0, (*typ0).n, tmp0);
  	}
  	LA10: ;
  	memset((void*)LOC12, 0, sizeof(LOC12));
  	LOC12[0] = name0;
  	LOC12[1] = tmp0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_144), LOC12, 2);
  	t0 = (*typ0).sons->data[((NI) 0)];
  	{
  		while (1) {
  			if (!!((t0 == NIM_NIL))) goto LA14;
  			t0 = skiptypes_298099_850551059(t0, IL64(211106247215360));
  			(*t0).flags |= ((NU32)1)<<((((Ttypeflag294431) 5))%(sizeof(NU32)*8));
  			t0 = (*t0).sons->data[((NI) 0)];
  		} LA14: ;
  	}
  }
  
  N_NIMCALL(void, gendeepcopyproc_540066_839829468)(Tcgen531027* m0, Tsym294834* s0, Ropeobj180006* result0) {
  	TY534811 LOC1;
  	genproc_534951_839829468(m0, s0);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = result0;
  	LOC1[1] = (*s0).loc.r;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_208), LOC1, 2);
  }
  
  N_NIMCALL(Ropeobj180006*, gentypeinfo_537941_839829468)(Tcgen531027* m0, Ttype294840* t_537944_839829468) {
  	Ropeobj180006* result0;
  	Ttype294840* origtype0;
  	Ttype294840* t0;
  	TY180507 LOC1;
  	Tsym294834* owner0;
  	Ttype294840* LOC12;
  	Ropeobj180006* LOC66;
  	Ropeobj180006* LOC67;
  	Ropeobj180006* LOC68;
  {	result0 = (Ropeobj180006*)0;
  	origtype0 = t_537944_839829468;
  	t0 = getuniquetype_530640_2036603609(t_537944_839829468);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rope_180401_2381377266(((NI64) ((*t0).Sup.id)));
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_127), LOC1, 1);
  	{
  		NIM_BOOL LOC4;
  		Ropeobj180006* LOC7;
  		Ropeobj180006* LOC8;
  		Ropeobj180006* LOC9;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = containsorincl_270862_2627731572((&(*m0).typeinfomarker), (*t0).Sup.id);
  		if (!LOC4) goto LA5;
  		LOC7 = (Ropeobj180006*)0;
  		LOC7 = rope_180277_2381377266(((NimStringDesc*) &T839829468_128));
  		LOC8 = (Ropeobj180006*)0;
  		LOC8 = HEX26_180418_2381377266(LOC7, result0);
  		LOC9 = (Ropeobj180006*)0;
  		LOC9 = rope_180277_2381377266(((NimStringDesc*) &T839829468_117));
  		result0 = HEX26_180418_2381377266(LOC8, LOC9);
  		goto BeforeRet;
  	}
  	LA5: ;
  	{
  		while (1) {
  			if (!((*t0).kind == ((Ttypekind294244) 13))) goto LA11;
  			t0 = lastson_297377_850551059(t0);
  		} LA11: ;
  	}
  	LOC12 = (Ttype294840*)0;
  	LOC12 = skiptypes_298099_850551059(t0, IL64(211106247256320));
  	owner0 = getmodule_301123_2984716966((*LOC12).owner);
  	{
  		Tcgen531027* LOC17;
  		Ropeobj180006* LOC18;
  		Ropeobj180006* LOC19;
  		Ropeobj180006* LOC20;
  		TY534811 LOC21;
  		NimStringDesc* LOC22;
  		Ropeobj180006* LOC23;
  		Ropeobj180006* LOC24;
  		Ropeobj180006* LOC25;
  		if (!!((owner0 == (*m0).module))) goto LA15;
  		LOC17 = (Tcgen531027*)0;
  		LOC17 = bmod_531201_3723162438(owner0);
  		LOC18 = (Ropeobj180006*)0;
  		LOC18 = gentypeinfo_537941_839829468(LOC17, t0);
  		LOC19 = (Ropeobj180006*)0;
  		LOC19 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_129));
  		LOC20 = (Ropeobj180006*)0;
  		LOC20 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_130));
  		memset((void*)LOC21, 0, sizeof(LOC21));
  		LOC21[0] = result0;
  		LOC22 = (NimStringDesc*)0;
  		LOC22 = typetostring_322017_3876443242(t0, ((Tprefereddesc322011) 0));
  		LOC21[1] = rope_180277_2381377266(LOC22);
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_131), LOC21, 2);
  		LOC23 = (Ropeobj180006*)0;
  		LOC23 = rope_180277_2381377266(((NimStringDesc*) &T839829468_128));
  		LOC24 = (Ropeobj180006*)0;
  		LOC24 = HEX26_180418_2381377266(LOC23, result0);
  		LOC25 = (Ropeobj180006*)0;
  		LOC25 = rope_180277_2381377266(((NimStringDesc*) &T839829468_117));
  		result0 = HEX26_180418_2381377266(LOC24, LOC25);
  		goto BeforeRet;
  	}
  	LA15: ;
  	switch ((*t0).kind) {
  	case ((Ttypekind294244) 3):
  	case ((Ttypekind294244) 62):
  	{
  		result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_132));
  	}
  	break;
  	case ((Ttypekind294244) 26):
  	case ((Ttypekind294244) 1):
  	case ((Ttypekind294244) 2):
  	case ((Ttypekind294244) 29):
  	case ((Ttypekind294244) 28):
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 44):
  	case ((Ttypekind294244) 23):
  	{
  		Ropeobj180006* LOC28;
  		LOC28 = (Ropeobj180006*)0;
  		LOC28 = rope_180277_2381377266(((NimStringDesc*) &T839829468_132));
  		gentypeinfoauxbase_537960_839829468(m0, t0, t0, result0, LOC28);
  	}
  	break;
  	case ((Ttypekind294244) 59):
  	{
  		{
  			Ttype294840* LOC34;
  			if (!!(((*t0).n == NIM_NIL))) goto LA32;
  			LOC34 = (Ttype294840*)0;
  			LOC34 = lastson_297377_850551059(t0);
  			result0 = gentypeinfo_537941_839829468(m0, LOC34);
  		}
  		goto LA30;
  		LA32: ;
  		{
  			NimStringDesc* LOC36;
  			LOC36 = (NimStringDesc*)0;
  			LOC36 = rawNewString(reprEnum((NI)(*t0).kind, (&NTI294244))->Sup.len + 13);
  appendString(LOC36, ((NimStringDesc*) &T839829468_137));
  appendString(LOC36, reprEnum((NI)(*t0).kind, (&NTI294244)));
  appendChar(LOC36, 41);
  			internalerror_198113_155036129(LOC36);
  		}
  		LA30: ;
  	}
  	break;
  	case ((Ttypekind294244) 25):
  	{
  		{
  			Ropeobj180006* LOC42;
  			if (!!(((*t0).callconv == ((Tcallingconvention294002) 8)))) goto LA40;
  			LOC42 = (Ropeobj180006*)0;
  			LOC42 = rope_180277_2381377266(((NimStringDesc*) &T839829468_132));
  			gentypeinfoauxbase_537960_839829468(m0, t0, t0, result0, LOC42);
  		}
  		goto LA38;
  		LA40: ;
  		{
  			Ttype294840* LOC44;
  			LOC44 = (Ttype294840*)0;
  			LOC44 = fakeclosuretype_539010_839829468((*t0).owner);
  			gentupleinfo_538549_839829468(m0, LOC44, result0);
  		}
  		LA38: ;
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	case ((Ttypekind294244) 22):
  	{
  		gentypeinfoaux_538027_839829468(m0, t0, t0, result0);
  		{
  			Ropeobj180006* markerproc0;
  			TY534811 LOC50;
  			if (!(((Tgcmode171080) 4) <= gselectedgc_171133_2607990831)) goto LA48;
  			markerproc0 = gentraverseproc_539632_839829468(m0, t0, ((Ttypeinforeason539016) 0));
  			memset((void*)LOC50, 0, sizeof(LOC50));
  			LOC50[0] = result0;
  			LOC50[1] = markerproc0;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_192), LOC50, 2);
  		}
  		LA48: ;
  	}
  	break;
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 20):
  	{
  		gentypeinfoaux_538027_839829468(m0, t0, t0, result0);
  	}
  	break;
  	case ((Ttypekind294244) 4):
  	case ((Ttypekind294244) 16):
  	{
  		genarrayinfo_539005_839829468(m0, t0, result0);
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		gensetinfo_538867_839829468(m0, t0, result0);
  	}
  	break;
  	case ((Ttypekind294244) 14):
  	{
  		genenuminfo_538597_839829468(m0, t0, result0);
  	}
  	break;
  	case ((Ttypekind294244) 17):
  	{
  		genobjectinfo_538506_839829468(m0, t0, origtype0, result0);
  	}
  	break;
  	case ((Ttypekind294244) 18):
  	{
  		gentupleinfo_538549_839829468(m0, t0, result0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC58;
  		LOC58 = (NimStringDesc*)0;
  		LOC58 = rawNewString(reprEnum((NI)(*t0).kind, (&NTI294244))->Sup.len + 13);
  appendString(LOC58, ((NimStringDesc*) &T839829468_137));
  appendString(LOC58, reprEnum((NI)(*t0).kind, (&NTI294244)));
  appendChar(LOC58, 41);
  		internalerror_198113_155036129(LOC58);
  	}
  	break;
  	}
  	{
  		if (!!(((*t0).deepcopy == NIM_NIL))) goto LA61;
  		gendeepcopyproc_540066_839829468(m0, (*t0).deepcopy, result0);
  	}
  	goto LA59;
  	LA61: ;
  	{
  		if (!!(((*origtype0).deepcopy == NIM_NIL))) goto LA64;
  		gendeepcopyproc_540066_839829468(m0, (*origtype0).deepcopy, result0);
  	}
  	goto LA59;
  	LA64: ;
  	LA59: ;
  	LOC66 = (Ropeobj180006*)0;
  	LOC66 = rope_180277_2381377266(((NimStringDesc*) &T839829468_128));
  	LOC67 = (Ropeobj180006*)0;
  	LOC67 = HEX26_180418_2381377266(LOC66, result0);
  	LOC68 = (Ropeobj180006*)0;
  	LOC68 = rope_180277_2381377266(((NimStringDesc*) &T839829468_117));
  	result0 = HEX26_180418_2381377266(LOC67, LOC68);
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(void, localdebuginfo_540449_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  	Ropeobj180006* a0;
  	TY537235 LOC16;
  	NimStringDesc* LOC17;
  {	{
  		if (!!(((163840 & (*p0).options) == 163840))) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		Ttype294840* LOC7;
  		LOC7 = (Ttype294840*)0;
  		LOC7 = skiptypes_298099_850551059((*s0).typ, IL64(211106240964864));
  		if (!((*LOC7).kind == ((Ttypekind294244) 27) || (*LOC7).kind == ((Ttypekind294244) 48))) goto LA8;
  		goto BeforeRet;
  	}
  	LA8: ;
  	a0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_52), (*s0).loc.r);
  	{
  		NIM_BOOL LOC12;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = ((*s0).kind == ((Tsymkind294435) 3));
  		if (!(LOC12)) goto LA13;
  		LOC12 = ccgintroducedptr_535609_839829468(s0);
  		LA13: ;
  		if (!LOC12) goto LA14;
  		a0 = (*s0).loc.r;
  	}
  	LA14: ;
  	memset((void*)LOC16, 0, sizeof(LOC16));
  	LOC16[0] = rope_180401_2381377266(((NI64) ((*p0).maxframelen)));
  	LOC17 = (NimStringDesc*)0;
  	LOC17 = nsuNormalize((*(*s0).name).s);
  	LOC16[1] = makecstring_193638_155036129(LOC17);
  	LOC16[2] = a0;
  	LOC16[3] = gentypeinfo_537941_839829468((*p0).module, (*s0).loc.t);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 1), ((NimStringDesc*) &T839829468_126), LOC16, 4);
  	(*p0).maxframelen += ((NI) 1);
  	(*p0).blocks->data[(NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1))].framelen += ((NI) 1);
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, assignlocalvar_540614_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  	Ropeobj180006* decl0;
  	Ropeobj180006* LOC1;
  	Ropeobj180006* LOC2;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = localvardecl_540532_839829468(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX26_180447_2381377266(LOC1, ((NimStringDesc*) &T839829468_125));
  	decl0 = HEX26_180447_2381377266(LOC2, tnl_178644_4151366050);
  	line_534690_839829468(p0, ((Tcprocsection531011) 0), decl0);
  	localdebuginfo_540449_839829468(p0, s0);
  }
  
  N_NIMCALL(void, initlocalvar_540398_839829468)(Tcproc531021* p0, Tsym294834* v0, NIM_BOOL immediateasgn0) {
  	{
  		if (!!((((*v0).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0))) goto LA3;
  		{
  			if (!!(immediateasgn0)) goto LA7;
  			constructloc_540388_839829468(p0, (*v0).loc, NIM_FALSE);
  		}
  		LA7: ;
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, fillresult_535865_839829468)(Tsym294834* param0) {
  	TY535289 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_210), LOC1, 0);
  	fillloc_534282_839829468((&(*param0).loc), ((Tlockind294808) 4), (*param0).typ, LOC2, ((Tstorageloc294812) 2));
  	{
  		NIM_BOOL LOC5;
  		Tctypekind531007 LOC6;
  		LOC5 = (NIM_BOOL)0;
  		LOC6 = (Tctypekind531007)0;
  		LOC6 = mapreturntype_535445_839829468((*param0).typ);
  		LOC5 = !((LOC6 == ((Tctypekind531007) 17)));
  		if (!(LOC5)) goto LA7;
  		LOC5 = isinvalidreturntype_535548_839829468((*param0).typ);
  		LA7: ;
  		if (!LOC5) goto LA8;
  		(*param0).loc.flags |= ((NU16)1)<<((((Tlocflag294810) 0))%(sizeof(NU16)*8));
  		(*param0).loc.s = ((Tstorageloc294812) 0);
  	}
  	LA8: ;
  }
  
  N_NIMCALL(void, assignparam_540994_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  	localdebuginfo_540449_839829468(p0, s0);
  }
  
  N_NIMCALL(void, closuresetup_562158_839829468)(Tcproc531021* p0, Tsym294834* prc0) {
  	Tnode294802* ls0;
  	Tnode294802* LOC5;
  	Tsym294834* env0;
  	TY534811 LOC10;
  {	{
  		if (!!((((*(*prc0).typ).flags &(1U<<((NU)(((Ttypeflag294431) 11))&31U)))!=0))) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	LOC5 = (Tnode294802*)0;
  	LOC5 = HEX5BHEX5D_295238_850551059((*prc0).ast, ((NI) 3));
  	ls0 = lastson_297364_850551059(LOC5);
  	{
  		if (!!(((*ls0).kind == ((Tnodekind294020) 3)))) goto LA8;
  		internalerror_198100_155036129((*prc0).info, ((NimStringDesc*) &T839829468_211));
  	}
  	LA8: ;
  	env0 = (*ls0).kindU.S4.sym;
  	assignlocalvar_540614_839829468(p0, env0);
  	memset((void*)LOC10, 0, sizeof(LOC10));
  	LOC10[0] = rdloc_540188_839829468((*env0).loc);
  	LOC10[1] = gettypedesc_537671_839829468((*p0).module, (*env0).typ);
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_212), LOC10, 2);
  	}BeforeRet: ;
  }
  
  N_NIMCALL(Ropeobj180006*, initgcframe_540435_839829468)(Tcproc531021* p0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		TY180507 LOC5;
  		if (!(((NI) 0) < ((NI) ((*p0).gcframeid)))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = (*p0).gcframetype;
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_217), LOC5, 1);
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, initframe_562140_839829468)(Tcproc531021* p0, Ropeobj180006* procname0, Ropeobj180006* filename0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_218));
  	{
  		Ropeobj180006* LOC6;
  		TY537235 LOC7;
  		if (!(((NI) 0) < (*p0).maxframelen)) goto LA4;
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_219));
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = procname0;
  		LOC7[1] = filename0;
  		LOC7[2] = rope_180401_2381377266(((NI64) ((*p0).maxframelen)));
  		LOC7[3] = rope_180401_2381377266(((NI64) ((*p0).blocks->data[((NI) 0)].framelen)));
  		result0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_220), LOC7, 4);
  	}
  	goto LA2;
  	LA4: ;
  	{
  		TY534811 LOC9;
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = procname0;
  		LOC9[1] = filename0;
  		result0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_221), LOC9, 2);
  	}
  	LA2: ;
  	return result0;
  }
  
  N_NIMCALL(void, appcg_534648_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, args0, args0Len0);
  	add_180482_2381377266(LOC1, LOC2);
  }
  
  N_NIMCALL(Ropeobj180006*, deinitgcframe_540441_839829468)(Tcproc531021* p0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		TY535289 LOC5;
  		if (!(((NI) 0) < ((NI) ((*p0).gcframeid)))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_225), LOC5, 0);
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, deinitframe_562150_839829468)(Tcproc531021* p0) {
  	Ropeobj180006* result0;
  	TY535289 LOC1;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_226), LOC1, 0);
  	return result0;
  }
  
  N_NIMCALL(void, genprocaux_562284_839829468)(Tcgen531027* m0, Tsym294834* prc0) {
  	Tcproc531021* p0;
  	Ropeobj180006* header0;
  	Ropeobj180006* returnstmt0;
  	Tnode294802* LOC51;
  	Ropeobj180006* generatedproc0;
  	p0 = newproc_531206_3723162438(prc0, m0);
  	header0 = genprocheader_537867_839829468(m0, prc0);
  	returnstmt0 = NIM_NIL;
  	{
  		NIM_BOOL LOC3;
  		Tsym294834* res0;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !((((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0));
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(((*(*prc0).typ).sons->data[((NI) 0)] == NIM_NIL));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		{
  			NI LOC9;
  			LOC9 = (NI)0;
  			LOC9 = len_295081_850551059((*prc0).ast);
  			if (!(LOC9 <= ((NI) 7))) goto LA10;
  			internalerror_198100_155036129((*prc0).info, ((NimStringDesc*) &T839829468_120));
  		}
  		LA10: ;
  		res0 = (*(*(*prc0).ast).kindU.S6.sons->data[((NI) 7)]).kindU.S4.sym;
  		{
  			NIM_BOOL LOC14;
  			TY180507 LOC34;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = isinvalidreturntype_535548_839829468((*(*prc0).typ).sons->data[((NI) 0)]);
  			if (!!(LOC14)) goto LA15;
  			{
  				if (!(((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0)) goto LA19;
  				(*res0).flags |= ((NU32)1)<<((((Tsymflag294184) 12))%(sizeof(NU32)*8));
  			}
  			LA19: ;
  			{
  				NIM_BOOL LOC23;
  				NIM_BOOL LOC24;
  				NIM_BOOL LOC26;
  				Tnode294802* val0;
  				Tnode294802* LOC29;
  				Ropeobj180006* decl0;
  				Tloc294816 a0;
  				TY534811 LOC32;
  				LOC23 = (NIM_BOOL)0;
  				LOC24 = (NIM_BOOL)0;
  				LOC24 = (((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0);
  				if (!(LOC24)) goto LA25;
  				LOC26 = (NIM_BOOL)0;
  				LOC26 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC26) goto LA27;
  				LOC26 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA27: ;
  				LOC24 = LOC26;
  				LA25: ;
  				LOC23 = LOC24;
  				if (!(LOC23)) goto LA28;
  				LOC29 = (Tnode294802*)0;
  				LOC29 = getbody_337227_1724185294(prc0);
  				val0 = easyresultasgn_562191_839829468(LOC29);
  				LOC23 = !((val0 == NIM_NIL));
  				LA28: ;
  				if (!LOC23) goto LA30;
  				decl0 = localvardecl_540532_839829468(p0, res0);
  				memset((void*)(&a0), 0, sizeof(a0));
  				initlocexprsingleuse_541289_839829468(p0, val0, (&a0));
  				memset((void*)LOC32, 0, sizeof(LOC32));
  				LOC32[0] = decl0;
  				LOC32[1] = rdloc_540188_839829468(a0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC32, 2);
  			}
  			goto LA21;
  			LA30: ;
  			{
  				assignlocalvar_540614_839829468(p0, res0);
  				initlocalvar_540398_839829468(p0, res0, NIM_FALSE);
  			}
  			LA21: ;
  			memset((void*)LOC34, 0, sizeof(LOC34));
  			LOC34[0] = rdloc_540188_839829468((*res0).loc);
  			returnstmt0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_209), LOC34, 1);
  		}
  		goto LA12;
  		LA15: ;
  		{
  			fillresult_535865_839829468(res0);
  			assignparam_540994_839829468(p0, res0);
  			{
  				Ttype294840* LOC38;
  				LOC38 = (Ttype294840*)0;
  				LOC38 = skiptypes_298099_850551059((*res0).typ, IL64(211106232576256));
  				if (!((*LOC38).kind == ((Ttypekind294244) 16))) goto LA39;
  				(*res0).loc.s = ((Tstorageloc294812) 0);
  			}
  			LA39: ;
  		}
  		LA12: ;
  	}
  	LA5: ;
  	{
  		NI i_562627_839829468;
  		NI HEX3Atmp_562743_839829468;
  		NI LOC42;
  		NI res_562746_839829468;
  		i_562627_839829468 = (NI)0;
  		HEX3Atmp_562743_839829468 = (NI)0;
  		LOC42 = (NI)0;
  		LOC42 = sonslen_297351_850551059((*(*prc0).typ).n);
  		HEX3Atmp_562743_839829468 = (NI)(LOC42 - ((NI) 1));
  		res_562746_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_562746_839829468 <= HEX3Atmp_562743_839829468)) goto LA44;
  				i_562627_839829468 = res_562746_839829468;
  				{
  					Tsym294834* param0;
  					param0 = (*(*(*(*prc0).typ).n).kindU.S6.sons->data[i_562627_839829468]).kindU.S4.sym;
  					{
  						NIM_BOOL LOC48;
  						LOC48 = (NIM_BOOL)0;
  						LOC48 = iscompiletimeonly_330706_3876443242((*param0).typ);
  						if (!LOC48) goto LA49;
  						goto LA45;
  					}
  					LA49: ;
  					assignparam_540994_839829468(p0, param0);
  				} LA45: ;
  				res_562746_839829468 += ((NI) 1);
  			} LA44: ;
  		}
  	}
  	closuresetup_562158_839829468(p0, prc0);
  	LOC51 = (Tnode294802*)0;
  	LOC51 = getbody_337227_1724185294(prc0);
  	genstmts_541244_839829468(p0, LOC51);
  	generatedproc0 = (Ropeobj180006*)0;
  	{
  		if (!(((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 14))&31U)))!=0)) goto LA54;
  		{
  			if (!((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 6))&7U)))!=0)) goto LA58;
  			header0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_213), header0);
  		}
  		LA58: ;
  	}
  	LA54: ;
  	{
  		TY537235 LOC68;
  		Ropeobj180006** LOC69;
  		Ropeobj180006** LOC70;
  		Ropeobj180006** LOC71;
  		if (!(((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0)) goto LA62;
  		{
  			if (!((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 6))&7U)))!=0)) goto LA66;
  			header0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_214), header0);
  		}
  		LA66: ;
  		memset((void*)LOC68, 0, sizeof(LOC68));
  		LOC68[0] = header0;
  		LOC69 = (Ropeobj180006**)0;
  		LOC69 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  		LOC68[1] = (*LOC69);
  		LOC70 = (Ropeobj180006**)0;
  		LOC70 = s_531179_3723162438(p0, ((Tcprocsection531011) 1));
  		LOC68[2] = (*LOC70);
  		LOC71 = (Ropeobj180006**)0;
  		LOC71 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  		LOC68[3] = (*LOC71);
  		generatedproc0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_215), LOC68, 4);
  	}
  	goto LA60;
  	LA62: ;
  	{
  		TY180507 LOC73;
  		Ropeobj180006* LOC74;
  		Ropeobj180006** LOC93;
  		Ropeobj180006** LOC94;
  		Ropeobj180006* LOC101;
  		TY535289 LOC107;
  		Ropeobj180006* LOC108;
  		memset((void*)LOC73, 0, sizeof(LOC73));
  		LOC73[0] = header0;
  		generatedproc0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_216), LOC73, 1);
  		LOC74 = (Ropeobj180006*)0;
  		LOC74 = initgcframe_540435_839829468(p0);
  		add_180482_2381377266(&generatedproc0, LOC74);
  		{
  			Ropeobj180006** LOC79;
  			Ropeobj180006* procname0;
  			Ropeobj180006* LOC80;
  			Ropeobj180006* LOC81;
  			if (!(((*prc0).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0)) goto LA77;
  			LOC79 = (Ropeobj180006**)0;
  			LOC79 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  			add_180482_2381377266(&generatedproc0, (*LOC79));
  			procname0 = makecstring_193638_155036129((*(*prc0).name).s);
  			LOC80 = (Ropeobj180006*)0;
  			LOC80 = quotedfilename_198818_155036129((*prc0).info);
  			LOC81 = (Ropeobj180006*)0;
  			LOC81 = initframe_562140_839829468(p0, procname0, LOC80);
  			add_180482_2381377266(&generatedproc0, LOC81);
  		}
  		goto LA75;
  		LA77: ;
  		{
  			Ropeobj180006** LOC83;
  			LOC83 = (Ropeobj180006**)0;
  			LOC83 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  			add_180482_2381377266(&generatedproc0, (*LOC83));
  		}
  		LA75: ;
  		{
  			TY535289 LOC88;
  			if (!(((*prc0).options &(1U<<((NU)(((Toption171009) 19))&31U)))!=0)) goto LA86;
  			memset((void*)LOC88, 0, sizeof(LOC88));
  			appcg_534648_839829468(p0, ((Tcprocsection531011) 1), ((NimStringDesc*) &T839829468_222), LOC88, 0);
  		}
  		LA86: ;
  		{
  			if (!(*p0).beforeretneeded) goto LA91;
  			add_180487_2381377266(&generatedproc0, ((NimStringDesc*) &T839829468_223));
  		}
  		LA91: ;
  		LOC93 = (Ropeobj180006**)0;
  		LOC93 = s_531179_3723162438(p0, ((Tcprocsection531011) 1));
  		add_180482_2381377266(&generatedproc0, (*LOC93));
  		LOC94 = (Ropeobj180006**)0;
  		LOC94 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  		add_180482_2381377266(&generatedproc0, (*LOC94));
  		{
  			TY535289 LOC99;
  			Ropeobj180006* LOC100;
  			if (!(*p0).beforeretneeded) goto LA97;
  			memset((void*)LOC99, 0, sizeof(LOC99));
  			LOC100 = (Ropeobj180006*)0;
  			LOC100 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_224), LOC99, 0);
  			add_180482_2381377266(&generatedproc0, LOC100);
  		}
  		LA97: ;
  		LOC101 = (Ropeobj180006*)0;
  		LOC101 = deinitgcframe_540441_839829468(p0);
  		add_180482_2381377266(&generatedproc0, LOC101);
  		{
  			Ropeobj180006* LOC106;
  			if (!(((*prc0).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0)) goto LA104;
  			LOC106 = (Ropeobj180006*)0;
  			LOC106 = deinitframe_562150_839829468(p0);
  			add_180482_2381377266(&generatedproc0, LOC106);
  		}
  		LA104: ;
  		add_180482_2381377266(&generatedproc0, returnstmt0);
  		memset((void*)LOC107, 0, sizeof(LOC107));
  		LOC108 = (Ropeobj180006*)0;
  		LOC108 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_227), LOC107, 0);
  		add_180482_2381377266(&generatedproc0, LOC108);
  	}
  	LA60: ;
  	add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 10))- 0], generatedproc0);
  }
  
  N_NIMCALL(Tcgen531027*, findpendingmodule_534241_839829468)(Tcgen531027* m0, Tsym294834* s0) {
  	Tcgen531027* result0;
  	Tsym294834* ms0;
  	result0 = (Tcgen531027*)0;
  	ms0 = getmodule_301123_2984716966(s0);
  	result0 = gmodules_531170_3723162438->data[(*ms0).position];
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, isgetprocaddr_561442_839829468)(Tlib294820* lib0) {
  	NIM_BOOL result0;
  	Tnode294802* n0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC2;
  	result0 = (NIM_BOOL)0;
  	n0 = (*lib0).path;
  	LOC1 = (NIM_BOOL)0;
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = ((*n0).kind == ((Tnodekind294020) 27) || (*n0).kind == ((Tnodekind294020) 29) || (*n0).kind == ((Tnodekind294020) 30) || (*n0).kind == ((Tnodekind294020) 31) || (*n0).kind == ((Tnodekind294020) 26) || (*n0).kind == ((Tnodekind294020) 28) || (*n0).kind == ((Tnodekind294020) 32));
  	if (!(LOC2)) goto LA3;
  	LOC2 = !(((*n0).typ == NIM_NIL));
  	LA3: ;
  	LOC1 = LOC2;
  	if (!(LOC1)) goto LA4;
  	LOC1 = ((*(*n0).typ).kind == ((Ttypekind294244) 26) || (*(*n0).typ).kind == ((Ttypekind294244) 25));
  	LA4: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, initlocexpr_541283_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* result0) {
  	initloc_534273_839829468(result0, ((Tlockind294808) 0), (*e0).typ, ((Tstorageloc294812) 0));
  	expr_541248_839829468(p0, e0, result0);
  }
  
  N_NIMCALL(void, loaddynamiclib_561480_839829468)(Tcgen531027* m0, Tlib294820* lib0) {
  	{
  		Ropeobj180006* tmp0;
  		TY180507 LOC5;
  		if (!!((*lib0).generated)) goto LA3;
  		(*lib0).generated = NIM_TRUE;
  		tmp0 = gettempname_535596_839829468(m0);
  		asgnRefNoCycle((void**) (&(*lib0).name), tmp0);
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = tmp0;
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_228), LOC5, 1);
  		{
  			TY136002* s0;
  			Ropeobj180006* loadlib0;
  			TY534811 LOC18;
  			if (!((*(*lib0).path).kind >= ((Tnodekind294020) 20) && (*(*lib0).path).kind <= ((Tnodekind294020) 22))) goto LA8;
  			s0 = (TY136002*) newSeq((&NTI136002), 0);
  			libcandidates_172605_2607990831((*(*lib0).path).kindU.S3.strval, (&s0));
  			rawmessage_196612_155036129(((Tmsgkind193002) 286), (*(*lib0).path).kindU.S3.strval);
  			loadlib0 = NIM_NIL;
  			{
  				NI i_561847_839829468;
  				NI HEX3Atmp_561902_839829468;
  				NI res_561905_839829468;
  				i_561847_839829468 = (NI)0;
  				HEX3Atmp_561902_839829468 = (NI)0;
  				HEX3Atmp_561902_839829468 = (s0 ? (s0->Sup.len-1) : -1);
  				res_561905_839829468 = ((NI) 0);
  				{
  					while (1) {
  						TY534811 LOC17;
  						if (!(res_561905_839829468 <= HEX3Atmp_561902_839829468)) goto LA12;
  						i_561847_839829468 = res_561905_839829468;
  						(*m0).labels += ((NI) 1);
  						{
  							if (!(((NI) 0) < i_561847_839829468)) goto LA15;
  							add_180487_2381377266(&loadlib0, ((NimStringDesc*) &T839829468_229));
  						}
  						LA15: ;
  						memset((void*)LOC17, 0, sizeof(LOC17));
  						LOC17[0] = tmp0;
  						LOC17[1] = getstrlit_551468_839829468(m0, s0->data[i_561847_839829468]);
  						appcg_534632_839829468(m0, &loadlib0, ((NimStringDesc*) &T839829468_230), LOC17, 2);
  						res_561905_839829468 += ((NI) 1);
  					} LA12: ;
  				}
  			}
  			memset((void*)LOC18, 0, sizeof(LOC18));
  			LOC18[0] = loadlib0;
  			LOC18[1] = getstrlit_551468_839829468(m0, (*(*lib0).path).kindU.S3.strval);
  			appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 16))- 0], ((NimStringDesc*) &T839829468_231), LOC18, 2);
  		}
  		goto LA6;
  		LA8: ;
  		{
  			Tcproc531021* p0;
  			Tloc294816 dest0;
  			Ropeobj180006** LOC20;
  			Ropeobj180006** LOC21;
  			Ropeobj180006** LOC22;
  			TY534811 LOC23;
  			p0 = newproc_531206_3723162438(NIM_NIL, m0);
  			(*p0).options = ((*p0).options & ~ 163840);
  			memset((void*)(&dest0), 0, sizeof(dest0));
  			initlocexpr_541283_839829468(p0, (*lib0).path, (&dest0));
  			LOC20 = (Ropeobj180006**)0;
  			LOC20 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], (*LOC20));
  			LOC21 = (Ropeobj180006**)0;
  			LOC21 = s_531179_3723162438(p0, ((Tcprocsection531011) 1));
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 16))- 0], (*LOC21));
  			LOC22 = (Ropeobj180006**)0;
  			LOC22 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 16))- 0], (*LOC22));
  			memset((void*)LOC23, 0, sizeof(LOC23));
  			LOC23[0] = tmp0;
  			LOC23[1] = rdloc_540188_839829468(dest0);
  			appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 16))- 0], ((NimStringDesc*) &T839829468_232), LOC23, 2);
  		}
  		LA6: ;
  	}
  	LA3: ;
  	{
  		if (!((*lib0).name == NIM_NIL)) goto LA26;
  		internalerror_198113_155036129(((NimStringDesc*) &T839829468_233));
  	}
  	LA26: ;
  }
  
  N_NIMCALL(Ropeobj180006*, mangledynlibproc_540816_839829468)(Tsym294834* sym0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 16))&31U)))!=0)) goto LA3;
  		result0 = rope_180277_2381377266((*(*sym0).name).s);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY180507 LOC6;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = rope_180401_2381377266(((NI64) ((*sym0).Sup.id)));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_234), LOC6, 1);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, symindynamiclib_561929_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	Tlib294820* lib0;
  	NIM_BOOL iscall0;
  	Ropeobj180006* extname0;
  	Ropeobj180006* tmp0;
  	TY534811 LOC43;
  	lib0 = (*sym0).annex;
  	iscall0 = isgetprocaddr_561442_839829468(lib0);
  	extname0 = (*sym0).loc.r;
  	{
  		if (!!(iscall0)) goto LA3;
  		loaddynamiclib_561480_839829468(m0, lib0);
  	}
  	LA3: ;
  	tmp0 = mangledynlibproc_540816_839829468(sym0);
  	asgnRefNoCycle((void**) (&(*sym0).loc.r), tmp0);
  	asgnRefNoCycle((void**) (&(*(*sym0).typ).sym), NIM_NIL);
  	(*m0).labels += ((NI) 2);
  	{
  		Tnode294802* n0;
  		Tloc294816 a0;
  		Tnode294802* LOC9;
  		Ropeobj180006* params0;
  		Ropeobj180006* LOC10;
  		Ropeobj180006* load0;
  		TY537235 LOC17;
  		NimStringDesc* LOC18;
  		Tnode294802* last0;
  		NimStringDesc* idx0;
  		if (!iscall0) goto LA7;
  		n0 = (*lib0).path;
  		memset((void*)(&a0), 0, sizeof(a0));
  		LOC9 = (Tnode294802*)0;
  		LOC9 = HEX5BHEX5D_295238_850551059(n0, ((NI) 0));
  		initlocexpr_541283_839829468((*m0).initproc, LOC9, (&a0));
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = rdloc_540188_839829468(a0);
  		params0 = HEX26_180447_2381377266(LOC10, ((NimStringDesc*) &T839829468_118));
  		{
  			NI i_561964_839829468;
  			NI HEX3Atmp_562025_839829468;
  			NI LOC12;
  			NI res_562028_839829468;
  			i_561964_839829468 = (NI)0;
  			HEX3Atmp_562025_839829468 = (NI)0;
  			LOC12 = (NI)0;
  			LOC12 = len_295081_850551059(n0);
  			HEX3Atmp_562025_839829468 = (NI)(LOC12 - ((NI) 2));
  			res_562028_839829468 = ((NI) 1);
  			{
  				while (1) {
  					Tnode294802* LOC15;
  					Ropeobj180006* LOC16;
  					if (!(res_562028_839829468 <= HEX3Atmp_562025_839829468)) goto LA14;
  					i_561964_839829468 = res_562028_839829468;
  					LOC15 = (Tnode294802*)0;
  					LOC15 = HEX5BHEX5D_295238_850551059(n0, i_561964_839829468);
  					initlocexpr_541283_839829468((*m0).initproc, LOC15, (&a0));
  					LOC16 = (Ropeobj180006*)0;
  					LOC16 = rdloc_540188_839829468(a0);
  					add_180482_2381377266(&params0, LOC16);
  					add_180487_2381377266(&params0, ((NimStringDesc*) &T839829468_110));
  					res_562028_839829468 += ((NI) 1);
  				} LA14: ;
  			}
  		}
  		memset((void*)LOC17, 0, sizeof(LOC17));
  		LOC17[0] = tmp0;
  		LOC17[1] = gettypedesc_537671_839829468(m0, (*sym0).typ);
  		LOC17[2] = params0;
  		LOC18 = (NimStringDesc*)0;
  		LOC18 = HEX24_180856_2381377266(extname0);
  		LOC17[3] = makecstring_193638_155036129(LOC18);
  		load0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_235), LOC17, 4);
  		last0 = lastson_297364_850551059(n0);
  		{
  			if (!((*last0).kind == ((Tnodekind294020) 58))) goto LA21;
  			last0 = (*last0).kindU.S6.sons->data[((NI) 1)];
  		}
  		LA21: ;
  		{
  			NimStringDesc* LOC27;
  			if (!!(((*last0).kind == ((Tnodekind294020) 20)))) goto LA25;
  			LOC27 = (NimStringDesc*)0;
  			LOC27 = HEX24_198185_1689653243(T839829468_236);
  			internalerror_198113_155036129(LOC27);
  		}
  		LA25: ;
  		idx0 = (*last0).kindU.S3.strval;
  		{
  			Ropeobj180006** LOC32;
  			if (!((idx0 ? idx0->Sup.len : 0) == ((NI) 0))) goto LA30;
  			LOC32 = (Ropeobj180006**)0;
  			LOC32 = s_531179_3723162438((*m0).initproc, ((Tcprocsection531011) 2));
  			add_180482_2381377266(LOC32, load0);
  		}
  		goto LA28;
  		LA30: ;
  		{
  			NIM_BOOL LOC34;
  			LOC34 = (NIM_BOOL)0;
  			LOC34 = ((idx0 ? idx0->Sup.len : 0) == ((NI) 1));
  			if (!(LOC34)) goto LA35;
  			LOC34 = (((NU8)(idx0->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(idx0->data[((NI) 0)])) <= ((NU8)(57)));
  			LA35: ;
  			if (!LOC34) goto LA36;
  			add_180482_2381377266(&(*m0).extensionloaders[(((NU8)(idx0->data[((NI) 0)])))- 48], load0);
  		}
  		goto LA28;
  		LA36: ;
  		{
  			NimStringDesc* LOC39;
  			LOC39 = (NimStringDesc*)0;
  			LOC39 = rawNewString(idx0->Sup.len + 13);
  appendString(LOC39, ((NimStringDesc*) &T839829468_237));
  appendString(LOC39, idx0);
  			internalerror_198100_155036129((*sym0).info, LOC39);
  		}
  		LA28: ;
  	}
  	goto LA5;
  	LA7: ;
  	{
  		TY537235 LOC41;
  		NimStringDesc* LOC42;
  		memset((void*)LOC41, 0, sizeof(LOC41));
  		LOC41[0] = tmp0;
  		LOC41[1] = gettypedesc_537671_839829468(m0, (*sym0).typ);
  		LOC41[2] = (*lib0).name;
  		LOC42 = (NimStringDesc*)0;
  		LOC42 = HEX24_180856_2381377266(extname0);
  		LOC41[3] = makecstring_193638_155036129(LOC42);
  		appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 16))- 0], ((NimStringDesc*) &T839829468_238), LOC41, 4);
  	}
  	LA5: ;
  	memset((void*)LOC43, 0, sizeof(LOC43));
  	LOC43[0] = (*sym0).loc.r;
  	LOC43[1] = gettypedesc_537671_839829468(m0, (*sym0).loc.t);
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_239), LOC43, 2);
  }
  
  N_NIMCALL(void, symindynamiclibpartial_562071_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	asgnRefNoCycle((void**) (&(*sym0).loc.r), mangledynlibproc_540816_839829468(sym0));
  	asgnRefNoCycle((void**) (&(*(*sym0).typ).sym), NIM_NIL);
  }
  
  N_NIMCALL(void, genprocnoforward_562906_839829468)(Tcgen531027* m0, Tsym294834* prc0) {
  {	fillprocloc_541201_839829468(prc0);
  	useheader_534369_839829468(m0, prc0);
  	{
  		Ropeobj180006* LOC5;
  		if (!(((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 7))&15U)))!=0)) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = cgsym_534403_839829468(m0, (*(*prc0).name).s);
  		goto BeforeRet;
  	}
  	LA3: ;
  	genprocprototype_541254_839829468(m0, prc0);
  	{
  		if (!(((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0)) goto LA8;
  	}
  	goto LA6;
  	LA8: ;
  	{
  		if (!((*(*prc0).typ).callconv == ((Tcallingconvention294002) 5))) goto LA11;
  		{
  			NIM_BOOL LOC15;
  			LOC15 = (NIM_BOOL)0;
  			LOC15 = containsorincl_270862_2627731572((&(*m0).declaredthings), (*prc0).Sup.id);
  			if (!!(LOC15)) goto LA16;
  			genprocaux_562284_839829468(m0, prc0);
  		}
  		LA16: ;
  	}
  	goto LA6;
  	LA11: ;
  	{
  		Tcgen531027* q0;
  		if (!(((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 4))&15U)))!=0)) goto LA19;
  		q0 = findpendingmodule_534241_839829468(m0, prc0);
  		{
  			NIM_BOOL LOC23;
  			NIM_BOOL LOC25;
  			LOC23 = (NIM_BOOL)0;
  			LOC23 = !((q0 == NIM_NIL));
  			if (!(LOC23)) goto LA24;
  			LOC25 = (NIM_BOOL)0;
  			LOC25 = containsorincl_270862_2627731572((&(*q0).declaredthings), (*prc0).Sup.id);
  			LOC23 = !(LOC25);
  			LA24: ;
  			if (!LOC23) goto LA26;
  			symindynamiclib_561929_839829468(q0, prc0);
  		}
  		goto LA21;
  		LA26: ;
  		{
  			symindynamiclibpartial_562071_839829468(m0, prc0);
  		}
  		LA21: ;
  	}
  	goto LA6;
  	LA19: ;
  	{
  		Tcgen531027* q0;
  		if (!!((((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0))) goto LA30;
  		q0 = findpendingmodule_534241_839829468(m0, prc0);
  		{
  			NIM_BOOL LOC34;
  			NIM_BOOL LOC36;
  			LOC34 = (NIM_BOOL)0;
  			LOC34 = !((q0 == NIM_NIL));
  			if (!(LOC34)) goto LA35;
  			LOC36 = (NIM_BOOL)0;
  			LOC36 = containsorincl_270862_2627731572((&(*q0).declaredthings), (*prc0).Sup.id);
  			LOC34 = !(LOC36);
  			LA35: ;
  			if (!LOC34) goto LA37;
  			genprocaux_562284_839829468(q0, prc0);
  		}
  		LA37: ;
  	}
  	goto LA6;
  	LA30: ;
  	LA6: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genproc_534951_839829468)(Tcgen531027* m0, Tsym294834* prc0) {
  {	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 26))&31U)))!=0);
  		if (LOC3) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = isactivated_563431_839829468(prc0);
  		LOC3 = !(LOC5);
  		LA4: ;
  		if (!LOC3) goto LA6;
  		goto BeforeRet;
  	}
  	LA6: ;
  	fillprocloc_541201_839829468(prc0);
  	{
  		if (!(((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 4))&31U)))!=0)) goto LA10;
  		addforwardedproc_534203_839829468(m0, prc0);
  	}
  	goto LA8;
  	LA10: ;
  	{
  		genprocnoforward_562906_839829468(m0, prc0);
  		{
  			NIM_BOOL LOC15;
  			NIM_BOOL LOC16;
  			LOC15 = (NIM_BOOL)0;
  			LOC16 = (NIM_BOOL)0;
  			LOC16 = ((65600 & (*prc0).flags) == 64);
  			if (!(LOC16)) goto LA17;
  			LOC16 = !((generatedheader_534201_839829468 == NIM_NIL));
  			LA17: ;
  			LOC15 = LOC16;
  			if (!(LOC15)) goto LA18;
  			LOC15 = !((((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0));
  			LA18: ;
  			if (!LOC15) goto LA19;
  			genprocprototype_541254_839829468(generatedheader_534201_839829468, prc0);
  			{
  				if (!((*(*prc0).typ).callconv == ((Tcallingconvention294002) 5))) goto LA23;
  				{
  					NIM_BOOL LOC27;
  					LOC27 = (NIM_BOOL)0;
  					LOC27 = containsorincl_270862_2627731572((&(*generatedheader_534201_839829468).declaredthings), (*prc0).Sup.id);
  					if (!!(LOC27)) goto LA28;
  					genprocaux_562284_839829468(generatedheader_534201_839829468, prc0);
  				}
  				LA28: ;
  			}
  			LA23: ;
  		}
  		LA19: ;
  	}
  	LA8: ;
  	}BeforeRet: ;
  }
  
  static N_INLINE(NIM_BOOL, emulatedthreadvars_534949_839829468)(void) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = ((71303168 & ~ gglobaloptions_171130_2607990831)==0);
  	return result0;
  }
  
  N_NIMCALL(void, declarethreadvar_540676_839829468)(Tcgen531027* m0, Tsym294834* s0, NIM_BOOL isextern0) {
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = emulatedthreadvars_534949_839829468();
  		if (!LOC3) goto LA4;
  		{
  			NIM_BOOL LOC8;
  			TY534811 LOC11;
  			LOC8 = (NIM_BOOL)0;
  			LOC8 = containsorincl_270862_2627731572((&nimtvdeclared_540675_839829468), (*s0).Sup.id);
  			if (!!(LOC8)) goto LA9;
  			nimtvdeps_540674_839829468 = (Ttypeseq294836*) incrSeqV2(&(nimtvdeps_540674_839829468)->Sup, sizeof(Ttype294840*));
  			asgnRefNoCycle((void**) (&nimtvdeps_540674_839829468->data[nimtvdeps_540674_839829468->Sup.len]), (*s0).loc.t);
  			++nimtvdeps_540674_839829468->Sup.len;
  			memset((void*)LOC11, 0, sizeof(LOC11));
  			LOC11[0] = gettypedesc_537671_839829468(m0, (*s0).loc.t);
  			LOC11[1] = (*s0).loc.r;
  			addf_181205_2381377266(&nimtv_540656_839829468, ((NimStringDesc*) &T839829468_54), LOC11, 2);
  		}
  		LA9: ;
  	}
  	goto LA1;
  	LA4: ;
  	{
  		Ropeobj180006* LOC21;
  		TY180507 LOC22;
  		{
  			if (!isextern0) goto LA15;
  			add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_240));
  		}
  		LA15: ;
  		{
  			if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 22))&63U)))!=0)) goto LA19;
  			add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_241));
  		}
  		LA19: ;
  		LOC21 = (Ropeobj180006*)0;
  		LOC21 = gettypedesc_537671_839829468(m0, (*s0).loc.t);
  		add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], LOC21);
  		memset((void*)LOC22, 0, sizeof(LOC22));
  		LOC22[0] = (*s0).loc.r;
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_242), LOC22, 1);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, genvarprototypeaux_546254_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	Ropeobj180006* LOC1;
  {	useheader_534369_839829468(m0, sym0);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = manglename_535205_839829468(sym0);
  	fillloc_534282_839829468((&(*sym0).loc), ((Tlockind294808) 3), (*sym0).typ, LOC1, ((Tstorageloc294812) 3));
  	{
  		NIM_BOOL LOC4;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = (((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0);
  		if (LOC4) goto LA5;
  		LOC4 = containsorincl_270862_2627731572((&(*m0).declaredthings), (*sym0).Sup.id);
  		LA5: ;
  		if (!LOC4) goto LA6;
  		goto BeforeRet;
  	}
  	LA6: ;
  	{
  		if (!!(((*(*sym0).owner).Sup.id == (*(*m0).module).Sup.id))) goto LA10;
  		{
  			if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 22))&31U)))!=0)) goto LA14;
  			declarethreadvar_540676_839829468(m0, sym0, NIM_TRUE);
  		}
  		goto LA12;
  		LA14: ;
  		{
  			Ropeobj180006* LOC17;
  			TY180507 LOC30;
  			add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_240));
  			LOC17 = (Ropeobj180006*)0;
  			LOC17 = gettypedesc_537671_839829468(m0, (*sym0).loc.t);
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], LOC17);
  			{
  				if (!(((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 4))&15U)))!=0)) goto LA20;
  				add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_53));
  			}
  			LA20: ;
  			{
  				if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 8))&31U)))!=0)) goto LA24;
  				add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_121));
  			}
  			LA24: ;
  			{
  				if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 7))&31U)))!=0)) goto LA28;
  				add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_122));
  			}
  			LA28: ;
  			memset((void*)LOC30, 0, sizeof(LOC30));
  			LOC30[0] = (*sym0).loc.r;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_242), LOC30, 1);
  		}
  		LA12: ;
  	}
  	LA10: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genvarprototype_541236_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	genvarprototypeaux_546254_839829468(m0, sym0);
  }
  
  N_NIMCALL(Ropeobj180006*, cgsym_534403_839829468)(Tcgen531027* m0, NimStringDesc* name0) {
  	Ropeobj180006* result0;
  	Tsym294834* sym0;
  	result0 = (Ropeobj180006*)0;
  	sym0 = getcompilerproc_340746_3937434831(name0);
  	{
  		if (!!((sym0 == NIM_NIL))) goto LA3;
  		switch ((*sym0).kind) {
  		case ((Tsymkind294435) 12):
  		case ((Tsymkind294435) 13):
  		case ((Tsymkind294435) 15):
  		case ((Tsymkind294435) 14):
  		{
  			genproc_534951_839829468(m0, sym0);
  		}
  		break;
  		case ((Tsymkind294435) 8):
  		case ((Tsymkind294435) 11):
  		case ((Tsymkind294435) 9):
  		{
  			genvarprototype_541236_839829468(m0, sym0);
  		}
  		break;
  		case ((Tsymkind294435) 7):
  		{
  			Ropeobj180006* LOC8;
  			LOC8 = (Ropeobj180006*)0;
  			LOC8 = gettypedesc_537671_839829468(m0, (*sym0).typ);
  		}
  		break;
  		default:
  		{
  			NimStringDesc* LOC10;
  			LOC10 = (NimStringDesc*)0;
  			LOC10 = rawNewString(name0->Sup.len + reprEnum((NI)(*sym0).kind, (&NTI294435))->Sup.len + 9);
  appendString(LOC10, ((NimStringDesc*) &T839829468_243));
  appendString(LOC10, name0);
  appendString(LOC10, ((NimStringDesc*) &T839829468_244));
  appendString(LOC10, reprEnum((NI)(*sym0).kind, (&NTI294435)));
  			internalerror_198113_155036129(LOC10);
  		}
  		break;
  		}
  	}
  	goto LA1;
  	LA3: ;
  	{
  		rawmessage_196612_155036129(((Tmsgkind193002) 68), name0);
  	}
  	LA1: ;
  	result0 = (*sym0).loc.r;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, ropecg_534407_839829468)(Tcgen531027* m0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006* result0;
  	NI i0;
  	NI length0;
  	NI num0;
  	result0 = (Ropeobj180006*)0;
  	i0 = ((NI) 0);
  	length0 = (frmt0 ? frmt0->Sup.len : 0);
  	result0 = NIM_NIL;
  	num0 = ((NI) 0);
  	{
  		while (1) {
  			NI start0;
  			if (!(i0 < length0)) goto LA2;
  			{
  				if (!((NU8)(frmt0->data[i0]) == (NU8)(36))) goto LA5;
  				i0 += ((NI) 1);
  				switch (((NU8)(frmt0->data[i0]))) {
  				case 36:
  				{
  					add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_19));
  					i0 += ((NI) 1);
  				}
  				break;
  				case 35:
  				{
  					i0 += ((NI) 1);
  					add_180482_2381377266(&result0, args0[num0]);
  					num0 += ((NI) 1);
  				}
  				break;
  				case 48 ... 57:
  				{
  					NI j0;
  					j0 = ((NI) 0);
  					{
  						while (1) {
  							j0 = (NI)((NI)((NI)(j0 * ((NI) 10)) + ((NI) (((NU8)(frmt0->data[i0]))))) - ((NI) 48));
  							i0 += ((NI) 1);
  							{
  								NIM_BOOL LOC14;
  								LOC14 = (NIM_BOOL)0;
  								LOC14 = (length0 <= i0);
  								if (LOC14) goto LA15;
  								LOC14 = !((((NU8)(frmt0->data[i0])) >= ((NU8)(48)) && ((NU8)(frmt0->data[i0])) <= ((NU8)(57))));
  								LA15: ;
  								if (!LOC14) goto LA16;
  								goto LA10;
  							}
  							LA16: ;
  						}
  					} LA10: ;
  					num0 = j0;
  					{
  						NimStringDesc* LOC22;
  						NimStringDesc* LOC23;
  						if (!((NI)((args0Len0-1) + ((NI) 1)) < j0)) goto LA20;
  						LOC22 = (NimStringDesc*)0;
  						LOC23 = (NimStringDesc*)0;
  						LOC23 = nimIntToStr(j0);
  						LOC22 = rawNewString(LOC23->Sup.len + 30);
  appendString(LOC22, ((NimStringDesc*) &T839829468_20));
  appendString(LOC22, LOC23);
  						internalerror_198113_155036129(LOC22);
  					}
  					LA20: ;
  					add_180482_2381377266(&result0, args0[(NI)(j0 - ((NI) 1))]);
  				}
  				break;
  				case 110:
  				{
  					{
  						if (!!(((goptions_171128_2607990831 &(1U<<((NU)(((Toption171009) 10))&31U)))!=0))) goto LA27;
  						add_180482_2381377266(&result0, rnl_180903_2381377266);
  					}
  					LA27: ;
  					i0 += ((NI) 1);
  				}
  				break;
  				case 78:
  				{
  					add_180482_2381377266(&result0, rnl_180903_2381377266);
  					i0 += ((NI) 1);
  				}
  				break;
  				default:
  				{
  					NimStringDesc* LOC31;
  					LOC31 = (NimStringDesc*)0;
  					LOC31 = rawNewString(31);
  appendString(LOC31, ((NimStringDesc*) &T839829468_20));
  appendChar(LOC31, frmt0->data[i0]);
  					internalerror_198113_155036129(LOC31);
  				}
  				break;
  				}
  			}
  			goto LA3;
  			LA5: ;
  			{
  				NIM_BOOL LOC33;
  				NI j0;
  				NimStringDesc* ident0;
  				Ropeobj180006* LOC39;
  				LOC33 = (NIM_BOOL)0;
  				LOC33 = ((NU8)(frmt0->data[i0]) == (NU8)(35));
  				if (!(LOC33)) goto LA34;
  				LOC33 = (((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))])) >= ((NU8)(97)) && ((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))])) <= ((NU8)(122)) || ((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))])) >= ((NU8)(65)) && ((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))])) <= ((NU8)(90)) || ((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))])) == ((NU8)(95)));
  				LA34: ;
  				if (!LOC33) goto LA35;
  				i0 += ((NI) 1);
  				j0 = i0;
  				{
  					while (1) {
  						if (!(((NU8)(frmt0->data[j0])) >= ((NU8)(97)) && ((NU8)(frmt0->data[j0])) <= ((NU8)(122)) || ((NU8)(frmt0->data[j0])) >= ((NU8)(65)) && ((NU8)(frmt0->data[j0])) <= ((NU8)(90)) || ((NU8)(frmt0->data[j0])) >= ((NU8)(48)) && ((NU8)(frmt0->data[j0])) <= ((NU8)(57)) || ((NU8)(frmt0->data[j0])) == ((NU8)(95)))) goto LA38;
  						j0 += ((NI) 1);
  					} LA38: ;
  				}
  				ident0 = copyStrLast(frmt0, i0, (NI)(j0 - ((NI) 1)));
  				i0 = j0;
  				LOC39 = (Ropeobj180006*)0;
  				LOC39 = cgsym_534403_839829468(m0, ident0);
  				add_180482_2381377266(&result0, LOC39);
  			}
  			goto LA3;
  			LA35: ;
  			{
  				NIM_BOOL LOC41;
  				NI j0;
  				NimStringDesc* LOC47;
  				Ropeobj180006* LOC48;
  				LOC41 = (NIM_BOOL)0;
  				LOC41 = ((NU8)(frmt0->data[i0]) == (NU8)(35));
  				if (!(LOC41)) goto LA42;
  				LOC41 = ((NU8)(frmt0->data[(NI)(i0 + ((NI) 1))]) == (NU8)(36));
  				LA42: ;
  				if (!LOC41) goto LA43;
  				i0 += ((NI) 2);
  				j0 = ((NI) 0);
  				{
  					while (1) {
  						if (!(((NU8)(frmt0->data[i0])) >= ((NU8)(48)) && ((NU8)(frmt0->data[i0])) <= ((NU8)(57)))) goto LA46;
  						j0 = (NI)((NI)((NI)(j0 * ((NI) 10)) + ((NI) (((NU8)(frmt0->data[i0]))))) - ((NI) 48));
  						i0 += ((NI) 1);
  					} LA46: ;
  				}
  				LOC47 = (NimStringDesc*)0;
  				LOC47 = HEX24_180856_2381377266(args0[(NI)(j0 - ((NI) 1))]);
  				LOC48 = (Ropeobj180006*)0;
  				LOC48 = cgsym_534403_839829468(m0, LOC47);
  				add_180482_2381377266(&result0, LOC48);
  			}
  			goto LA3;
  			LA43: ;
  			LA3: ;
  			start0 = i0;
  			{
  				while (1) {
  					if (!(i0 < length0)) goto LA50;
  					{
  						NIM_BOOL LOC53;
  						LOC53 = (NIM_BOOL)0;
  						LOC53 = !(((NU8)(frmt0->data[i0]) == (NU8)(36)));
  						if (!(LOC53)) goto LA54;
  						LOC53 = !(((NU8)(frmt0->data[i0]) == (NU8)(35)));
  						LA54: ;
  						if (!LOC53) goto LA55;
  						i0 += ((NI) 1);
  					}
  					goto LA51;
  					LA55: ;
  					{
  						goto LA49;
  					}
  					LA51: ;
  				} LA50: ;
  			} LA49: ;
  			{
  				NimStringDesc* LOC62;
  				if (!(start0 <= (NI)(i0 - ((NI) 1)))) goto LA60;
  				LOC62 = (NimStringDesc*)0;
  				LOC62 = copyStrLast(frmt0, start0, (NI)(i0 - ((NI) 1)));
  				add_180487_2381377266(&result0, LOC62);
  			}
  			LA60: ;
  		} LA2: ;
  	}
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, crossescppboundary_562754_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC2;
  	Tsym294834* LOC4;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  	if (!(LOC2)) goto LA3;
  	LOC4 = (Tsym294834*)0;
  	LOC4 = getmodule_301123_2984716966(sym0);
  	LOC2 = !((((*LOC4).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0));
  	LA3: ;
  	LOC1 = LOC2;
  	if (!(LOC1)) goto LA5;
  	LOC1 = !((gcmd_171132_2607990831 == ((Tcommands171076) 2)));
  	LA5: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, genprocprototype_541254_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  {	useheader_534369_839829468(m0, sym0);
  	{
  		if (!(((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0)) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		if (!(((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 4))&15U)))!=0)) goto LA7;
  		{
  			NIM_BOOL LOC11;
  			Tsym294834* LOC12;
  			NIM_BOOL LOC14;
  			TY534811 LOC17;
  			Ropeobj180006* LOC18;
  			LOC11 = (NIM_BOOL)0;
  			LOC12 = (Tsym294834*)0;
  			LOC12 = getmodule_301123_2984716966(sym0);
  			LOC11 = !(((*LOC12).Sup.id == (*(*m0).module).Sup.id));
  			if (!(LOC11)) goto LA13;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = containsorincl_270862_2627731572((&(*m0).declaredthings), (*sym0).Sup.id);
  			LOC11 = !(LOC14);
  			LA13: ;
  			if (!LOC11) goto LA15;
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = gettypedesc_537671_839829468(m0, (*sym0).loc.t);
  			LOC17[1] = mangledynlibproc_540816_839829468(sym0);
  			LOC18 = (Ropeobj180006*)0;
  			LOC18 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_245), LOC17, 2);
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], LOC18);
  		}
  		LA15: ;
  	}
  	goto LA5;
  	LA7: ;
  	{
  		NIM_BOOL LOC20;
  		Ropeobj180006* header0;
  		TY180507 LOC47;
  		Ropeobj180006* LOC48;
  		LOC20 = (NIM_BOOL)0;
  		LOC20 = containsorincl_270862_2627731572((&(*m0).declaredprotos), (*sym0).Sup.id);
  		if (!!(LOC20)) goto LA21;
  		header0 = genprocheader_537867_839829468(m0, sym0);
  		{
  			NIM_BOOL LOC25;
  			LOC25 = (NIM_BOOL)0;
  			LOC25 = (((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 14))&31U)))!=0);
  			if (!(LOC25)) goto LA26;
  			LOC25 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 6))&7U)))!=0);
  			LA26: ;
  			if (!LOC25) goto LA27;
  			header0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_213), header0);
  		}
  		LA27: ;
  		{
  			NIM_BOOL LOC31;
  			LOC31 = (NIM_BOOL)0;
  			LOC31 = !(((*(*sym0).typ).callconv == ((Tcallingconvention294002) 5)));
  			if (!(LOC31)) goto LA32;
  			LOC31 = crossescppboundary_562754_839829468(m0, sym0);
  			LA32: ;
  			if (!LOC31) goto LA33;
  			header0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_246), header0);
  		}
  		LA33: ;
  		{
  			NIM_BOOL LOC37;
  			LOC37 = (NIM_BOOL)0;
  			LOC37 = (((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0);
  			if (!(LOC37)) goto LA38;
  			LOC37 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 7))&7U)))!=0);
  			LA38: ;
  			if (!LOC37) goto LA39;
  			add_180487_2381377266(&header0, ((NimStringDesc*) &T839829468_247));
  		}
  		LA39: ;
  		{
  			NIM_BOOL LOC43;
  			LOC43 = (NIM_BOOL)0;
  			LOC43 = (((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 14))&31U)))!=0);
  			if (!(LOC43)) goto LA44;
  			LOC43 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 7))&7U)))!=0);
  			LA44: ;
  			if (!LOC43) goto LA45;
  			add_180487_2381377266(&header0, ((NimStringDesc*) &T839829468_248));
  		}
  		LA45: ;
  		memset((void*)LOC47, 0, sizeof(LOC47));
  		LOC47[0] = header0;
  		LOC48 = (Ropeobj180006*)0;
  		LOC48 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_191), LOC47, 1);
  		add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 7))- 0], LOC48);
  	}
  	goto LA5;
  	LA21: ;
  	LA5: ;
  	}BeforeRet: ;
  }
  
  static N_INLINE(NIM_BOOL, usesnativegc_171177_2607990831)(void) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = (((Tgcmode171080) 5) <= gselectedgc_171133_2607990831);
  	return result0;
  }
  
  N_NIMCALL(void, genrefassign_540311_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0) {
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		TY534811 LOC8;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (dest0.s == ((Tstorageloc294812) 2));
  		if (LOC3) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = usesnativegc_171177_2607990831();
  		LOC3 = !(LOC5);
  		LA4: ;
  		if (!LOC3) goto LA6;
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = rdloc_540188_839829468(dest0);
  		LOC8[1] = rdloc_540188_839829468(src0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC8, 2);
  	}
  	goto LA1;
  	LA6: ;
  	{
  		if (!(dest0.s == ((Tstorageloc294812) 3))) goto LA10;
  		{
  			NIM_BOOL LOC14;
  			TY534811 LOC17;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = canformacycle_322123_3876443242(dest0.t);
  			if (!LOC14) goto LA15;
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = addrloc_540204_839829468(dest0);
  			LOC17[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_249), LOC17, 2);
  		}
  		goto LA12;
  		LA15: ;
  		{
  			TY534811 LOC19;
  			memset((void*)LOC19, 0, sizeof(LOC19));
  			LOC19[0] = addrloc_540204_839829468(dest0);
  			LOC19[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_250), LOC19, 2);
  		}
  		LA12: ;
  	}
  	goto LA1;
  	LA10: ;
  	{
  		TY534811 LOC21;
  		memset((void*)LOC21, 0, sizeof(LOC21));
  		LOC21[0] = addrloc_540204_839829468(dest0);
  		LOC21[1] = rdloc_540188_839829468(src0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_251), LOC21, 2);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, optasgnloc_551788_839829468)(Tloc294816 a0, Ttype294840* t0, Ropeobj180006* field0, Tloc294816* Result) {
  	Ropeobj180006* LOC1;
  	Ropeobj180006* LOC2;
  	(*Result).k = ((Tlockind294808) 5);
  	(*Result).s = a0.s;
  	unsureAsgnRef((void**) (&(*Result).t), t0);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rdloc_540188_839829468(a0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX26_180447_2381377266(LOC1, ((NimStringDesc*) &T839829468_257));
  	unsureAsgnRef((void**) (&(*Result).r), HEX26_180418_2381377266(LOC2, field0));
  }
  
  N_NIMCALL(void, genoptasgntuple_552001_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0) {
  	Tassignmentflag540302Set newflags0;
  	Ttype294840* t_552053_839829468;
  	Ttype294840* LOC9;
  	{
  		if (!(src0.s == ((Tstorageloc294812) 1))) goto LA3;
  		newflags0 = (flags0 | 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		if (!(((*dest0.t).flags &(1U<<((NU)(((Ttypeflag294431) 6))&31U)))!=0)) goto LA6;
  		newflags0 = (flags0 & ~ 1);
  	}
  	goto LA1;
  	LA6: ;
  	{
  		newflags0 = flags0;
  	}
  	LA1: ;
  	LOC9 = (Ttype294840*)0;
  	LOC9 = skiptypes_298099_850551059(dest0.t, IL64(211106232576256));
  	t_552053_839829468 = getuniquetype_530640_2036603609(LOC9);
  	{
  		NI i_552071_839829468;
  		NI HEX3Atmp_552077_839829468;
  		NI LOC11;
  		NI res_552080_839829468;
  		i_552071_839829468 = (NI)0;
  		HEX3Atmp_552077_839829468 = (NI)0;
  		LOC11 = (NI)0;
  		LOC11 = len_297339_850551059(t_552053_839829468);
  		HEX3Atmp_552077_839829468 = (LOC11 - 1);
  		res_552080_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Ttype294840* t0;
  				Ropeobj180006* field0;
  				TY180507 LOC14;
  				Tloc294816 LOC15;
  				Tloc294816 LOC16;
  				if (!(res_552080_839829468 <= HEX3Atmp_552077_839829468)) goto LA13;
  				i_552071_839829468 = res_552080_839829468;
  				t0 = (*t_552053_839829468).sons->data[i_552071_839829468];
  				memset((void*)LOC14, 0, sizeof(LOC14));
  				LOC14[0] = rope_180401_2381377266(((NI64) (i_552071_839829468)));
  				field0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_260), LOC14, 1);
  				memset((void*)(&LOC15), 0, sizeof(LOC15));
  				optasgnloc_551788_839829468(dest0, t0, field0, (&LOC15));
  				memset((void*)(&LOC16), 0, sizeof(LOC16));
  				optasgnloc_551788_839829468(src0, t0, field0, (&LOC16));
  				genassignment_541264_839829468(p0, LOC15, LOC16, newflags0);
  				res_552080_839829468 += ((NI) 1);
  			} LA13: ;
  		}
  	}
  }
  
  N_NIMCALL(void, gengenericasgn_552167_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0) {
  	{
  		NIM_BOOL LOC3;
  		Ttype294840* LOC5;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !(((flags0 &(1U<<((NU)(((Tassignmentflag540302) 0))&7U)))!=0));
  		if (LOC3) goto LA4;
  		LOC5 = (Ttype294840*)0;
  		LOC5 = skiptypes_298099_850551059(dest0.t, IL64(211106242013440));
  		LOC3 = (((*LOC5).flags &(1U<<((NU)(((Ttypeflag294431) 6))&31U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA6;
  		{
  			NIM_BOOL LOC10;
  			NIM_BOOL LOC12;
  			TY537238 LOC15;
  			LOC10 = (NIM_BOOL)0;
  			LOC10 = (dest0.s == ((Tstorageloc294812) 2));
  			if (LOC10) goto LA11;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = usesnativegc_171177_2607990831();
  			LOC10 = !(LOC12);
  			LA11: ;
  			if (!LOC10) goto LA13;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC15, 0, sizeof(LOC15));
  			LOC15[0] = addrloc_540204_839829468(dest0);
  			LOC15[1] = addrloc_540204_839829468(src0);
  			LOC15[2] = rdloc_540188_839829468(dest0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_261), LOC15, 3);
  		}
  		goto LA8;
  		LA13: ;
  		{
  			TY537238 LOC17;
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = addrloc_540204_839829468(dest0);
  			LOC17[1] = addrloc_540204_839829468(src0);
  			LOC17[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_262), LOC17, 3);
  		}
  		LA8: ;
  	}
  	goto LA1;
  	LA6: ;
  	{
  		TY537238 LOC19;
  		memset((void*)LOC19, 0, sizeof(LOC19));
  		LOC19[0] = addrloc_540204_839829468(dest0);
  		LOC19[1] = addrloc_540204_839829468(src0);
  		LOC19[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_263), LOC19, 3);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(NI, asgncomplexity_551750_839829468)(Tnode294802* n0) {
  	NI result0;
  	result0 = (NI)0;
  	{
  		if (!!((n0 == NIM_NIL))) goto LA3;
  		switch ((*n0).kind) {
  		case ((Tnodekind294020) 3):
  		{
  			result0 = ((NI) 1);
  		}
  		break;
  		case ((Tnodekind294020) 139):
  		{
  			result0 = ((NI) 100);
  		}
  		break;
  		case ((Tnodekind294020) 138):
  		{
  			{
  				Tnode294802* t_551767_839829468;
  				t_551767_839829468 = (Tnode294802*)0;
  				{
  					NI i_551781_839829468;
  					NI HEX3Atmp_551783_839829468;
  					NI LOC10;
  					NI res_551785_839829468;
  					i_551781_839829468 = (NI)0;
  					HEX3Atmp_551783_839829468 = (NI)0;
  					LOC10 = (NI)0;
  					LOC10 = len_295081_850551059(n0);
  					HEX3Atmp_551783_839829468 = (LOC10 - 1);
  					res_551785_839829468 = ((NI) 0);
  					{
  						while (1) {
  							NI LOC13;
  							if (!(res_551785_839829468 <= HEX3Atmp_551783_839829468)) goto LA12;
  							i_551781_839829468 = res_551785_839829468;
  							t_551767_839829468 = (*n0).kindU.S6.sons->data[i_551781_839829468];
  							LOC13 = (NI)0;
  							LOC13 = asgncomplexity_551750_839829468(t_551767_839829468);
  							result0 += LOC13;
  							res_551785_839829468 += ((NI) 1);
  						} LA12: ;
  					}
  				}
  			}
  		}
  		break;
  		default:
  		{
  		}
  		break;
  		}
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(void, genoptasgnobject_552084_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0, Tnode294802* t0) {
  	Tassignmentflag540302Set newflags0;
  {	{
  		if (!(t0 == NIM_NIL)) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		if (!(src0.s == ((Tstorageloc294812) 1))) goto LA7;
  		newflags0 = (flags0 | 1);
  	}
  	goto LA5;
  	LA7: ;
  	{
  		if (!(((*dest0.t).flags &(1U<<((NU)(((Ttypeflag294431) 6))&31U)))!=0)) goto LA10;
  		newflags0 = (flags0 & ~ 1);
  	}
  	goto LA5;
  	LA10: ;
  	{
  		newflags0 = flags0;
  	}
  	LA5: ;
  	switch ((*t0).kind) {
  	case ((Tnodekind294020) 3):
  	{
  		Tsym294834* field0;
  		Tloc294816 LOC14;
  		Tloc294816 LOC15;
  		field0 = (*t0).kindU.S4.sym;
  		memset((void*)(&LOC14), 0, sizeof(LOC14));
  		optasgnloc_551788_839829468(dest0, (*field0).typ, (*field0).loc.r, (&LOC14));
  		memset((void*)(&LOC15), 0, sizeof(LOC15));
  		optasgnloc_551788_839829468(src0, (*field0).typ, (*field0).loc.r, (&LOC15));
  		genassignment_541264_839829468(p0, LOC14, LOC15, newflags0);
  	}
  	break;
  	case ((Tnodekind294020) 138):
  	{
  		{
  			Tnode294802* child_552155_839829468;
  			child_552155_839829468 = (Tnode294802*)0;
  			{
  				NI i_552160_839829468;
  				NI HEX3Atmp_552162_839829468;
  				NI LOC19;
  				NI res_552164_839829468;
  				i_552160_839829468 = (NI)0;
  				HEX3Atmp_552162_839829468 = (NI)0;
  				LOC19 = (NI)0;
  				LOC19 = len_295081_850551059(t0);
  				HEX3Atmp_552162_839829468 = (LOC19 - 1);
  				res_552164_839829468 = ((NI) 0);
  				{
  					while (1) {
  						if (!(res_552164_839829468 <= HEX3Atmp_552162_839829468)) goto LA21;
  						i_552160_839829468 = res_552164_839829468;
  						child_552155_839829468 = (*t0).kindU.S6.sons->data[i_552160_839829468];
  						genoptasgnobject_552084_839829468(p0, dest0, src0, newflags0, child_552155_839829468);
  						res_552164_839829468 += ((NI) 1);
  					} LA21: ;
  				}
  			}
  		}
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genassignment_541264_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0, Tassignmentflag540302Set flags0) {
  	Ttype294840* ty0;
  {	{
  		NIM_BOOL LOC3;
  		TY534811 LOC7;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !((src0.t == NIM_NIL));
  		if (!(LOC3)) goto LA4;
  		LOC3 = ((*src0.t).kind == ((Ttypekind294244) 21));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = rdloc_540188_839829468(dest0);
  		LOC7[1] = rdloc_540188_839829468(src0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC7, 2);
  		goto BeforeRet;
  	}
  	LA5: ;
  	ty0 = skiptypes_298099_850551059(dest0.t, IL64(211106233624832));
  	switch ((*ty0).kind) {
  	case ((Ttypekind294244) 22):
  	{
  		genrefassign_540311_839829468(p0, dest0, src0, flags0);
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	{
  		{
  			NIM_BOOL LOC12;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = !(((flags0 &(1U<<((NU)(((Tassignmentflag540302) 0))&7U)))!=0));
  			if (!(LOC12)) goto LA13;
  			LOC12 = !((src0.s == ((Tstorageloc294812) 1)));
  			LA13: ;
  			if (!LOC12) goto LA14;
  			genrefassign_540311_839829468(p0, dest0, src0, flags0);
  		}
  		goto LA10;
  		LA14: ;
  		{
  			TY537238 LOC17;
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = addrloc_540204_839829468(dest0);
  			LOC17[1] = rdloc_540188_839829468(src0);
  			LOC17[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_252), LOC17, 3);
  		}
  		LA10: ;
  	}
  	break;
  	case ((Ttypekind294244) 28):
  	{
  		{
  			NIM_BOOL LOC21;
  			LOC21 = (NIM_BOOL)0;
  			LOC21 = !(((flags0 &(1U<<((NU)(((Tassignmentflag540302) 0))&7U)))!=0));
  			if (!(LOC21)) goto LA22;
  			LOC21 = !((src0.s == ((Tstorageloc294812) 1)));
  			LA22: ;
  			if (!LOC21) goto LA23;
  			genrefassign_540311_839829468(p0, dest0, src0, flags0);
  		}
  		goto LA19;
  		LA23: ;
  		{
  			{
  				NIM_BOOL LOC28;
  				NIM_BOOL LOC30;
  				TY534811 LOC33;
  				LOC28 = (NIM_BOOL)0;
  				LOC28 = (dest0.s == ((Tstorageloc294812) 2));
  				if (LOC28) goto LA29;
  				LOC30 = (NIM_BOOL)0;
  				LOC30 = usesnativegc_171177_2607990831();
  				LOC28 = !(LOC30);
  				LA29: ;
  				if (!LOC28) goto LA31;
  				memset((void*)LOC33, 0, sizeof(LOC33));
  				LOC33[0] = rdloc_540188_839829468(dest0);
  				LOC33[1] = rdloc_540188_839829468(src0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_253), LOC33, 2);
  			}
  			goto LA26;
  			LA31: ;
  			{
  				Tloc294816 tmp0;
  				TY537238 LOC37;
  				TY180507 LOC38;
  				if (!(dest0.s == ((Tstorageloc294812) 3))) goto LA35;
  				memset((void*)(&tmp0), 0, sizeof(tmp0));
  				gettemp_539032_839829468(p0, ty0, (&tmp0), NIM_FALSE);
  				memset((void*)LOC37, 0, sizeof(LOC37));
  				LOC37[0] = rdloc_540188_839829468(dest0);
  				LOC37[1] = rdloc_540188_839829468(src0);
  				LOC37[2] = rdloc_540188_839829468(tmp0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_254), LOC37, 3);
  				memset((void*)LOC38, 0, sizeof(LOC38));
  				LOC38[0] = rdloc_540188_839829468(tmp0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_255), LOC38, 1);
  			}
  			goto LA26;
  			LA35: ;
  			{
  				TY534811 LOC40;
  				memset((void*)LOC40, 0, sizeof(LOC40));
  				LOC40[0] = addrloc_540204_839829468(dest0);
  				LOC40[1] = rdloc_540188_839829468(src0);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_256), LOC40, 2);
  			}
  			LA26: ;
  		}
  		LA19: ;
  	}
  	break;
  	case ((Ttypekind294244) 25):
  	{
  		{
  			NIM_BOOL LOC44;
  			Tloc294816 a0;
  			Ropeobj180006* LOC47;
  			Tloc294816 LOC48;
  			Tloc294816 b0;
  			Ropeobj180006* LOC49;
  			Tloc294816 LOC50;
  			TY534811 LOC51;
  			LOC44 = (NIM_BOOL)0;
  			LOC44 = needscomplexassignment_535509_839829468(dest0.t);
  			if (!LOC44) goto LA45;
  			memset((void*)(&a0), 0, sizeof(a0));
  			LOC47 = (Ropeobj180006*)0;
  			LOC47 = rope_180277_2381377266(((NimStringDesc*) &T839829468_258));
  			memset((void*)(&LOC48), 0, sizeof(LOC48));
  			optasgnloc_551788_839829468(dest0, dest0.t, LOC47, (&LOC48));
  			memcpy((void*)(&a0), (NIM_CONST void*)(&LOC48), sizeof(a0));
  			memset((void*)(&b0), 0, sizeof(b0));
  			LOC49 = (Ropeobj180006*)0;
  			LOC49 = rope_180277_2381377266(((NimStringDesc*) &T839829468_258));
  			memset((void*)(&LOC50), 0, sizeof(LOC50));
  			optasgnloc_551788_839829468(src0, dest0.t, LOC49, (&LOC50));
  			memcpy((void*)(&b0), (NIM_CONST void*)(&LOC50), sizeof(b0));
  			genrefassign_540311_839829468(p0, a0, b0, flags0);
  			memset((void*)LOC51, 0, sizeof(LOC51));
  			LOC51[0] = rdloc_540188_839829468(dest0);
  			LOC51[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_259), LOC51, 2);
  		}
  		goto LA42;
  		LA45: ;
  		{
  			TY534811 LOC53;
  			memset((void*)LOC53, 0, sizeof(LOC53));
  			LOC53[0] = rdloc_540188_839829468(dest0);
  			LOC53[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC53, 2);
  		}
  		LA42: ;
  	}
  	break;
  	case ((Ttypekind294244) 18):
  	{
  		{
  			NIM_BOOL LOC57;
  			LOC57 = (NIM_BOOL)0;
  			LOC57 = needscomplexassignment_535509_839829468(dest0.t);
  			if (!LOC57) goto LA58;
  			{
  				NI LOC62;
  				LOC62 = (NI)0;
  				LOC62 = len_297339_850551059(dest0.t);
  				if (!(LOC62 <= ((NI) 4))) goto LA63;
  				genoptasgntuple_552001_839829468(p0, dest0, src0, flags0);
  			}
  			goto LA60;
  			LA63: ;
  			{
  				gengenericasgn_552167_839829468(p0, dest0, src0, flags0);
  			}
  			LA60: ;
  		}
  		goto LA55;
  		LA58: ;
  		{
  			TY534811 LOC67;
  			memset((void*)LOC67, 0, sizeof(LOC67));
  			LOC67[0] = rdloc_540188_839829468(dest0);
  			LOC67[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC67, 2);
  		}
  		LA55: ;
  	}
  	break;
  	case ((Ttypekind294244) 17):
  	{
  		{
  			NIM_BOOL LOC71;
  			TY534811 LOC74;
  			LOC71 = (NIM_BOOL)0;
  			LOC71 = isimportedcpptype_535476_839829468(ty0);
  			if (!LOC71) goto LA72;
  			memset((void*)LOC74, 0, sizeof(LOC74));
  			LOC74[0] = rdloc_540188_839829468(dest0);
  			LOC74[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC74, 2);
  		}
  		goto LA69;
  		LA72: ;
  		{
  			NIM_BOOL LOC76;
  			LOC76 = (NIM_BOOL)0;
  			LOC76 = isobjlackingtypefield_535513_839829468(ty0);
  			if (!!(LOC76)) goto LA77;
  			gengenericasgn_552167_839829468(p0, dest0, src0, flags0);
  		}
  		goto LA69;
  		LA77: ;
  		{
  			NIM_BOOL LOC80;
  			LOC80 = (NIM_BOOL)0;
  			LOC80 = needscomplexassignment_535509_839829468(ty0);
  			if (!LOC80) goto LA81;
  			{
  				NIM_BOOL LOC85;
  				NI LOC87;
  				Ropeobj180006* LOC90;
  				LOC85 = (NIM_BOOL)0;
  				LOC85 = (*ty0).sons->data[((NI) 0)] == 0;
  				if (!(LOC85)) goto LA86;
  				LOC87 = (NI)0;
  				LOC87 = asgncomplexity_551750_839829468((*ty0).n);
  				LOC85 = (LOC87 <= ((NI) 4));
  				LA86: ;
  				if (!LOC85) goto LA88;
  				LOC90 = (Ropeobj180006*)0;
  				LOC90 = gettypedesc_537671_839829468((*p0).module, ty0);
  				ty0 = getuniquetype_530640_2036603609(ty0);
  				{
  					NimStringDesc* LOC95;
  					if (!!(!(((*ty0).n == NIM_NIL)))) goto LA93;
  					LOC95 = (NimStringDesc*)0;
  					LOC95 = HEX24_198185_1689653243(T839829468_264);
  					internalerror_198113_155036129(LOC95);
  				}
  				LA93: ;
  				genoptasgnobject_552084_839829468(p0, dest0, src0, flags0, (*ty0).n);
  			}
  			goto LA83;
  			LA88: ;
  			{
  				gengenericasgn_552167_839829468(p0, dest0, src0, flags0);
  			}
  			LA83: ;
  		}
  		goto LA69;
  		LA81: ;
  		{
  			TY534811 LOC98;
  			memset((void*)LOC98, 0, sizeof(LOC98));
  			LOC98[0] = rdloc_540188_839829468(dest0);
  			LOC98[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC98, 2);
  		}
  		LA69: ;
  	}
  	break;
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 4):
  	{
  		{
  			NIM_BOOL LOC102;
  			LOC102 = (NIM_BOOL)0;
  			LOC102 = needscomplexassignment_535509_839829468(dest0.t);
  			if (!LOC102) goto LA103;
  			gengenericasgn_552167_839829468(p0, dest0, src0, flags0);
  		}
  		goto LA100;
  		LA103: ;
  		{
  			TY537238 LOC106;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC106, 0, sizeof(LOC106));
  			LOC106[0] = rdloc_540188_839829468(dest0);
  			LOC106[1] = rdloc_540188_839829468(src0);
  			LOC106[2] = gettypedesc_537671_839829468((*p0).module, ty0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_261), LOC106, 3);
  		}
  		LA100: ;
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		{
  			NIM_BOOL LOC110;
  			TY537238 LOC113;
  			LOC110 = (NIM_BOOL)0;
  			LOC110 = needscomplexassignment_535509_839829468(dest0.t);
  			if (!LOC110) goto LA111;
  			memset((void*)LOC113, 0, sizeof(LOC113));
  			LOC113[0] = addrloc_540204_839829468(dest0);
  			LOC113[1] = addrloc_540204_839829468(src0);
  			LOC113[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_266), LOC113, 3);
  		}
  		goto LA108;
  		LA111: ;
  		{
  			TY534811 LOC115;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC115, 0, sizeof(LOC115));
  			LOC115[0] = rdloc_540188_839829468(dest0);
  			LOC115[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_267), LOC115, 2);
  		}
  		LA108: ;
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		{
  			Tctypekind531007 LOC119;
  			TY537238 LOC122;
  			NI64 LOC123;
  			LOC119 = (Tctypekind531007)0;
  			LOC119 = maptype_535393_839829468(ty0);
  			if (!(LOC119 == ((Tctypekind531007) 17))) goto LA120;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC122, 0, sizeof(LOC122));
  			LOC122[0] = rdloc_540188_839829468(dest0);
  			LOC122[1] = rdloc_540188_839829468(src0);
  			LOC123 = (NI64)0;
  			LOC123 = getsize_322135_3876443242(dest0.t);
  			LOC122[2] = rope_180401_2381377266(LOC123);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_268), LOC122, 3);
  		}
  		goto LA117;
  		LA120: ;
  		{
  			TY534811 LOC125;
  			memset((void*)LOC125, 0, sizeof(LOC125));
  			LOC125[0] = rdloc_540188_839829468(dest0);
  			LOC125[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC125, 2);
  		}
  		LA117: ;
  	}
  	break;
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 26):
  	case ((Ttypekind294244) 2):
  	case ((Ttypekind294244) 1):
  	case ((Ttypekind294244) 14):
  	case ((Ttypekind294244) 29):
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 44):
  	case ((Ttypekind294244) 20):
  	case ((Ttypekind294244) 23):
  	{
  		TY534811 LOC127;
  		memset((void*)LOC127, 0, sizeof(LOC127));
  		LOC127[0] = rdloc_540188_839829468(dest0);
  		LOC127[1] = rdloc_540188_839829468(src0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC127, 2);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC129;
  		LOC129 = (NimStringDesc*)0;
  		LOC129 = rawNewString(reprEnum((NI)(*ty0).kind, (&NTI294244))->Sup.len + 15);
  appendString(LOC129, ((NimStringDesc*) &T839829468_269));
  appendString(LOC129, reprEnum((NI)(*ty0).kind, (&NTI294244)));
  		internalerror_198113_155036129(LOC129);
  	}
  	break;
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, putlocintodest_541258_839829468)(Tcproc531021* p0, Tloc294816* d0, Tloc294816 s0) {
  	{
  		if (!!(((*d0).k == ((Tlockind294808) 0)))) goto LA3;
  		{
  			if (!(((*d0).flags &(1U<<((NU)(((Tlocflag294810) 2))&15U)))!=0)) goto LA7;
  			genassignment_541264_839829468(p0, (*d0), s0, 0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			genassignment_541264_839829468(p0, (*d0), s0, 1);
  		}
  		LA5: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		genericAssign((void*)(&(*d0)), (void*)(&s0), (&NTI294816));
  	}
  	LA1: ;
  }
  
  N_NIMCALL(NIM_BOOL, issimpleconst_534311_839829468)(Ttype294840* typ0) {
  	NIM_BOOL result0;
  	Ttype294840* t0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC3;
  	result0 = (NIM_BOOL)0;
  	t0 = skiptypes_298099_850551059(typ0, IL64(211106240964864));
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = !(((*t0).kind == ((Ttypekind294244) 18) || (*t0).kind == ((Ttypekind294244) 17) || (*t0).kind == ((Ttypekind294244) 16) || (*t0).kind == ((Ttypekind294244) 4) || (*t0).kind == ((Ttypekind294244) 19) || (*t0).kind == ((Ttypekind294244) 24)));
  	if (!(LOC1)) goto LA2;
  	LOC3 = (NIM_BOOL)0;
  	LOC3 = ((*t0).kind == ((Ttypekind294244) 25));
  	if (!(LOC3)) goto LA4;
  	LOC3 = ((*t0).callconv == ((Tcallingconvention294002) 8));
  	LA4: ;
  	LOC1 = !(LOC3);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, putintodest_552468_839829468)(Tcproc531021* p0, Tloc294816* d0, Ttype294840* t0, Ropeobj180006* r0, Tstorageloc294812 s0) {
  	Tloc294816 a0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		if (!!(((*d0).k == ((Tlockind294808) 0)))) goto LA3;
  		initloc_534273_839829468((&a0), ((Tlockind294808) 6), t0, s0);
  		a0.r = r0;
  		{
  			if (!(((*d0).flags &(1U<<((NU)(((Tlocflag294810) 2))&15U)))!=0)) goto LA7;
  			genassignment_541264_839829468(p0, (*d0), a0, 0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			genassignment_541264_839829468(p0, (*d0), a0, 1);
  		}
  		LA5: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		(*d0).k = ((Tlockind294808) 6);
  		unsureAsgnRef((void**) (&(*d0).t), t0);
  		unsureAsgnRef((void**) (&(*d0).r), r0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(NI64, bitsettoword_551578_839829468)(Tbitset341004* s0, NI size0) {
  	NI64 result0;
  	result0 = (NI64)0;
  	result0 = IL64(0);
  	{
  		NI j_551612_839829468;
  		NI HEX3Atmp_551622_839829468;
  		NI res_551625_839829468;
  		j_551612_839829468 = (NI)0;
  		HEX3Atmp_551622_839829468 = (NI)0;
  		HEX3Atmp_551622_839829468 = (NI)(size0 - ((NI) 1));
  		res_551625_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_551625_839829468 <= HEX3Atmp_551622_839829468)) goto LA3;
  				j_551612_839829468 = res_551625_839829468;
  				{
  					if (!(j_551612_839829468 < (s0 ? s0->Sup.len : 0))) goto LA6;
  					result0 = (NI64)(result0 | (NI64)((NU64)(((NI64)(NU64)(NU8)(s0->data[j_551612_839829468]))) << (NU64)(((NI64) ((NI)(j_551612_839829468 * ((NI) 8)))))));
  				}
  				LA6: ;
  				res_551625_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genrawsetdata_551629_839829468)(Tbitset341004* cs0, NI size0) {
  	Ropeobj180006* result0;
  	NimStringDesc* frmt0;
  	result0 = (Ropeobj180006*)0;
  	frmt0 = (NimStringDesc*)0;
  	{
  		TY535289 LOC5;
  		if (!(((NI) 8) < size0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_273), LOC5, 0);
  		{
  			NI i_551649_839829468;
  			NI HEX3Atmp_551657_839829468;
  			NI res_551660_839829468;
  			i_551649_839829468 = (NI)0;
  			HEX3Atmp_551657_839829468 = (NI)0;
  			HEX3Atmp_551657_839829468 = (NI)(size0 - ((NI) 1));
  			res_551660_839829468 = ((NI) 0);
  			{
  				while (1) {
  					TY180507 LOC19;
  					NimStringDesc* LOC20;
  					if (!(res_551660_839829468 <= HEX3Atmp_551657_839829468)) goto LA8;
  					i_551649_839829468 = res_551660_839829468;
  					{
  						if (!(i_551649_839829468 < (NI)(size0 - ((NI) 1)))) goto LA11;
  						{
  							if (!(((NI) ((NI)((NI)(i_551649_839829468 + ((NI) 1)) % ((NI) 8)))) == ((NI) 0))) goto LA15;
  							frmt0 = copyString(((NimStringDesc*) &T839829468_274));
  						}
  						goto LA13;
  						LA15: ;
  						{
  							frmt0 = copyString(((NimStringDesc*) &T839829468_275));
  						}
  						LA13: ;
  					}
  					goto LA9;
  					LA11: ;
  					{
  						frmt0 = copyString(((NimStringDesc*) &T839829468_276));
  					}
  					LA9: ;
  					memset((void*)LOC19, 0, sizeof(LOC19));
  					LOC20 = (NimStringDesc*)0;
  					LOC20 = nsuToHex(((NI64)(NU64)(NU8)(cs0->data[i_551649_839829468])), ((NI) 2));
  					LOC19[0] = rope_180277_2381377266(LOC20);
  					addf_181205_2381377266(&result0, frmt0, LOC19, 1);
  					res_551660_839829468 += ((NI) 1);
  				} LA8: ;
  			}
  		}
  	}
  	goto LA1;
  	LA3: ;
  	{
  		NI64 LOC22;
  		LOC22 = (NI64)0;
  		LOC22 = bitsettoword_551578_839829468(cs0, size0);
  		result0 = intliteral_541270_839829468(LOC22);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, appcg_534640_839829468)(Tcgen531027* m0, Tcfilesection531005 s0, NimStringDesc* frmt0, Ropeobj180006** args0, NI args0Len0) {
  	Ropeobj180006* LOC1;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = ropecg_534407_839829468(m0, frmt0, args0, args0Len0);
  	add_180482_2381377266(&(*m0).s[(s0)- 0], LOC1);
  }
  
  N_NIMCALL(Ropeobj180006*, genconstseq_561371_839829468)(Tcproc531021* p0, Tnode294802* n0, Ttype294840* t0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* data0;
  	TY180507 LOC1;
  	NI LOC2;
  	TY537235 LOC18;
  	NI LOC19;
  	TY534811 LOC20;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC2 = (NI)0;
  	LOC2 = len_295081_850551059(n0);
  	LOC1[0] = rope_180401_2381377266(((NI64) (LOC2)));
  	data0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_277), LOC1, 1);
  	{
  		NI LOC5;
  		LOC5 = (NI)0;
  		LOC5 = len_295081_850551059(n0);
  		if (!(((NI) 0) < LOC5)) goto LA6;
  		add_180487_2381377266(&data0, ((NimStringDesc*) &T839829468_278));
  		{
  			NI i_561395_839829468;
  			NI HEX3Atmp_561411_839829468;
  			NI LOC9;
  			NI res_561414_839829468;
  			i_561395_839829468 = (NI)0;
  			HEX3Atmp_561411_839829468 = (NI)0;
  			LOC9 = (NI)0;
  			LOC9 = len_295081_850551059(n0);
  			HEX3Atmp_561411_839829468 = (NI)(LOC9 - ((NI) 1));
  			res_561414_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Ropeobj180006* LOC17;
  					if (!(res_561414_839829468 <= HEX3Atmp_561411_839829468)) goto LA11;
  					i_561395_839829468 = res_561414_839829468;
  					{
  						TY535289 LOC16;
  						if (!(((NI) 0) < i_561395_839829468)) goto LA14;
  						memset((void*)LOC16, 0, sizeof(LOC16));
  						addf_181205_2381377266(&data0, ((NimStringDesc*) &T839829468_279), LOC16, 0);
  					}
  					LA14: ;
  					LOC17 = (Ropeobj180006*)0;
  					LOC17 = genconstexpr_556849_839829468(p0, (*n0).kindU.S6.sons->data[i_561395_839829468]);
  					add_180482_2381377266(&data0, LOC17);
  					res_561414_839829468 += ((NI) 1);
  				} LA11: ;
  			}
  		}
  		add_180487_2381377266(&data0, ((NimStringDesc*) &T839829468_280));
  	}
  	LA6: ;
  	add_180487_2381377266(&data0, ((NimStringDesc*) &T839829468_280));
  	result0 = gettempname_535596_839829468((*p0).module);
  	memset((void*)LOC18, 0, sizeof(LOC18));
  	LOC18[0] = gettypedesc_537671_839829468((*p0).module, (*t0).sons->data[((NI) 0)]);
  	LOC19 = (NI)0;
  	LOC19 = len_295081_850551059(n0);
  	LOC18[1] = rope_180401_2381377266(((NI64) (LOC19)));
  	LOC18[2] = result0;
  	LOC18[3] = data0;
  	appcg_534640_839829468((*p0).module, ((Tcfilesection531005) 8), ((NimStringDesc*) &T839829468_281), LOC18, 4);
  	memset((void*)LOC20, 0, sizeof(LOC20));
  	LOC20[0] = gettypedesc_537671_839829468((*p0).module, t0);
  	LOC20[1] = result0;
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_282), LOC20, 2);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, gennamedconstexpr_561284_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!((*n0).kind == ((Tnodekind294020) 34))) goto LA3;
  		result0 = genconstexpr_556849_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = genconstexpr_556849_839829468(p0, n0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genconstsimplelist_561299_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	NI length0;
  	TY535289 LOC10;
  	result0 = (Ropeobj180006*)0;
  	length0 = sonslen_297351_850551059(n0);
  	result0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_223));
  	{
  		NI i_561333_839829468;
  		NI HEX3Atmp_561362_839829468;
  		NI HEX3Atmp_561363_839829468;
  		NI res_561366_839829468;
  		i_561333_839829468 = (NI)0;
  		HEX3Atmp_561362_839829468 = (NI)0;
  		HEX3Atmp_561363_839829468 = (NI)0;
  		HEX3Atmp_561362_839829468 = ((*n0).kind == ((Tnodekind294020) 38));
  		HEX3Atmp_561363_839829468 = (NI)(length0 - ((NI) 2));
  		res_561366_839829468 = ((NI) (HEX3Atmp_561362_839829468));
  		{
  			while (1) {
  				TY180507 LOC4;
  				if (!(res_561366_839829468 <= HEX3Atmp_561363_839829468)) goto LA3;
  				i_561333_839829468 = res_561366_839829468;
  				memset((void*)LOC4, 0, sizeof(LOC4));
  				LOC4[0] = gennamedconstexpr_561284_839829468(p0, (*n0).kindU.S6.sons->data[i_561333_839829468]);
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_283), LOC4, 1);
  				res_561366_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	{
  		Ropeobj180006* LOC9;
  		if (!(((NI) (((*n0).kind == ((Tnodekind294020) 38)))) < length0)) goto LA7;
  		LOC9 = (Ropeobj180006*)0;
  		LOC9 = gennamedconstexpr_561284_839829468(p0, (*n0).kindU.S6.sons->data[(NI)(length0 - ((NI) 1))]);
  		add_180482_2381377266(&result0, LOC9);
  	}
  	LA7: ;
  	memset((void*)LOC10, 0, sizeof(LOC10));
  	addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_160), LOC10, 0);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genconstexpr_556849_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 58):
  	case ((Tnodekind294020) 59):
  	{
  		result0 = genconstexpr_556849_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  	}
  	break;
  	case ((Tnodekind294020) 39):
  	{
  		Tbitset341004* cs0;
  		NI64 LOC3;
  		cs0 = (Tbitset341004*)0;
  		tobitset_342001_452470228(n0, (&cs0));
  		LOC3 = (NI64)0;
  		LOC3 = getsize_322135_3876443242((*n0).typ);
  		result0 = genrawsetdata_551629_839829468(cs0, ((NI) (LOC3)));
  	}
  	break;
  	case ((Tnodekind294020) 41):
  	case ((Tnodekind294020) 37):
  	case ((Tnodekind294020) 155):
  	case ((Tnodekind294020) 38):
  	{
  		Ttype294840* t0;
  		t0 = skiptypes_298099_850551059((*n0).typ, IL64(211106232576256));
  		{
  			if (!((*t0).kind == ((Ttypekind294244) 24))) goto LA7;
  			result0 = genconstseq_561371_839829468(p0, n0, t0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			result0 = genconstsimplelist_561299_839829468(p0, n0);
  		}
  		LA5: ;
  	}
  	break;
  	default:
  	{
  		Tloc294816 d0;
  		memset((void*)(&d0), 0, sizeof(d0));
  		initlocexpr_541283_839829468(p0, n0, (&d0));
  		result0 = rdloc_540188_839829468(d0);
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(void, requestconstimpl_541240_839829468)(Tcproc531021* p0, Tsym294834* sym0) {
  	Tcgen531027* m0;
  	Tcgen531027* q0;
  {	m0 = (*p0).module;
  	useheader_534369_839829468(m0, sym0);
  	{
  		Ropeobj180006* LOC5;
  		if (!((*sym0).loc.k == ((Tlockind294808) 0))) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = manglename_535205_839829468(sym0);
  		fillloc_534282_839829468((&(*sym0).loc), ((Tlockind294808) 8), (*sym0).typ, LOC5, ((Tstorageloc294812) 1));
  	}
  	LA3: ;
  	{
  		if (!(((*sym0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0)) goto LA8;
  		goto BeforeRet;
  	}
  	LA8: ;
  	q0 = findpendingmodule_534241_839829468(m0, sym0);
  	{
  		NIM_BOOL LOC12;
  		NIM_BOOL LOC14;
  		TY537238 LOC17;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = !((q0 == NIM_NIL));
  		if (!(LOC12)) goto LA13;
  		LOC14 = (NIM_BOOL)0;
  		LOC14 = containsorincl_270862_2627731572((&(*q0).declaredthings), (*sym0).Sup.id);
  		LOC12 = !(LOC14);
  		LA13: ;
  		if (!LOC12) goto LA15;
  		memset((void*)LOC17, 0, sizeof(LOC17));
  		LOC17[0] = gettypedesc_537671_839829468(q0, (*sym0).typ);
  		LOC17[1] = (*sym0).loc.r;
  		LOC17[2] = genconstexpr_556849_839829468((*q0).initproc, (*sym0).ast);
  		addf_181205_2381377266(&(*q0).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_272), LOC17, 3);
  	}
  	LA15: ;
  	{
  		NIM_BOOL LOC20;
  		NIM_BOOL LOC22;
  		Ropeobj180006* headerdecl0;
  		TY534811 LOC25;
  		LOC20 = (NIM_BOOL)0;
  		LOC20 = !((q0 == m0));
  		if (!(LOC20)) goto LA21;
  		LOC22 = (NIM_BOOL)0;
  		LOC22 = containsorincl_270862_2627731572((&(*m0).declaredthings), (*sym0).Sup.id);
  		LOC20 = !(LOC22);
  		LA21: ;
  		if (!LOC20) goto LA23;
  		memset((void*)LOC25, 0, sizeof(LOC25));
  		LOC25[0] = gettypedesc_537671_839829468(m0, (*sym0).loc.t);
  		LOC25[1] = (*sym0).loc.r;
  		headerdecl0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_284), LOC25, 2);
  		add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 8))- 0], headerdecl0);
  		{
  			NIM_BOOL LOC28;
  			LOC28 = (NIM_BOOL)0;
  			LOC28 = (((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 6))&31U)))!=0);
  			if (!(LOC28)) goto LA29;
  			LOC28 = !((generatedheader_534201_839829468 == NIM_NIL));
  			LA29: ;
  			if (!LOC28) goto LA30;
  			add_180482_2381377266(&(*generatedheader_534201_839829468).s[(((Tcfilesection531005) 8))- 0], headerdecl0);
  		}
  		LA30: ;
  	}
  	LA23: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, gencomplexconst_560249_839829468)(Tcproc531021* p0, Tsym294834* sym0, Tloc294816* d0) {
  	requestconstimpl_541240_839829468(p0, sym0);
  	putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  }
  
  static N_INLINE(Ropeobj180006**, procsec_531194_3723162438)(Tcproc531021* p0, Tcprocsection531011 s0) {
  	Ropeobj180006** result0;
  	result0 = (Ropeobj180006**)0;
  	result0 = &(*p0).blocks->data[((NI) 0)].sections[(s0)- 0];
  	return result0;
  }
  
  N_NIMCALL(void, accessthreadlocalvar_534945_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006** LOC7;
  		TY535289 LOC8;
  		Ropeobj180006** LOC9;
  		TY535289 LOC10;
  		Ropeobj180006* LOC11;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = emulatedthreadvars_534949_839829468();
  		if (!(LOC3)) goto LA4;
  		LOC3 = !((*p0).threadvaraccessed);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		(*p0).threadvaraccessed = NIM_TRUE;
  		(*(*p0).module).flags |= ((NU8)1)<<((((Codegenflag531025) 1))%(sizeof(NU8)*8));
  		LOC7 = (Ropeobj180006**)0;
  		LOC7 = procsec_531194_3723162438(p0, ((Tcprocsection531011) 0));
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		addf_181205_2381377266(LOC7, ((NimStringDesc*) &T839829468_286), LOC8, 0);
  		LOC9 = (Ropeobj180006**)0;
  		LOC9 = procsec_531194_3723162438(p0, ((Tcprocsection531011) 1));
  		memset((void*)LOC10, 0, sizeof(LOC10));
  		LOC11 = (Ropeobj180006*)0;
  		LOC11 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_287), LOC10, 0);
  		add_180482_2381377266(LOC9, LOC11);
  	}
  	LA5: ;
  }
  
  static N_INLINE(NIM_BOOL, isemptytype_299440_850551059)(Ttype294840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = (t0 == NIM_NIL);
  	if (LOC1) goto LA2;
  	LOC1 = ((*t0).kind == ((Ttypekind294244) 62) || (*t0).kind == ((Ttypekind294244) 7));
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, putdataintodest_552436_839829468)(Tcproc531021* p0, Tloc294816* d0, Ttype294840* t0, Ropeobj180006* r0) {
  	Tloc294816 a0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		if (!!(((*d0).k == ((Tlockind294808) 0)))) goto LA3;
  		initloc_534273_839829468((&a0), ((Tlockind294808) 8), t0, ((Tstorageloc294812) 1));
  		a0.r = r0;
  		{
  			if (!(((*d0).flags &(1U<<((NU)(((Tlocflag294810) 2))&15U)))!=0)) goto LA7;
  			genassignment_541264_839829468(p0, (*d0), a0, 0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			genassignment_541264_839829468(p0, (*d0), a0, 1);
  		}
  		LA5: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		(*d0).k = ((Tlockind294808) 8);
  		unsureAsgnRef((void**) (&(*d0).t), t0);
  		unsureAsgnRef((void**) (&(*d0).r), r0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(NIM_BOOL, freshlineinfo_534818_839829468)(Tcproc531021* p0, Tlineinfo193336 info0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !(((*p0).lastlineinfo.line == info0.line));
  		if (LOC3) goto LA4;
  		LOC3 = !(((*p0).lastlineinfo.fileindex == info0.fileindex));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		(*p0).lastlineinfo.line = info0.line;
  		(*p0).lastlineinfo.fileindex = info0.fileindex;
  		result0 = NIM_TRUE;
  	}
  	LA5: ;
  	return result0;
  }
  
  N_NIMCALL(void, genlinedir_534823_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	NI line0;
  	Ropeobj180006** LOC11;
  	NimStringDesc* LOC12;
  	line0 = safelinenm_534721_839829468((*t0).info);
  	{
  		Ropeobj180006** LOC5;
  		TY535289 LOC6;
  		Ropeobj180006* LOC7;
  		Ropeobj180006* LOC8;
  		Ropeobj180006* LOC9;
  		Ropeobj180006* LOC10;
  		if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 28))&63U)))!=0)) goto LA3;
  		LOC5 = (Ropeobj180006**)0;
  		LOC5 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC7 = (Ropeobj180006*)0;
  		LOC7 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_293), LOC6, 0);
  		LOC8 = (Ropeobj180006*)0;
  		LOC8 = sourceline_194068_155036129((*t0).info);
  		LOC9 = (Ropeobj180006*)0;
  		LOC9 = HEX26_180418_2381377266(LOC7, LOC8);
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = HEX26_180418_2381377266(LOC9, rnl_180903_2381377266);
  		add_180482_2381377266(LOC5, LOC10);
  	}
  	LA3: ;
  	LOC11 = (Ropeobj180006**)0;
  	LOC11 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	LOC12 = (NimStringDesc*)0;
  	LOC12 = tofullpath_194264_155036129((*t0).info.fileindex);
  	genclinedir_534725_839829468(LOC11, LOC12, line0);
  	{
  		NIM_BOOL LOC15;
  		NIM_BOOL LOC17;
  		LOC15 = (NIM_BOOL)0;
  		LOC15 = ((163840 & (*p0).options) == 163840);
  		if (!(LOC15)) goto LA16;
  		LOC17 = (NIM_BOOL)0;
  		LOC17 = ((*p0).prc == NIM_NIL);
  		if (LOC17) goto LA18;
  		LOC17 = !((((*(*p0).prc).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0));
  		LA18: ;
  		LOC15 = LOC17;
  		LA16: ;
  		if (!LOC15) goto LA19;
  		{
  			NIM_BOOL LOC23;
  			TY534811 LOC26;
  			NimStringDesc* LOC27;
  			LOC23 = (NIM_BOOL)0;
  			LOC23 = freshlineinfo_534818_839829468(p0, (*t0).info);
  			if (!LOC23) goto LA24;
  			memset((void*)LOC26, 0, sizeof(LOC26));
  			LOC26[0] = rope_180401_2381377266(((NI64) (line0)));
  			LOC27 = (NimStringDesc*)0;
  			LOC27 = tofilename_194260_155036129((*t0).info.fileindex);
  			LOC26[1] = makecstring_193638_155036129(LOC27);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_294), LOC26, 2);
  		}
  		LA24: ;
  	}
  	goto LA13;
  	LA19: ;
  	{
  		NIM_BOOL LOC29;
  		NIM_BOOL LOC30;
  		NIM_BOOL LOC32;
  		LOC29 = (NIM_BOOL)0;
  		LOC30 = (NIM_BOOL)0;
  		LOC30 = ((98304 & (*p0).options) == 98304);
  		if (!(LOC30)) goto LA31;
  		LOC32 = (NIM_BOOL)0;
  		LOC32 = ((*p0).prc == NIM_NIL);
  		if (LOC32) goto LA33;
  		LOC32 = !((((*(*p0).prc).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0));
  		LA33: ;
  		LOC30 = LOC32;
  		LA31: ;
  		LOC29 = LOC30;
  		if (!(LOC29)) goto LA34;
  		LOC29 = (((NI32) 0) <= (*t0).info.fileindex);
  		LA34: ;
  		if (!LOC29) goto LA35;
  		{
  			NIM_BOOL LOC39;
  			TY534811 LOC42;
  			LOC39 = (NIM_BOOL)0;
  			LOC39 = freshlineinfo_534818_839829468(p0, (*t0).info);
  			if (!LOC39) goto LA40;
  			memset((void*)LOC42, 0, sizeof(LOC42));
  			LOC42[0] = rope_180401_2381377266(((NI64) (line0)));
  			LOC42[1] = quotedfilename_198818_155036129((*t0).info);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_295), LOC42, 2);
  		}
  		LA40: ;
  	}
  	goto LA13;
  	LA35: ;
  	LA13: ;
  }
  
  N_NIMCALL(Ropeobj180006*, getlabel_541217_839829468)(Tcproc531021* p0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	(*p0).labels += ((NI) 1);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rope_180401_2381377266(((NI64) ((*p0).labels)));
  	result0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_296), LOC1);
  	return result0;
  }
  
  N_NIMCALL(void, fixlabel_541230_839829468)(Tcproc531021* p0, Ropeobj180006* labl0) {
  	TY180507 LOC1;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = labl0;
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_299), LOC1, 1);
  }
  
  N_NIMCALL(void, genandor_556311_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0) {
  	Ropeobj180006* L0;
  	Tloc294816 tmp0;
  	L0 = (Ropeobj180006*)0;
  	memset((void*)(&tmp0), 0, sizeof(tmp0));
  	gettemp_539032_839829468(p0, (*e0).typ, (&tmp0), NIM_FALSE);
  	(*p0).splitdecls += ((NI) 1);
  	expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&tmp0));
  	L0 = getlabel_541217_839829468(p0);
  	{
  		TY534811 LOC5;
  		if (!(m0 == ((Tmagic294524) 127))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rdloc_540188_839829468(tmp0);
  		LOC5[1] = L0;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_297), LOC5, 2);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY534811 LOC7;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = rdloc_540188_839829468(tmp0);
  		LOC7[1] = L0;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_298), LOC7, 2);
  	}
  	LA1: ;
  	expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&tmp0));
  	fixlabel_541230_839829468(p0, L0);
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA10;
  		genericAssign((void*)(&(*d0)), (void*)(&tmp0), (&NTI294816));
  	}
  	goto LA8;
  	LA10: ;
  	{
  		genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  	}
  	LA8: ;
  	(*p0).splitdecls -= ((NI) 1);
  }
  
  N_NIMCALL(void, unaryarith_554646_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0) {
  	Tloc294816 a0;
  	Ttype294840* t0;
  	TY537238 LOC1;
  	NI64 LOC2;
  	Ropeobj180006* LOC3;
  	memset((void*)(&a0), 0, sizeof(a0));
  	t0 = (Ttype294840*)0;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	t0 = skiptypes_298099_850551059((*e0).typ, IL64(211106233624832));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	LOC2 = (NI64)0;
  	LOC2 = getsize_322135_3876443242(t0);
  	LOC1[1] = rope_180401_2381377266((NI64)(LOC2 * IL64(8)));
  	LOC1[2] = getsimpletypedesc_535936_839829468((*p0).module, (*e0).typ);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = HEX25_180905_2381377266(unarithtab_554653_839829468[(op0)- 99], LOC1, 3);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC3, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, unaryarithoverflow_553633_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0) {
  	Tloc294816 a0;
  	Ttype294840* t0;
  	TY534811 LOC7;
  	NI64 LOC8;
  	Ropeobj180006* LOC9;
  	memset((void*)(&a0), 0, sizeof(a0));
  	t0 = (Ttype294840*)0;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	t0 = skiptypes_298099_850551059((*e0).typ, IL64(211106233624832));
  	{
  		TY534811 LOC5;
  		NI64 LOC6;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 5))&31U)))!=0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rdloc_540188_839829468(a0);
  		LOC6 = (NI64)0;
  		LOC6 = firstord_322001_3876443242(t0);
  		LOC5[1] = intliteral_541270_839829468(LOC6);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_317), LOC5, 2);
  	}
  	LA3: ;
  	memset((void*)LOC7, 0, sizeof(LOC7));
  	LOC7[0] = rdloc_540188_839829468(a0);
  	LOC8 = (NI64)0;
  	LOC8 = getsize_322135_3876443242(t0);
  	LOC7[1] = rope_180401_2381377266((NI64)(LOC8 * IL64(8)));
  	LOC9 = (Ropeobj180006*)0;
  	LOC9 = HEX25_180905_2381377266(opr_553640_839829468[(m0)- 96], LOC7, 2);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC9, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, binaryarith_553819_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	NI64 s0;
  	NI64 LOC1;
  	NI64 LOC2;
  	TY537235 LOC3;
  	Ropeobj180006* LOC4;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	s0 = (NI64)0;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	LOC1 = (NI64)0;
  	LOC1 = getsize_322135_3876443242(a0.t);
  	LOC2 = (NI64)0;
  	LOC2 = getsize_322135_3876443242(b0.t);
  	s0 = (NI64)(((LOC1 >= LOC2) ? LOC1 : LOC2) * IL64(8));
  	memset((void*)LOC3, 0, sizeof(LOC3));
  	LOC3[0] = rdloc_540188_839829468(a0);
  	LOC3[1] = rdloc_540188_839829468(b0);
  	LOC3[2] = rope_180401_2381377266(s0);
  	LOC3[3] = getsimpletypedesc_535936_839829468((*p0).module, (*e0).typ);
  	LOC4 = (Ropeobj180006*)0;
  	LOC4 = HEX25_180905_2381377266(binarithtab_553826_839829468[(op0)- 52], LOC3, 4);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC4, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, binaryfloatarith_558728_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0) {
  	{
  		Tloc294816 a0;
  		Tloc294816 b0;
  		TY537235 LOC5;
  		Tnode294802* LOC6;
  		Ropeobj180006* LOC7;
  		if (!!(((384 & (*p0).options) == 0))) goto LA3;
  		memset((void*)(&a0), 0, sizeof(a0));
  		memset((void*)(&b0), 0, sizeof(b0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rope_180277_2381377266(opr_558762_839829468[(m0)- 52]);
  		LOC5[1] = rdloc_540188_839829468(a0);
  		LOC5[2] = rdloc_540188_839829468(b0);
  		LOC6 = (Tnode294802*)0;
  		LOC6 = HEX5BHEX5D_295238_850551059(e0, ((NI) 1));
  		LOC5[3] = getsimpletypedesc_535936_839829468((*p0).module, (*LOC6).typ);
  		LOC7 = (Ropeobj180006*)0;
  		LOC7 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_319), LOC5, 4);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC7, ((Tstorageloc294812) 0));
  		{
  			TY180507 LOC12;
  			if (!(((*p0).options &(1U<<((NU)(((Toption171009) 7))&31U)))!=0)) goto LA10;
  			memset((void*)LOC12, 0, sizeof(LOC12));
  			LOC12[0] = rdloc_540188_839829468((*d0));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_323), LOC12, 1);
  		}
  		LA10: ;
  		{
  			TY180507 LOC17;
  			if (!(((*p0).options &(1U<<((NU)(((Toption171009) 8))&31U)))!=0)) goto LA15;
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = rdloc_540188_839829468((*d0));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_324), LOC17, 1);
  		}
  		LA15: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		binaryarith_553819_839829468(p0, e0, d0, m0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, geneqproc_554214_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	{
  		Ttype294840* LOC3;
  		TY534811 LOC6;
  		Ropeobj180006* LOC7;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059(a0.t, IL64(211106232576256));
  		if (!((*LOC3).callconv == ((Tcallingconvention294002) 8))) goto LA4;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = rdloc_540188_839829468(a0);
  		LOC6[1] = rdloc_540188_839829468(b0);
  		LOC7 = (Ropeobj180006*)0;
  		LOC7 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_352), LOC6, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC7, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA4: ;
  	{
  		TY534811 LOC9;
  		Ropeobj180006* LOC10;
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = rdloc_540188_839829468(a0);
  		LOC9[1] = rdloc_540188_839829468(b0);
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_341), LOC9, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC10, ((Tstorageloc294812) 0));
  	}
  	LA1: ;
  }
  
  N_NIMCALL(Ropeobj180006*, rdcharloc_540227_839829468)(Tloc294816 a0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = rdloc_540188_839829468(a0);
  	{
  		Ttype294840* LOC3;
  		TY180507 LOC6;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059(a0.t, IL64(211106233624832));
  		if (!((*LOC3).kind == ((Ttypekind294244) 2))) goto LA4;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = result0;
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_358), LOC6, 1);
  	}
  	LA4: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, binaryarithoverflowraw_553235_839829468)(Tcproc531021* p0, Ttype294840* t0, Tloc294816 a0, Tloc294816 b0, NimStringDesc* frmt0) {
  	Ropeobj180006* result0;
  	NI64 size0;
  	Ropeobj180006* storage0;
  	TY534811 LOC6;
  	TY537238 LOC7;
  	result0 = (Ropeobj180006*)0;
  	size0 = getsize_322135_3876443242(t0);
  	{
  		if (!(size0 < ((NI64) (intsize_178641_4151366050)))) goto LA3;
  		storage0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_36));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		storage0 = gettypedesc_537671_839829468((*p0).module, t0);
  	}
  	LA1: ;
  	result0 = gettempname_535596_839829468((*p0).module);
  	memset((void*)LOC6, 0, sizeof(LOC6));
  	LOC6[0] = storage0;
  	LOC6[1] = result0;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 0), ((NimStringDesc*) &T839829468_54), LOC6, 2);
  	memset((void*)LOC7, 0, sizeof(LOC7));
  	LOC7[0] = result0;
  	LOC7[1] = rdcharloc_540227_839829468(a0);
  	LOC7[2] = rdcharloc_540227_839829468(b0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), frmt0, LOC7, 3);
  	{
  		NIM_BOOL LOC10;
  		TY537238 LOC14;
  		NI64 LOC15;
  		NI64 LOC16;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = (size0 < ((NI64) (intsize_178641_4151366050)));
  		if (LOC10) goto LA11;
  		LOC10 = ((*t0).kind == ((Ttypekind294244) 20) || (*t0).kind == ((Ttypekind294244) 14));
  		LA11: ;
  		if (!LOC10) goto LA12;
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = result0;
  		LOC15 = (NI64)0;
  		LOC15 = firstord_322001_3876443242(t0);
  		LOC14[1] = intliteral_541270_839829468(LOC15);
  		LOC16 = (NI64)0;
  		LOC16 = lastord_322004_3876443242(t0);
  		LOC14[2] = intliteral_541270_839829468(LOC16);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_359), LOC14, 3);
  	}
  	LA12: ;
  	return result0;
  }
  
  N_NIMCALL(void, binaryarithoverflow_553262_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 m0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* t0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	t0 = skiptypes_298099_850551059((*e0).typ, IL64(211106233624832));
  	{
  		Ropeobj180006* res0;
  		TY537238 LOC5;
  		if (!!((((*p0).options &(1U<<((NU)(((Toption171009) 5))&31U)))!=0))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = gettypedesc_537671_839829468((*p0).module, t0);
  		LOC5[1] = rdloc_540188_839829468(a0);
  		LOC5[2] = rdloc_540188_839829468(b0);
  		res0 = HEX25_180905_2381377266(opr_553279_839829468[(m0)- 45], LOC5, 3);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, res0, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		Ropeobj180006* res0;
  		NimStringDesc* LOC7;
  		TY534811 LOC13;
  		Ropeobj180006* LOC14;
  		LOC7 = (NimStringDesc*)0;
  		{
  			if (!((*t0).kind == ((Ttypekind294244) 35))) goto LA10;
  			LOC7 = copyString(prc64_553274_839829468[(m0)- 45]);
  		}
  		goto LA8;
  		LA10: ;
  		{
  			LOC7 = copyString(prc_553269_839829468[(m0)- 45]);
  		}
  		LA8: ;
  		res0 = binaryarithoverflowraw_553235_839829468(p0, t0, a0, b0, LOC7);
  		memset((void*)LOC13, 0, sizeof(LOC13));
  		LOC13[0] = gettypedesc_537671_839829468((*p0).module, t0);
  		LOC13[1] = res0;
  		LOC14 = (Ropeobj180006*)0;
  		LOC14 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_370), LOC13, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC14, ((Tstorageloc294812) 0));
  	}
  	LA1: ;
  }
  
  N_NIMCALL(Ropeobj180006*, lenfield_541305_839829468)(Tcproc531021* p0) {
  	Ropeobj180006* result0;
  	NimStringDesc* LOC1;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (NimStringDesc*)0;
  	{
  		NIM_BOOL LOC4;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC4) goto LA5;
  		LOC4 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA5: ;
  		if (!LOC4) goto LA6;
  		LOC1 = copyString(((NimStringDesc*) &T839829468_157));
  	}
  	goto LA2;
  	LA6: ;
  	{
  		LOC1 = copyString(((NimStringDesc*) &T839829468_158));
  	}
  	LA2: ;
  	result0 = rope_180277_2381377266(LOC1);
  	return result0;
  }
  
  N_NIMCALL(void, gcusage_556439_839829468)(Tnode294802* n0) {
  	{
  		NimStringDesc* LOC5;
  		if (!(gselectedgc_171133_2607990831 == ((Tgcmode171080) 0))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = rendertree_313044_382274130(n0, 0);
  		message_198095_155036129((*n0).info, ((Tmsgkind193002) 263), LOC5);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, genrepr_557339_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* t0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	t0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
  	switch ((*t0).kind) {
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 35):
  	case ((Ttypekind294244) 40) ... ((Ttypekind294244) 44):
  	{
  		TY180507 LOC2;
  		Ropeobj180006* LOC3;
  		memset((void*)LOC2, 0, sizeof(LOC2));
  		LOC2[0] = rdloc_540188_839829468(a0);
  		LOC3 = (Ropeobj180006*)0;
  		LOC3 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_371), LOC2, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC3, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 36) ... ((Ttypekind294244) 39):
  	{
  		TY180507 LOC5;
  		Ropeobj180006* LOC6;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rdloc_540188_839829468(a0);
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_372), LOC5, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC6, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 1):
  	{
  		TY180507 LOC8;
  		Ropeobj180006* LOC9;
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = rdloc_540188_839829468(a0);
  		LOC9 = (Ropeobj180006*)0;
  		LOC9 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_373), LOC8, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC9, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 2):
  	{
  		TY180507 LOC11;
  		Ropeobj180006* LOC12;
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = rdloc_540188_839829468(a0);
  		LOC12 = (Ropeobj180006*)0;
  		LOC12 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_374), LOC11, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC12, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 14):
  	case ((Ttypekind294244) 15):
  	{
  		TY534811 LOC14;
  		Ropeobj180006* LOC15;
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = rdloc_540188_839829468(a0);
  		LOC14[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		LOC15 = (Ropeobj180006*)0;
  		LOC15 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_375), LOC14, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC15, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 28):
  	{
  		TY180507 LOC17;
  		Ropeobj180006* LOC18;
  		memset((void*)LOC17, 0, sizeof(LOC17));
  		LOC17[0] = rdloc_540188_839829468(a0);
  		LOC18 = (Ropeobj180006*)0;
  		LOC18 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_376), LOC17, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC18, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		TY534811 LOC20;
  		Ropeobj180006* LOC21;
  		memset((void*)LOC20, 0, sizeof(LOC20));
  		LOC20[0] = addrloc_540204_839829468(a0);
  		LOC20[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		LOC21 = (Ropeobj180006*)0;
  		LOC21 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_377), LOC20, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC21, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		Tloc294816 b0;
  		TY534811 LOC34;
  		Ttype294840* LOC35;
  		Ropeobj180006* LOC36;
  		memset((void*)(&b0), 0, sizeof(b0));
  		switch ((*a0.t).kind) {
  		case ((Ttypekind294244) 27):
  		case ((Ttypekind294244) 48):
  		{
  			TY180507 LOC24;
  			Ropeobj180006* LOC25;
  			memset((void*)LOC24, 0, sizeof(LOC24));
  			LOC24[0] = rdloc_540188_839829468(a0);
  			LOC25 = (Ropeobj180006*)0;
  			LOC25 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_378), LOC24, 1);
  			putintodest_552468_839829468(p0, (&b0), (*e0).typ, LOC25, a0.s);
  		}
  		break;
  		case ((Ttypekind294244) 28):
  		case ((Ttypekind294244) 24):
  		{
  			TY534811 LOC27;
  			Ropeobj180006* LOC28;
  			memset((void*)LOC27, 0, sizeof(LOC27));
  			LOC27[0] = rdloc_540188_839829468(a0);
  			LOC27[1] = lenfield_541305_839829468(p0);
  			LOC28 = (Ropeobj180006*)0;
  			LOC28 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_379), LOC27, 2);
  			putintodest_552468_839829468(p0, (&b0), (*e0).typ, LOC28, a0.s);
  		}
  		break;
  		case ((Ttypekind294244) 16):
  		case ((Ttypekind294244) 4):
  		{
  			TY534811 LOC30;
  			NI64 LOC31;
  			Ropeobj180006* LOC32;
  			memset((void*)LOC30, 0, sizeof(LOC30));
  			LOC30[0] = rdloc_540188_839829468(a0);
  			LOC31 = (NI64)0;
  			LOC31 = lengthord_322007_3876443242(a0.t);
  			LOC30[1] = rope_180401_2381377266(LOC31);
  			LOC32 = (Ropeobj180006*)0;
  			LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_380), LOC30, 2);
  			putintodest_552468_839829468(p0, (&b0), (*e0).typ, LOC32, a0.s);
  		}
  		break;
  		default:
  		{
  			internalerror_198100_155036129((*(*e0).kindU.S6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &T839829468_381));
  		}
  		break;
  		}
  		memset((void*)LOC34, 0, sizeof(LOC34));
  		LOC34[0] = rdloc_540188_839829468(b0);
  		LOC35 = (Ttype294840*)0;
  		LOC35 = elemtype_322394_3876443242(t0);
  		LOC34[1] = gentypeinfo_537941_839829468((*p0).module, LOC35);
  		LOC36 = (Ropeobj180006*)0;
  		LOC36 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_382), LOC34, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC36, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 29):
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 4):
  	case ((Ttypekind294244) 22):
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 26):
  	case ((Ttypekind294244) 5):
  	case ((Ttypekind294244) 24):
  	{
  		TY534811 LOC38;
  		Ropeobj180006* LOC39;
  		memset((void*)LOC38, 0, sizeof(LOC38));
  		LOC38[0] = rdloc_540188_839829468(a0);
  		LOC38[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		LOC39 = (Ropeobj180006*)0;
  		LOC39 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_383), LOC38, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC39, a0.s);
  	}
  	break;
  	case ((Ttypekind294244) 3):
  	case ((Ttypekind294244) 62):
  	{
  		localerror_198085_155036129((*e0).info, ((NimStringDesc*) &T839829468_384));
  	}
  	break;
  	default:
  	{
  		TY534811 LOC42;
  		Ropeobj180006* LOC43;
  		memset((void*)LOC42, 0, sizeof(LOC42));
  		LOC42[0] = addrloc_540204_839829468(a0);
  		LOC42[1] = gentypeinfo_537941_839829468((*p0).module, t0);
  		LOC43 = (Ropeobj180006*)0;
  		LOC43 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_383), LOC42, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC43, a0.s);
  	}
  	break;
  	}
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, gengettypeinfo_557383_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Ttype294840* t0;
  	Ropeobj180006* LOC1;
  	t0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = gentypeinfo_537941_839829468((*p0).module, t0);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC1, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, genswap_557638_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 tmp0;
  	Ttype294840* LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&tmp0), 0, sizeof(tmp0));
  	LOC1 = (Ttype294840*)0;
  	LOC1 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  	gettemp_539032_839829468(p0, LOC1, (&tmp0), NIM_FALSE);
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	genassignment_541264_839829468(p0, tmp0, a0, 0);
  	genassignment_541264_839829468(p0, a0, b0, 0);
  	genassignment_541264_839829468(p0, b0, tmp0, 0);
  }
  
  N_NIMCALL(void, unaryexpr_553209_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	TY180507 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, LOC1, 1);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, binarystmt_552501_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	TY534811 LOC5;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	{
  		if (!!(((*d0).k == ((Tlockind294808) 0)))) goto LA3;
  		internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_387));
  	}
  	LA3: ;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	memset((void*)LOC5, 0, sizeof(LOC5));
  	LOC5[0] = rdloc_540188_839829468(a0);
  	LOC5[1] = rdloc_540188_839829468(b0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), frmt0, LOC5, 2);
  }
  
  N_NIMCALL(void, genstrconcat_556452_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 tmp0;
  	NI L0;
  	Ropeobj180006* appends0;
  	Ropeobj180006* lens0;
  	TY537238 LOC21;
  	Ropeobj180006** LOC22;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&tmp0), 0, sizeof(tmp0));
  	gettemp_539032_839829468(p0, (*e0).typ, (&tmp0), NIM_FALSE);
  	L0 = ((NI) 0);
  	appends0 = NIM_NIL;
  	lens0 = NIM_NIL;
  	{
  		NI i_556475_839829468;
  		NI HEX3Atmp_556547_839829468;
  		NI LOC2;
  		NI res_556550_839829468;
  		i_556475_839829468 = (NI)0;
  		HEX3Atmp_556547_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(e0);
  		HEX3Atmp_556547_839829468 = (NI)(LOC2 - ((NI) 2));
  		res_556550_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_556550_839829468 <= HEX3Atmp_556547_839829468)) goto LA4;
  				i_556475_839829468 = res_556550_839829468;
  				initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))], (&a0));
  				{
  					Ttype294840* LOC7;
  					TY534811 LOC10;
  					Ropeobj180006* LOC11;
  					LOC7 = (Ttype294840*)0;
  					LOC7 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))]).typ, IL64(211106242013440));
  					if (!((*LOC7).kind == ((Ttypekind294244) 2))) goto LA8;
  					L0 += ((NI) 1);
  					memset((void*)LOC10, 0, sizeof(LOC10));
  					LOC10[0] = tmp0.r;
  					LOC10[1] = rdloc_540188_839829468(a0);
  					LOC11 = (Ropeobj180006*)0;
  					LOC11 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_390), LOC10, 2);
  					add_180482_2381377266(&appends0, LOC11);
  				}
  				goto LA5;
  				LA8: ;
  				{
  					TY534811 LOC19;
  					Ropeobj180006* LOC20;
  					{
  						if (!((*(*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))]).kind >= ((Tnodekind294020) 20) && (*(*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))]).kind <= ((Tnodekind294020) 22))) goto LA15;
  						L0 += ((*(*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))]).kindU.S3.strval ? (*(*e0).kindU.S6.sons->data[(NI)(i_556475_839829468 + ((NI) 1))]).kindU.S3.strval->Sup.len : 0);
  					}
  					goto LA13;
  					LA15: ;
  					{
  						TY534811 LOC18;
  						memset((void*)LOC18, 0, sizeof(LOC18));
  						LOC18[0] = rdloc_540188_839829468(a0);
  						LOC18[1] = lenfield_541305_839829468(p0);
  						addf_181205_2381377266(&lens0, ((NimStringDesc*) &T839829468_391), LOC18, 2);
  					}
  					LA13: ;
  					memset((void*)LOC19, 0, sizeof(LOC19));
  					LOC19[0] = tmp0.r;
  					LOC19[1] = rdloc_540188_839829468(a0);
  					LOC20 = (Ropeobj180006*)0;
  					LOC20 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_392), LOC19, 2);
  					add_180482_2381377266(&appends0, LOC20);
  				}
  				LA5: ;
  				res_556550_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	memset((void*)LOC21, 0, sizeof(LOC21));
  	LOC21[0] = tmp0.r;
  	LOC21[1] = lens0;
  	LOC21[2] = rope_180401_2381377266(((NI64) (L0)));
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_393), LOC21, 3);
  	LOC22 = (Ropeobj180006**)0;
  	LOC22 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	add_180482_2381377266(LOC22, appends0);
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA25;
  		genericAssign((void*)(&(*d0)), (void*)(&tmp0), (&NTI294816));
  	}
  	goto LA23;
  	LA25: ;
  	{
  		genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  	}
  	LA23: ;
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, genstrappend_556554_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 dest0;
  	Ropeobj180006* appends0;
  	Ropeobj180006* lens0;
  	NI L0;
  	TY537238 LOC21;
  	Ropeobj180006** LOC22;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&dest0), 0, sizeof(dest0));
  	appends0 = (Ropeobj180006*)0;
  	lens0 = (Ropeobj180006*)0;
  	L0 = ((NI) 0);
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&dest0));
  	{
  		NI i_556615_839829468;
  		NI HEX3Atmp_556676_839829468;
  		NI LOC2;
  		NI res_556679_839829468;
  		i_556615_839829468 = (NI)0;
  		HEX3Atmp_556676_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(e0);
  		HEX3Atmp_556676_839829468 = (NI)(LOC2 - ((NI) 3));
  		res_556679_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_556679_839829468 <= HEX3Atmp_556676_839829468)) goto LA4;
  				i_556615_839829468 = res_556679_839829468;
  				initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))], (&a0));
  				{
  					Ttype294840* LOC7;
  					TY534811 LOC10;
  					Ropeobj180006* LOC11;
  					LOC7 = (Ttype294840*)0;
  					LOC7 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))]).typ, IL64(211106242013440));
  					if (!((*LOC7).kind == ((Ttypekind294244) 2))) goto LA8;
  					L0 += ((NI) 1);
  					memset((void*)LOC10, 0, sizeof(LOC10));
  					LOC10[0] = rdloc_540188_839829468(dest0);
  					LOC10[1] = rdloc_540188_839829468(a0);
  					LOC11 = (Ropeobj180006*)0;
  					LOC11 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_390), LOC10, 2);
  					add_180482_2381377266(&appends0, LOC11);
  				}
  				goto LA5;
  				LA8: ;
  				{
  					TY534811 LOC19;
  					Ropeobj180006* LOC20;
  					{
  						if (!((*(*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))]).kind >= ((Tnodekind294020) 20) && (*(*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))]).kind <= ((Tnodekind294020) 22))) goto LA15;
  						L0 += ((*(*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))]).kindU.S3.strval ? (*(*e0).kindU.S6.sons->data[(NI)(i_556615_839829468 + ((NI) 2))]).kindU.S3.strval->Sup.len : 0);
  					}
  					goto LA13;
  					LA15: ;
  					{
  						TY534811 LOC18;
  						memset((void*)LOC18, 0, sizeof(LOC18));
  						LOC18[0] = rdloc_540188_839829468(a0);
  						LOC18[1] = lenfield_541305_839829468(p0);
  						addf_181205_2381377266(&lens0, ((NimStringDesc*) &T839829468_391), LOC18, 2);
  					}
  					LA13: ;
  					memset((void*)LOC19, 0, sizeof(LOC19));
  					LOC19[0] = rdloc_540188_839829468(dest0);
  					LOC19[1] = rdloc_540188_839829468(a0);
  					LOC20 = (Ropeobj180006*)0;
  					LOC20 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_392), LOC19, 2);
  					add_180482_2381377266(&appends0, LOC20);
  				}
  				LA5: ;
  				res_556679_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	memset((void*)LOC21, 0, sizeof(LOC21));
  	LOC21[0] = rdloc_540188_839829468(dest0);
  	LOC21[1] = lens0;
  	LOC21[2] = rope_180401_2381377266(((NI64) (L0)));
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_395), LOC21, 3);
  	LOC22 = (Ropeobj180006**)0;
  	LOC22 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	add_180482_2381377266(LOC22, appends0);
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, genseqelemappend_556683_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	NimStringDesc* seqappendpattern0;
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 dest0;
  	Ttype294840* bt0;
  	TY537238 LOC8;
  	Ttype294840* LOC9;
  	TY534811 LOC10;
  	TY534811 LOC11;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!!(LOC3)) goto LA5;
  		seqappendpattern0 = copyString(((NimStringDesc*) &T839829468_396));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		seqappendpattern0 = copyString(((NimStringDesc*) &T839829468_397));
  	}
  	LA1: ;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&dest0), 0, sizeof(dest0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	bt0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 2)]).typ, IL64(211106240964864));
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = rdloc_540188_839829468(a0);
  	LOC9 = (Ttype294840*)0;
  	LOC9 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  	LOC8[1] = gettypedesc_537671_839829468((*p0).module, LOC9);
  	LOC8[2] = gettypedesc_537671_839829468((*p0).module, bt0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), seqappendpattern0, LOC8, 3);
  	initloc_534273_839829468((&dest0), ((Tlockind294808) 6), bt0, ((Tstorageloc294812) 3));
  	memset((void*)LOC10, 0, sizeof(LOC10));
  	LOC10[0] = rdloc_540188_839829468(a0);
  	LOC10[1] = lenfield_541305_839829468(p0);
  	dest0.r = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_398), LOC10, 2);
  	genassignment_541264_839829468(p0, dest0, b0, 3);
  	memset((void*)LOC11, 0, sizeof(LOC11));
  	LOC11[0] = rdloc_540188_839829468(a0);
  	LOC11[1] = lenfield_541305_839829468(p0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_399), LOC11, 2);
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, binaryexpr_552549_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	TY534811 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	LOC1[1] = rdloc_540188_839829468(b0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, LOC1, 2);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, genstrequals_558666_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 x0;
  	Tnode294802* a0;
  	Tnode294802* b0;
  	memset((void*)(&x0), 0, sizeof(x0));
  	a0 = (*e0).kindU.S6.sons->data[((NI) 1)];
  	b0 = (*e0).kindU.S6.sons->data[((NI) 2)];
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*a0).kind == ((Tnodekind294020) 23));
  		if (LOC3) goto LA4;
  		LOC3 = ((*b0).kind == ((Tnodekind294020) 23));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_341));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NIM_BOOL LOC8;
  		TY534811 LOC12;
  		Ropeobj180006* LOC13;
  		LOC8 = (NIM_BOOL)0;
  		LOC8 = ((*a0).kind >= ((Tnodekind294020) 20) && (*a0).kind <= ((Tnodekind294020) 22));
  		if (!(LOC8)) goto LA9;
  		LOC8 = (((*a0).kindU.S3.strval) && ((*a0).kindU.S3.strval)->Sup.len == 0);
  		LA9: ;
  		if (!LOC8) goto LA10;
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&x0));
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		LOC12[0] = rdloc_540188_839829468(x0);
  		LOC12[1] = lenfield_541305_839829468(p0);
  		LOC13 = (Ropeobj180006*)0;
  		LOC13 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_400), LOC12, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC13, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA10: ;
  	{
  		NIM_BOOL LOC15;
  		TY534811 LOC19;
  		Ropeobj180006* LOC20;
  		LOC15 = (NIM_BOOL)0;
  		LOC15 = ((*b0).kind >= ((Tnodekind294020) 20) && (*b0).kind <= ((Tnodekind294020) 22));
  		if (!(LOC15)) goto LA16;
  		LOC15 = (((*b0).kindU.S3.strval) && ((*b0).kindU.S3.strval)->Sup.len == 0);
  		LA16: ;
  		if (!LOC15) goto LA17;
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&x0));
  		memset((void*)LOC19, 0, sizeof(LOC19));
  		LOC19[0] = rdloc_540188_839829468(x0);
  		LOC19[1] = lenfield_541305_839829468(p0);
  		LOC20 = (Ropeobj180006*)0;
  		LOC20 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_400), LOC19, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC20, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA17: ;
  	{
  		binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_401));
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, genisnil_554620_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Ttype294840* t0;
  	t0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106233624832));
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*t0).kind == ((Ttypekind294244) 25));
  		if (!(LOC3)) goto LA4;
  		LOC3 = ((*t0).callconv == ((Tcallingconvention294002) 8));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_404));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_405));
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gendollar_557391_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	TY180507 LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	a0.r = ropecg_534407_839829468((*p0).module, frmt0, LOC1, 1);
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA4;
  		gettemp_539032_839829468(p0, (*n0).typ, d0, NIM_FALSE);
  	}
  	LA4: ;
  	genassignment_541264_839829468(p0, (*d0), a0, 0);
  	gcusage_556439_839829468(n0);
  }
  
  N_NIMCALL(Ropeobj180006*, genofhelper_557139_839829468)(Tcproc531021* p0, Ttype294840* dest0, Ropeobj180006* a0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* ti0;
  	result0 = (Ropeobj180006*)0;
  	ti0 = gentypeinfo_537941_839829468((*p0).module, dest0);
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		TY534811 LOC9;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (((*dest0).flags &(1U<<((NU)(((Ttypeflag294431) 2))&31U)))!=0);
  		if (LOC3) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = (((*(*p0).module).flags &(1U<<((NU)(((Codegenflag531025) 5))&7U)))!=0);
  		if (!(LOC5)) goto LA6;
  		LOC5 = !((((*dest0).flags &(1U<<((NU)(((Ttypeflag294431) 5))&31U)))!=0));
  		LA6: ;
  		LOC3 = LOC5;
  		LA4: ;
  		if (!LOC3) goto LA7;
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = a0;
  		LOC9[1] = ti0;
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_414), LOC9, 2);
  	}
  	goto LA1;
  	LA7: ;
  	{
  		Ropeobj180006* LOC11;
  		Ropeobj180006* cache0;
  		Ropeobj180006* LOC12;
  		TY180507 LOC13;
  		TY537238 LOC14;
  		LOC11 = (Ropeobj180006*)0;
  		LOC11 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_129));
  		(*(*p0).module).labels += ((NI) 1);
  		LOC12 = (Ropeobj180006*)0;
  		LOC12 = rope_180401_2381377266(((NI64) ((*(*p0).module).labels)));
  		cache0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_415), LOC12);
  		memset((void*)LOC13, 0, sizeof(LOC13));
  		LOC13[0] = cache0;
  		addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_416), LOC13, 1);
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = a0;
  		LOC14[1] = ti0;
  		LOC14[2] = cache0;
  		result0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_417), LOC14, 3);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, genof_557201_839829468)(Tcproc531021* p0, Tnode294802* x0, Ttype294840* typ0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* dest0;
  	Ropeobj180006* r0;
  	Ropeobj180006* nilcheck0;
  	Ttype294840* t0;
  	Ttype294840* LOC41;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, x0, (&a0));
  	dest0 = skiptypes_298099_850551059(typ0, IL64(211106247256320));
  	r0 = rdloc_540188_839829468(a0);
  	nilcheck0 = NIM_NIL;
  	t0 = skiptypes_298099_850551059(a0.t, IL64(211106232576256));
  	{
  		while (1) {
  			Ttype294840* LOC16;
  			if (!((*t0).kind == ((Ttypekind294244) 23) || (*t0).kind == ((Ttypekind294244) 21) || (*t0).kind == ((Ttypekind294244) 22))) goto LA2;
  			{
  				if (!!(((*t0).kind == ((Ttypekind294244) 23)))) goto LA5;
  				nilcheck0 = r0;
  			}
  			LA5: ;
  			{
  				NIM_BOOL LOC9;
  				NIM_BOOL LOC11;
  				TY180507 LOC15;
  				LOC9 = (NIM_BOOL)0;
  				LOC9 = !(((*t0).kind == ((Ttypekind294244) 23)));
  				if (LOC9) goto LA10;
  				LOC11 = (NIM_BOOL)0;
  				LOC11 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC11) goto LA12;
  				LOC11 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA12: ;
  				LOC9 = !(LOC11);
  				LA10: ;
  				if (!LOC9) goto LA13;
  				memset((void*)LOC15, 0, sizeof(LOC15));
  				LOC15[0] = r0;
  				r0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_124), LOC15, 1);
  			}
  			LA13: ;
  			LOC16 = (Ttype294840*)0;
  			LOC16 = lastson_297377_850551059(t0);
  			t0 = skiptypes_298099_850551059(LOC16, IL64(211106232576256));
  		} LA2: ;
  	}
  	{
  		NIM_BOOL LOC19;
  		LOC19 = (NIM_BOOL)0;
  		LOC19 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC19) goto LA20;
  		LOC19 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA20: ;
  		if (!!(LOC19)) goto LA21;
  		{
  			while (1) {
  				NIM_BOOL LOC25;
  				TY535289 LOC27;
  				Ropeobj180006* LOC28;
  				LOC25 = (NIM_BOOL)0;
  				LOC25 = ((*t0).kind == ((Ttypekind294244) 17));
  				if (!(LOC25)) goto LA26;
  				LOC25 = !(((*t0).sons->data[((NI) 0)] == NIM_NIL));
  				LA26: ;
  				if (!LOC25) goto LA24;
  				memset((void*)LOC27, 0, sizeof(LOC27));
  				LOC28 = (Ropeobj180006*)0;
  				LOC28 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_153), LOC27, 0);
  				add_180482_2381377266(&r0, LOC28);
  				t0 = skiptypes_298099_850551059((*t0).sons->data[((NI) 0)], IL64(211106247215360));
  			} LA24: ;
  		}
  	}
  	LA21: ;
  	{
  		NIM_BOOL LOC31;
  		LOC31 = (NIM_BOOL)0;
  		LOC31 = isobjlackingtypefield_535513_839829468(t0);
  		if (!LOC31) goto LA32;
  		globalerror_198071_155036129((*x0).info, ((Tmsgkind193002) 4), ((NimStringDesc*) &T839829468_412));
  	}
  	LA32: ;
  	{
  		TY534811 LOC38;
  		if (!!((nilcheck0 == NIM_NIL))) goto LA36;
  		memset((void*)LOC38, 0, sizeof(LOC38));
  		LOC38[0] = nilcheck0;
  		LOC38[1] = genofhelper_557139_839829468(p0, dest0, r0);
  		r0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_413), LOC38, 2);
  	}
  	goto LA34;
  	LA36: ;
  	{
  		TY180507 LOC40;
  		memset((void*)LOC40, 0, sizeof(LOC40));
  		LOC40[0] = genofhelper_557139_839829468(p0, dest0, r0);
  		r0 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_418), LOC40, 1);
  	}
  	LA34: ;
  	LOC41 = (Ttype294840*)0;
  	LOC41 = getsystype_340150_3937434831(((Ttypekind294244) 1));
  	putintodest_552468_839829468(p0, d0, LOC41, r0, a0.s);
  }
  
  N_NIMCALL(void, genof_557331_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	genof_557201_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], (*(*n0).kindU.S6.sons->data[((NI) 2)]).typ, d0);
  }
  
  N_NIMCALL(void, rawgennew_556741_839829468)(Tcproc531021* p0, Tloc294816 a0, Ropeobj180006* sizeexpr_556745_839829468) {
  	Ropeobj180006* sizeexpr0;
  	Ttype294840* reftype0;
  	Tloc294816 b0;
  	TY537238 args0;
  	Ttype294840* bt0;
  	sizeexpr0 = sizeexpr_556745_839829468;
  	reftype0 = skiptypes_298099_850551059(a0.t, IL64(211106242013440));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initloc_534273_839829468((&b0), ((Tlockind294808) 6), a0.t, ((Tstorageloc294812) 3));
  	{
  		TY180507 LOC5;
  		Ttype294840* LOC6;
  		if (!sizeexpr0 == 0) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC6 = (Ttype294840*)0;
  		LOC6 = skiptypes_298099_850551059((*reftype0).sons->data[((NI) 0)], IL64(211106233624832));
  		LOC5[0] = gettypedesc_537671_839829468((*p0).module, LOC6);
  		sizeexpr0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_419), LOC5, 1);
  	}
  	LA3: ;
  	memset((void*)args0, 0, sizeof(args0));
  	args0[0] = gettypedesc_537671_839829468((*p0).module, reftype0);
  	args0[1] = gentypeinfo_537941_839829468((*p0).module, reftype0);
  	args0[2] = sizeexpr0;
  	{
  		NIM_BOOL LOC9;
  		TY534811 LOC21;
  		LOC9 = (NIM_BOOL)0;
  		LOC9 = (a0.s == ((Tstorageloc294812) 3));
  		if (!(LOC9)) goto LA10;
  		LOC9 = usesnativegc_171177_2607990831();
  		LA10: ;
  		if (!LOC9) goto LA11;
  		{
  			NIM_BOOL LOC15;
  			TY180507 LOC18;
  			LOC15 = (NIM_BOOL)0;
  			LOC15 = canformacycle_322123_3876443242(a0.t);
  			if (!LOC15) goto LA16;
  			memset((void*)LOC18, 0, sizeof(LOC18));
  			LOC18[0] = rdloc_540188_839829468(a0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_420), LOC18, 1);
  		}
  		goto LA13;
  		LA16: ;
  		{
  			TY180507 LOC20;
  			memset((void*)LOC20, 0, sizeof(LOC20));
  			LOC20[0] = rdloc_540188_839829468(a0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_255), LOC20, 1);
  		}
  		LA13: ;
  		b0.r = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_421), args0, 3);
  		memset((void*)LOC21, 0, sizeof(LOC21));
  		LOC21[0] = rdloc_540188_839829468(a0);
  		LOC21[1] = rdloc_540188_839829468(b0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC21, 2);
  	}
  	goto LA7;
  	LA11: ;
  	{
  		b0.r = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_422), args0, 3);
  		genassignment_541264_839829468(p0, a0, b0, 0);
  	}
  	LA7: ;
  	bt0 = skiptypes_298099_850551059((*reftype0).sons->data[((NI) 0)], IL64(211106233624832));
  	genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 2), bt0, a0, NIM_FALSE);
  }
  
  N_NIMCALL(void, gennew_556782_839829468)(Tcproc531021* p0, Tnode294802* e0) {
  	Tloc294816 a0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	{
  		NI LOC3;
  		Tloc294816 se0;
  		Ropeobj180006* LOC6;
  		LOC3 = (NI)0;
  		LOC3 = len_295081_850551059(e0);
  		if (!(LOC3 == ((NI) 3))) goto LA4;
  		memset((void*)(&se0), 0, sizeof(se0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&se0));
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = rdloc_540188_839829468(se0);
  		rawgennew_556741_839829468(p0, a0, LOC6);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		rawgennew_556741_839829468(p0, a0, NIM_NIL);
  	}
  	LA1: ;
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, gennewfinalize_557110_839829468)(Tcproc531021* p0, Tnode294802* e0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 f0;
  	Ttype294840* reftype0;
  	Ttype294840* bt0;
  	Ropeobj180006* ti0;
  	TY534811 LOC1;
  	TY537238 LOC2;
  	Ttype294840* LOC3;
  	Ttype294840* LOC4;
  	Ttype294840* LOC5;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&f0), 0, sizeof(f0));
  	reftype0 = (Ttype294840*)0;
  	bt0 = (Ttype294840*)0;
  	ti0 = (Ropeobj180006*)0;
  	reftype0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&f0));
  	initloc_534273_839829468((&b0), ((Tlockind294808) 6), a0.t, ((Tstorageloc294812) 3));
  	ti0 = gentypeinfo_537941_839829468((*p0).module, reftype0);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = ti0;
  	LOC1[1] = rdloc_540188_839829468(f0);
  	addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 14))- 0], ((NimStringDesc*) &T839829468_423), LOC1, 2);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = gettypedesc_537671_839829468((*p0).module, reftype0);
  	LOC2[1] = ti0;
  	LOC3 = (Ttype294840*)0;
  	LOC3 = lastson_297377_850551059(reftype0);
  	LOC4 = (Ttype294840*)0;
  	LOC4 = skiptypes_298099_850551059(LOC3, IL64(211106233624832));
  	LOC2[2] = gettypedesc_537671_839829468((*p0).module, LOC4);
  	b0.r = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_424), LOC2, 3);
  	genassignment_541264_839829468(p0, a0, b0, 0);
  	LOC5 = (Ttype294840*)0;
  	LOC5 = lastson_297377_850551059(reftype0);
  	bt0 = skiptypes_298099_850551059(LOC5, IL64(211106233624832));
  	genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 2), bt0, a0, NIM_FALSE);
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, gennewseqaux_556795_839829468)(Tcproc531021* p0, Tloc294816 dest0, Ropeobj180006* length0) {
  	Ttype294840* seqtype0;
  	TY537238 args0;
  	Tloc294816 call0;
  	seqtype0 = skiptypes_298099_850551059(dest0.t, IL64(211106242013440));
  	memset((void*)args0, 0, sizeof(args0));
  	args0[0] = gettypedesc_537671_839829468((*p0).module, seqtype0);
  	args0[1] = gentypeinfo_537941_839829468((*p0).module, seqtype0);
  	args0[2] = length0;
  	memset((void*)(&call0), 0, sizeof(call0));
  	initloc_534273_839829468((&call0), ((Tlockind294808) 6), dest0.t, ((Tstorageloc294812) 3));
  	{
  		NIM_BOOL LOC3;
  		TY534811 LOC15;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (dest0.s == ((Tstorageloc294812) 3));
  		if (!(LOC3)) goto LA4;
  		LOC3 = usesnativegc_171177_2607990831();
  		LA4: ;
  		if (!LOC3) goto LA5;
  		{
  			NIM_BOOL LOC9;
  			TY180507 LOC12;
  			LOC9 = (NIM_BOOL)0;
  			LOC9 = canformacycle_322123_3876443242(dest0.t);
  			if (!LOC9) goto LA10;
  			memset((void*)LOC12, 0, sizeof(LOC12));
  			LOC12[0] = rdloc_540188_839829468(dest0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_420), LOC12, 1);
  		}
  		goto LA7;
  		LA10: ;
  		{
  			TY180507 LOC14;
  			memset((void*)LOC14, 0, sizeof(LOC14));
  			LOC14[0] = rdloc_540188_839829468(dest0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_255), LOC14, 1);
  		}
  		LA7: ;
  		call0.r = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_425), args0, 3);
  		memset((void*)LOC15, 0, sizeof(LOC15));
  		LOC15[0] = rdloc_540188_839829468(dest0);
  		LOC15[1] = rdloc_540188_839829468(call0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC15, 2);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		call0.r = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_426), args0, 3);
  		genassignment_541264_839829468(p0, dest0, call0, 0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gennewseq_556824_839829468)(Tcproc531021* p0, Tnode294802* e0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ropeobj180006* LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rdloc_540188_839829468(b0);
  	gennewseqaux_556795_839829468(p0, a0, LOC1);
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, gennewseqofcap_556836_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Ttype294840* seqtype0;
  	Tloc294816 a0;
  	TY537238 LOC1;
  	Ropeobj180006* LOC2;
  	seqtype0 = skiptypes_298099_850551059((*e0).typ, IL64(211106242013440));
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = gettypedesc_537671_839829468((*p0).module, seqtype0);
  	LOC1[1] = gentypeinfo_537941_839829468((*p0).module, seqtype0);
  	LOC1[2] = rdloc_540188_839829468(a0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_427), LOC1, 3);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(Ropeobj180006*, getclosuretype_537683_839829468)(Tcgen531027* m0, Ttype294840* t0, Tclosuretypekind537679 kind0) {
  	Ropeobj180006* result0;
  	Intset270030 check0;
  	Ropeobj180006* rettype0;
  	Ropeobj180006* desc0;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&check0), 0, sizeof(check0));
  	chckNil((void*)(&check0));
  	memset((void*)(&check0), 0, sizeof(check0));
  	initintset_270885_2627731572((&check0));
  	result0 = gettempname_535596_839829468(m0);
  	rettype0 = (Ropeobj180006*)0;
  	desc0 = (Ropeobj180006*)0;
  	genprocparams_536115_839829468(m0, t0, &rettype0, &desc0, (&check0), !((kind0 == ((Tclosuretypekind537679) 0))), NIM_FALSE);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = isimportedtype_535449_839829468(t0);
  		if (!!(LOC3)) goto LA4;
  		{
  			NIM_BOOL LOC8;
  			TY537235 LOC12;
  			LOC8 = (NIM_BOOL)0;
  			LOC8 = !(((*t0).callconv == ((Tcallingconvention294002) 8)));
  			if (LOC8) goto LA9;
  			LOC8 = !((kind0 == ((Tclosuretypekind537679) 2)));
  			LA9: ;
  			if (!LOC8) goto LA10;
  			memset((void*)LOC12, 0, sizeof(LOC12));
  			LOC12[0] = rope_180277_2381377266(Callingconvtostr_535585_839829468[((*t0).callconv)- 0]);
  			LOC12[1] = rettype0;
  			LOC12[2] = result0;
  			LOC12[3] = desc0;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_64), LOC12, 4);
  		}
  		goto LA6;
  		LA10: ;
  		{
  			TY537238 LOC14;
  			memset((void*)LOC14, 0, sizeof(LOC14));
  			LOC14[0] = result0;
  			LOC14[1] = rettype0;
  			LOC14[2] = desc0;
  			addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 3))- 0], ((NimStringDesc*) &T839829468_75), LOC14, 3);
  		}
  		LA6: ;
  	}
  	LA4: ;
  	return result0;
  }
  
  N_NIMCALL(void, gensomecast_558480_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* etyp0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	etyp0 = skiptypes_298099_850551059((*e0).typ, IL64(211106233624832));
  	{
  		NIM_BOOL LOC3;
  		TY534811 LOC7;
  		Ropeobj180006* LOC8;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*etyp0).kind == ((Ttypekind294244) 18) || (*etyp0).kind == ((Ttypekind294244) 17) || (*etyp0).kind == ((Ttypekind294244) 16) || (*etyp0).kind == ((Ttypekind294244) 27) || (*etyp0).kind == ((Ttypekind294244) 48) || (*etyp0).kind == ((Ttypekind294244) 4));
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(((a0.flags &(1U<<((NU)(((Tlocflag294810) 0))&15U)))!=0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = gettypedesc_537671_839829468((*p0).module, (*e0).typ);
  		LOC7[1] = addrloc_540204_839829468(a0);
  		LOC8 = (Ropeobj180006*)0;
  		LOC8 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_429), LOC7, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC8, a0.s);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NIM_BOOL LOC10;
  		TY534811 LOC14;
  		Ropeobj180006* LOC15;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = ((*etyp0).kind == ((Ttypekind294244) 25));
  		if (!(LOC10)) goto LA11;
  		LOC10 = ((*etyp0).callconv == ((Tcallingconvention294002) 8));
  		LA11: ;
  		if (!LOC10) goto LA12;
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = getclosuretype_537683_839829468((*p0).module, etyp0, ((Tclosuretypekind537679) 1));
  		LOC14[1] = rdcharloc_540227_839829468(a0);
  		LOC15 = (Ropeobj180006*)0;
  		LOC15 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_430), LOC14, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC15, a0.s);
  	}
  	goto LA1;
  	LA12: ;
  	{
  		TY534811 LOC17;
  		Ropeobj180006* LOC18;
  		memset((void*)LOC17, 0, sizeof(LOC17));
  		LOC17[0] = gettypedesc_537671_839829468((*p0).module, (*e0).typ);
  		LOC17[1] = rdcharloc_540227_839829468(a0);
  		LOC18 = (Ropeobj180006*)0;
  		LOC18 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_430), LOC17, 2);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC18, a0.s);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, unaryexprchar_553222_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	TY180507 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdcharloc_540227_839829468(a0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, LOC1, 1);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, genord_558474_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	unaryexprchar_553222_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_301));
  }
  
  N_NIMCALL(void, genarraylen_557415_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0) {
  	Tnode294802* a0;
  	Ttype294840* typ0;
  	a0 = (*e0).kindU.S6.sons->data[((NI) 1)];
  	{
  		if (!((*a0).kind == ((Tnodekind294020) 64))) goto LA3;
  		a0 = (*a0).kindU.S6.sons->data[((NI) 0)];
  	}
  	LA3: ;
  	typ0 = skiptypes_298099_850551059((*a0).typ, IL64(211106240964864));
  	switch ((*typ0).kind) {
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		{
  			if (!(op0 == ((Tmagic294524) 8))) goto LA8;
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_431));
  		}
  		goto LA6;
  		LA8: ;
  		{
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_432));
  		}
  		LA6: ;
  	}
  	break;
  	case ((Ttypekind294244) 29):
  	{
  		usestringh_534345_839829468((*p0).module);
  		{
  			if (!(op0 == ((Tmagic294524) 8))) goto LA14;
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_433));
  		}
  		goto LA12;
  		LA14: ;
  		{
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_434));
  		}
  		LA12: ;
  	}
  	break;
  	case ((Ttypekind294244) 28):
  	case ((Ttypekind294244) 24):
  	{
  		{
  			NIM_BOOL LOC20;
  			LOC20 = (NIM_BOOL)0;
  			LOC20 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC20) goto LA21;
  			LOC20 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA21: ;
  			if (!!(LOC20)) goto LA22;
  			{
  				if (!(op0 == ((Tmagic294524) 8))) goto LA26;
  				unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_435));
  			}
  			goto LA24;
  			LA26: ;
  			{
  				unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_436));
  			}
  			LA24: ;
  		}
  		goto LA18;
  		LA22: ;
  		{
  			{
  				if (!(op0 == ((Tmagic294524) 8))) goto LA32;
  				unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_437));
  			}
  			goto LA30;
  			LA32: ;
  			{
  				unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_438));
  			}
  			LA30: ;
  		}
  		LA18: ;
  	}
  	break;
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 4):
  	{
  		{
  			NI64 LOC40;
  			Ropeobj180006* LOC41;
  			if (!(op0 == ((Tmagic294524) 8))) goto LA38;
  			LOC40 = (NI64)0;
  			LOC40 = lastord_322004_3876443242(typ0);
  			LOC41 = (Ropeobj180006*)0;
  			LOC41 = rope_180401_2381377266(LOC40);
  			putintodest_552468_839829468(p0, d0, (*e0).typ, LOC41, ((Tstorageloc294812) 0));
  		}
  		goto LA36;
  		LA38: ;
  		{
  			NI64 LOC43;
  			Ropeobj180006* LOC44;
  			LOC43 = (NI64)0;
  			LOC43 = lengthord_322007_3876443242(typ0);
  			LOC44 = (Ropeobj180006*)0;
  			LOC44 = rope_180401_2381377266(LOC43);
  			putintodest_552468_839829468(p0, d0, (*e0).typ, LOC44, ((Tstorageloc294812) 0));
  		}
  		LA36: ;
  	}
  	break;
  	default:
  	{
  		internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_439));
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, unarystmt_552527_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	TY180507 LOC5;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		if (!!(((*d0).k == ((Tlockind294808) 0)))) goto LA3;
  		internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_442));
  	}
  	LA3: ;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC5, 0, sizeof(LOC5));
  	LOC5[0] = rdloc_540188_839829468(a0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), frmt0, LOC5, 1);
  }
  
  N_NIMCALL(void, gensetlengthstr_557632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	binarystmt_552501_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_445));
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(void, gensetlengthseq_557500_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* t0;
  	NimStringDesc* setlenpattern0;
  	TY537235 LOC8;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	t0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!!(LOC3)) goto LA5;
  		setlenpattern0 = copyString(((NimStringDesc*) &T839829468_446));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		setlenpattern0 = copyString(((NimStringDesc*) &T839829468_447));
  	}
  	LA1: ;
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = rdloc_540188_839829468(a0);
  	LOC8[1] = rdloc_540188_839829468(b0);
  	LOC8[2] = gettypedesc_537671_839829468((*p0).module, t0);
  	LOC8[3] = gettypedesc_537671_839829468((*p0).module, (*t0).sons->data[((NI) 0)]);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), setlenpattern0, LOC8, 4);
  	gcusage_556439_839829468(e0);
  }
  
  N_NIMCALL(Ropeobj180006*, rdsetelemloc_557662_839829468)(Tloc294816 a0, Ttype294840* settype0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = rdcharloc_540227_839829468(a0);
  	{
  		NI64 LOC3;
  		TY534811 LOC6;
  		NI64 LOC7;
  		LOC3 = (NI64)0;
  		LOC3 = firstord_322001_3876443242(settype0);
  		if (!!((LOC3 == IL64(0)))) goto LA4;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = result0;
  		LOC7 = (NI64)0;
  		LOC7 = firstord_322001_3876443242(settype0);
  		LOC6[1] = rope_180401_2381377266(LOC7);
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_448), LOC6, 2);
  	}
  	LA4: ;
  	return result0;
  }
  
  N_NIMCALL(void, binarystmtinexcl_557857_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	TY534811 LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	LOC1[1] = rdsetelemloc_557662_839829468(b0, a0.t);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), frmt0, LOC1, 2);
  }
  
  N_NIMCALL(void, binaryexprchar_552809_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NimStringDesc* frmt0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	TY534811 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdcharloc_540227_839829468(a0);
  	LOC1[1] = rdcharloc_540227_839829468(b0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = ropecg_534407_839829468((*p0).module, frmt0, LOC1, 2);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(NIM_BOOL, fewcmps_557803_839829468)(Tnode294802* s0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	{
  		if (!!(((*s0).kind == ((Tnodekind294020) 39)))) goto LA3;
  		internalerror_198100_155036129((*s0).info, ((NimStringDesc*) &T839829468_463));
  	}
  	LA3: ;
  	{
  		NIM_BOOL LOC7;
  		NI64 LOC8;
  		LOC7 = (NIM_BOOL)0;
  		LOC8 = (NI64)0;
  		LOC8 = getsize_322135_3876443242((*s0).typ);
  		LOC7 = (LOC8 <= ((NI64) (intsize_178641_4151366050)));
  		if (!(LOC7)) goto LA9;
  		LOC7 = (((*s0).flags &(1U<<((NU)(((Tnodeflag294427) 4))&15U)))!=0);
  		LA9: ;
  		if (!LOC7) goto LA10;
  		result0 = NIM_FALSE;
  	}
  	goto LA5;
  	LA10: ;
  	{
  		Ttype294840* LOC13;
  		LOC13 = (Ttype294840*)0;
  		LOC13 = elemtype_322394_3876443242((*s0).typ);
  		if (!((*LOC13).kind == ((Ttypekind294244) 31) || (*LOC13).kind >= ((Ttypekind294244) 33) && (*LOC13).kind <= ((Ttypekind294244) 35))) goto LA14;
  		result0 = NIM_TRUE;
  	}
  	goto LA5;
  	LA14: ;
  	{
  		NI LOC17;
  		LOC17 = (NI)0;
  		LOC17 = sonslen_297351_850551059(s0);
  		result0 = (LOC17 <= ((NI) 8));
  	}
  	LA5: ;
  	return result0;
  }
  
  N_NIMCALL(void, binaryexprin_557837_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* a0, Tloc294816* b0, Tloc294816* d0, NimStringDesc* frmt0) {
  	TY534811 LOC1;
  	Ropeobj180006* LOC2;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468((*a0));
  	LOC1[1] = rdsetelemloc_557662_839829468((*b0), (*a0).t);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX25_180905_2381377266(frmt0, LOC1, 2);
  	putintodest_552468_839829468(p0, d0, (*e0).typ, LOC2, ((Tstorageloc294812) 0));
  }
  
  N_NIMCALL(void, geninexpraux_555496_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* a0, Tloc294816* b0, Tloc294816* d0) {
  	Ttype294840* LOC1;
  	NI64 LOC2;
  	LOC1 = (Ttype294840*)0;
  	LOC1 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  	LOC2 = (NI64)0;
  	LOC2 = getsize_322135_3876443242(LOC1);
  	switch (((NI) (LOC2))) {
  	case ((NI) 1):
  	{
  		binaryexprin_557837_839829468(p0, e0, a0, b0, d0, ((NimStringDesc*) &T839829468_467));
  	}
  	break;
  	case ((NI) 2):
  	{
  		binaryexprin_557837_839829468(p0, e0, a0, b0, d0, ((NimStringDesc*) &T839829468_468));
  	}
  	break;
  	case ((NI) 4):
  	{
  		binaryexprin_557837_839829468(p0, e0, a0, b0, d0, ((NimStringDesc*) &T839829468_469));
  	}
  	break;
  	case ((NI) 8):
  	{
  		binaryexprin_557837_839829468(p0, e0, a0, b0, d0, ((NimStringDesc*) &T839829468_470));
  	}
  	break;
  	default:
  	{
  		binaryexprin_557837_839829468(p0, e0, a0, b0, d0, ((NimStringDesc*) &T839829468_471));
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, geninop_558009_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 x0;
  	Tloc294816 y0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&x0), 0, sizeof(x0));
  	memset((void*)(&y0), 0, sizeof(y0));
  	{
  		NIM_BOOL LOC3;
  		Tnode294802* ea0;
  		NI length0;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*(*e0).kindU.S6.sons->data[((NI) 1)]).kind == ((Tnodekind294020) 39));
  		if (!(LOC3)) goto LA4;
  		LOC3 = fewcmps_557803_839829468((*e0).kindU.S6.sons->data[((NI) 1)]);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		{
  			if (!((*(*e0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 70) || (*(*e0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 69))) goto LA9;
  			ea0 = (*(*e0).kindU.S6.sons->data[((NI) 2)]).kindU.S6.sons->data[((NI) 0)];
  		}
  		goto LA7;
  		LA9: ;
  		{
  			ea0 = (*e0).kindU.S6.sons->data[((NI) 2)];
  		}
  		LA7: ;
  		initlocexpr_541283_839829468(p0, ea0, (&a0));
  		initloc_534273_839829468((&b0), ((Tlockind294808) 6), (*e0).typ, ((Tstorageloc294812) 0));
  		b0.r = rope_180277_2381377266(((NimStringDesc*) &T839829468_118));
  		length0 = sonslen_297351_850551059((*e0).kindU.S6.sons->data[((NI) 1)]);
  		{
  			NI i_558061_839829468;
  			NI HEX3Atmp_558412_839829468;
  			NI res_558415_839829468;
  			i_558061_839829468 = (NI)0;
  			HEX3Atmp_558412_839829468 = (NI)0;
  			HEX3Atmp_558412_839829468 = (NI)(length0 - ((NI) 1));
  			res_558415_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_558415_839829468 <= HEX3Atmp_558412_839829468)) goto LA14;
  					i_558061_839829468 = res_558415_839829468;
  					{
  						TY537238 LOC19;
  						if (!((*(*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i_558061_839829468]).kind == ((Tnodekind294020) 44))) goto LA17;
  						initlocexpr_541283_839829468(p0, (*(*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i_558061_839829468]).kindU.S6.sons->data[((NI) 0)], (&x0));
  						initlocexpr_541283_839829468(p0, (*(*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i_558061_839829468]).kindU.S6.sons->data[((NI) 1)], (&y0));
  						memset((void*)LOC19, 0, sizeof(LOC19));
  						LOC19[0] = rdcharloc_540227_839829468(a0);
  						LOC19[1] = rdcharloc_540227_839829468(x0);
  						LOC19[2] = rdcharloc_540227_839829468(y0);
  						addf_181205_2381377266(&b0.r, ((NimStringDesc*) &T839829468_464), LOC19, 3);
  					}
  					goto LA15;
  					LA17: ;
  					{
  						TY534811 LOC21;
  						initlocexpr_541283_839829468(p0, (*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[i_558061_839829468], (&x0));
  						memset((void*)LOC21, 0, sizeof(LOC21));
  						LOC21[0] = rdcharloc_540227_839829468(a0);
  						LOC21[1] = rdcharloc_540227_839829468(x0);
  						addf_181205_2381377266(&b0.r, ((NimStringDesc*) &T839829468_465), LOC21, 2);
  					}
  					LA15: ;
  					{
  						if (!(i_558061_839829468 < (NI)(length0 - ((NI) 1)))) goto LA24;
  						add_180487_2381377266(&b0.r, ((NimStringDesc*) &T839829468_466));
  					}
  					LA24: ;
  					res_558415_839829468 += ((NI) 1);
  				} LA14: ;
  			}
  		}
  		add_180487_2381377266(&b0.r, ((NimStringDesc*) &T839829468_117));
  		putintodest_552468_839829468(p0, d0, (*e0).typ, b0.r, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  		geninexpraux_555496_839829468(p0, e0, (&a0), (&b0), d0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gensetop_558419_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 i0;
  	Ttype294840* settype0;
  	NI size0;
  	NI64 LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&i0), 0, sizeof(i0));
  	settype0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  	LOC1 = (NI64)0;
  	LOC1 = getsize_322135_3876443242(settype0);
  	size0 = ((NI) (LOC1));
  	switch (size0) {
  	case ((NI) 1):
  	case ((NI) 2):
  	case ((NI) 4):
  	case ((NI) 8):
  	{
  		switch (op0) {
  		case ((Tmagic294524) 39):
  		{
  			NimStringDesc* ts0;
  			NimStringDesc* LOC4;
  			NimStringDesc* LOC5;
  			NimStringDesc* LOC6;
  			LOC4 = (NimStringDesc*)0;
  			LOC5 = (NimStringDesc*)0;
  			LOC5 = nimIntToStr((NI)(size0 * ((NI) 8)));
  			LOC4 = rawNewString(LOC5->Sup.len + 2);
  appendString(LOC4, ((NimStringDesc*) &T839829468_45));
  appendString(LOC4, LOC5);
  			ts0 = LOC4;
  			LOC6 = (NimStringDesc*)0;
  			LOC6 = rawNewString(ts0->Sup.len + ts0->Sup.len + 35);
  appendString(LOC6, ((NimStringDesc*) &T839829468_449));
  appendString(LOC6, ts0);
  appendString(LOC6, ((NimStringDesc*) &T839829468_450));
  appendString(LOC6, ts0);
  appendString(LOC6, ((NimStringDesc*) &T839829468_451));
  			binarystmtinexcl_557857_839829468(p0, e0, d0, LOC6);
  		}
  		break;
  		case ((Tmagic294524) 40):
  		{
  			NimStringDesc* ts0;
  			NimStringDesc* LOC8;
  			NimStringDesc* LOC9;
  			NimStringDesc* LOC10;
  			LOC8 = (NimStringDesc*)0;
  			LOC9 = (NimStringDesc*)0;
  			LOC9 = nimIntToStr((NI)(size0 * ((NI) 8)));
  			LOC8 = rawNewString(LOC9->Sup.len + 2);
  appendString(LOC8, ((NimStringDesc*) &T839829468_45));
  appendString(LOC8, LOC9);
  			ts0 = LOC8;
  			LOC10 = (NimStringDesc*)0;
  			LOC10 = rawNewString(ts0->Sup.len + ts0->Sup.len + 42);
  appendString(LOC10, ((NimStringDesc*) &T839829468_452));
  appendString(LOC10, ts0);
  appendString(LOC10, ((NimStringDesc*) &T839829468_453));
  appendString(LOC10, ts0);
  appendString(LOC10, ((NimStringDesc*) &T839829468_454));
  			binarystmtinexcl_557857_839829468(p0, e0, d0, LOC10);
  		}
  		break;
  		case ((Tmagic294524) 41):
  		{
  			{
  				if (!(size0 <= ((NI) 4))) goto LA14;
  				unaryexprchar_553222_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_455));
  			}
  			goto LA12;
  			LA14: ;
  			{
  				unaryexprchar_553222_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_456));
  			}
  			LA12: ;
  		}
  		break;
  		case ((Tmagic294524) 133):
  		{
  			binaryexprchar_552809_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_457));
  		}
  		break;
  		case ((Tmagic294524) 132):
  		{
  			binaryexprchar_552809_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_458));
  		}
  		break;
  		case ((Tmagic294524) 131):
  		{
  			binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_341));
  		}
  		break;
  		case ((Tmagic294524) 134):
  		{
  			binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_459));
  		}
  		break;
  		case ((Tmagic294524) 135):
  		{
  			binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_460));
  		}
  		break;
  		case ((Tmagic294524) 136):
  		{
  			binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_461));
  		}
  		break;
  		case ((Tmagic294524) 137):
  		{
  			binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_462));
  		}
  		break;
  		case ((Tmagic294524) 148):
  		{
  			geninop_558009_839829468(p0, e0, d0);
  		}
  		break;
  		default:
  		{
  			internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_472));
  		}
  		break;
  		}
  	}
  	break;
  	default:
  	{
  		switch (op0) {
  		case ((Tmagic294524) 39):
  		{
  			binarystmtinexcl_557857_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_473));
  		}
  		break;
  		case ((Tmagic294524) 40):
  		{
  			binarystmtinexcl_557857_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_474));
  		}
  		break;
  		case ((Tmagic294524) 41):
  		{
  			NimStringDesc* LOC30;
  			NimStringDesc* LOC31;
  			LOC30 = (NimStringDesc*)0;
  			LOC31 = (NimStringDesc*)0;
  			LOC31 = nimIntToStr(size0);
  			LOC30 = rawNewString(LOC31->Sup.len + 14);
  appendString(LOC30, ((NimStringDesc*) &T839829468_475));
  appendString(LOC30, LOC31);
  appendChar(LOC30, 41);
  			unaryexprchar_553222_839829468(p0, e0, d0, LOC30);
  		}
  		break;
  		case ((Tmagic294524) 133):
  		case ((Tmagic294524) 132):
  		{
  			Ttype294840* LOC33;
  			TY538475 LOC39;
  			LOC33 = (Ttype294840*)0;
  			LOC33 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  			gettemp_539032_839829468(p0, LOC33, (&i0), NIM_FALSE);
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  			{
  				Ttype294840* LOC38;
  				if (!((*d0).k == ((Tlockind294808) 0))) goto LA36;
  				LOC38 = (Ttype294840*)0;
  				LOC38 = getsystype_340150_3937434831(((Ttypekind294244) 1));
  				gettemp_539032_839829468(p0, LOC38, d0, NIM_FALSE);
  			}
  			LA36: ;
  			memset((void*)LOC39, 0, sizeof(LOC39));
  			LOC39[0] = rdloc_540188_839829468(i0);
  			LOC39[1] = rope_180401_2381377266(((NI64) (size0)));
  			LOC39[2] = rdloc_540188_839829468((*d0));
  			LOC39[3] = rdloc_540188_839829468(a0);
  			LOC39[4] = rdloc_540188_839829468(b0);
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), lookupopr_558426_839829468[(op0)- 132], LOC39, 5);
  		}
  		break;
  		case ((Tmagic294524) 131):
  		{
  			NimStringDesc* LOC41;
  			NimStringDesc* LOC42;
  			usestringh_534345_839829468((*p0).module);
  			LOC41 = (NimStringDesc*)0;
  			LOC42 = (NimStringDesc*)0;
  			LOC42 = nimIntToStr(size0);
  			LOC41 = rawNewString(LOC42->Sup.len + 21);
  appendString(LOC41, ((NimStringDesc*) &T839829468_481));
  appendString(LOC41, LOC42);
  appendString(LOC41, ((NimStringDesc*) &T839829468_482));
  			binaryexprchar_552809_839829468(p0, e0, d0, LOC41);
  		}
  		break;
  		case ((Tmagic294524) 134):
  		case ((Tmagic294524) 135):
  		case ((Tmagic294524) 136):
  		case ((Tmagic294524) 137):
  		{
  			Ttype294840* LOC44;
  			TY538847 LOC49;
  			LOC44 = (Ttype294840*)0;
  			LOC44 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  			gettemp_539032_839829468(p0, LOC44, (&i0), NIM_FALSE);
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  			{
  				if (!((*d0).k == ((Tlockind294808) 0))) goto LA47;
  				gettemp_539032_839829468(p0, a0.t, d0, NIM_FALSE);
  			}
  			LA47: ;
  			memset((void*)LOC49, 0, sizeof(LOC49));
  			LOC49[0] = rdloc_540188_839829468(i0);
  			LOC49[1] = rope_180401_2381377266(((NI64) (size0)));
  			LOC49[2] = rdloc_540188_839829468((*d0));
  			LOC49[3] = rdloc_540188_839829468(a0);
  			LOC49[4] = rdloc_540188_839829468(b0);
  			LOC49[5] = rope_180277_2381377266(lookupopr_558426_839829468[(op0)- 132]);
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_483), LOC49, 6);
  		}
  		break;
  		case ((Tmagic294524) 148):
  		{
  			geninop_558009_839829468(p0, e0, d0);
  		}
  		break;
  		default:
  		{
  			internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_484));
  		}
  		break;
  		}
  	}
  	break;
  	}
  }
  
  static N_INLINE(Ropeobj180006*, genargstringtocstring_541776_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	Tloc294816 a0;
  	TY180507 LOC1;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_485), LOC1, 1);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, openarrayloc_541665_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	Tloc294816 a0;
  	Tnode294802* q0;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	q0 = skipconv_330882_3876443242(n0);
  	{
  		Tmagic294524 LOC3;
  		Tloc294816 b0;
  		Tloc294816 c0;
  		Tnode294802* LOC6;
  		Tnode294802* LOC7;
  		Tnode294802* LOC8;
  		NimStringDesc* fmt0;
  		Ttype294840* LOC9;
  		TY537238 LOC25;
  		LOC3 = (Tmagic294524)0;
  		LOC3 = getmagic_320502_2616423590(q0);
  		if (!(LOC3 == ((Tmagic294524) 139))) goto LA4;
  		memset((void*)(&b0), 0, sizeof(b0));
  		memset((void*)(&c0), 0, sizeof(c0));
  		LOC6 = (Tnode294802*)0;
  		LOC6 = HEX5BHEX5D_295238_850551059(q0, ((NI) 1));
  		initlocexpr_541283_839829468(p0, LOC6, (&a0));
  		LOC7 = (Tnode294802*)0;
  		LOC7 = HEX5BHEX5D_295238_850551059(q0, ((NI) 2));
  		initlocexpr_541283_839829468(p0, LOC7, (&b0));
  		LOC8 = (Tnode294802*)0;
  		LOC8 = HEX5BHEX5D_295238_850551059(q0, ((NI) 3));
  		initlocexpr_541283_839829468(p0, LOC8, (&c0));
  		LOC9 = (Ttype294840*)0;
  		LOC9 = skiptypes_298099_850551059(a0.t, IL64(211106243062016));
  		switch ((*LOC9).kind) {
  		case ((Ttypekind294244) 27):
  		case ((Ttypekind294244) 48):
  		case ((Ttypekind294244) 16):
  		case ((Ttypekind294244) 4):
  		{
  			fmt0 = copyString(((NimStringDesc*) &T839829468_486));
  		}
  		break;
  		case ((Ttypekind294244) 28):
  		case ((Ttypekind294244) 24):
  		{
  			{
  				NIM_BOOL LOC14;
  				Ttype294840* LOC15;
  				NIM_BOOL LOC17;
  				LOC14 = (NIM_BOOL)0;
  				LOC15 = (Ttype294840*)0;
  				LOC15 = skiptypes_298099_850551059((*n0).typ, IL64(211106232576256));
  				LOC14 = ((*LOC15).kind == ((Ttypekind294244) 23));
  				if (!(LOC14)) goto LA16;
  				LOC17 = (NIM_BOOL)0;
  				LOC17 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC17) goto LA18;
  				LOC17 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA18: ;
  				LOC14 = !(LOC17);
  				LA16: ;
  				if (!LOC14) goto LA19;
  				fmt0 = copyString(((NimStringDesc*) &T839829468_487));
  			}
  			goto LA12;
  			LA19: ;
  			{
  				fmt0 = copyString(((NimStringDesc*) &T839829468_488));
  			}
  			LA12: ;
  		}
  		break;
  		default:
  		{
  			NimStringDesc* LOC23;
  			NimStringDesc* LOC24;
  			LOC23 = (NimStringDesc*)0;
  			LOC24 = (NimStringDesc*)0;
  			LOC24 = typetostring_322017_3876443242(a0.t, ((Tprefereddesc322011) 0));
  			LOC23 = rawNewString(LOC24->Sup.len + 14);
  appendString(LOC23, ((NimStringDesc*) &T839829468_489));
  appendString(LOC23, LOC24);
  			internalerror_198113_155036129(LOC23);
  			fmt0 = copyString(((NimStringDesc*) &T839829468_490));
  		}
  		break;
  		}
  		memset((void*)LOC25, 0, sizeof(LOC25));
  		LOC25[0] = rdloc_540188_839829468(a0);
  		LOC25[1] = rdloc_540188_839829468(b0);
  		LOC25[2] = rdloc_540188_839829468(c0);
  		result0 = HEX25_180905_2381377266(fmt0, LOC25, 3);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		Ttype294840* LOC27;
  		initlocexpr_541283_839829468(p0, n0, (&a0));
  		LOC27 = (Ttype294840*)0;
  		LOC27 = skiptypes_298099_850551059(a0.t, IL64(211106240964864));
  		switch ((*LOC27).kind) {
  		case ((Ttypekind294244) 27):
  		case ((Ttypekind294244) 48):
  		{
  			TY180507 LOC29;
  			memset((void*)LOC29, 0, sizeof(LOC29));
  			LOC29[0] = rdloc_540188_839829468(a0);
  			result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_378), LOC29, 1);
  		}
  		break;
  		case ((Ttypekind294244) 28):
  		case ((Ttypekind294244) 24):
  		{
  			{
  				NIM_BOOL LOC33;
  				Ttype294840* LOC34;
  				NIM_BOOL LOC36;
  				TY534811 LOC40;
  				LOC33 = (NIM_BOOL)0;
  				LOC34 = (Ttype294840*)0;
  				LOC34 = skiptypes_298099_850551059((*n0).typ, IL64(211106232576256));
  				LOC33 = ((*LOC34).kind == ((Ttypekind294244) 23));
  				if (!(LOC33)) goto LA35;
  				LOC36 = (NIM_BOOL)0;
  				LOC36 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC36) goto LA37;
  				LOC36 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA37: ;
  				LOC33 = !(LOC36);
  				LA35: ;
  				if (!LOC33) goto LA38;
  				memset((void*)LOC40, 0, sizeof(LOC40));
  				LOC40[0] = rdloc_540188_839829468(a0);
  				LOC40[1] = lenfield_541305_839829468(p0);
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_491), LOC40, 2);
  			}
  			goto LA31;
  			LA38: ;
  			{
  				TY534811 LOC42;
  				memset((void*)LOC42, 0, sizeof(LOC42));
  				LOC42[0] = rdloc_540188_839829468(a0);
  				LOC42[1] = lenfield_541305_839829468(p0);
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_379), LOC42, 2);
  			}
  			LA31: ;
  		}
  		break;
  		case ((Ttypekind294244) 16):
  		case ((Ttypekind294244) 4):
  		{
  			TY534811 LOC44;
  			NI64 LOC45;
  			memset((void*)LOC44, 0, sizeof(LOC44));
  			LOC44[0] = rdloc_540188_839829468(a0);
  			LOC45 = (NI64)0;
  			LOC45 = lengthord_322007_3876443242(a0.t);
  			LOC44[1] = rope_180401_2381377266(LOC45);
  			result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_380), LOC44, 2);
  		}
  		break;
  		case ((Ttypekind294244) 21):
  		case ((Ttypekind294244) 22):
  		{
  			Ttype294840* LOC47;
  			LOC47 = (Ttype294840*)0;
  			LOC47 = lastson_297377_850551059(a0.t);
  			switch ((*LOC47).kind) {
  			case ((Ttypekind294244) 28):
  			case ((Ttypekind294244) 24):
  			{
  				TY534811 LOC49;
  				memset((void*)LOC49, 0, sizeof(LOC49));
  				LOC49[0] = rdloc_540188_839829468(a0);
  				LOC49[1] = lenfield_541305_839829468(p0);
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_491), LOC49, 2);
  			}
  			break;
  			case ((Ttypekind294244) 16):
  			case ((Ttypekind294244) 4):
  			{
  				TY534811 LOC51;
  				Ttype294840* LOC52;
  				NI64 LOC53;
  				memset((void*)LOC51, 0, sizeof(LOC51));
  				LOC51[0] = rdloc_540188_839829468(a0);
  				LOC52 = (Ttype294840*)0;
  				LOC52 = lastson_297377_850551059(a0.t);
  				LOC53 = (NI64)0;
  				LOC53 = lengthord_322007_3876443242(LOC52);
  				LOC51[1] = rope_180401_2381377266(LOC53);
  				result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_380), LOC51, 2);
  			}
  			break;
  			default:
  			{
  				NimStringDesc* LOC55;
  				NimStringDesc* LOC56;
  				LOC55 = (NimStringDesc*)0;
  				LOC56 = (NimStringDesc*)0;
  				LOC56 = typetostring_322017_3876443242(a0.t, ((Tprefereddesc322011) 0));
  				LOC55 = rawNewString(LOC56->Sup.len + 14);
  appendString(LOC55, ((NimStringDesc*) &T839829468_489));
  appendString(LOC55, LOC56);
  				internalerror_198113_155036129(LOC55);
  			}
  			break;
  			}
  		}
  		break;
  		default:
  		{
  			NimStringDesc* LOC58;
  			NimStringDesc* LOC59;
  			LOC58 = (NimStringDesc*)0;
  			LOC59 = (NimStringDesc*)0;
  			LOC59 = typetostring_322017_3876443242(a0.t, ((Tprefereddesc322011) 0));
  			LOC58 = rawNewString(LOC59->Sup.len + 14);
  appendString(LOC58, ((NimStringDesc*) &T839829468_489));
  appendString(LOC58, LOC59);
  			internalerror_198113_155036129(LOC58);
  		}
  		break;
  		}
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genarg_541787_839829468)(Tcproc531021* p0, Tnode294802* n_541790_839829468, Tsym294834* param0, Tnode294802* call0) {
  	Ropeobj180006* result0;
  	Tloc294816 a0;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		if (!((*n_541790_839829468).kind == ((Tnodekind294020) 71))) goto LA3;
  		result0 = genargstringtocstring_541776_839829468(p0, n_541790_839829468);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		Ttype294840* LOC6;
  		Tnode294802* n0;
  		LOC6 = (Ttype294840*)0;
  		LOC6 = skiptypes_298099_850551059((*param0).typ, IL64(211106240964864));
  		if (!((*LOC6).kind == ((Ttypekind294244) 27) || (*LOC6).kind == ((Ttypekind294244) 48))) goto LA7;
  		{
  			if (!!(((*n_541790_839829468).kind == ((Tnodekind294020) 64)))) goto LA11;
  			n0 = n_541790_839829468;
  		}
  		goto LA9;
  		LA11: ;
  		{
  			n0 = (*n_541790_839829468).kindU.S6.sons->data[((NI) 0)];
  		}
  		LA9: ;
  		result0 = openarrayloc_541665_839829468(p0, n0);
  	}
  	goto LA1;
  	LA7: ;
  	{
  		NIM_BOOL LOC15;
  		LOC15 = (NIM_BOOL)0;
  		LOC15 = ccgintroducedptr_535609_839829468(param0);
  		if (!LOC15) goto LA16;
  		initlocexpr_541283_839829468(p0, n_541790_839829468, (&a0));
  		result0 = addrloc_540204_839829468(a0);
  	}
  	goto LA1;
  	LA16: ;
  	{
  		NIM_BOOL LOC19;
  		NIM_BOOL LOC20;
  		NIM_BOOL LOC21;
  		Tnode294802* callee0;
  		LOC19 = (NIM_BOOL)0;
  		LOC20 = (NIM_BOOL)0;
  		LOC21 = (NIM_BOOL)0;
  		LOC21 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC21) goto LA22;
  		LOC21 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA22: ;
  		LOC20 = LOC21;
  		if (!(LOC20)) goto LA23;
  		LOC20 = ((*(*param0).typ).kind == ((Ttypekind294244) 23));
  		LA23: ;
  		LOC19 = LOC20;
  		if (!(LOC19)) goto LA24;
  		LOC19 = ((*n_541790_839829468).kind == ((Tnodekind294020) 64));
  		LA24: ;
  		if (!LOC19) goto LA25;
  		initlocexprsingleuse_541289_839829468(p0, (*n_541790_839829468).kindU.S6.sons->data[((NI) 0)], (&a0));
  		callee0 = (*call0).kindU.S6.sons->data[((NI) 0)];
  		{
  			NIM_BOOL LOC29;
  			NIM_BOOL LOC30;
  			LOC29 = (NIM_BOOL)0;
  			LOC30 = (NIM_BOOL)0;
  			LOC30 = ((*callee0).kind == ((Tnodekind294020) 3));
  			if (!(LOC30)) goto LA31;
  			LOC30 = ((134283296 & (*(*callee0).kindU.S4.sym).flags) == 32);
  			LA31: ;
  			LOC29 = LOC30;
  			if (!(LOC29)) goto LA32;
  			LOC29 = !(((72 & (*(*callee0).kindU.S4.sym).loc.flags) == 0));
  			LA32: ;
  			if (!LOC29) goto LA33;
  			result0 = addrloc_540204_839829468(a0);
  		}
  		goto LA27;
  		LA33: ;
  		{
  			result0 = rdloc_540188_839829468(a0);
  		}
  		LA27: ;
  	}
  	goto LA1;
  	LA25: ;
  	{
  		initlocexprsingleuse_541289_839829468(p0, n_541790_839829468, (&a0));
  		result0 = rdloc_540188_839829468(a0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genargnoparam_541938_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	Tloc294816 a0;
  	result0 = (Ropeobj180006*)0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		if (!((*n0).kind == ((Tnodekind294020) 71))) goto LA3;
  		result0 = genargstringtocstring_541776_839829468(p0, n0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		initlocexprsingleuse_541289_839829468(p0, n0, (&a0));
  		result0 = rdloc_540188_839829468(a0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getrawproctype_542459_839829468)(Tcproc531021* p0, Ttype294840* t0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = getclosuretype_537683_839829468((*p0).module, t0, ((Tclosuretypekind537679) 0));
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, leftappearsonrightside_541329_839829468)(Tnode294802* le0, Tnode294802* ri0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	{
  		if (!!((le0 == NIM_NIL))) goto LA3;
  		{
  			NI i_541364_839829468;
  			NI HEX3Atmp_541376_839829468;
  			NI LOC6;
  			NI res_541379_839829468;
  			i_541364_839829468 = (NI)0;
  			HEX3Atmp_541376_839829468 = (NI)0;
  			LOC6 = (NI)0;
  			LOC6 = len_295081_850551059(ri0);
  			HEX3Atmp_541376_839829468 = (LOC6 - 1);
  			res_541379_839829468 = ((NI) 1);
  			{
  				while (1) {
  					Tnode294802* r0;
  					if (!(res_541379_839829468 <= HEX3Atmp_541376_839829468)) goto LA8;
  					i_541364_839829468 = res_541379_839829468;
  					r0 = HEX5BHEX5D_295238_850551059(ri0, i_541364_839829468);
  					{
  						Tanalysisresult475003 LOC11;
  						LOC11 = (Tanalysisresult475003)0;
  						LOC11 = ispartof_475340_788060399(le0, r0);
  						if (!!((LOC11 == ((Tanalysisresult475003) 0)))) goto LA12;
  						result0 = NIM_TRUE;
  						goto BeforeRet;
  					}
  					LA12: ;
  					res_541379_839829468 += ((NI) 1);
  				} LA8: ;
  			}
  		}
  	}
  	LA3: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, hasnoinit_541383_839829468)(Tnode294802* call0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((*(*call0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  	if (!(LOC1)) goto LA2;
  	LOC1 = (((*(*(*call0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, resetloc_540350_839829468)(Tcproc531021* p0, Tloc294816* loc0) {
  	NIM_BOOL containsgcref0;
  	Ttype294840* typ0;
  {	containsgcref0 = containsgarbagecollectedref_322117_3876443242((*loc0).t);
  	typ0 = skiptypes_298099_850551059((*loc0).t, IL64(211106242013440));
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = isimportedcpptype_535476_839829468(typ0);
  		if (!LOC3) goto LA4;
  		goto BeforeRet;
  	}
  	LA4: ;
  	{
  		NIM_BOOL LOC8;
  		LOC8 = (NIM_BOOL)0;
  		LOC8 = iscomplexvaluetype_540317_839829468(typ0);
  		if (!!(LOC8)) goto LA9;
  		{
  			Tloc294816 nilloc0;
  			if (!containsgcref0) goto LA13;
  			memset((void*)(&nilloc0), 0, sizeof(nilloc0));
  			initloc_534273_839829468((&nilloc0), ((Tlockind294808) 1), (*loc0).t, ((Tstorageloc294812) 2));
  			nilloc0.r = rope_180277_2381377266(((NimStringDesc*) &T839829468_174));
  			genrefassign_540311_839829468(p0, (*loc0), nilloc0, 8);
  		}
  		goto LA11;
  		LA13: ;
  		{
  			TY180507 LOC16;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = rdloc_540188_839829468((*loc0));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_494), LOC16, 1);
  		}
  		LA11: ;
  	}
  	goto LA6;
  	LA9: ;
  	{
  		{
  			TY180507 LOC22;
  			if (!(((*p0).options &(1U<<((NU)(((Toption171009) 6))&31U)))!=0)) goto LA20;
  			memset((void*)LOC22, 0, sizeof(LOC22));
  			LOC22[0] = addrloc_540204_839829468((*loc0));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_495), LOC22, 1);
  		}
  		LA20: ;
  		{
  			TY534811 LOC27;
  			if (!!(((*loc0).s == ((Tstorageloc294812) 2)))) goto LA25;
  			memset((void*)LOC27, 0, sizeof(LOC27));
  			LOC27[0] = addrloc_540204_839829468((*loc0));
  			LOC27[1] = gentypeinfo_537941_839829468((*p0).module, (*loc0).t);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_496), LOC27, 2);
  			genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 2), (*loc0).t, (*loc0), NIM_TRUE);
  		}
  		goto LA23;
  		LA25: ;
  		{
  			TY534811 LOC29;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC29, 0, sizeof(LOC29));
  			LOC29[0] = addrloc_540204_839829468((*loc0));
  			LOC29[1] = rdloc_540188_839829468((*loc0));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_152), LOC29, 2);
  			genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 2), (*loc0).t, (*loc0), NIM_TRUE);
  		}
  		LA23: ;
  	}
  	LA6: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(Ropeobj180006*, addcomma_542464_839829468)(Ropeobj180006* r0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		if (!(r0 == NIM_NIL)) goto LA3;
  		result0 = r0;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY535289 LOC6;
  		Ropeobj180006* LOC7;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC7 = (Ropeobj180006*)0;
  		LOC7 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC6, 0);
  		result0 = HEX26_180418_2381377266(r0, LOC7);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, genclosurecall_542452_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0) {
  	Tloc294816 op0;
  	Ropeobj180006* pl0;
  	Ttype294840* typ0;
  	NI length0;
  	Ropeobj180006* rawproc0;
  	NimStringDesc* callpattern0;
  	memset((void*)(&op0), 0, sizeof(op0));
  	initlocexpr_541283_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 0)], (&op0));
  	pl0 = (Ropeobj180006*)0;
  	typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  	length0 = sonslen_297351_850551059(ri0);
  	{
  		NI i_542613_839829468;
  		NI HEX3Atmp_543214_839829468;
  		NI res_543217_839829468;
  		i_542613_839829468 = (NI)0;
  		HEX3Atmp_543214_839829468 = (NI)0;
  		HEX3Atmp_543214_839829468 = (NI)(length0 - ((NI) 1));
  		res_543217_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_543217_839829468 <= HEX3Atmp_543214_839829468)) goto LA3;
  				i_542613_839829468 = res_543217_839829468;
  				{
  					NI LOC6;
  					Tnode294802* paramtype0;
  					LOC6 = (NI)0;
  					LOC6 = sonslen_297327_850551059(typ0);
  					if (!(i_542613_839829468 < LOC6)) goto LA7;
  					paramtype0 = (*(*typ0).n).kindU.S6.sons->data[i_542613_839829468];
  					{
  						NIM_BOOL LOC11;
  						Ropeobj180006* LOC20;
  						LOC11 = (NIM_BOOL)0;
  						LOC11 = iscompiletimeonly_330706_3876443242((*paramtype0).typ);
  						if (!!(LOC11)) goto LA12;
  						{
  							TY535289 LOC18;
  							Ropeobj180006* LOC19;
  							if (!!((pl0 == NIM_NIL))) goto LA16;
  							memset((void*)LOC18, 0, sizeof(LOC18));
  							LOC19 = (Ropeobj180006*)0;
  							LOC19 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC18, 0);
  							add_180482_2381377266(&pl0, LOC19);
  						}
  						LA16: ;
  						LOC20 = (Ropeobj180006*)0;
  						LOC20 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[i_542613_839829468], (*paramtype0).kindU.S4.sym, ri0);
  						add_180482_2381377266(&pl0, LOC20);
  					}
  					LA12: ;
  				}
  				goto LA4;
  				LA7: ;
  				{
  					Ropeobj180006* LOC28;
  					{
  						TY535289 LOC26;
  						Ropeobj180006* LOC27;
  						if (!!((pl0 == NIM_NIL))) goto LA24;
  						memset((void*)LOC26, 0, sizeof(LOC26));
  						LOC27 = (Ropeobj180006*)0;
  						LOC27 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC26, 0);
  						add_180482_2381377266(&pl0, LOC27);
  					}
  					LA24: ;
  					LOC28 = (Ropeobj180006*)0;
  					LOC28 = genargnoparam_541938_839829468(p0, (*ri0).kindU.S6.sons->data[i_542613_839829468]);
  					add_180482_2381377266(&pl0, LOC28);
  				}
  				LA4: ;
  				res_543217_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	rawproc0 = getrawproctype_542459_839829468(p0, typ0);
  	{
  		if (!(((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 14))&31U)))!=0)) goto LA31;
  		callpattern0 = copyString(((NimStringDesc*) &T839829468_492));
  	}
  	goto LA29;
  	LA31: ;
  	{
  		callpattern0 = copyString(((NimStringDesc*) &T839829468_493));
  	}
  	LA29: ;
  	{
  		if (!!(((*typ0).sons->data[((NI) 0)] == NIM_NIL))) goto LA36;
  		{
  			NIM_BOOL LOC40;
  			LOC40 = (NIM_BOOL)0;
  			LOC40 = isinvalidreturntype_535548_839829468((*typ0).sons->data[((NI) 0)]);
  			if (!LOC40) goto LA41;
  			{
  				NI LOC45;
  				TY535289 LOC48;
  				Ropeobj180006* LOC49;
  				LOC45 = (NI)0;
  				LOC45 = sonslen_297351_850551059(ri0);
  				if (!(((NI) 1) < LOC45)) goto LA46;
  				memset((void*)LOC48, 0, sizeof(LOC48));
  				LOC49 = (Ropeobj180006*)0;
  				LOC49 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC48, 0);
  				add_180482_2381377266(&pl0, LOC49);
  			}
  			LA46: ;
  			{
  				NIM_BOOL LOC52;
  				NIM_BOOL LOC54;
  				Ropeobj180006* LOC67;
  				NimStringDesc* LOC68;
  				TY537235 LOC69;
  				LOC52 = (NIM_BOOL)0;
  				LOC52 = ((3 &(1U<<((NU)((*d0).k)&15U)))!=0);
  				if (LOC52) goto LA53;
  				LOC54 = (NIM_BOOL)0;
  				LOC54 = leftappearsonrightside_541329_839829468(le0, ri0);
  				LOC52 = !(LOC54);
  				LA53: ;
  				if (!LOC52) goto LA55;
  				{
  					if (!((*d0).k == ((Tlockind294808) 0))) goto LA59;
  					gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_TRUE);
  				}
  				goto LA57;
  				LA59: ;
  				{
  					NIM_BOOL LOC62;
  					NIM_BOOL LOC64;
  					LOC62 = (NIM_BOOL)0;
  					LOC62 = !(((66 &(1U<<((NU)((*d0).k)&15U)))!=0));
  					if (!(LOC62)) goto LA63;
  					LOC64 = (NIM_BOOL)0;
  					LOC64 = hasnoinit_541383_839829468(ri0);
  					LOC62 = !(LOC64);
  					LA63: ;
  					if (!LOC62) goto LA65;
  					resetloc_540350_839829468(p0, d0);
  				}
  				goto LA57;
  				LA65: ;
  				LA57: ;
  				LOC67 = (Ropeobj180006*)0;
  				LOC67 = addrloc_540204_839829468((*d0));
  				add_180482_2381377266(&pl0, LOC67);
  				LOC68 = (NimStringDesc*)0;
  				LOC68 = rawNewString(callpattern0->Sup.len + 3);
  appendString(LOC68, callpattern0);
  appendString(LOC68, ((NimStringDesc*) &T839829468_497));
  				memset((void*)LOC69, 0, sizeof(LOC69));
  				LOC69[0] = op0.r;
  				LOC69[1] = pl0;
  				LOC69[2] = addcomma_542464_839829468(pl0);
  				LOC69[3] = rawproc0;
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), LOC68, LOC69, 4);
  			}
  			goto LA50;
  			LA55: ;
  			{
  				Tloc294816 tmp0;
  				Ropeobj180006* LOC71;
  				NimStringDesc* LOC72;
  				TY537235 LOC73;
  				memset((void*)(&tmp0), 0, sizeof(tmp0));
  				gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], (&tmp0), NIM_TRUE);
  				LOC71 = (Ropeobj180006*)0;
  				LOC71 = addrloc_540204_839829468(tmp0);
  				add_180482_2381377266(&pl0, LOC71);
  				LOC72 = (NimStringDesc*)0;
  				LOC72 = rawNewString(callpattern0->Sup.len + 3);
  appendString(LOC72, callpattern0);
  appendString(LOC72, ((NimStringDesc*) &T839829468_497));
  				memset((void*)LOC73, 0, sizeof(LOC73));
  				LOC73[0] = op0.r;
  				LOC73[1] = pl0;
  				LOC73[2] = addcomma_542464_839829468(pl0);
  				LOC73[3] = rawproc0;
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), LOC72, LOC73, 4);
  				genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  			}
  			LA50: ;
  		}
  		goto LA38;
  		LA41: ;
  		{
  			Tloc294816 list0;
  			TY537235 LOC79;
  			{
  				if (!((*d0).k == ((Tlockind294808) 0))) goto LA77;
  				gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_FALSE);
  			}
  			LA77: ;
  			memset((void*)(&list0), 0, sizeof(list0));
  			initloc_534273_839829468((&list0), ((Tlockind294808) 9), (*d0).t, ((Tstorageloc294812) 0));
  			memset((void*)LOC79, 0, sizeof(LOC79));
  			LOC79[0] = op0.r;
  			LOC79[1] = pl0;
  			LOC79[2] = addcomma_542464_839829468(pl0);
  			LOC79[3] = rawproc0;
  			list0.r = HEX25_180905_2381377266(callpattern0, LOC79, 4);
  			genassignment_541264_839829468(p0, (*d0), list0, 0);
  		}
  		LA38: ;
  	}
  	goto LA34;
  	LA36: ;
  	{
  		NimStringDesc* LOC81;
  		TY537235 LOC82;
  		LOC81 = (NimStringDesc*)0;
  		LOC81 = rawNewString(callpattern0->Sup.len + 3);
  appendString(LOC81, callpattern0);
  appendString(LOC81, ((NimStringDesc*) &T839829468_497));
  		memset((void*)LOC82, 0, sizeof(LOC82));
  		LOC82[0] = op0.r;
  		LOC82[1] = pl0;
  		LOC82[2] = addcomma_542464_839829468(pl0);
  		LOC82[3] = rawproc0;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), LOC81, LOC82, 4);
  	}
  	LA34: ;
  }
  
  N_NIMCALL(Ropeobj180006*, genotherarg_541277_839829468)(Tcproc531021* p0, Tnode294802* ri0, NI i0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NI LOC3;
  		Tnode294802* paramtype0;
  		LOC3 = (NI)0;
  		LOC3 = sonslen_297327_850551059(typ0);
  		if (!(i0 < LOC3)) goto LA4;
  		paramtype0 = (*(*typ0).n).kindU.S6.sons->data[i0];
  		{
  			NIM_BOOL LOC8;
  			LOC8 = (NIM_BOOL)0;
  			LOC8 = iscompiletimeonly_330706_3876443242((*paramtype0).typ);
  			if (!LOC8) goto LA9;
  			result0 = NIM_NIL;
  		}
  		goto LA6;
  		LA9: ;
  		{
  			NIM_BOOL LOC12;
  			Tnode294802* LOC16;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = ((*(*typ0).sons->data[i0]).kind == ((Ttypekind294244) 23));
  			if (!(LOC12)) goto LA13;
  			LOC12 = ((*(*ri0).kindU.S6.sons->data[i0]).kind == ((Tnodekind294020) 64));
  			LA13: ;
  			if (!LOC12) goto LA14;
  			LOC16 = (Tnode294802*)0;
  			LOC16 = HEX5BHEX5D_295238_850551059((*ri0).kindU.S6.sons->data[i0], ((NI) 0));
  			result0 = genargnoparam_541938_839829468(p0, LOC16);
  		}
  		goto LA6;
  		LA14: ;
  		{
  			result0 = genargnoparam_541938_839829468(p0, (*ri0).kindU.S6.sons->data[i0]);
  		}
  		LA6: ;
  	}
  	goto LA1;
  	LA4: ;
  	{
  		{
  			if (!!((((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 0))&31U)))!=0))) goto LA21;
  			localerror_198085_155036129((*ri0).info, ((NimStringDesc*) &T839829468_501));
  			result0 = NIM_NIL;
  		}
  		goto LA19;
  		LA21: ;
  		{
  			result0 = genargnoparam_541938_839829468(p0, (*ri0).kindU.S6.sons->data[i0]);
  		}
  		LA19: ;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode294802*, skipaddrderef_543433_839829468)(Tnode294802* node0) {
  	Tnode294802* result0;
  	Tnode294802* n0;
  	NIM_BOOL isaddr0;
  {	result0 = (Tnode294802*)0;
  	n0 = node0;
  	isaddr0 = NIM_FALSE;
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 63):
  	case ((Tnodekind294020) 64):
  	{
  		n0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  		isaddr0 = NIM_TRUE;
  	}
  	break;
  	case ((Tnodekind294020) 47):
  	case ((Tnodekind294020) 65):
  	{
  		n0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  	}
  	break;
  	default:
  	{
  		result0 = n0;
  		goto BeforeRet;
  	}
  	break;
  	}
  	{
  		if (!((*n0).kind == ((Tnodekind294020) 66))) goto LA6;
  		n0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  	}
  	LA6: ;
  	{
  		NIM_BOOL LOC10;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = isaddr0;
  		if (!(LOC10)) goto LA11;
  		LOC10 = ((*n0).kind == ((Tnodekind294020) 47) || (*n0).kind == ((Tnodekind294020) 65));
  		LA11: ;
  		if (!LOC10) goto LA12;
  		result0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  	}
  	goto LA8;
  	LA12: ;
  	{
  		if (!((*n0).kind == ((Tnodekind294020) 63) || (*n0).kind == ((Tnodekind294020) 64))) goto LA15;
  		result0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  	}
  	goto LA8;
  	LA15: ;
  	{
  		result0 = node0;
  	}
  	LA8: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genthisarg_543475_839829468)(Tcproc531021* p0, Tnode294802* ri_543478_839829468, NI i0, Ttype294840* typ0) {
  	Ropeobj180006* result0;
  	Tnode294802* ri0;
  	Ttype294840* t0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NI LOC3;
  		NimStringDesc* LOC6;
  		LOC3 = (NI)0;
  		LOC3 = sonslen_297327_850551059(typ0);
  		if (!!((i0 < LOC3))) goto LA4;
  		LOC6 = (NimStringDesc*)0;
  		LOC6 = HEX24_198185_1689653243(T839829468_503);
  		internalerror_198113_155036129(LOC6);
  	}
  	LA4: ;
  	ri0 = HEX5BHEX5D_295238_850551059(ri_543478_839829468, i0);
  	{
  		while (1) {
  			if (!((*ri0).kind == ((Tnodekind294020) 66))) goto LA8;
  			ri0 = HEX5BHEX5D_295238_850551059(ri0, ((NI) 0));
  		} LA8: ;
  	}
  	t0 = skiptypes_298099_850551059((*typ0).sons->data[i0], 2048);
  	{
  		Tnode294802* x0;
  		if (!((*t0).kind == ((Ttypekind294244) 23))) goto LA11;
  		{
  			if (!((*ri0).kind == ((Tnodekind294020) 64))) goto LA15;
  			x0 = HEX5BHEX5D_295238_850551059(ri0, ((NI) 0));
  		}
  		goto LA13;
  		LA15: ;
  		{
  			x0 = ri0;
  		}
  		LA13: ;
  		{
  			if (!((*(*x0).typ).kind == ((Ttypekind294244) 21))) goto LA20;
  			result0 = genargnoparam_541938_839829468(p0, x0);
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_504));
  		}
  		goto LA18;
  		LA20: ;
  		{
  			NIM_BOOL LOC23;
  			Tnode294802* LOC25;
  			Tnode294802* LOC28;
  			LOC23 = (NIM_BOOL)0;
  			LOC23 = ((*x0).kind == ((Tnodekind294020) 65) || (*x0).kind == ((Tnodekind294020) 47));
  			if (!(LOC23)) goto LA24;
  			LOC25 = (Tnode294802*)0;
  			LOC25 = HEX5BHEX5D_295238_850551059(x0, ((NI) 0));
  			LOC23 = ((*(*LOC25).typ).kind == ((Ttypekind294244) 21));
  			LA24: ;
  			if (!LOC23) goto LA26;
  			LOC28 = (Tnode294802*)0;
  			LOC28 = HEX5BHEX5D_295238_850551059(x0, ((NI) 0));
  			result0 = genargnoparam_541938_839829468(p0, LOC28);
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_504));
  		}
  		goto LA18;
  		LA26: ;
  		{
  			result0 = genargnoparam_541938_839829468(p0, x0);
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_257));
  		}
  		LA18: ;
  	}
  	goto LA9;
  	LA11: ;
  	{
  		if (!((*t0).kind == ((Ttypekind294244) 21))) goto LA31;
  		{
  			Tnode294802* LOC37;
  			if (!((*ri0).kind == ((Tnodekind294020) 63) || (*ri0).kind == ((Tnodekind294020) 64))) goto LA35;
  			LOC37 = (Tnode294802*)0;
  			LOC37 = HEX5BHEX5D_295238_850551059(ri0, ((NI) 0));
  			result0 = genargnoparam_541938_839829468(p0, LOC37);
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_257));
  		}
  		goto LA33;
  		LA35: ;
  		{
  			result0 = genargnoparam_541938_839829468(p0, ri0);
  			add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_504));
  		}
  		LA33: ;
  	}
  	goto LA9;
  	LA31: ;
  	{
  		ri0 = skipaddrderef_543433_839829468(ri0);
  		{
  			if (!((*ri0).kind == ((Tnodekind294020) 63) || (*ri0).kind == ((Tnodekind294020) 64))) goto LA42;
  			ri0 = HEX5BHEX5D_295238_850551059(ri0, ((NI) 0));
  		}
  		LA42: ;
  		result0 = genargnoparam_541938_839829468(p0, ri0);
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_257));
  	}
  	LA9: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, genpatterncall_543699_839829468)(Tcproc531021* p0, Tnode294802* ri_543702_839829468, NimStringDesc* pat0, Ttype294840* typ_543704_839829468) {
  	Ropeobj180006* result0;
  	NI i0;
  	NI j0;
  	result0 = (Ropeobj180006*)0;
  	i0 = ((NI) 0);
  	j0 = ((NI) 1);
  	{
  		while (1) {
  			if (!(i0 < (pat0 ? pat0->Sup.len : 0))) goto LA2;
  			switch (((NU8)(pat0->data[i0]))) {
  			case 64:
  			{
  				{
  					NI LOC6;
  					Ropeobj180006* LOC9;
  					LOC6 = (NI)0;
  					LOC6 = len_295081_850551059(ri_543702_839829468);
  					if (!(j0 < LOC6)) goto LA7;
  					LOC9 = (Ropeobj180006*)0;
  					LOC9 = genotherarg_541277_839829468(p0, ri_543702_839829468, j0, typ_543704_839829468);
  					add_180482_2381377266(&result0, LOC9);
  					{
  						NI k_543728_839829468;
  						NI HEX3Atmp_543904_839829468;
  						NI HEX3Atmp_543905_839829468;
  						NI LOC11;
  						NI res_543908_839829468;
  						k_543728_839829468 = (NI)0;
  						HEX3Atmp_543904_839829468 = (NI)0;
  						HEX3Atmp_543905_839829468 = (NI)0;
  						HEX3Atmp_543904_839829468 = (NI)(j0 + ((NI) 1));
  						LOC11 = (NI)0;
  						LOC11 = len_295081_850551059(ri_543702_839829468);
  						HEX3Atmp_543905_839829468 = (LOC11 - 1);
  						res_543908_839829468 = HEX3Atmp_543904_839829468;
  						{
  							while (1) {
  								TY535289 LOC14;
  								Ropeobj180006* LOC15;
  								Ropeobj180006* LOC16;
  								if (!(res_543908_839829468 <= HEX3Atmp_543905_839829468)) goto LA13;
  								k_543728_839829468 = res_543908_839829468;
  								memset((void*)LOC14, 0, sizeof(LOC14));
  								LOC15 = (Ropeobj180006*)0;
  								LOC15 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC14, 0);
  								add_180482_2381377266(&result0, LOC15);
  								LOC16 = (Ropeobj180006*)0;
  								LOC16 = genotherarg_541277_839829468(p0, ri_543702_839829468, k_543728_839829468, typ_543704_839829468);
  								add_180482_2381377266(&result0, LOC16);
  								res_543908_839829468 += ((NI) 1);
  							} LA13: ;
  						}
  					}
  				}
  				LA7: ;
  				i0 += ((NI) 1);
  			}
  			break;
  			case 35:
  			{
  				{
  					Tnode294802* ri0;
  					if (!(((NU8)(pat0->data[(NI)(i0 + ((NI) 1))])) == ((NU8)(43)) || ((NU8)(pat0->data[(NI)(i0 + ((NI) 1))])) == ((NU8)(64)))) goto LA20;
  					ri0 = HEX5BHEX5D_295238_850551059(ri_543702_839829468, j0);
  					{
  						Ttype294840* typ0;
  						TY535289 LOC31;
  						Ropeobj180006* LOC32;
  						TY535289 LOC46;
  						Ropeobj180006* LOC47;
  						if (!((*ri0).kind == ((Tnodekind294020) 27) || (*ri0).kind == ((Tnodekind294020) 29) || (*ri0).kind == ((Tnodekind294020) 30) || (*ri0).kind == ((Tnodekind294020) 31) || (*ri0).kind == ((Tnodekind294020) 26) || (*ri0).kind == ((Tnodekind294020) 28) || (*ri0).kind == ((Tnodekind294020) 32))) goto LA24;
  						typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  						{
  							Ropeobj180006* LOC30;
  							if (!((NU8)(pat0->data[(NI)(i0 + ((NI) 1))]) == (NU8)(43))) goto LA28;
  							LOC30 = (Ropeobj180006*)0;
  							LOC30 = genargnoparam_541938_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 0)]);
  							add_180482_2381377266(&result0, LOC30);
  						}
  						LA28: ;
  						memset((void*)LOC31, 0, sizeof(LOC31));
  						LOC32 = (Ropeobj180006*)0;
  						LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_118), LOC31, 0);
  						add_180482_2381377266(&result0, LOC32);
  						{
  							NI LOC35;
  							Ropeobj180006* LOC38;
  							LOC35 = (NI)0;
  							LOC35 = len_295081_850551059(ri0);
  							if (!(((NI) 1) < LOC35)) goto LA36;
  							LOC38 = (Ropeobj180006*)0;
  							LOC38 = genotherarg_541277_839829468(p0, ri0, ((NI) 1), typ0);
  							add_180482_2381377266(&result0, LOC38);
  						}
  						LA36: ;
  						{
  							NI k_543793_839829468;
  							NI HEX3Atmp_543915_839829468;
  							NI HEX3Atmp_543916_839829468;
  							NI LOC40;
  							NI res_543919_839829468;
  							k_543793_839829468 = (NI)0;
  							HEX3Atmp_543915_839829468 = (NI)0;
  							HEX3Atmp_543916_839829468 = (NI)0;
  							HEX3Atmp_543915_839829468 = (NI)(j0 + ((NI) 1));
  							LOC40 = (NI)0;
  							LOC40 = len_295081_850551059(ri0);
  							HEX3Atmp_543916_839829468 = (LOC40 - 1);
  							res_543919_839829468 = HEX3Atmp_543915_839829468;
  							{
  								while (1) {
  									TY535289 LOC43;
  									Ropeobj180006* LOC44;
  									Ropeobj180006* LOC45;
  									if (!(res_543919_839829468 <= HEX3Atmp_543916_839829468)) goto LA42;
  									k_543793_839829468 = res_543919_839829468;
  									memset((void*)LOC43, 0, sizeof(LOC43));
  									LOC44 = (Ropeobj180006*)0;
  									LOC44 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC43, 0);
  									add_180482_2381377266(&result0, LOC44);
  									LOC45 = (Ropeobj180006*)0;
  									LOC45 = genotherarg_541277_839829468(p0, ri0, k_543793_839829468, typ0);
  									add_180482_2381377266(&result0, LOC45);
  									res_543919_839829468 += ((NI) 1);
  								} LA42: ;
  							}
  						}
  						memset((void*)LOC46, 0, sizeof(LOC46));
  						LOC47 = (Ropeobj180006*)0;
  						LOC47 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_117), LOC46, 0);
  						add_180482_2381377266(&result0, LOC47);
  					}
  					goto LA22;
  					LA24: ;
  					{
  						localerror_198085_155036129((*ri0).info, ((NimStringDesc*) &T839829468_502));
  					}
  					LA22: ;
  					i0 += ((NI) 1);
  				}
  				goto LA18;
  				LA20: ;
  				{
  					Ropeobj180006* LOC52;
  					if (!((NU8)(pat0->data[(NI)(i0 + ((NI) 1))]) == (NU8)(46))) goto LA50;
  					LOC52 = (Ropeobj180006*)0;
  					LOC52 = genthisarg_543475_839829468(p0, ri_543702_839829468, j0, typ_543704_839829468);
  					add_180482_2381377266(&result0, LOC52);
  					i0 += ((NI) 1);
  				}
  				goto LA18;
  				LA50: ;
  				{
  					Tnode294802* arg0;
  					Ropeobj180006* LOC58;
  					if (!((NU8)(pat0->data[(NI)(i0 + ((NI) 1))]) == (NU8)(91))) goto LA54;
  					arg0 = skipaddrderef_543433_839829468((*ri_543702_839829468).kindU.S6.sons->data[j0]);
  					{
  						while (1) {
  							if (!((*arg0).kind == ((Tnodekind294020) 63) || (*arg0).kind == ((Tnodekind294020) 64) || (*arg0).kind == ((Tnodekind294020) 66))) goto LA57;
  							arg0 = HEX5BHEX5D_295238_850551059(arg0, ((NI) 0));
  						} LA57: ;
  					}
  					LOC58 = (Ropeobj180006*)0;
  					LOC58 = genargnoparam_541938_839829468(p0, arg0);
  					add_180482_2381377266(&result0, LOC58);
  				}
  				goto LA18;
  				LA54: ;
  				{
  					Ropeobj180006* LOC60;
  					LOC60 = (Ropeobj180006*)0;
  					LOC60 = genotherarg_541277_839829468(p0, ri_543702_839829468, j0, typ_543704_839829468);
  					add_180482_2381377266(&result0, LOC60);
  				}
  				LA18: ;
  				j0 += ((NI) 1);
  				i0 += ((NI) 1);
  			}
  			break;
  			case 39:
  			{
  				NI idx0;
  				NI stars0;
  				idx0 = (NI)0;
  				stars0 = (NI)0;
  				{
  					NIM_BOOL LOC64;
  					Ttype294840* t0;
  					LOC64 = (NIM_BOOL)0;
  					LOC64 = scancppgenericslot_536827_839829468(pat0, (&i0), (&idx0), (&stars0));
  					if (!LOC64) goto LA65;
  					t0 = resolvestarsincpptype_536891_839829468(typ_543704_839829468, idx0, stars0);
  					{
  						TY535289 LOC71;
  						Ropeobj180006* LOC72;
  						if (!(t0 == NIM_NIL)) goto LA69;
  						memset((void*)LOC71, 0, sizeof(LOC71));
  						LOC72 = (Ropeobj180006*)0;
  						LOC72 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_26), LOC71, 0);
  						add_180482_2381377266(&result0, LOC72);
  					}
  					goto LA67;
  					LA69: ;
  					{
  						Ropeobj180006* LOC74;
  						LOC74 = (Ropeobj180006*)0;
  						LOC74 = gettypedesc_537671_839829468((*p0).module, t0);
  						add_180482_2381377266(&result0, LOC74);
  					}
  					LA67: ;
  				}
  				LA65: ;
  			}
  			break;
  			default:
  			{
  				NI start0;
  				start0 = i0;
  				{
  					while (1) {
  						if (!(i0 < (pat0 ? pat0->Sup.len : 0))) goto LA77;
  						{
  							if (!!((((NU8)(pat0->data[i0])) == ((NU8)(64)) || ((NU8)(pat0->data[i0])) == ((NU8)(35)) || ((NU8)(pat0->data[i0])) == ((NU8)(39))))) goto LA80;
  							i0 += ((NI) 1);
  						}
  						goto LA78;
  						LA80: ;
  						{
  							goto LA76;
  						}
  						LA78: ;
  					} LA77: ;
  				} LA76: ;
  				{
  					NimStringDesc* LOC87;
  					if (!(start0 <= (NI)(i0 - ((NI) 1)))) goto LA85;
  					LOC87 = (NimStringDesc*)0;
  					LOC87 = copyStrLast(pat0, start0, (NI)(i0 - ((NI) 1)));
  					add_180487_2381377266(&result0, LOC87);
  				}
  				LA85: ;
  			}
  			break;
  			}
  		} LA2: ;
  	}
  	return result0;
  }
  
  N_NIMCALL(void, fixupcall_541410_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0, Ropeobj180006* callee0, Ropeobj180006* params0) {
  	Ropeobj180006* pl0;
  	TY535289 LOC1;
  	Ropeobj180006* LOC2;
  	Ropeobj180006* LOC3;
  	Ttype294840* typ0;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_118), LOC1, 0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = HEX26_180418_2381377266(callee0, LOC2);
  	pl0 = HEX26_180418_2381377266(LOC3, params0);
  	typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  	{
  		if (!!(((*typ0).sons->data[((NI) 0)] == NIM_NIL))) goto LA6;
  		{
  			NIM_BOOL LOC10;
  			LOC10 = (NIM_BOOL)0;
  			LOC10 = isinvalidreturntype_535548_839829468((*typ0).sons->data[((NI) 0)]);
  			if (!LOC10) goto LA11;
  			{
  				TY535289 LOC17;
  				Ropeobj180006* LOC18;
  				if (!!((params0 == NIM_NIL))) goto LA15;
  				memset((void*)LOC17, 0, sizeof(LOC17));
  				LOC18 = (Ropeobj180006*)0;
  				LOC18 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC17, 0);
  				add_180482_2381377266(&pl0, LOC18);
  			}
  			LA15: ;
  			{
  				NIM_BOOL LOC21;
  				NIM_BOOL LOC23;
  				Ropeobj180006* LOC36;
  				TY535289 LOC37;
  				Ropeobj180006* LOC38;
  				LOC21 = (NIM_BOOL)0;
  				LOC21 = ((3 &(1U<<((NU)((*d0).k)&15U)))!=0);
  				if (LOC21) goto LA22;
  				LOC23 = (NIM_BOOL)0;
  				LOC23 = leftappearsonrightside_541329_839829468(le0, ri0);
  				LOC21 = !(LOC23);
  				LA22: ;
  				if (!LOC21) goto LA24;
  				{
  					if (!((*d0).k == ((Tlockind294808) 0))) goto LA28;
  					gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_TRUE);
  				}
  				goto LA26;
  				LA28: ;
  				{
  					NIM_BOOL LOC31;
  					NIM_BOOL LOC33;
  					LOC31 = (NIM_BOOL)0;
  					LOC31 = !(((66 &(1U<<((NU)((*d0).k)&15U)))!=0));
  					if (!(LOC31)) goto LA32;
  					LOC33 = (NIM_BOOL)0;
  					LOC33 = hasnoinit_541383_839829468(ri0);
  					LOC31 = !(LOC33);
  					LA32: ;
  					if (!LOC31) goto LA34;
  					resetloc_540350_839829468(p0, d0);
  				}
  				goto LA26;
  				LA34: ;
  				LA26: ;
  				LOC36 = (Ropeobj180006*)0;
  				LOC36 = addrloc_540204_839829468((*d0));
  				add_180482_2381377266(&pl0, LOC36);
  				memset((void*)LOC37, 0, sizeof(LOC37));
  				LOC38 = (Ropeobj180006*)0;
  				LOC38 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_505), LOC37, 0);
  				add_180482_2381377266(&pl0, LOC38);
  				line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  			}
  			goto LA19;
  			LA24: ;
  			{
  				Tloc294816 tmp0;
  				Ropeobj180006* LOC40;
  				TY535289 LOC41;
  				Ropeobj180006* LOC42;
  				memset((void*)(&tmp0), 0, sizeof(tmp0));
  				gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], (&tmp0), NIM_TRUE);
  				LOC40 = (Ropeobj180006*)0;
  				LOC40 = addrloc_540204_839829468(tmp0);
  				add_180482_2381377266(&pl0, LOC40);
  				memset((void*)LOC41, 0, sizeof(LOC41));
  				LOC42 = (Ropeobj180006*)0;
  				LOC42 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_505), LOC41, 0);
  				add_180482_2381377266(&pl0, LOC42);
  				line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  				genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  			}
  			LA19: ;
  		}
  		goto LA8;
  		LA11: ;
  		{
  			TY535289 LOC44;
  			Ropeobj180006* LOC45;
  			memset((void*)LOC44, 0, sizeof(LOC44));
  			LOC45 = (Ropeobj180006*)0;
  			LOC45 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_117), LOC44, 0);
  			add_180482_2381377266(&pl0, LOC45);
  			{
  				NIM_BOOL LOC48;
  				NIM_BOOL LOC49;
  				LOC48 = (NIM_BOOL)0;
  				LOC49 = (NIM_BOOL)0;
  				LOC49 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC49) goto LA50;
  				LOC49 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA50: ;
  				LOC48 = LOC49;
  				if (!(LOC48)) goto LA51;
  				LOC48 = (((*d0).flags &(1U<<((NU)(((Tlocflag294810) 8))&15U)))!=0);
  				LA51: ;
  				if (!LOC48) goto LA52;
  				(*d0).k = ((Tlockind294808) 9);
  				unsureAsgnRef((void**) (&(*d0).r), pl0);
  				(*d0).flags &= ~(((NU16)1) << ((((Tlocflag294810) 8)) % (sizeof(NU16)*8)));
  			}
  			goto LA46;
  			LA52: ;
  			{
  				Tloc294816 list0;
  				{
  					if (!((*d0).k == ((Tlockind294808) 0))) goto LA57;
  					gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_FALSE);
  				}
  				LA57: ;
  				memset((void*)(&list0), 0, sizeof(list0));
  				initloc_534273_839829468((&list0), ((Tlockind294808) 9), (*d0).t, ((Tstorageloc294812) 0));
  				list0.r = pl0;
  				genassignment_541264_839829468(p0, (*d0), list0, 0);
  			}
  			LA46: ;
  		}
  		LA8: ;
  	}
  	goto LA4;
  	LA6: ;
  	{
  		TY535289 LOC60;
  		Ropeobj180006* LOC61;
  		memset((void*)LOC60, 0, sizeof(LOC60));
  		LOC61 = (Ropeobj180006*)0;
  		LOC61 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_505), LOC60, 0);
  		add_180482_2381377266(&pl0, LOC61);
  		line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  	}
  	LA4: ;
  }
  
  N_NIMCALL(void, geninfixcall_543929_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0) {
  	Tloc294816 op0;
  	Ttype294840* typ_543940_839829468;
  	NI length0;
  	NimStringDesc* pat0;
  	memset((void*)(&op0), 0, sizeof(op0));
  	initlocexpr_541283_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 0)], (&op0));
  	typ_543940_839829468 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  	length0 = sonslen_297351_850551059(ri0);
  	pat0 = (*(*(*(*ri0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).loc.r).data;
  	{
  		NimStringDesc* LOC5;
  		if (!!(!((pat0 == NIM_NIL)))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = HEX24_198185_1689653243(T839829468_498);
  		internalerror_198113_155036129(LOC5);
  	}
  	LA3: ;
  	{
  		NIM_BOOL LOC8;
  		Ropeobj180006* pl0;
  		Ttype294840* typ0;
  		LOC8 = (NIM_BOOL)0;
  		LOC8 = contains_110056_4286263276(pat0, T839829468_500);
  		if (!LOC8) goto LA9;
  		pl0 = genpatterncall_543699_839829468(p0, ri0, pat0, typ_543940_839829468);
  		typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  		{
  			if (!!(((*typ0).sons->data[((NI) 0)] == NIM_NIL))) goto LA13;
  			{
  				NIM_BOOL LOC17;
  				NIM_BOOL LOC18;
  				LOC17 = (NIM_BOOL)0;
  				LOC18 = (NIM_BOOL)0;
  				LOC18 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC18) goto LA19;
  				LOC18 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA19: ;
  				LOC17 = LOC18;
  				if (!(LOC17)) goto LA20;
  				LOC17 = (((*d0).flags &(1U<<((NU)(((Tlocflag294810) 8))&15U)))!=0);
  				LA20: ;
  				if (!LOC17) goto LA21;
  				(*d0).k = ((Tlockind294808) 9);
  				unsureAsgnRef((void**) (&(*d0).r), pl0);
  				(*d0).flags &= ~(((NU16)1) << ((((Tlocflag294810) 8)) % (sizeof(NU16)*8)));
  			}
  			goto LA15;
  			LA21: ;
  			{
  				Tloc294816 list0;
  				{
  					if (!((*d0).k == ((Tlockind294808) 0))) goto LA26;
  					gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_FALSE);
  				}
  				LA26: ;
  				memset((void*)(&list0), 0, sizeof(list0));
  				initloc_534273_839829468((&list0), ((Tlockind294808) 9), (*d0).t, ((Tstorageloc294812) 0));
  				list0.r = pl0;
  				genassignment_541264_839829468(p0, (*d0), list0, 0);
  			}
  			LA15: ;
  		}
  		goto LA11;
  		LA13: ;
  		{
  			TY535289 LOC29;
  			Ropeobj180006* LOC30;
  			memset((void*)LOC29, 0, sizeof(LOC29));
  			LOC30 = (Ropeobj180006*)0;
  			LOC30 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_497), LOC29, 0);
  			add_180482_2381377266(&pl0, LOC30);
  			line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  		}
  		LA11: ;
  	}
  	goto LA6;
  	LA9: ;
  	{
  		Ropeobj180006* pl0;
  		Ropeobj180006* params0;
  		pl0 = NIM_NIL;
  		{
  			NI LOC34;
  			Ropeobj180006* LOC37;
  			LOC34 = (NI)0;
  			LOC34 = len_295081_850551059(ri0);
  			if (!(((NI) 1) < LOC34)) goto LA35;
  			LOC37 = (Ropeobj180006*)0;
  			LOC37 = genthisarg_543475_839829468(p0, ri0, ((NI) 1), typ_543940_839829468);
  			add_180482_2381377266(&pl0, LOC37);
  		}
  		LA35: ;
  		add_180482_2381377266(&pl0, op0.r);
  		params0 = (Ropeobj180006*)0;
  		{
  			NI i_544425_839829468;
  			NI HEX3Atmp_544609_839829468;
  			NI res_544612_839829468;
  			i_544425_839829468 = (NI)0;
  			HEX3Atmp_544609_839829468 = (NI)0;
  			HEX3Atmp_544609_839829468 = (NI)(length0 - ((NI) 1));
  			res_544612_839829468 = ((NI) 2);
  			{
  				while (1) {
  					Ropeobj180006* LOC47;
  					if (!(res_544612_839829468 <= HEX3Atmp_544609_839829468)) goto LA40;
  					i_544425_839829468 = res_544612_839829468;
  					{
  						TY535289 LOC45;
  						Ropeobj180006* LOC46;
  						if (!!((params0 == NIM_NIL))) goto LA43;
  						memset((void*)LOC45, 0, sizeof(LOC45));
  						LOC46 = (Ropeobj180006*)0;
  						LOC46 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC45, 0);
  						add_180482_2381377266(&params0, LOC46);
  					}
  					LA43: ;
  					LOC47 = (Ropeobj180006*)0;
  					LOC47 = genotherarg_541277_839829468(p0, ri0, i_544425_839829468, typ_543940_839829468);
  					add_180482_2381377266(&params0, LOC47);
  					res_544612_839829468 += ((NI) 1);
  				} LA40: ;
  			}
  		}
  		fixupcall_541410_839829468(p0, le0, ri0, d0, pl0, params0);
  	}
  	LA6: ;
  }
  
  N_NIMCALL(void, gennamedparamcall_544616_839829468)(Tcproc531021* p0, Tnode294802* ri0, Tloc294816* d0) {
  	Tloc294816 op0;
  	Ropeobj180006* pl0;
  	TY535289 LOC1;
  	Ttype294840* typ0;
  	NI length0;
  	NimStringDesc* pat0;
  	NI start0;
  	memset((void*)(&op0), 0, sizeof(op0));
  	initlocexpr_541283_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 0)], (&op0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	pl0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_506), LOC1, 0);
  	typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  	length0 = sonslen_297351_850551059(ri0);
  	pat0 = (*(*(*(*ri0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).loc.r).data;
  	{
  		NimStringDesc* LOC6;
  		if (!!(!((pat0 == NIM_NIL)))) goto LA4;
  		LOC6 = (NimStringDesc*)0;
  		LOC6 = HEX24_198185_1689653243(T839829468_507);
  		internalerror_198113_155036129(LOC6);
  	}
  	LA4: ;
  	start0 = ((NI) 3);
  	{
  		NIM_BOOL LOC9;
  		LOC9 = (NIM_BOOL)0;
  		LOC9 = contains_110046_4286263276(pat0, 32);
  		if (!LOC9) goto LA10;
  		start0 = ((NI) 1);
  		add_180482_2381377266(&pl0, op0.r);
  		{
  			TY535289 LOC16;
  			Ropeobj180006* LOC17;
  			Ropeobj180006* LOC18;
  			if (!(((NI) 1) < length0)) goto LA14;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC17 = (Ropeobj180006*)0;
  			LOC17 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_244), LOC16, 0);
  			add_180482_2381377266(&pl0, LOC17);
  			LOC18 = (Ropeobj180006*)0;
  			LOC18 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 1)], (*(*(*typ0).n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym, ri0);
  			add_180482_2381377266(&pl0, LOC18);
  			start0 = ((NI) 2);
  		}
  		LA14: ;
  	}
  	goto LA7;
  	LA10: ;
  	{
  		{
  			Ropeobj180006* LOC24;
  			TY535289 LOC25;
  			Ropeobj180006* LOC26;
  			if (!(((NI) 1) < length0)) goto LA22;
  			LOC24 = (Ropeobj180006*)0;
  			LOC24 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 1)], (*(*(*typ0).n).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym, ri0);
  			add_180482_2381377266(&pl0, LOC24);
  			memset((void*)LOC25, 0, sizeof(LOC25));
  			LOC26 = (Ropeobj180006*)0;
  			LOC26 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_111), LOC25, 0);
  			add_180482_2381377266(&pl0, LOC26);
  		}
  		LA22: ;
  		add_180482_2381377266(&pl0, op0.r);
  		{
  			TY535289 LOC31;
  			Ropeobj180006* LOC32;
  			Ropeobj180006* LOC33;
  			if (!(((NI) 2) < length0)) goto LA29;
  			memset((void*)LOC31, 0, sizeof(LOC31));
  			LOC32 = (Ropeobj180006*)0;
  			LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_244), LOC31, 0);
  			add_180482_2381377266(&pl0, LOC32);
  			LOC33 = (Ropeobj180006*)0;
  			LOC33 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 2)], (*(*(*typ0).n).kindU.S6.sons->data[((NI) 2)]).kindU.S4.sym, ri0);
  			add_180482_2381377266(&pl0, LOC33);
  		}
  		LA29: ;
  	}
  	LA7: ;
  	{
  		NI i_545051_839829468;
  		NI HEX3Atmp_545617_839829468;
  		NI res_545620_839829468;
  		i_545051_839829468 = (NI)0;
  		HEX3Atmp_545617_839829468 = (NI)0;
  		HEX3Atmp_545617_839829468 = (NI)(length0 - ((NI) 1));
  		res_545620_839829468 = start0;
  		{
  			while (1) {
  				Tsym294834* param0;
  				TY535289 LOC42;
  				Ropeobj180006* LOC43;
  				TY535289 LOC44;
  				Ropeobj180006* LOC45;
  				Ropeobj180006* LOC46;
  				if (!(res_545620_839829468 <= HEX3Atmp_545617_839829468)) goto LA36;
  				i_545051_839829468 = res_545620_839829468;
  				{
  					NI LOC39;
  					LOC39 = (NI)0;
  					LOC39 = sonslen_297327_850551059(typ0);
  					if (!(LOC39 <= i_545051_839829468)) goto LA40;
  					internalerror_198100_155036129((*ri0).info, ((NimStringDesc*) &T839829468_508));
  				}
  				LA40: ;
  				param0 = (*(*(*typ0).n).kindU.S6.sons->data[i_545051_839829468]).kindU.S4.sym;
  				memset((void*)LOC42, 0, sizeof(LOC42));
  				LOC43 = (Ropeobj180006*)0;
  				LOC43 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_111), LOC42, 0);
  				add_180482_2381377266(&pl0, LOC43);
  				add_180487_2381377266(&pl0, (*(*param0).name).s);
  				memset((void*)LOC44, 0, sizeof(LOC44));
  				LOC45 = (Ropeobj180006*)0;
  				LOC45 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_244), LOC44, 0);
  				add_180482_2381377266(&pl0, LOC45);
  				LOC46 = (Ropeobj180006*)0;
  				LOC46 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[i_545051_839829468], param0, ri0);
  				add_180482_2381377266(&pl0, LOC46);
  				res_545620_839829468 += ((NI) 1);
  			} LA36: ;
  		}
  	}
  	{
  		if (!!(((*typ0).sons->data[((NI) 0)] == NIM_NIL))) goto LA49;
  		{
  			NIM_BOOL LOC53;
  			LOC53 = (NIM_BOOL)0;
  			LOC53 = isinvalidreturntype_535548_839829468((*typ0).sons->data[((NI) 0)]);
  			if (!LOC53) goto LA54;
  			{
  				NI LOC58;
  				TY535289 LOC61;
  				Ropeobj180006* LOC62;
  				LOC58 = (NI)0;
  				LOC58 = sonslen_297351_850551059(ri0);
  				if (!(((NI) 1) < LOC58)) goto LA59;
  				memset((void*)LOC61, 0, sizeof(LOC61));
  				LOC62 = (Ropeobj180006*)0;
  				LOC62 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_111), LOC61, 0);
  				add_180482_2381377266(&pl0, LOC62);
  			}
  			LA59: ;
  			{
  				TY535289 LOC71;
  				Ropeobj180006* LOC72;
  				Ropeobj180006* LOC73;
  				TY535289 LOC74;
  				Ropeobj180006* LOC75;
  				if (!((3 &(1U<<((NU)((*d0).k)&15U)))!=0)) goto LA65;
  				{
  					if (!((*d0).k == ((Tlockind294808) 0))) goto LA69;
  					gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_TRUE);
  				}
  				LA69: ;
  				memset((void*)LOC71, 0, sizeof(LOC71));
  				LOC72 = (Ropeobj180006*)0;
  				LOC72 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_509), LOC71, 0);
  				add_180482_2381377266(&pl0, LOC72);
  				LOC73 = (Ropeobj180006*)0;
  				LOC73 = addrloc_540204_839829468((*d0));
  				add_180482_2381377266(&pl0, LOC73);
  				memset((void*)LOC74, 0, sizeof(LOC74));
  				LOC75 = (Ropeobj180006*)0;
  				LOC75 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_510), LOC74, 0);
  				add_180482_2381377266(&pl0, LOC75);
  				line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  			}
  			goto LA63;
  			LA65: ;
  			{
  				Tloc294816 tmp0;
  				Ropeobj180006* LOC77;
  				TY535289 LOC78;
  				Ropeobj180006* LOC79;
  				memset((void*)(&tmp0), 0, sizeof(tmp0));
  				gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], (&tmp0), NIM_TRUE);
  				LOC77 = (Ropeobj180006*)0;
  				LOC77 = addrloc_540204_839829468(tmp0);
  				add_180482_2381377266(&pl0, LOC77);
  				memset((void*)LOC78, 0, sizeof(LOC78));
  				LOC79 = (Ropeobj180006*)0;
  				LOC79 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_510), LOC78, 0);
  				add_180482_2381377266(&pl0, LOC79);
  				line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  				genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  			}
  			LA63: ;
  		}
  		goto LA51;
  		LA54: ;
  		{
  			TY535289 LOC81;
  			Ropeobj180006* LOC82;
  			Tloc294816 list0;
  			memset((void*)LOC81, 0, sizeof(LOC81));
  			LOC82 = (Ropeobj180006*)0;
  			LOC82 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_511), LOC81, 0);
  			add_180482_2381377266(&pl0, LOC82);
  			{
  				if (!((*d0).k == ((Tlockind294808) 0))) goto LA85;
  				gettemp_539032_839829468(p0, (*typ0).sons->data[((NI) 0)], d0, NIM_FALSE);
  			}
  			LA85: ;
  			memset((void*)(&list0), 0, sizeof(list0));
  			initloc_534273_839829468((&list0), ((Tlockind294808) 9), NIM_NIL, ((Tstorageloc294812) 0));
  			list0.r = pl0;
  			genassignment_541264_839829468(p0, (*d0), list0, 0);
  		}
  		LA51: ;
  	}
  	goto LA47;
  	LA49: ;
  	{
  		TY535289 LOC88;
  		Ropeobj180006* LOC89;
  		memset((void*)LOC88, 0, sizeof(LOC88));
  		LOC89 = (Ropeobj180006*)0;
  		LOC89 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_510), LOC88, 0);
  		add_180482_2381377266(&pl0, LOC89);
  		line_534690_839829468(p0, ((Tcprocsection531011) 2), pl0);
  	}
  	LA47: ;
  }
  
  N_NIMCALL(void, genprefixcall_541960_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0) {
  	Tloc294816 op0;
  	Ropeobj180006* params0;
  	Ttype294840* typ0;
  	NI length0;
  	memset((void*)(&op0), 0, sizeof(op0));
  	initlocexpr_541283_839829468(p0, (*ri0).kindU.S6.sons->data[((NI) 0)], (&op0));
  	params0 = (Ropeobj180006*)0;
  	typ0 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  	length0 = sonslen_297351_850551059(ri0);
  	{
  		NI i_542213_839829468;
  		NI HEX3Atmp_542445_839829468;
  		NI res_542448_839829468;
  		i_542213_839829468 = (NI)0;
  		HEX3Atmp_542445_839829468 = (NI)0;
  		HEX3Atmp_542445_839829468 = (NI)(length0 - ((NI) 1));
  		res_542448_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_542448_839829468 <= HEX3Atmp_542445_839829468)) goto LA3;
  				i_542213_839829468 = res_542448_839829468;
  				{
  					NI LOC6;
  					Tnode294802* paramtype0;
  					LOC6 = (NI)0;
  					LOC6 = sonslen_297327_850551059(typ0);
  					if (!(i_542213_839829468 < LOC6)) goto LA7;
  					paramtype0 = (*(*typ0).n).kindU.S6.sons->data[i_542213_839829468];
  					{
  						NIM_BOOL LOC11;
  						Ropeobj180006* LOC20;
  						LOC11 = (NIM_BOOL)0;
  						LOC11 = iscompiletimeonly_330706_3876443242((*paramtype0).typ);
  						if (!!(LOC11)) goto LA12;
  						{
  							TY535289 LOC18;
  							Ropeobj180006* LOC19;
  							if (!!((params0 == NIM_NIL))) goto LA16;
  							memset((void*)LOC18, 0, sizeof(LOC18));
  							LOC19 = (Ropeobj180006*)0;
  							LOC19 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC18, 0);
  							add_180482_2381377266(&params0, LOC19);
  						}
  						LA16: ;
  						LOC20 = (Ropeobj180006*)0;
  						LOC20 = genarg_541787_839829468(p0, (*ri0).kindU.S6.sons->data[i_542213_839829468], (*paramtype0).kindU.S4.sym, ri0);
  						add_180482_2381377266(&params0, LOC20);
  					}
  					LA12: ;
  				}
  				goto LA4;
  				LA7: ;
  				{
  					Ropeobj180006* LOC28;
  					{
  						TY535289 LOC26;
  						Ropeobj180006* LOC27;
  						if (!!((params0 == NIM_NIL))) goto LA24;
  						memset((void*)LOC26, 0, sizeof(LOC26));
  						LOC27 = (Ropeobj180006*)0;
  						LOC27 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC26, 0);
  						add_180482_2381377266(&params0, LOC27);
  					}
  					LA24: ;
  					LOC28 = (Ropeobj180006*)0;
  					LOC28 = genargnoparam_541938_839829468(p0, (*ri0).kindU.S6.sons->data[i_542213_839829468]);
  					add_180482_2381377266(&params0, LOC28);
  				}
  				LA4: ;
  				res_542448_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	fixupcall_541410_839829468(p0, le0, ri0, d0, op0.r, params0);
  }
  
  static N_INLINE(void, poststmtactions_534942_839829468)(Tcproc531021* p0) {
  	Ropeobj180006** LOC1;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	add_180482_2381377266(LOC1, (*(*p0).module).injectstmt);
  }
  
  N_NIMCALL(void, gencall_545632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	{
  		Ttype294840* LOC3;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ, 2048);
  		if (!((*LOC3).callconv == ((Tcallingconvention294002) 8))) goto LA4;
  		genclosurecall_542452_839829468(p0, NIM_NIL, e0, d0);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = ((*(*e0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  		if (!(LOC7)) goto LA8;
  		LOC7 = (((*(*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA8: ;
  		if (!LOC7) goto LA9;
  		geninfixcall_543929_839829468(p0, NIM_NIL, e0, d0);
  	}
  	goto LA1;
  	LA9: ;
  	{
  		NIM_BOOL LOC12;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = ((*(*e0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  		if (!(LOC12)) goto LA13;
  		LOC12 = (((*(*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 28))&31U)))!=0);
  		LA13: ;
  		if (!LOC12) goto LA14;
  		gennamedparamcall_544616_839829468(p0, e0, d0);
  	}
  	goto LA1;
  	LA14: ;
  	{
  		genprefixcall_541960_839829468(p0, NIM_NIL, e0, d0);
  	}
  	LA1: ;
  	poststmtactions_534942_839829468(p0);
  }
  
  N_NIMCALL(void, genreset_556731_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Tloc294816 a0;
  	TY534811 LOC1;
  	Ttype294840* LOC2;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = addrloc_540204_839829468(a0);
  	LOC2 = (Ttype294840*)0;
  	LOC2 = skiptypes_298099_850551059(a0.t, IL64(211106242013440));
  	LOC1[1] = gentypeinfo_537941_839829468((*p0).module, LOC2);
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_496), LOC1, 2);
  }
  
  N_NIMCALL(void, genecho_556369_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	NIM_BOOL LOC6;
  	Ropeobj180006* args0;
  	Tloc294816 a0;
  	TY534811 LOC18;
  	NimStringDesc* LOC19;
  	NI LOC20;
  	NimStringDesc* LOC21;
  	TY535289 LOC22;
  	{
  		NimStringDesc* LOC5;
  		if (!!(((*n0).kind == ((Tnodekind294020) 41)))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = HEX24_198185_1689653243(T839829468_512);
  		internalerror_198113_155036129(LOC5);
  	}
  	LA3: ;
  	LOC6 = (NIM_BOOL)0;
  	LOC6 = includestr_148249_3771138726((&(*(*p0).module).headerfiles), ((NimStringDesc*) &T839829468_513));
  	args0 = NIM_NIL;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		NI i_556404_839829468;
  		NI HEX3Atmp_556431_839829468;
  		NI LOC8;
  		NI res_556434_839829468;
  		i_556404_839829468 = (NI)0;
  		HEX3Atmp_556431_839829468 = (NI)0;
  		LOC8 = (NI)0;
  		LOC8 = len_295081_850551059(n0);
  		HEX3Atmp_556431_839829468 = (NI)(LOC8 - ((NI) 1));
  		res_556434_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_556434_839829468 <= HEX3Atmp_556431_839829468)) goto LA10;
  				i_556404_839829468 = res_556434_839829468;
  				{
  					Tnode294802* LOC13;
  					LOC13 = (Tnode294802*)0;
  					LOC13 = skipconv_330882_3876443242((*n0).kindU.S6.sons->data[i_556404_839829468]);
  					if (!((*LOC13).kind == ((Tnodekind294020) 23))) goto LA14;
  					add_180487_2381377266(&args0, ((NimStringDesc*) &T839829468_514));
  				}
  				goto LA11;
  				LA14: ;
  				{
  					TY180507 LOC17;
  					initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[i_556404_839829468], (&a0));
  					memset((void*)LOC17, 0, sizeof(LOC17));
  					LOC17[0] = rdloc_540188_839829468(a0);
  					addf_181205_2381377266(&args0, ((NimStringDesc*) &T839829468_515), LOC17, 1);
  				}
  				LA11: ;
  				res_556434_839829468 += ((NI) 1);
  			} LA10: ;
  		}
  	}
  	memset((void*)LOC18, 0, sizeof(LOC18));
  	LOC19 = (NimStringDesc*)0;
  	LOC20 = (NI)0;
  	LOC20 = len_295081_850551059(n0);
  	LOC21 = (NimStringDesc*)0;
  	LOC21 = nsuRepeatStr(((NimStringDesc*) &T839829468_517), ((NI) (LOC20)));
  	LOC19 = rawNewString(LOC21->Sup.len + tnl_178644_4151366050->Sup.len + 0);
  appendString(LOC19, LOC21);
  appendString(LOC19, tnl_178644_4151366050);
  	LOC18[0] = makecstring_193638_155036129(LOC19);
  	LOC18[1] = args0;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_516), LOC18, 2);
  	memset((void*)LOC22, 0, sizeof(LOC22));
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_518), LOC22, 0);
  }
  
  N_NIMCALL(void, genseqconstr_557004_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	Tloc294816 arr0;
  	NI LOC5;
  	Ropeobj180006* LOC6;
  	memset((void*)(&arr0), 0, sizeof(arr0));
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA3;
  		gettemp_539032_839829468(p0, (*t0).typ, d0, NIM_FALSE);
  	}
  	LA3: ;
  	LOC5 = (NI)0;
  	LOC5 = sonslen_297351_850551059(t0);
  	LOC6 = (Ropeobj180006*)0;
  	LOC6 = intliteral_541270_839829468(((NI64) (LOC5)));
  	gennewseqaux_556795_839829468(p0, (*d0), LOC6);
  	{
  		NI i_557031_839829468;
  		NI HEX3Atmp_557039_839829468;
  		NI LOC8;
  		NI res_557042_839829468;
  		i_557031_839829468 = (NI)0;
  		HEX3Atmp_557039_839829468 = (NI)0;
  		LOC8 = (NI)0;
  		LOC8 = sonslen_297351_850551059(t0);
  		HEX3Atmp_557039_839829468 = (NI)(LOC8 - ((NI) 1));
  		res_557042_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Ttype294840* LOC11;
  				Ttype294840* LOC12;
  				TY534811 LOC13;
  				if (!(res_557042_839829468 <= HEX3Atmp_557039_839829468)) goto LA10;
  				i_557031_839829468 = res_557042_839829468;
  				LOC11 = (Ttype294840*)0;
  				LOC11 = skiptypes_298099_850551059((*t0).typ, IL64(211106232576256));
  				LOC12 = (Ttype294840*)0;
  				LOC12 = elemtype_322394_3876443242(LOC11);
  				initloc_534273_839829468((&arr0), ((Tlockind294808) 6), LOC12, ((Tstorageloc294812) 3));
  				memset((void*)LOC13, 0, sizeof(LOC13));
  				LOC13[0] = rdloc_540188_839829468((*d0));
  				LOC13[1] = intliteral_541270_839829468(((NI64) (i_557031_839829468)));
  				arr0.r = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_187), LOC13, 2);
  				arr0.s = ((Tstorageloc294812) 3);
  				expr_541248_839829468(p0, (*t0).kindU.S6.sons->data[i_557031_839829468], (&arr0));
  				res_557042_839829468 += ((NI) 1);
  			} LA10: ;
  		}
  	}
  	gcusage_556439_839829468(t0);
  }
  
  N_NIMCALL(void, genarrtoseq_557046_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	Tloc294816 elem0;
  	Tloc294816 a0;
  	Tloc294816 arr0;
  	NI L0;
  	NI64 LOC9;
  	Ropeobj180006* LOC10;
  {	memset((void*)(&elem0), 0, sizeof(elem0));
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&arr0), 0, sizeof(arr0));
  	{
  		if (!((*t0).kind == ((Tnodekind294020) 41))) goto LA3;
  		asgnRefNoCycle((void**) (&(*(*t0).kindU.S6.sons->data[((NI) 1)]).typ), (*t0).typ);
  		genseqconstr_557004_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 1)], d0);
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA7;
  		gettemp_539032_839829468(p0, (*t0).typ, d0, NIM_FALSE);
  	}
  	LA7: ;
  	LOC9 = (NI64)0;
  	LOC9 = lengthord_322007_3876443242((*(*t0).kindU.S6.sons->data[((NI) 1)]).typ);
  	L0 = ((NI) (LOC9));
  	LOC10 = (Ropeobj180006*)0;
  	LOC10 = intliteral_541270_839829468(((NI64) (L0)));
  	gennewseqaux_556795_839829468(p0, (*d0), LOC10);
  	initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	{
  		NI i_557090_839829468;
  		NI HEX3Atmp_557103_839829468;
  		NI res_557106_839829468;
  		i_557090_839829468 = (NI)0;
  		HEX3Atmp_557103_839829468 = (NI)0;
  		HEX3Atmp_557103_839829468 = (NI)(L0 - ((NI) 1));
  		res_557106_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Ttype294840* LOC14;
  				Ttype294840* LOC15;
  				TY534811 LOC16;
  				Ttype294840* LOC17;
  				Ttype294840* LOC18;
  				TY534811 LOC19;
  				if (!(res_557106_839829468 <= HEX3Atmp_557103_839829468)) goto LA13;
  				i_557090_839829468 = res_557106_839829468;
  				LOC14 = (Ttype294840*)0;
  				LOC14 = skiptypes_298099_850551059((*t0).typ, IL64(211106232576256));
  				LOC15 = (Ttype294840*)0;
  				LOC15 = elemtype_322394_3876443242(LOC14);
  				initloc_534273_839829468((&elem0), ((Tlockind294808) 6), LOC15, ((Tstorageloc294812) 3));
  				memset((void*)LOC16, 0, sizeof(LOC16));
  				LOC16[0] = rdloc_540188_839829468((*d0));
  				LOC16[1] = intliteral_541270_839829468(((NI64) (i_557090_839829468)));
  				elem0.r = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_187), LOC16, 2);
  				elem0.s = ((Tstorageloc294812) 3);
  				LOC17 = (Ttype294840*)0;
  				LOC17 = skiptypes_298099_850551059((*(*t0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106232576256));
  				LOC18 = (Ttype294840*)0;
  				LOC18 = elemtype_322394_3876443242(LOC17);
  				initloc_534273_839829468((&arr0), ((Tlockind294808) 6), LOC18, a0.s);
  				memset((void*)LOC19, 0, sizeof(LOC19));
  				LOC19[0] = rdloc_540188_839829468(a0);
  				LOC19[1] = intliteral_541270_839829468(((NI64) (i_557090_839829468)));
  				arr0.r = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_138), LOC19, 2);
  				genassignment_541264_839829468(p0, elem0, arr0, 3);
  				res_557106_839829468 += ((NI) 1);
  			} LA13: ;
  		}
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, gendeepcopy_552374_839829468)(Tcproc531021* p0, Tloc294816 dest0, Tloc294816 src0) {
  	Ttype294840* ty0;
  	ty0 = skiptypes_298099_850551059(dest0.t, IL64(211106242013440));
  	switch ((*ty0).kind) {
  	case ((Ttypekind294244) 21):
  	case ((Ttypekind294244) 22):
  	case ((Ttypekind294244) 25):
  	case ((Ttypekind294244) 18):
  	case ((Ttypekind294244) 17):
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 4):
  	{
  		TY537238 LOC2;
  		memset((void*)LOC2, 0, sizeof(LOC2));
  		LOC2[0] = addrloc_540204_839829468(dest0);
  		LOC2[1] = addrloc_540204_839829468(src0);
  		LOC2[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_519), LOC2, 3);
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	case ((Ttypekind294244) 28):
  	{
  		TY537238 LOC4;
  		memset((void*)LOC4, 0, sizeof(LOC4));
  		LOC4[0] = addrloc_540204_839829468(dest0);
  		LOC4[1] = rdloc_540188_839829468(src0);
  		LOC4[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_520), LOC4, 3);
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		TY537238 LOC6;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = addrloc_540204_839829468(dest0);
  		LOC6[1] = addrloc_540204_839829468(src0);
  		LOC6[2] = gentypeinfo_537941_839829468((*p0).module, dest0.t);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_521), LOC6, 3);
  	}
  	break;
  	case ((Ttypekind294244) 19):
  	{
  		{
  			Tctypekind531007 LOC10;
  			TY537238 LOC13;
  			NI64 LOC14;
  			LOC10 = (Tctypekind531007)0;
  			LOC10 = maptype_535393_839829468(ty0);
  			if (!(LOC10 == ((Tctypekind531007) 17))) goto LA11;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC13, 0, sizeof(LOC13));
  			LOC13[0] = rdloc_540188_839829468(dest0);
  			LOC13[1] = rdloc_540188_839829468(src0);
  			LOC14 = (NI64)0;
  			LOC14 = getsize_322135_3876443242(dest0.t);
  			LOC13[2] = rope_180401_2381377266(LOC14);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_268), LOC13, 3);
  		}
  		goto LA8;
  		LA11: ;
  		{
  			TY534811 LOC16;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = rdloc_540188_839829468(dest0);
  			LOC16[1] = rdloc_540188_839829468(src0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC16, 2);
  		}
  		LA8: ;
  	}
  	break;
  	case ((Ttypekind294244) 26):
  	case ((Ttypekind294244) 2):
  	case ((Ttypekind294244) 1):
  	case ((Ttypekind294244) 14):
  	case ((Ttypekind294244) 29):
  	case ((Ttypekind294244) 31) ... ((Ttypekind294244) 44):
  	case ((Ttypekind294244) 20):
  	case ((Ttypekind294244) 23):
  	{
  		TY534811 LOC18;
  		memset((void*)LOC18, 0, sizeof(LOC18));
  		LOC18[0] = rdloc_540188_839829468(dest0);
  		LOC18[1] = rdloc_540188_839829468(src0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_123), LOC18, 2);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC20;
  		LOC20 = (NimStringDesc*)0;
  		LOC20 = rawNewString(reprEnum((NI)(*ty0).kind, (&NTI294244))->Sup.len + 13);
  appendString(LOC20, ((NimStringDesc*) &T839829468_522));
  appendString(LOC20, reprEnum((NI)(*ty0).kind, (&NTI294244)));
  		internalerror_198113_155036129(LOC20);
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, genmagicexpr_559033_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tmagic294524 op0) {
  	switch (op0) {
  	case ((Tmagic294524) 127):
  	case ((Tmagic294524) 126):
  	{
  		genandor_556311_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 99) ... ((Tmagic294524) 117):
  	{
  		unaryarith_554646_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 96) ... ((Tmagic294524) 98):
  	{
  		unaryarithoverflow_553633_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 52) ... ((Tmagic294524) 55):
  	{
  		binaryfloatarith_558728_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 56) ... ((Tmagic294524) 93):
  	{
  		binaryarith_553819_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 95):
  	{
  		geneqproc_554214_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 45) ... ((Tmagic294524) 51):
  	{
  		binaryarithoverflow_553262_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 149):
  	{
  		genrepr_557339_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 259):
  	{
  		gengettypeinfo_557383_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 156):
  	{
  		genswap_557638_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 25):
  	{
  		{
  			if (!!((((*p0).options &(1U<<((NU)(((Toption171009) 5))&31U)))!=0))) goto LA14;
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_385));
  		}
  		goto LA12;
  		LA14: ;
  		{
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_386));
  		}
  		LA12: ;
  	}
  	break;
  	case ((Tmagic294524) 26):
  	case ((Tmagic294524) 27):
  	{
  		Ttype294840* underlying0;
  		underlying0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, 9439232);
  		{
  			NIM_BOOL LOC20;
  			LOC20 = (NIM_BOOL)0;
  			LOC20 = !((((*p0).options &(1U<<((NU)(((Toption171009) 5))&31U)))!=0));
  			if (LOC20) goto LA21;
  			LOC20 = ((*underlying0).kind >= ((Ttypekind294244) 40) && (*underlying0).kind <= ((Ttypekind294244) 44));
  			LA21: ;
  			if (!LOC20) goto LA22;
  			binarystmt_552501_839829468(p0, e0, d0, opr_559050_839829468[(op0)- 26]);
  		}
  		goto LA18;
  		LA22: ;
  		{
  			Tloc294816 a0;
  			Tloc294816 b0;
  			Ttype294840* ranged0;
  			Ropeobj180006* res0;
  			NimStringDesc* LOC25;
  			TY534811 LOC31;
  			Ropeobj180006* LOC32;
  			memset((void*)(&a0), 0, sizeof(a0));
  			memset((void*)(&b0), 0, sizeof(b0));
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  			ranged0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, 8390656);
  			LOC25 = (NimStringDesc*)0;
  			{
  				if (!((*underlying0).kind == ((Ttypekind294244) 35))) goto LA28;
  				LOC25 = copyString(fun64_559055_839829468[(op0)- 26]);
  			}
  			goto LA26;
  			LA28: ;
  			{
  				LOC25 = copyString(fun_559060_839829468[(op0)- 26]);
  			}
  			LA26: ;
  			res0 = binaryarithoverflowraw_553235_839829468(p0, ranged0, a0, b0, LOC25);
  			memset((void*)LOC31, 0, sizeof(LOC31));
  			LOC31[0] = gettypedesc_537671_839829468((*p0).module, ranged0);
  			LOC31[1] = res0;
  			LOC32 = (Ropeobj180006*)0;
  			LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_370), LOC31, 2);
  			putintodest_552468_839829468(p0, (&a0), ranged0, LOC32, ((Tstorageloc294812) 0));
  		}
  		LA18: ;
  	}
  	break;
  	case ((Tmagic294524) 138):
  	{
  		genstrconcat_556452_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 144):
  	{
  		binarystmt_552501_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_394));
  	}
  	break;
  	case ((Tmagic294524) 145):
  	{
  		genstrappend_556554_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 146):
  	{
  		genseqelemappend_556683_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 128):
  	{
  		genstrequals_558666_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 129):
  	{
  		binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_402));
  	}
  	break;
  	case ((Tmagic294524) 130):
  	{
  		binaryexpr_552549_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_403));
  	}
  	break;
  	case ((Tmagic294524) 157):
  	{
  		genisnil_554620_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 120):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_406));
  	}
  	break;
  	case ((Tmagic294524) 121):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_407));
  	}
  	break;
  	case ((Tmagic294524) 119):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_408));
  	}
  	break;
  	case ((Tmagic294524) 118):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_409));
  	}
  	break;
  	case ((Tmagic294524) 122):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_410));
  	}
  	break;
  	case ((Tmagic294524) 123):
  	{
  		gendollar_557391_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_411));
  	}
  	break;
  	case ((Tmagic294524) 124):
  	{
  		expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	break;
  	case ((Tmagic294524) 125):
  	{
  		genrepr_557339_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 12):
  	{
  		genof_557331_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 29):
  	{
  		gennew_556782_839829468(p0, e0);
  	}
  	break;
  	case ((Tmagic294524) 30):
  	{
  		gennewfinalize_557110_839829468(p0, e0);
  	}
  	break;
  	case ((Tmagic294524) 31):
  	{
  		gennewseq_556824_839829468(p0, e0);
  	}
  	break;
  	case ((Tmagic294524) 32):
  	{
  		gennewseqofcap_556836_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 9):
  	{
  		Ttype294840* t0;
  		TY180507 LOC55;
  		Ropeobj180006* LOC56;
  		t0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, 256);
  		memset((void*)LOC55, 0, sizeof(LOC55));
  		LOC55[0] = gettypedesc_537671_839829468((*p0).module, t0);
  		LOC56 = (Ropeobj180006*)0;
  		LOC56 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_428), LOC55, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC56, ((Tstorageloc294812) 0));
  	}
  	break;
  	case ((Tmagic294524) 42):
  	{
  		gensomecast_558480_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 28):
  	{
  		genord_558474_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 35):
  	case ((Tmagic294524) 8):
  	case ((Tmagic294524) 34):
  	case ((Tmagic294524) 36):
  	case ((Tmagic294524) 33):
  	{
  		genarraylen_557415_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 37):
  	case ((Tmagic294524) 38):
  	{
  		{
  			NIM_BOOL LOC63;
  			LOC63 = (NIM_BOOL)0;
  			LOC63 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC63) goto LA64;
  			LOC63 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA64: ;
  			if (!!(LOC63)) goto LA65;
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_440));
  		}
  		goto LA61;
  		LA65: ;
  		{
  			unaryexpr_553209_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_441));
  		}
  		LA61: ;
  	}
  	break;
  	case ((Tmagic294524) 43):
  	{
  		unarystmt_552527_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_443));
  	}
  	break;
  	case ((Tmagic294524) 44):
  	{
  		unarystmt_552527_839829468(p0, e0, d0, ((NimStringDesc*) &T839829468_444));
  	}
  	break;
  	case ((Tmagic294524) 151):
  	{
  		gensetlengthstr_557632_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 152):
  	{
  		gensetlengthseq_557500_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 39):
  	case ((Tmagic294524) 40):
  	case ((Tmagic294524) 41):
  	case ((Tmagic294524) 133):
  	case ((Tmagic294524) 132):
  	case ((Tmagic294524) 131):
  	case ((Tmagic294524) 134):
  	case ((Tmagic294524) 135):
  	case ((Tmagic294524) 136):
  	case ((Tmagic294524) 148):
  	{
  		gensetop_558419_839829468(p0, e0, d0, op0);
  	}
  	break;
  	case ((Tmagic294524) 161):
  	case ((Tmagic294524) 162):
  	case ((Tmagic294524) 159):
  	case ((Tmagic294524) 160):
  	case ((Tmagic294524) 150):
  	case ((Tmagic294524) 163):
  	{
  		Tsym294834* opr0;
  		opr0 = (*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		{
  			NimStringDesc* LOC78;
  			Ropeobj180006* LOC79;
  			if (!!((((*opr0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0))) goto LA76;
  			LOC78 = (NimStringDesc*)0;
  			LOC78 = HEX24_180856_2381377266((*opr0).loc.r);
  			LOC79 = (Ropeobj180006*)0;
  			LOC79 = cgsym_534403_839829468((*p0).module, LOC78);
  		}
  		LA76: ;
  		gencall_545632_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 164):
  	{
  		genreset_556731_839829468(p0, e0);
  	}
  	break;
  	case ((Tmagic294524) 17):
  	{
  		Tnode294802* LOC82;
  		Tnode294802* LOC83;
  		LOC82 = (Tnode294802*)0;
  		LOC82 = HEX5BHEX5D_295238_850551059(e0, ((NI) 1));
  		LOC83 = (Tnode294802*)0;
  		LOC83 = skipconv_330882_3876443242(LOC82);
  		genecho_556369_839829468(p0, LOC83);
  	}
  	break;
  	case ((Tmagic294524) 158):
  	{
  		genarrtoseq_557046_839829468(p0, e0, d0);
  	}
  	break;
  	case ((Tmagic294524) 223) ... ((Tmagic294524) 257):
  	case ((Tmagic294524) 19) ... ((Tmagic294524) 24):
  	{
  		localerror_198080_155036129((*e0).info, ((Tmsgkind193002) 229), (*(*(*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).s);
  	}
  	break;
  	case ((Tmagic294524) 208):
  	{
  		Tnode294802* n0;
  		n0 = wrapprocforspawn_437501_2218250499((*(*p0).module).module, e0, (*e0).typ, NIM_NIL, NIM_NIL);
  		expr_541248_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tmagic294524) 155):
  	{
  		Tnode294802* n0;
  		n0 = liftparallel_480822_1773027539((*(*p0).module).module, e0);
  		expr_541248_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tmagic294524) 209):
  	{
  		Tloc294816 a0;
  		Tloc294816 b0;
  		Tnode294802* x0;
  		memset((void*)(&a0), 0, sizeof(a0));
  		memset((void*)(&b0), 0, sizeof(b0));
  		{
  			Tnode294802* LOC91;
  			Tnode294802* LOC94;
  			LOC91 = (Tnode294802*)0;
  			LOC91 = HEX5BHEX5D_295238_850551059(e0, ((NI) 1));
  			if (!((*LOC91).kind == ((Tnodekind294020) 63) || (*LOC91).kind == ((Tnodekind294020) 64))) goto LA92;
  			LOC94 = (Tnode294802*)0;
  			LOC94 = HEX5BHEX5D_295238_850551059(e0, ((NI) 1));
  			x0 = HEX5BHEX5D_295238_850551059(LOC94, ((NI) 0));
  		}
  		goto LA89;
  		LA92: ;
  		{
  			x0 = HEX5BHEX5D_295238_850551059(e0, ((NI) 1));
  		}
  		LA89: ;
  		initlocexpr_541283_839829468(p0, x0, (&a0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 2)], (&b0));
  		gendeepcopy_552374_839829468(p0, a0, b0);
  	}
  	break;
  	case ((Tmagic294524) 140):
  	case ((Tmagic294524) 94):
  	{
  		gencall_545632_839829468(p0, e0, d0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC98;
  		LOC98 = (NimStringDesc*)0;
  		LOC98 = rawNewString(reprEnum((NI)op0, (&NTI294524))->Sup.len + 14);
  appendString(LOC98, ((NimStringDesc*) &T839829468_523));
  appendString(LOC98, reprEnum((NI)op0, (&NTI294524)));
  		internalerror_198100_155036129((*e0).info, LOC98);
  	}
  	break;
  	}
  }
  
  N_NIMCALL(Ropeobj180006*, gensetnode_551664_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Ropeobj180006* result0;
  	Tbitset341004* cs0;
  	NI size0;
  	NI64 LOC1;
  	result0 = (Ropeobj180006*)0;
  	cs0 = (Tbitset341004*)0;
  	LOC1 = (NI64)0;
  	LOC1 = getsize_322135_3876443242((*n0).typ);
  	size0 = ((NI) (LOC1));
  	tobitset_342001_452470228(n0, (&cs0));
  	{
  		NI id0;
  		Ropeobj180006* LOC6;
  		if (!(((NI) 8) < size0)) goto LA4;
  		id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), n0, ((NI) ((*(*p0).module).labels)));
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = rope_180401_2381377266(((NI64) (id0)));
  		result0 = HEX26_180418_2381377266((*(*p0).module).tmpbase, LOC6);
  		{
  			TY537238 LOC11;
  			if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA9;
  			(*(*p0).module).labels += ((NI) 1);
  			memset((void*)LOC11, 0, sizeof(LOC11));
  			LOC11[0] = gettypedesc_537671_839829468((*p0).module, (*n0).typ);
  			LOC11[1] = result0;
  			LOC11[2] = genrawsetdata_551629_839829468(cs0, size0);
  			addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_524), LOC11, 3);
  		}
  		LA9: ;
  	}
  	goto LA2;
  	LA4: ;
  	{
  		result0 = genrawsetdata_551629_839829468(cs0, size0);
  	}
  	LA2: ;
  	return result0;
  }
  
  N_NIMCALL(void, gensetconstr_559496_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Tloc294816 idx0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	memset((void*)(&idx0), 0, sizeof(idx0));
  	{
  		Ropeobj180006* LOC5;
  		if (!(((*e0).flags &(1U<<((NU)(((Tnodeflag294427) 4))&15U)))!=0)) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = gensetnode_551664_839829468(p0, e0);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC5, ((Tstorageloc294812) 0));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		{
  			if (!((*d0).k == ((Tlockind294808) 0))) goto LA9;
  			gettemp_539032_839829468(p0, (*e0).typ, d0, NIM_FALSE);
  		}
  		LA9: ;
  		{
  			NI64 LOC13;
  			TY180507 LOC16;
  			LOC13 = (NI64)0;
  			LOC13 = getsize_322135_3876443242((*e0).typ);
  			if (!(IL64(8) < LOC13)) goto LA14;
  			usestringh_534345_839829468((*p0).module);
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = rdloc_540188_839829468((*d0));
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_525), LOC16, 1);
  			{
  				NI i_559537_839829468;
  				NI HEX3Atmp_559603_839829468;
  				NI LOC18;
  				NI res_559606_839829468;
  				i_559537_839829468 = (NI)0;
  				HEX3Atmp_559603_839829468 = (NI)0;
  				LOC18 = (NI)0;
  				LOC18 = sonslen_297351_850551059(e0);
  				HEX3Atmp_559603_839829468 = (NI)(LOC18 - ((NI) 1));
  				res_559606_839829468 = ((NI) 0);
  				{
  					while (1) {
  						if (!(res_559606_839829468 <= HEX3Atmp_559603_839829468)) goto LA20;
  						i_559537_839829468 = res_559606_839829468;
  						{
  							Ttype294840* LOC25;
  							TY537235 LOC26;
  							if (!((*(*e0).kindU.S6.sons->data[i_559537_839829468]).kind == ((Tnodekind294020) 44))) goto LA23;
  							LOC25 = (Ttype294840*)0;
  							LOC25 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  							gettemp_539032_839829468(p0, LOC25, (&idx0), NIM_FALSE);
  							initlocexpr_541283_839829468(p0, (*(*e0).kindU.S6.sons->data[i_559537_839829468]).kindU.S6.sons->data[((NI) 0)], (&a0));
  							initlocexpr_541283_839829468(p0, (*(*e0).kindU.S6.sons->data[i_559537_839829468]).kindU.S6.sons->data[((NI) 1)], (&b0));
  							memset((void*)LOC26, 0, sizeof(LOC26));
  							LOC26[0] = rdloc_540188_839829468(idx0);
  							LOC26[1] = rdloc_540188_839829468((*d0));
  							LOC26[2] = rdsetelemloc_557662_839829468(a0, (*e0).typ);
  							LOC26[3] = rdsetelemloc_557662_839829468(b0, (*e0).typ);
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_526), LOC26, 4);
  						}
  						goto LA21;
  						LA23: ;
  						{
  							TY534811 LOC28;
  							initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[i_559537_839829468], (&a0));
  							memset((void*)LOC28, 0, sizeof(LOC28));
  							LOC28[0] = rdloc_540188_839829468((*d0));
  							LOC28[1] = rdsetelemloc_557662_839829468(a0, (*e0).typ);
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_527), LOC28, 2);
  						}
  						LA21: ;
  						res_559606_839829468 += ((NI) 1);
  					} LA20: ;
  				}
  			}
  		}
  		goto LA11;
  		LA14: ;
  		{
  			NimStringDesc* ts0;
  			NimStringDesc* LOC30;
  			NI64 LOC31;
  			NimStringDesc* LOC32;
  			TY180507 LOC33;
  			LOC30 = (NimStringDesc*)0;
  			LOC31 = (NI64)0;
  			LOC31 = getsize_322135_3876443242((*e0).typ);
  			LOC32 = (NimStringDesc*)0;
  			LOC32 = nimInt64ToStr((NI64)(LOC31 * IL64(8)));
  			LOC30 = rawNewString(LOC32->Sup.len + 2);
  appendString(LOC30, ((NimStringDesc*) &T839829468_45));
  appendString(LOC30, LOC32);
  			ts0 = LOC30;
  			memset((void*)LOC33, 0, sizeof(LOC33));
  			LOC33[0] = rdloc_540188_839829468((*d0));
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_494), LOC33, 1);
  			{
  				NI i_559575_839829468;
  				NI HEX3Atmp_559611_839829468;
  				NI LOC35;
  				NI res_559614_839829468;
  				i_559575_839829468 = (NI)0;
  				HEX3Atmp_559611_839829468 = (NI)0;
  				LOC35 = (NI)0;
  				LOC35 = sonslen_297351_850551059(e0);
  				HEX3Atmp_559611_839829468 = (NI)(LOC35 - ((NI) 1));
  				res_559614_839829468 = ((NI) 0);
  				{
  					while (1) {
  						if (!(res_559614_839829468 <= HEX3Atmp_559611_839829468)) goto LA37;
  						i_559575_839829468 = res_559614_839829468;
  						{
  							Ttype294840* LOC42;
  							NimStringDesc* LOC43;
  							TY537235 LOC44;
  							if (!((*(*e0).kindU.S6.sons->data[i_559575_839829468]).kind == ((Tnodekind294020) 44))) goto LA40;
  							LOC42 = (Ttype294840*)0;
  							LOC42 = getsystype_340150_3937434831(((Ttypekind294244) 31));
  							gettemp_539032_839829468(p0, LOC42, (&idx0), NIM_FALSE);
  							initlocexpr_541283_839829468(p0, (*(*e0).kindU.S6.sons->data[i_559575_839829468]).kindU.S6.sons->data[((NI) 0)], (&a0));
  							initlocexpr_541283_839829468(p0, (*(*e0).kindU.S6.sons->data[i_559575_839829468]).kindU.S6.sons->data[((NI) 1)], (&b0));
  							LOC43 = (NimStringDesc*)0;
  							LOC43 = rawNewString(ts0->Sup.len + ts0->Sup.len + 68);
  appendString(LOC43, ((NimStringDesc*) &T839829468_528));
  appendString(LOC43, ts0);
  appendString(LOC43, ((NimStringDesc*) &T839829468_529));
  appendString(LOC43, ts0);
  appendString(LOC43, ((NimStringDesc*) &T839829468_454));
  							memset((void*)LOC44, 0, sizeof(LOC44));
  							LOC44[0] = rdloc_540188_839829468(idx0);
  							LOC44[1] = rdloc_540188_839829468((*d0));
  							LOC44[2] = rdsetelemloc_557662_839829468(a0, (*e0).typ);
  							LOC44[3] = rdsetelemloc_557662_839829468(b0, (*e0).typ);
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), LOC43, LOC44, 4);
  						}
  						goto LA38;
  						LA40: ;
  						{
  							NimStringDesc* LOC46;
  							TY534811 LOC47;
  							initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[i_559575_839829468], (&a0));
  							LOC46 = (NimStringDesc*)0;
  							LOC46 = rawNewString(ts0->Sup.len + ts0->Sup.len + 36);
  appendString(LOC46, ((NimStringDesc*) &T839829468_530));
  appendString(LOC46, ts0);
  appendString(LOC46, ((NimStringDesc*) &T839829468_531));
  appendString(LOC46, ts0);
  appendString(LOC46, ((NimStringDesc*) &T839829468_454));
  							memset((void*)LOC47, 0, sizeof(LOC47));
  							LOC47[0] = rdloc_540188_839829468((*d0));
  							LOC47[1] = rdsetelemloc_557662_839829468(a0, (*e0).typ);
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), LOC46, LOC47, 2);
  						}
  						LA38: ;
  						res_559614_839829468 += ((NI) 1);
  					} LA37: ;
  				}
  			}
  		}
  		LA11: ;
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, exprcomplexconst_560684_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Ttype294840* t0;
  	Ropeobj180006* LOC1;
  	NI id0;
  	Ropeobj180006* tmp0;
  	Ropeobj180006* LOC2;
  	t0 = getuniquetype_530640_2036603609((*n0).typ);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = gettypedesc_537671_839829468((*p0).module, t0);
  	id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), n0, ((NI) ((*(*p0).module).labels)));
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = rope_180401_2381377266(((NI64) (id0)));
  	tmp0 = HEX26_180418_2381377266((*(*p0).module).tmpbase, LOC2);
  	{
  		TY537238 LOC7;
  		if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA5;
  		(*(*p0).module).labels += ((NI) 1);
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = gettypedesc_537671_839829468((*p0).module, t0);
  		LOC7[1] = tmp0;
  		LOC7[2] = genconstexpr_556849_839829468(p0, n0);
  		addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_272), LOC7, 3);
  	}
  	LA5: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA10;
  		fillloc_534282_839829468(d0, ((Tlockind294808) 8), t0, tmp0, ((Tstorageloc294812) 1));
  	}
  	goto LA8;
  	LA10: ;
  	{
  		putdataintodest_552436_839829468(p0, d0, t0, tmp0);
  		{
  			if (!!(((*t0).kind == ((Ttypekind294244) 24) || (*t0).kind == ((Ttypekind294244) 28)))) goto LA15;
  			(*d0).s = ((Tstorageloc294812) 1);
  		}
  		LA15: ;
  	}
  	LA8: ;
  }
  
  N_NIMCALL(NIM_BOOL, handleconstexpr_556853_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		NI LOC6;
  		Ttype294840* t0;
  		Ropeobj180006* LOC10;
  		NI id0;
  		Ropeobj180006* LOC11;
  		Ropeobj180006* LOC12;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = ((*d0).k == ((Tlockind294808) 0));
  		if (!(LOC4)) goto LA5;
  		LOC6 = (NI)0;
  		LOC6 = len_295081_850551059(n0);
  		LOC4 = (((NI) (((*n0).kind == ((Tnodekind294020) 38)))) < LOC6);
  		LA5: ;
  		LOC3 = LOC4;
  		if (!(LOC3)) goto LA7;
  		LOC3 = isdeepconstexpr_320566_2616423590(n0);
  		LA7: ;
  		if (!LOC3) goto LA8;
  		t0 = getuniquetype_530640_2036603609((*n0).typ);
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = gettypedesc_537671_839829468((*p0).module, t0);
  		id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), n0, ((NI) ((*(*p0).module).labels)));
  		LOC11 = (Ropeobj180006*)0;
  		LOC11 = rope_180401_2381377266(((NI64) (id0)));
  		LOC12 = (Ropeobj180006*)0;
  		LOC12 = HEX26_180418_2381377266((*(*p0).module).tmpbase, LOC11);
  		fillloc_534282_839829468(d0, ((Tlockind294808) 8), t0, LOC12, ((Tstorageloc294812) 1));
  		{
  			TY537238 LOC17;
  			if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA15;
  			(*(*p0).module).labels += ((NI) 1);
  			memset((void*)LOC17, 0, sizeof(LOC17));
  			LOC17[0] = gettypedesc_537671_839829468((*p0).module, t0);
  			LOC17[1] = (*d0).r;
  			LOC17[2] = genconstexpr_556849_839829468(p0, n0);
  			addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_272), LOC17, 3);
  		}
  		LA15: ;
  		result0 = NIM_TRUE;
  	}
  	goto LA1;
  	LA8: ;
  	{
  		result0 = NIM_FALSE;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(void, genarrayconstr_560207_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 arr0;
  	memset((void*)(&arr0), 0, sizeof(arr0));
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = handleconstexpr_556853_839829468(p0, n0, d0);
  		if (!!(LOC3)) goto LA4;
  		{
  			if (!((*d0).k == ((Tlockind294808) 0))) goto LA8;
  			gettemp_539032_839829468(p0, (*n0).typ, d0, NIM_FALSE);
  		}
  		LA8: ;
  		{
  			NI i_560234_839829468;
  			NI HEX3Atmp_560242_839829468;
  			NI LOC11;
  			NI res_560245_839829468;
  			i_560234_839829468 = (NI)0;
  			HEX3Atmp_560242_839829468 = (NI)0;
  			LOC11 = (NI)0;
  			LOC11 = sonslen_297351_850551059(n0);
  			HEX3Atmp_560242_839829468 = (NI)(LOC11 - ((NI) 1));
  			res_560245_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Ttype294840* LOC14;
  					Ttype294840* LOC15;
  					TY534811 LOC16;
  					if (!(res_560245_839829468 <= HEX3Atmp_560242_839829468)) goto LA13;
  					i_560234_839829468 = res_560245_839829468;
  					LOC14 = (Ttype294840*)0;
  					LOC14 = skiptypes_298099_850551059((*n0).typ, IL64(211106232576256));
  					LOC15 = (Ttype294840*)0;
  					LOC15 = elemtype_322394_3876443242(LOC14);
  					initloc_534273_839829468((&arr0), ((Tlockind294808) 6), LOC15, (*d0).s);
  					memset((void*)LOC16, 0, sizeof(LOC16));
  					LOC16[0] = rdloc_540188_839829468((*d0));
  					LOC16[1] = intliteral_541270_839829468(((NI64) (i_560234_839829468)));
  					arr0.r = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_138), LOC16, 2);
  					expr_541248_839829468(p0, (*n0).kindU.S6.sons->data[i_560234_839829468], (&arr0));
  					res_560245_839829468 += ((NI) 1);
  				} LA13: ;
  			}
  		}
  	}
  	LA4: ;
  }
  
  N_NIMCALL(void, gentupleconstr_559618_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 rec0;
  	memset((void*)(&rec0), 0, sizeof(rec0));
  	{
  		NIM_BOOL LOC3;
  		Ttype294840* t0;
  		Ropeobj180006* LOC6;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = handleconstexpr_556853_839829468(p0, n0, d0);
  		if (!!(LOC3)) goto LA4;
  		t0 = getuniquetype_530640_2036603609((*n0).typ);
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = gettypedesc_537671_839829468((*p0).module, t0);
  		{
  			if (!((*d0).k == ((Tlockind294808) 0))) goto LA9;
  			gettemp_539032_839829468(p0, t0, d0, NIM_FALSE);
  		}
  		LA9: ;
  		{
  			NI i_559646_839829468;
  			NI HEX3Atmp_559803_839829468;
  			NI LOC12;
  			NI res_559806_839829468;
  			i_559646_839829468 = (NI)0;
  			HEX3Atmp_559803_839829468 = (NI)0;
  			LOC12 = (NI)0;
  			LOC12 = sonslen_297351_850551059(n0);
  			HEX3Atmp_559803_839829468 = (NI)(LOC12 - ((NI) 1));
  			res_559806_839829468 = ((NI) 0);
  			{
  				while (1) {
  					Tnode294802* it0;
  					TY534811 LOC19;
  					if (!(res_559806_839829468 <= HEX3Atmp_559803_839829468)) goto LA14;
  					i_559646_839829468 = res_559806_839829468;
  					it0 = (*n0).kindU.S6.sons->data[i_559646_839829468];
  					{
  						if (!((*it0).kind == ((Tnodekind294020) 34))) goto LA17;
  						it0 = (*it0).kindU.S6.sons->data[((NI) 1)];
  					}
  					LA17: ;
  					initloc_534273_839829468((&rec0), ((Tlockind294808) 6), (*it0).typ, (*d0).s);
  					memset((void*)LOC19, 0, sizeof(LOC19));
  					LOC19[0] = rdloc_540188_839829468((*d0));
  					LOC19[1] = rope_180401_2381377266(((NI64) (i_559646_839829468)));
  					rec0.r = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_185), LOC19, 2);
  					expr_541248_839829468(p0, it0, (&rec0));
  					res_559806_839829468 += ((NI) 1);
  				} LA14: ;
  			}
  		}
  	}
  	LA4: ;
  }
  
  N_NIMCALL(Tsym294834*, lookupfieldagain_555153_839829468)(Tcproc531021* p0, Ttype294840* ty_555156_839829468, Tsym294834* field0, Ropeobj180006** r0) {
  	Tsym294834* result0;
  	Ttype294840* ty0;
  	result0 = (Tsym294834*)0;
  	ty0 = ty_555156_839829468;
  	{
  		while (1) {
  			if (!!((ty0 == NIM_NIL))) goto LA2;
  			ty0 = skiptypes_298099_850551059(ty0, IL64(211106247215360));
  			result0 = lookupinrecord_301119_2984716966((*ty0).n, (*field0).name);
  			{
  				if (!!((result0 == NIM_NIL))) goto LA5;
  				goto LA1;
  			}
  			LA5: ;
  			{
  				NIM_BOOL LOC9;
  				LOC9 = (NIM_BOOL)0;
  				LOC9 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  				if (LOC9) goto LA10;
  				LOC9 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  				LA10: ;
  				if (!!(LOC9)) goto LA11;
  				add_180487_2381377266(r0, ((NimStringDesc*) &T839829468_153));
  			}
  			LA11: ;
  			ty0 = getuniquetype_530640_2036603609((*ty0).sons->data[((NI) 0)]);
  		} LA2: ;
  	} LA1: ;
  	{
  		if (!(result0 == NIM_NIL)) goto LA15;
  		internalerror_198100_155036129((*field0).info, ((NimStringDesc*) &T839829468_532));
  	}
  	LA15: ;
  	return result0;
  }
  
  N_NIMCALL(void, genfieldcheck_555504_839829468)(Tcproc531021* p0, Tnode294802* e0, Ropeobj180006* obj0, Tsym294834* field0, Ttype294840* origty0) {
  	Tloc294816 test0;
  	Tloc294816 u0;
  	Tloc294816 v0;
  	memset((void*)(&test0), 0, sizeof(test0));
  	memset((void*)(&u0), 0, sizeof(u0));
  	memset((void*)(&v0), 0, sizeof(v0));
  	{
  		NI i_555525_839829468;
  		NI HEX3Atmp_556039_839829468;
  		NI LOC2;
  		NI res_556042_839829468;
  		i_555525_839829468 = (NI)0;
  		HEX3Atmp_556039_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(e0);
  		HEX3Atmp_556039_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_556042_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Tnode294802* it0;
  				Tsym294834* op0;
  				Tnode294802* disc0;
  				Ropeobj180006* o0;
  				Tsym294834* d0;
  				NI id0;
  				Tnode294802* LOC9;
  				Ropeobj180006* strlit0;
  				if (!(res_556042_839829468 <= HEX3Atmp_556039_839829468)) goto LA4;
  				i_555525_839829468 = res_556042_839829468;
  				it0 = (*e0).kindU.S6.sons->data[i_555525_839829468];
  				op0 = (*(*it0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  				{
  					if (!((*op0).magic == ((Tmagic294524) 99))) goto LA7;
  					it0 = (*it0).kindU.S6.sons->data[((NI) 1)];
  				}
  				LA7: ;
  				disc0 = skipconv_330882_3876443242((*it0).kindU.S6.sons->data[((NI) 2)]);
  				initloc_534273_839829468((&test0), ((Tlockind294808) 0), (*it0).typ, ((Tstorageloc294812) 2));
  				initlocexpr_541283_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 1)], (&u0));
  				o0 = obj0;
  				d0 = lookupfieldagain_555153_839829468(p0, origty0, (*disc0).kindU.S4.sym, &o0);
  				initloc_534273_839829468((&v0), ((Tlockind294808) 6), (*d0).typ, ((Tstorageloc294812) 0));
  				v0.r = o0;
  				add_180487_2381377266(&v0.r, ((NimStringDesc*) &T839829468_257));
  				add_180482_2381377266(&v0.r, (*d0).loc.r);
  				geninexpraux_555496_839829468(p0, it0, (&u0), (&v0), (&test0));
  				LOC9 = (Tnode294802*)0;
  				LOC9 = newstrnode_295678_850551059(((Tnodekind294020) 20), (*(*field0).name).s);
  				id0 = nodetabletestorset_344682_1142335848((&(*(*p0).module).datacache), LOC9, ((NI) ((*(*p0).module).labels)));
  				{
  					if (!(id0 == ((NI) ((*(*p0).module).labels)))) goto LA12;
  					strlit0 = getstrlit_551468_839829468((*p0).module, (*(*field0).name).s);
  				}
  				goto LA10;
  				LA12: ;
  				{
  					Ropeobj180006* LOC15;
  					LOC15 = (Ropeobj180006*)0;
  					LOC15 = rope_180401_2381377266(((NI64) (id0)));
  					strlit0 = HEX26_180418_2381377266((*(*p0).module).tmpbase, LOC15);
  				}
  				LA10: ;
  				{
  					TY534811 LOC20;
  					if (!((*op0).magic == ((Tmagic294524) 99))) goto LA18;
  					memset((void*)LOC20, 0, sizeof(LOC20));
  					LOC20[0] = rdloc_540188_839829468(test0);
  					LOC20[1] = strlit0;
  					linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_534), LOC20, 2);
  				}
  				goto LA16;
  				LA18: ;
  				{
  					TY534811 LOC22;
  					memset((void*)LOC22, 0, sizeof(LOC22));
  					LOC22[0] = rdloc_540188_839829468(test0);
  					LOC22[1] = strlit0;
  					linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_535), LOC22, 2);
  				}
  				LA16: ;
  				res_556042_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  }
  
  N_NIMCALL(void, genobjconstr_556903_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 tmp0;
  	Ttype294840* t0;
  	NIM_BOOL isref0;
  	Ropeobj180006* r0;
  	Ropeobj180006* LOC13;
  	Ttype294840* ty0;
  {	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = handleconstexpr_556853_839829468(p0, e0, d0);
  		if (!LOC3) goto LA4;
  		goto BeforeRet;
  	}
  	LA4: ;
  	memset((void*)(&tmp0), 0, sizeof(tmp0));
  	t0 = skiptypes_298099_850551059((*e0).typ, IL64(211106232576256));
  	gettemp_539032_839829468(p0, t0, (&tmp0), NIM_FALSE);
  	isref0 = ((*t0).kind == ((Ttypekind294244) 22));
  	r0 = rdloc_540188_839829468(tmp0);
  	{
  		Ttype294840* LOC10;
  		TY180507 LOC11;
  		if (!isref0) goto LA8;
  		rawgennew_556741_839829468(p0, tmp0, NIM_NIL);
  		LOC10 = (Ttype294840*)0;
  		LOC10 = lastson_297377_850551059(t0);
  		t0 = skiptypes_298099_850551059(LOC10, IL64(211106232576256));
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = r0;
  		r0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_124), LOC11, 1);
  		gcusage_556439_839829468(e0);
  	}
  	goto LA6;
  	LA8: ;
  	{
  		constructloc_540388_839829468(p0, tmp0, NIM_FALSE);
  	}
  	LA6: ;
  	LOC13 = (Ropeobj180006*)0;
  	LOC13 = gettypedesc_537671_839829468((*p0).module, t0);
  	ty0 = getuniquetype_530640_2036603609(t0);
  	{
  		NI i_556944_839829468;
  		NI HEX3Atmp_556997_839829468;
  		NI LOC15;
  		NI res_557000_839829468;
  		i_556944_839829468 = (NI)0;
  		HEX3Atmp_556997_839829468 = (NI)0;
  		LOC15 = (NI)0;
  		LOC15 = len_295081_850551059(e0);
  		HEX3Atmp_556997_839829468 = (LOC15 - 1);
  		res_557000_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Tnode294802* it0;
  				Tloc294816 tmp20;
  				Tsym294834* field0;
  				if (!(res_557000_839829468 <= HEX3Atmp_556997_839829468)) goto LA17;
  				i_556944_839829468 = res_557000_839829468;
  				it0 = (*e0).kindU.S6.sons->data[i_556944_839829468];
  				memset((void*)(&tmp20), 0, sizeof(tmp20));
  				tmp20.r = r0;
  				field0 = lookupfieldagain_555153_839829468(p0, ty0, (*(*it0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym, &tmp20.r);
  				{
  					if (!((*field0).loc.r == NIM_NIL)) goto LA20;
  					internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_533));
  				}
  				LA20: ;
  				{
  					NIM_BOOL LOC24;
  					NI LOC25;
  					LOC24 = (NIM_BOOL)0;
  					LOC25 = (NI)0;
  					LOC25 = len_295081_850551059(it0);
  					LOC24 = (LOC25 == ((NI) 3));
  					if (!(LOC24)) goto LA26;
  					LOC24 = (((*p0).options &(1U<<((NU)(((Toption171009) 2))&31U)))!=0);
  					LA26: ;
  					if (!LOC24) goto LA27;
  					genfieldcheck_555504_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 2)], r0, field0, ty0);
  				}
  				LA27: ;
  				add_180487_2381377266(&tmp20.r, ((NimStringDesc*) &T839829468_257));
  				add_180482_2381377266(&tmp20.r, (*field0).loc.r);
  				tmp20.k = ((Tlockind294808) 1);
  				tmp20.t = (*field0).loc.t;
  				{
  					if (!isref0) goto LA31;
  					tmp20.s = ((Tstorageloc294812) 3);
  				}
  				goto LA29;
  				LA31: ;
  				{
  					tmp20.s = ((Tstorageloc294812) 2);
  				}
  				LA29: ;
  				expr_541248_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 1)], (&tmp20));
  				res_557000_839829468 += ((NI) 1);
  			} LA17: ;
  		}
  	}
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA36;
  		genericAssign((void*)(&(*d0)), (void*)(&tmp0), (&NTI294816));
  	}
  	goto LA34;
  	LA36: ;
  	{
  		genassignment_541264_839829468(p0, (*d0), tmp0, 0);
  	}
  	LA34: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, gencast_558537_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Ttype294840* destt0;
  	Ttype294840* srct0;
  	destt0 = skiptypes_298099_850551059((*e0).typ, IL64(211106233624832));
  	srct0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106233624832));
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006* lbl0;
  		Tloc294816 tmp0;
  		TY180507 LOC7;
  		TY537238 LOC8;
  		TY180507 LOC9;
  		Ropeobj180006* LOC10;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*destt0).kind >= ((Ttypekind294244) 36) && (*destt0).kind <= ((Ttypekind294244) 39) || (*destt0).kind == ((Ttypekind294244) 18) || (*destt0).kind == ((Ttypekind294244) 17) || (*destt0).kind == ((Ttypekind294244) 16) || (*destt0).kind == ((Ttypekind294244) 4));
  		if (LOC3) goto LA4;
  		LOC3 = ((*srct0).kind >= ((Ttypekind294244) 36) && (*srct0).kind <= ((Ttypekind294244) 39) || (*srct0).kind == ((Ttypekind294244) 18) || (*srct0).kind == ((Ttypekind294244) 17) || (*srct0).kind == ((Ttypekind294244) 16) || (*srct0).kind == ((Ttypekind294244) 4));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		(*p0).labels += ((NI) 1);
  		lbl0 = rope_180401_2381377266(((NI64) ((*p0).labels)));
  		memset((void*)(&tmp0), 0, sizeof(tmp0));
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = lbl0;
  		tmp0.r = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_536), LOC7, 1);
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = gettypedesc_537671_839829468((*p0).module, srct0);
  		LOC8[1] = gettypedesc_537671_839829468((*p0).module, destt0);
  		LOC8[2] = lbl0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 0), ((NimStringDesc*) &T839829468_537), LOC8, 3);
  		tmp0.k = ((Tlockind294808) 6);
  		tmp0.t = srct0;
  		tmp0.s = ((Tstorageloc294812) 2);
  		tmp0.flags = 0;
  		expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&tmp0));
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = lbl0;
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_538), LOC9, 1);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC10, tmp0.s);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		gensomecast_558480_839829468(p0, e0, d0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, genconv_558632_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Ttype294840* desttype0;
  	desttype0 = skiptypes_298099_850551059((*e0).typ, 8390656);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = comparetypes_328214_3876443242(desttype0, (*(*e0).kindU.S6.sons->data[((NI) 1)]).typ, ((Tdistinctcompare326427) 1), 0);
  		if (!LOC3) goto LA4;
  		expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		gensomecast_558480_839829468(p0, e0, d0);
  	}
  	LA1: ;
  }
  
  static N_INLINE(NIM_BOOL, iscppref_554807_839829468)(Tcproc531021* p0, Ttype294840* typ0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC2;
  	NIM_BOOL LOC3;
  	Ttype294840* LOC6;
  	Ttype294840* LOC8;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC2 = (NIM_BOOL)0;
  	LOC3 = (NIM_BOOL)0;
  	LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  	if (LOC3) goto LA4;
  	LOC3 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  	LA4: ;
  	LOC2 = LOC3;
  	if (!(LOC2)) goto LA5;
  	LOC6 = (Ttype294840*)0;
  	LOC6 = skiptypes_298099_850551059(typ0, IL64(211106232576256));
  	LOC2 = ((*LOC6).kind == ((Ttypekind294244) 23));
  	LA5: ;
  	LOC1 = LOC2;
  	if (!(LOC1)) goto LA7;
  	LOC8 = (Ttype294840*)0;
  	LOC8 = skiptypes_298099_850551059(typ0, IL64(211106232576256));
  	LOC1 = !((((*LOC8).flags &(1U<<((NU)(((Ttypeflag294431) 18))&31U)))!=0));
  	LA7: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, genaddr_555051_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	{
  		Ttype294840* LOC3;
  		Tloc294816 a0;
  		Ropeobj180006* LOC6;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  		if (!((*LOC3).kind == ((Ttypekind294244) 22) || (*LOC3).kind == ((Ttypekind294244) 21))) goto LA4;
  		memset((void*)(&a0), 0, sizeof(a0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_52), a0.r);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC6, a0.s);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		NIM_BOOL LOC8;
  		Tctypekind531007 LOC9;
  		LOC8 = (NIM_BOOL)0;
  		LOC9 = (Tctypekind531007)0;
  		LOC9 = maptype_535393_839829468((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ);
  		LOC8 = (LOC9 == ((Tctypekind531007) 17));
  		if (LOC8) goto LA10;
  		LOC8 = iscppref_554807_839829468(p0, (*(*e0).kindU.S6.sons->data[((NI) 0)]).typ);
  		LA10: ;
  		if (!LOC8) goto LA11;
  		expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], d0);
  	}
  	goto LA1;
  	LA11: ;
  	{
  		Tloc294816 a0;
  		Ropeobj180006* LOC14;
  		memset((void*)(&a0), 0, sizeof(a0));
  		initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		LOC14 = (Ropeobj180006*)0;
  		LOC14 = addrloc_540204_839829468(a0);
  		putintodest_552468_839829468(p0, d0, (*e0).typ, LOC14, a0.s);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, genarrayelem_556093_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* ty0;
  	Ttype294840* LOC1;
  	Ropeobj180006* first0;
  	NI64 LOC2;
  	Ttype294840* LOC47;
  	Ttype294840* LOC48;
  	TY537238 LOC49;
  	Ropeobj180006* LOC50;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, x0, (&a0));
  	initlocexpr_541283_839829468(p0, y0, (&b0));
  	LOC1 = (Ttype294840*)0;
  	LOC1 = skiptypes_298099_850551059(a0.t, IL64(211106242013440));
  	ty0 = skiptypes_298099_850551059(LOC1, IL64(211106247256320));
  	LOC2 = (NI64)0;
  	LOC2 = firstord_322001_3876443242(ty0);
  	first0 = intliteral_541270_839829468(LOC2);
  	{
  		NIM_BOOL LOC5;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = (((*p0).options &(1U<<((NU)(((Toption171009) 4))&31U)))!=0);
  		if (!(LOC5)) goto LA6;
  		LOC5 = !((((*ty0).flags &(1U<<((NU)(((Ttypeflag294431) 0))&31U)))!=0));
  		LA6: ;
  		if (!LOC5) goto LA7;
  		{
  			NIM_BOOL LOC11;
  			LOC11 = (NIM_BOOL)0;
  			LOC11 = isconstexpr_320510_2616423590(y0);
  			if (!!(LOC11)) goto LA12;
  			{
  				NI64 LOC16;
  				LOC16 = (NI64)0;
  				LOC16 = firstord_322001_3876443242(ty0);
  				if (!(LOC16 == IL64(0))) goto LA17;
  				{
  					NIM_BOOL LOC21;
  					NI64 LOC22;
  					NI64 LOC23;
  					NI64 LOC25;
  					NI64 LOC26;
  					TY534811 LOC29;
  					NI64 LOC30;
  					LOC21 = (NIM_BOOL)0;
  					LOC22 = (NI64)0;
  					LOC22 = firstord_322001_3876443242(b0.t);
  					LOC23 = (NI64)0;
  					LOC23 = firstord_322001_3876443242(ty0);
  					LOC21 = (LOC22 < LOC23);
  					if (LOC21) goto LA24;
  					LOC25 = (NI64)0;
  					LOC25 = lastord_322004_3876443242(ty0);
  					LOC26 = (NI64)0;
  					LOC26 = lastord_322004_3876443242(b0.t);
  					LOC21 = (LOC25 < LOC26);
  					LA24: ;
  					if (!LOC21) goto LA27;
  					memset((void*)LOC29, 0, sizeof(LOC29));
  					LOC29[0] = rdcharloc_540227_839829468(b0);
  					LOC30 = (NI64)0;
  					LOC30 = lastord_322004_3876443242(ty0);
  					LOC29[1] = intliteral_541270_839829468(LOC30);
  					linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_539), LOC29, 2);
  				}
  				LA27: ;
  			}
  			goto LA14;
  			LA17: ;
  			{
  				TY537238 LOC32;
  				NI64 LOC33;
  				memset((void*)LOC32, 0, sizeof(LOC32));
  				LOC32[0] = rdcharloc_540227_839829468(b0);
  				LOC32[1] = first0;
  				LOC33 = (NI64)0;
  				LOC33 = lastord_322004_3876443242(ty0);
  				LOC32[2] = intliteral_541270_839829468(LOC33);
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_540), LOC32, 3);
  			}
  			LA14: ;
  		}
  		goto LA9;
  		LA12: ;
  		{
  			NI64 idx0;
  			idx0 = getordvalue_322129_3876443242(y0);
  			{
  				NIM_BOOL LOC37;
  				NI64 LOC38;
  				NI64 LOC40;
  				LOC37 = (NIM_BOOL)0;
  				LOC38 = (NI64)0;
  				LOC38 = firstord_322001_3876443242(ty0);
  				LOC37 = (idx0 < LOC38);
  				if (LOC37) goto LA39;
  				LOC40 = (NI64)0;
  				LOC40 = lastord_322004_3876443242(ty0);
  				LOC37 = (LOC40 < idx0);
  				LA39: ;
  				if (!LOC37) goto LA41;
  				localerror_198080_155036129((*x0).info, ((Tmsgkind193002) 86), ((NimStringDesc*) &T839829468_490));
  			}
  			LA41: ;
  		}
  		LA9: ;
  	}
  	LA7: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA45;
  		(*d0).s = a0.s;
  	}
  	LA45: ;
  	LOC47 = (Ttype294840*)0;
  	LOC47 = skiptypes_298099_850551059(ty0, IL64(211106240964864));
  	LOC48 = (Ttype294840*)0;
  	LOC48 = elemtype_322394_3876443242(LOC47);
  	memset((void*)LOC49, 0, sizeof(LOC49));
  	LOC49[0] = rdloc_540188_839829468(a0);
  	LOC49[1] = rdcharloc_540227_839829468(b0);
  	LOC49[2] = first0;
  	LOC50 = (Ropeobj180006*)0;
  	LOC50 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_541), LOC49, 3);
  	putintodest_552468_839829468(p0, d0, LOC48, LOC50, a0.s);
  }
  
  N_NIMCALL(void, genopenarrayelem_556169_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* LOC10;
  	Ttype294840* LOC11;
  	TY534811 LOC12;
  	Ropeobj180006* LOC13;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, x0, (&a0));
  	initlocexpr_541283_839829468(p0, y0, (&b0));
  	{
  		TY534811 LOC5;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 4))&31U)))!=0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rdloc_540188_839829468(b0);
  		LOC5[1] = rdloc_540188_839829468(a0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_542), LOC5, 2);
  	}
  	LA3: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA8;
  		(*d0).s = a0.s;
  	}
  	LA8: ;
  	LOC10 = (Ttype294840*)0;
  	LOC10 = skiptypes_298099_850551059(a0.t, IL64(211106240964864));
  	LOC11 = (Ttype294840*)0;
  	LOC11 = elemtype_322394_3876443242(LOC10);
  	memset((void*)LOC12, 0, sizeof(LOC12));
  	LOC12[0] = rdloc_540188_839829468(a0);
  	LOC12[1] = rdcharloc_540227_839829468(b0);
  	LOC13 = (Ropeobj180006*)0;
  	LOC13 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_138), LOC12, 2);
  	putintodest_552468_839829468(p0, d0, LOC11, LOC13, a0.s);
  }
  
  N_NIMCALL(void, genseqelem_556205_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* ty0;
  	Ttype294840* LOC27;
  	Ttype294840* LOC28;
  	TY534811 LOC29;
  	Ropeobj180006* LOC30;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, x0, (&a0));
  	initlocexpr_541283_839829468(p0, y0, (&b0));
  	ty0 = skiptypes_298099_850551059(a0.t, IL64(211106242013440));
  	{
  		Ttype294840* LOC5;
  		if (!((*ty0).kind == ((Ttypekind294244) 22) || (*ty0).kind == ((Ttypekind294244) 21))) goto LA3;
  		LOC5 = (Ttype294840*)0;
  		LOC5 = lastson_297377_850551059(ty0);
  		ty0 = skiptypes_298099_850551059(LOC5, IL64(211106242013440));
  	}
  	LA3: ;
  	{
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 4))&31U)))!=0)) goto LA8;
  		{
  			TY537238 LOC14;
  			if (!((*ty0).kind == ((Ttypekind294244) 28))) goto LA12;
  			memset((void*)LOC14, 0, sizeof(LOC14));
  			LOC14[0] = rdloc_540188_839829468(b0);
  			LOC14[1] = rdloc_540188_839829468(a0);
  			LOC14[2] = lenfield_541305_839829468(p0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_543), LOC14, 3);
  		}
  		goto LA10;
  		LA12: ;
  		{
  			TY537238 LOC16;
  			memset((void*)LOC16, 0, sizeof(LOC16));
  			LOC16[0] = rdloc_540188_839829468(b0);
  			LOC16[1] = rdloc_540188_839829468(a0);
  			LOC16[2] = lenfield_541305_839829468(p0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_544), LOC16, 3);
  		}
  		LA10: ;
  	}
  	LA8: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA19;
  		(*d0).s = ((Tstorageloc294812) 3);
  	}
  	LA19: ;
  	{
  		Ttype294840* LOC23;
  		TY180507 LOC26;
  		LOC23 = (Ttype294840*)0;
  		LOC23 = skiptypes_298099_850551059(a0.t, IL64(211106240964864));
  		if (!((*LOC23).kind == ((Ttypekind294244) 22) || (*LOC23).kind == ((Ttypekind294244) 21))) goto LA24;
  		memset((void*)LOC26, 0, sizeof(LOC26));
  		LOC26[0] = a0.r;
  		a0.r = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_124), LOC26, 1);
  	}
  	LA24: ;
  	LOC27 = (Ttype294840*)0;
  	LOC27 = skiptypes_298099_850551059(a0.t, IL64(211106240964864));
  	LOC28 = (Ttype294840*)0;
  	LOC28 = elemtype_322394_3876443242(LOC27);
  	memset((void*)LOC29, 0, sizeof(LOC29));
  	LOC29[0] = rdloc_540188_839829468(a0);
  	LOC29[1] = rdcharloc_540227_839829468(b0);
  	LOC30 = (Ropeobj180006*)0;
  	LOC30 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_187), LOC29, 2);
  	putintodest_552468_839829468(p0, d0, LOC28, LOC30, a0.s);
  }
  
  N_NIMCALL(void, gencstringelem_556144_839829468)(Tcproc531021* p0, Tnode294802* x0, Tnode294802* y0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Tloc294816 b0;
  	Ttype294840* ty0;
  	Ttype294840* LOC5;
  	Ttype294840* LOC6;
  	TY534811 LOC7;
  	Ropeobj180006* LOC8;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&b0), 0, sizeof(b0));
  	initlocexpr_541283_839829468(p0, x0, (&a0));
  	initlocexpr_541283_839829468(p0, y0, (&b0));
  	ty0 = skiptypes_298099_850551059(a0.t, IL64(211106242013440));
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA3;
  		(*d0).s = a0.s;
  	}
  	LA3: ;
  	LOC5 = (Ttype294840*)0;
  	LOC5 = skiptypes_298099_850551059(ty0, IL64(211106240964864));
  	LOC6 = (Ttype294840*)0;
  	LOC6 = elemtype_322394_3876443242(LOC5);
  	memset((void*)LOC7, 0, sizeof(LOC7));
  	LOC7[0] = rdloc_540188_839829468(a0);
  	LOC7[1] = rdcharloc_540227_839829468(b0);
  	LOC8 = (Ropeobj180006*)0;
  	LOC8 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_138), LOC7, 2);
  	putintodest_552468_839829468(p0, d0, LOC6, LOC8, a0.s);
  }
  
  N_NIMCALL(void, gentupleelem_555124_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	NI i0;
  	Ropeobj180006* LOC5;
  	Ttype294840* ty0;
  	Ropeobj180006* r0;
  	TY180507 LOC8;
  	memset((void*)(&a0), 0, sizeof(a0));
  	i0 = (NI)0;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA3;
  		(*d0).s = a0.s;
  	}
  	LA3: ;
  	LOC5 = (Ropeobj180006*)0;
  	LOC5 = gettypedesc_537671_839829468((*p0).module, a0.t);
  	ty0 = getuniquetype_530640_2036603609(a0.t);
  	r0 = rdloc_540188_839829468(a0);
  	switch ((*(*e0).kindU.S6.sons->data[((NI) 1)]).kind) {
  	case ((Tnodekind294020) 6) ... ((Tnodekind294020) 15):
  	{
  		i0 = ((NI) ((*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval));
  	}
  	break;
  	default:
  	{
  		internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_545));
  	}
  	break;
  	}
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = rope_180401_2381377266(((NI64) (i0)));
  	addf_181205_2381377266(&r0, ((NimStringDesc*) &T839829468_546), LOC8, 1);
  	putintodest_552468_839829468(p0, d0, (*ty0).sons->data[i0], r0, a0.s);
  }
  
  N_NIMCALL(void, genbracketexpr_556277_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Ttype294840* ty0;
  	ty0 = skiptypes_298099_850551059((*(*n0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
  	{
  		Ttype294840* LOC5;
  		if (!((*ty0).kind == ((Ttypekind294244) 22) || (*ty0).kind == ((Ttypekind294244) 21))) goto LA3;
  		LOC5 = (Ttype294840*)0;
  		LOC5 = lastson_297377_850551059(ty0);
  		ty0 = skiptypes_298099_850551059(LOC5, IL64(211106242013440));
  	}
  	LA3: ;
  	switch ((*ty0).kind) {
  	case ((Ttypekind294244) 16):
  	case ((Ttypekind294244) 4):
  	{
  		genarrayelem_556093_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (*n0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	break;
  	case ((Ttypekind294244) 27):
  	case ((Ttypekind294244) 48):
  	{
  		genopenarrayelem_556169_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (*n0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	break;
  	case ((Ttypekind294244) 24):
  	case ((Ttypekind294244) 28):
  	{
  		genseqelem_556205_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (*n0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	break;
  	case ((Ttypekind294244) 29):
  	{
  		gencstringelem_556144_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (*n0).kindU.S6.sons->data[((NI) 1)], d0);
  	}
  	break;
  	case ((Ttypekind294244) 18):
  	{
  		gentupleelem_555124_839829468(p0, n0, d0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC12;
  		LOC12 = (NimStringDesc*)0;
  		LOC12 = rawNewString(reprEnum((NI)(*ty0).kind, (&NTI294244))->Sup.len + 21);
  appendString(LOC12, ((NimStringDesc*) &T839829468_547));
  appendString(LOC12, reprEnum((NI)(*ty0).kind, (&NTI294244)));
  appendChar(LOC12, 41);
  		internalerror_198100_155036129((*n0).info, LOC12);
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, genderef_545921_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, NIM_BOOL enforcederef0) {
  	Tctypekind531007 mt0;
  {	mt0 = maptype_535393_839829468((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((393216 &(1U<<((NU)(mt0)&31U)))!=0);
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(enforcederef0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], d0);
  		{
  			Ttype294840* LOC9;
  			LOC9 = (Ttype294840*)0;
  			LOC9 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  			if (!((*LOC9).kind == ((Ttypekind294244) 22))) goto LA10;
  			(*d0).s = ((Tstorageloc294812) 3);
  		}
  		LA10: ;
  	}
  	goto LA1;
  	LA5: ;
  	{
  		Tloc294816 a0;
  		Ttype294840* typ0;
  		memset((void*)(&a0), 0, sizeof(a0));
  		typ0 = skiptypes_298099_850551059((*(*e0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  		{
  			NIM_BOOL LOC15;
  			NIM_BOOL LOC16;
  			NIM_BOOL LOC17;
  			NIM_BOOL LOC20;
  			Tnode294802* LOC25;
  			Tnode294802* LOC26;
  			LOC15 = (NIM_BOOL)0;
  			LOC16 = (NIM_BOOL)0;
  			LOC17 = (NIM_BOOL)0;
  			LOC17 = ((*typ0).kind == ((Ttypekind294244) 23));
  			if (!(LOC17)) goto LA18;
  			LOC17 = !((((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 18))&31U)))!=0));
  			LA18: ;
  			LOC16 = LOC17;
  			if (!(LOC16)) goto LA19;
  			LOC20 = (NIM_BOOL)0;
  			LOC20 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC20) goto LA21;
  			LOC20 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA21: ;
  			LOC16 = LOC20;
  			LA19: ;
  			LOC15 = LOC16;
  			if (!(LOC15)) goto LA22;
  			LOC15 = ((*(*e0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 64));
  			LA22: ;
  			if (!LOC15) goto LA23;
  			LOC25 = (Tnode294802*)0;
  			LOC25 = HEX5BHEX5D_295238_850551059(e0, ((NI) 0));
  			LOC26 = (Tnode294802*)0;
  			LOC26 = HEX5BHEX5D_295238_850551059(LOC25, ((NI) 0));
  			initlocexprsingleuse_541289_839829468(p0, LOC26, d0);
  			goto BeforeRet;
  		}
  		goto LA13;
  		LA23: ;
  		{
  			initlocexprsingleuse_541289_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		}
  		LA13: ;
  		{
  			if (!((*d0).k == ((Tlockind294808) 0))) goto LA30;
  			switch ((*typ0).kind) {
  			case ((Ttypekind294244) 22):
  			{
  				(*d0).s = ((Tstorageloc294812) 3);
  			}
  			break;
  			case ((Ttypekind294244) 23):
  			{
  				(*d0).s = ((Tstorageloc294812) 0);
  				{
  					NIM_BOOL LOC36;
  					NIM_BOOL LOC37;
  					NIM_BOOL LOC39;
  					Ropeobj180006* LOC44;
  					LOC36 = (NIM_BOOL)0;
  					LOC37 = (NIM_BOOL)0;
  					LOC37 = !((((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 18))&31U)))!=0));
  					if (!(LOC37)) goto LA38;
  					LOC39 = (NIM_BOOL)0;
  					LOC39 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  					if (LOC39) goto LA40;
  					LOC39 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  					LA40: ;
  					LOC37 = LOC39;
  					LA38: ;
  					LOC36 = LOC37;
  					if (!(LOC36)) goto LA41;
  					LOC36 = ((*e0).kind == ((Tnodekind294020) 65));
  					LA41: ;
  					if (!LOC36) goto LA42;
  					LOC44 = (Ropeobj180006*)0;
  					LOC44 = rdloc_540188_839829468(a0);
  					putintodest_552468_839829468(p0, d0, (*e0).typ, LOC44, a0.s);
  					goto BeforeRet;
  				}
  				LA42: ;
  			}
  			break;
  			case ((Ttypekind294244) 21):
  			{
  				(*d0).s = ((Tstorageloc294812) 0);
  			}
  			break;
  			default:
  			{
  				NimStringDesc* LOC47;
  				LOC47 = (NimStringDesc*)0;
  				LOC47 = rawNewString(reprEnum((NI)(*typ0).kind, (&NTI294244))->Sup.len + 9);
  appendString(LOC47, ((NimStringDesc*) &T839829468_548));
  appendString(LOC47, reprEnum((NI)(*typ0).kind, (&NTI294244)));
  				internalerror_198100_155036129((*e0).info, LOC47);
  			}
  			break;
  			}
  		}
  		goto LA28;
  		LA30: ;
  		{
  			NIM_BOOL LOC49;
  			LOC49 = (NIM_BOOL)0;
  			LOC49 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC49) goto LA50;
  			LOC49 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA50: ;
  			if (!LOC49) goto LA51;
  			{
  				NIM_BOOL LOC55;
  				NIM_BOOL LOC56;
  				Ropeobj180006* LOC61;
  				LOC55 = (NIM_BOOL)0;
  				LOC56 = (NIM_BOOL)0;
  				LOC56 = ((*typ0).kind == ((Ttypekind294244) 23));
  				if (!(LOC56)) goto LA57;
  				LOC56 = !((((*typ0).flags &(1U<<((NU)(((Ttypeflag294431) 18))&31U)))!=0));
  				LA57: ;
  				LOC55 = LOC56;
  				if (!(LOC55)) goto LA58;
  				LOC55 = ((*e0).kind == ((Tnodekind294020) 65));
  				LA58: ;
  				if (!LOC55) goto LA59;
  				LOC61 = (Ropeobj180006*)0;
  				LOC61 = rdloc_540188_839829468(a0);
  				putintodest_552468_839829468(p0, d0, (*e0).typ, LOC61, a0.s);
  				goto BeforeRet;
  			}
  			LA59: ;
  		}
  		goto LA28;
  		LA51: ;
  		LA28: ;
  		{
  			NIM_BOOL LOC64;
  			Ropeobj180006* LOC68;
  			LOC64 = (NIM_BOOL)0;
  			LOC64 = enforcederef0;
  			if (!(LOC64)) goto LA65;
  			LOC64 = (mt0 == ((Tctypekind531007) 18));
  			LA65: ;
  			if (!LOC64) goto LA66;
  			LOC68 = (Ropeobj180006*)0;
  			LOC68 = rdloc_540188_839829468(a0);
  			putintodest_552468_839829468(p0, d0, (*a0.t).sons->data[((NI) 0)], LOC68, a0.s);
  		}
  		goto LA62;
  		LA66: ;
  		{
  			TY180507 LOC70;
  			Ropeobj180006* LOC71;
  			memset((void*)LOC70, 0, sizeof(LOC70));
  			LOC70[0] = rdloc_540188_839829468(a0);
  			LOC71 = (Ropeobj180006*)0;
  			LOC71 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_124), LOC70, 1);
  			putintodest_552468_839829468(p0, d0, (*e0).typ, LOC71, a0.s);
  		}
  		LA62: ;
  	}
  	LA1: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(Ttype294840*, genrecordfieldaux_555096_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0, Tloc294816* a0) {
  	Ttype294840* result0;
  	Ropeobj180006* LOC9;
  	result0 = (Ttype294840*)0;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], a0);
  	{
  		if (!!(((*(*e0).kindU.S6.sons->data[((NI) 1)]).kind == ((Tnodekind294020) 3)))) goto LA3;
  		internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_549));
  	}
  	LA3: ;
  	{
  		if (!((*d0).k == ((Tlockind294808) 0))) goto LA7;
  		(*d0).s = (*a0).s;
  	}
  	LA7: ;
  	LOC9 = (Ropeobj180006*)0;
  	LOC9 = gettypedesc_537671_839829468((*p0).module, (*a0).t);
  	result0 = getuniquetype_530640_2036603609((*a0).t);
  	return result0;
  }
  
  N_NIMCALL(void, genrecordfield_555448_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* ty0;
  	Ropeobj180006* r0;
  	Tsym294834* f0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	ty0 = genrecordfieldaux_555096_839829468(p0, e0, d0, (&a0));
  	r0 = rdloc_540188_839829468(a0);
  	f0 = (*(*e0).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
  	{
  		TY180507 LOC5;
  		if (!((*ty0).kind == ((Ttypekind294244) 18))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rope_180401_2381377266(((NI64) ((*f0).position)));
  		addf_181205_2381377266(&r0, ((NimStringDesc*) &T839829468_546), LOC5, 1);
  		putintodest_552468_839829468(p0, d0, (*f0).typ, r0, a0.s);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		Tsym294834* field0;
  		TY180507 LOC11;
  		field0 = lookupfieldagain_555153_839829468(p0, ty0, f0, &r0);
  		{
  			if (!((*field0).loc.r == NIM_NIL)) goto LA9;
  			internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_550));
  		}
  		LA9: ;
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = (*field0).loc.r;
  		addf_181205_2381377266(&r0, ((NimStringDesc*) &T839829468_551), LOC11, 1);
  		putintodest_552468_839829468(p0, d0, (*field0).typ, r0, a0.s);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gencheckedrecordfield_556046_839829468)(Tcproc531021* p0, Tnode294802* e0, Tloc294816* d0) {
  	{
  		Tloc294816 a0;
  		Ttype294840* ty0;
  		Ropeobj180006* r0;
  		Tsym294834* f0;
  		Tsym294834* field0;
  		TY180507 LOC9;
  		Ropeobj180006* LOC10;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 2))&31U)))!=0)) goto LA3;
  		memset((void*)(&a0), 0, sizeof(a0));
  		ty0 = genrecordfieldaux_555096_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], d0, (&a0));
  		r0 = rdloc_540188_839829468(a0);
  		f0 = (*(*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
  		field0 = lookupfieldagain_555153_839829468(p0, ty0, f0, &r0);
  		{
  			if (!((*field0).loc.r == NIM_NIL)) goto LA7;
  			internalerror_198100_155036129((*e0).info, ((NimStringDesc*) &T839829468_532));
  		}
  		LA7: ;
  		genfieldcheck_555504_839829468(p0, e0, r0, field0, ty0);
  		memset((void*)LOC9, 0, sizeof(LOC9));
  		LOC9[0] = (*field0).loc.r;
  		LOC10 = (Ropeobj180006*)0;
  		LOC10 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_551), LOC9, 1);
  		add_180482_2381377266(&r0, LOC10);
  		putintodest_552468_839829468(p0, d0, (*field0).typ, r0, a0.s);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		genrecordfield_555448_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], d0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(NI, startblock_545978_839829468)(Tcproc531021* p0, NimStringDesc* start0, Ropeobj180006** args0, NI args0Len0) {
  	NI result0;
  	result0 = (NI)0;
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), start0, args0, args0Len0);
  	(*p0).labels += ((NI) 1);
  	result0 = ((*p0).blocks ? (*p0).blocks->Sup.len : 0);
  	(*p0).blocks = (TY531095*) setLengthSeq(&((*p0).blocks)->Sup, sizeof(Tblock531019), ((NI) ((NI)(result0 + ((NI) 1)))));
  	(*p0).blocks->data[result0].id = ((NI) ((*p0).labels));
  	(*p0).blocks->data[result0].nestedtrystmts = ((NI16) (((*p0).nestedtrystmts ? (*p0).nestedtrystmts->Sup.len : 0)));
  	(*p0).blocks->data[result0].nestedexceptstmts = ((NI16) ((*p0).inexceptblock));
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, blockbody_546025_839829468)(Tblock531019* b0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = (*b0).sections[(((Tcprocsection531011) 0))- 0];
  	{
  		TY180507 LOC5;
  		if (!(((NI16) 0) < (*b0).framelen)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rope_180401_2381377266(((NI64) ((*b0).framelen)));
  		addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_554), LOC5, 1);
  	}
  	LA3: ;
  	add_180482_2381377266(&result0, (*b0).sections[(((Tcprocsection531011) 1))- 0]);
  	add_180482_2381377266(&result0, (*b0).sections[(((Tcprocsection531011) 2))- 0]);
  	return result0;
  }
  
  N_NIMCALL(void, endblock_546035_839829468)(Tcproc531021* p0, Ropeobj180006* blockend0) {
  	NI topblock0;
  	Ropeobj180006* LOC1;
  	topblock0 = (NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1));
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = blockbody_546025_839829468((&(*p0).blocks->data[topblock0]));
  	add_180482_2381377266(&(*p0).blocks->data[(NI)(topblock0 - ((NI) 1))].sections[(((Tcprocsection531011) 2))- 0], LOC1);
  	(*p0).blocks = (TY531095*) setLengthSeq(&((*p0).blocks)->Sup, sizeof(Tblock531019), ((NI) (topblock0)));
  	line_534690_839829468(p0, ((Tcprocsection531011) 2), blockend0);
  }
  
  N_NIMCALL(void, endblock_546060_839829468)(Tcproc531021* p0) {
  	NI topblock0;
  	Ropeobj180006* blockend0;
  	NI16 framelen0;
  	topblock0 = (NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1));
  	{
  		TY180507 LOC5;
  		if (!!(((*p0).blocks->data[topblock0].label == NIM_NIL))) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = (*p0).blocks->data[topblock0].label;
  		blockend0 = ropecg_534407_839829468(NIM_NIL, ((NimStringDesc*) &T839829468_552), LOC5, 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY535289 LOC7;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		blockend0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_160), LOC7, 0);
  	}
  	LA1: ;
  	framelen0 = (*p0).blocks->data[topblock0].framelen;
  	{
  		TY180507 LOC12;
  		if (!(((NI16) 0) < framelen0)) goto LA10;
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		LOC12[0] = rope_180401_2381377266(((NI64) (framelen0)));
  		addf_181205_2381377266(&blockend0, ((NimStringDesc*) &T839829468_553), LOC12, 1);
  	}
  	LA10: ;
  	endblock_546035_839829468(p0, blockend0);
  }
  
  N_NIMCALL(void, genblock_548083_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	NI oldbreakidx_548099_839829468;
  	TY535289 LOC8;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = isemptytype_299440_850551059((*n0).typ);
  		LOC3 = !(LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*d0).k == ((Tlockind294808) 0));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		gettemp_539032_839829468(p0, (*n0).typ, d0, NIM_FALSE);
  	}
  	LA6: ;
  	oldbreakidx_548099_839829468 = (*p0).breakidx;
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	(*p0).breakidx = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC8, 0);
  	{
  		Tsym294834* sym0;
  		if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1)))) goto LA11;
  		sym0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		(*sym0).loc.k = ((Tlockind294808) 10);
  		(*sym0).position = (NI)((*p0).breakidx + ((NI) 1));
  	}
  	LA11: ;
  	expr_541248_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], d0);
  	endblock_546060_839829468(p0);
  	(*p0).breakidx = oldbreakidx_548099_839829468;
  }
  
  N_NIMCALL(void, genstmtlistexpr_560402_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	NI length0;
  	length0 = sonslen_297351_850551059(n0);
  	{
  		NI i_560420_839829468;
  		NI HEX3Atmp_560424_839829468;
  		NI res_560427_839829468;
  		i_560420_839829468 = (NI)0;
  		HEX3Atmp_560424_839829468 = (NI)0;
  		HEX3Atmp_560424_839829468 = (NI)(length0 - ((NI) 2));
  		res_560427_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_560427_839829468 <= HEX3Atmp_560424_839829468)) goto LA3;
  				i_560420_839829468 = res_560427_839829468;
  				genstmts_541244_839829468(p0, (*n0).kindU.S6.sons->data[i_560420_839829468]);
  				res_560427_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	{
  		if (!(((NI) 0) < length0)) goto LA6;
  		expr_541248_839829468(p0, (*n0).kindU.S6.sons->data[(NI)(length0 - ((NI) 1))], d0);
  	}
  	LA6: ;
  }
  
  N_NIMCALL(void, genif_546982_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ropeobj180006* lelse0;
  	Ropeobj180006* lend0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	lelse0 = (Ropeobj180006*)0;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = isemptytype_299440_850551059((*n0).typ);
  		LOC3 = !(LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*d0).k == ((Tlockind294808) 0));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		gettemp_539032_839829468(p0, (*n0).typ, d0, NIM_FALSE);
  	}
  	LA6: ;
  	genlinedir_534823_839829468(p0, n0);
  	lend0 = getlabel_541217_839829468(p0);
  	{
  		NI i_547011_839829468;
  		NI HEX3Atmp_547435_839829468;
  		NI LOC9;
  		NI res_547438_839829468;
  		i_547011_839829468 = (NI)0;
  		HEX3Atmp_547435_839829468 = (NI)0;
  		LOC9 = (NI)0;
  		LOC9 = sonslen_297351_850551059(n0);
  		HEX3Atmp_547435_839829468 = (NI)(LOC9 - ((NI) 1));
  		res_547438_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Tnode294802* it0;
  				if (!(res_547438_839829468 <= HEX3Atmp_547435_839829468)) goto LA11;
  				i_547011_839829468 = res_547438_839829468;
  				{
  					NIM_BOOL LOC14;
  					LOC14 = (NIM_BOOL)0;
  					LOC14 = ((*d0).k == ((Tlockind294808) 1));
  					if (!(LOC14)) goto LA15;
  					LOC14 = isemptytype_299440_850551059((*n0).typ);
  					LA15: ;
  					if (!LOC14) goto LA16;
  					(*d0).k = ((Tlockind294808) 0);
  				}
  				LA16: ;
  				it0 = (*n0).kindU.S6.sons->data[i_547011_839829468];
  				{
  					NI LOC20;
  					TY535289 LOC23;
  					NI LOC24;
  					TY534811 LOC25;
  					LOC20 = (NI)0;
  					LOC20 = len_295081_850551059(it0);
  					if (!(LOC20 == ((NI) 2))) goto LA21;
  					memset((void*)LOC23, 0, sizeof(LOC23));
  					LOC24 = (NI)0;
  					LOC24 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC23, 0);
  					initlocexprsingleuse_541289_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 0)], (&a0));
  					lelse0 = getlabel_541217_839829468(p0);
  					(*p0).labels += ((NI) 1);
  					memset((void*)LOC25, 0, sizeof(LOC25));
  					LOC25[0] = rdloc_540188_839829468(a0);
  					LOC25[1] = lelse0;
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_555), LOC25, 2);
  					{
  						NIM_BOOL LOC28;
  						Ropeobj180006** LOC32;
  						Ropeobj180006** LOC33;
  						LOC28 = (NIM_BOOL)0;
  						LOC28 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  						if (LOC28) goto LA29;
  						LOC28 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  						LA29: ;
  						if (!LOC28) goto LA30;
  						LOC32 = (Ropeobj180006**)0;
  						LOC32 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  						add_180487_2381377266(LOC32, ((NimStringDesc*) &T839829468_223));
  						expr_541248_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 1)], d0);
  						LOC33 = (Ropeobj180006**)0;
  						LOC33 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  						add_180487_2381377266(LOC33, ((NimStringDesc*) &T839829468_280));
  					}
  					goto LA26;
  					LA30: ;
  					{
  						expr_541248_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 1)], d0);
  					}
  					LA26: ;
  					endblock_546060_839829468(p0);
  					{
  						NI LOC37;
  						TY180507 LOC40;
  						LOC37 = (NI)0;
  						LOC37 = sonslen_297351_850551059(n0);
  						if (!(((NI) 1) < LOC37)) goto LA38;
  						memset((void*)LOC40, 0, sizeof(LOC40));
  						LOC40[0] = lend0;
  						linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_556), LOC40, 1);
  					}
  					LA38: ;
  					fixlabel_541230_839829468(p0, lelse0);
  				}
  				goto LA18;
  				LA21: ;
  				{
  					NI LOC42;
  					TY535289 LOC45;
  					NI LOC46;
  					LOC42 = (NI)0;
  					LOC42 = len_295081_850551059(it0);
  					if (!(LOC42 == ((NI) 1))) goto LA43;
  					memset((void*)LOC45, 0, sizeof(LOC45));
  					LOC46 = (NI)0;
  					LOC46 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC45, 0);
  					expr_541248_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 0)], d0);
  					endblock_546060_839829468(p0);
  				}
  				goto LA18;
  				LA43: ;
  				{
  					internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_557));
  				}
  				LA18: ;
  				res_547438_839829468 += ((NI) 1);
  			} LA11: ;
  		}
  	}
  	{
  		NI LOC50;
  		LOC50 = (NI)0;
  		LOC50 = sonslen_297351_850551059(n0);
  		if (!(((NI) 1) < LOC50)) goto LA51;
  		fixlabel_541230_839829468(p0, lend0);
  	}
  	LA51: ;
  }
  
  N_NIMCALL(void, downconv_560581_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC3) goto LA4;
  		LOC3 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		expr_541248_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], d0);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		Ttype294840* dest0;
  		Tnode294802* arg0;
  		Ttype294840* src0;
  		Tloc294816 a0;
  		Ropeobj180006* r0;
  		NIM_BOOL isref0;
  		Ttype294840* LOC10;
  		dest0 = skiptypes_298099_850551059((*n0).typ, IL64(211106247256320));
  		arg0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  		{
  			while (1) {
  				if (!((*arg0).kind == ((Tnodekind294020) 66))) goto LA9;
  				arg0 = (*arg0).kindU.S6.sons->data[((NI) 0)];
  			} LA9: ;
  		}
  		src0 = skiptypes_298099_850551059((*arg0).typ, IL64(211106247256320));
  		memset((void*)(&a0), 0, sizeof(a0));
  		initlocexpr_541283_839829468(p0, arg0, (&a0));
  		r0 = rdloc_540188_839829468(a0);
  		LOC10 = (Ttype294840*)0;
  		LOC10 = skiptypes_298099_850551059((*arg0).typ, IL64(211106232576256));
  		isref0 = ((*LOC10).kind == ((Ttypekind294244) 22) || (*LOC10).kind == ((Ttypekind294244) 21) || (*LOC10).kind == ((Ttypekind294244) 23));
  		{
  			if (!isref0) goto LA13;
  			add_180487_2381377266(&r0, ((NimStringDesc*) &T839829468_558));
  		}
  		goto LA11;
  		LA13: ;
  		{
  			add_180487_2381377266(&r0, ((NimStringDesc*) &T839829468_153));
  		}
  		LA11: ;
  		{
  			NI i_560650_839829468;
  			NI HEX3Atmp_560677_839829468;
  			NI LOC17;
  			NI res_560680_839829468;
  			i_560650_839829468 = (NI)0;
  			HEX3Atmp_560677_839829468 = (NI)0;
  			LOC17 = (NI)0;
  			LOC17 = inheritancediff_328252_3876443242(dest0, src0);
  			HEX3Atmp_560677_839829468 = (LOC17 > 0? (LOC17) : -(LOC17));
  			res_560680_839829468 = ((NI) 2);
  			{
  				while (1) {
  					if (!(res_560680_839829468 <= HEX3Atmp_560677_839829468)) goto LA19;
  					i_560650_839829468 = res_560680_839829468;
  					add_180487_2381377266(&r0, ((NimStringDesc*) &T839829468_153));
  					res_560680_839829468 += ((NI) 1);
  				} LA19: ;
  			}
  		}
  		{
  			if (!isref0) goto LA22;
  			{
  				NIM_BOOL LOC26;
  				Ttype294840* LOC28;
  				TY534811 LOC31;
  				LOC26 = (NIM_BOOL)0;
  				LOC26 = ((*d0).k == ((Tlockind294808) 0));
  				if (!(LOC26)) goto LA27;
  				LOC28 = (Ttype294840*)0;
  				LOC28 = skiptypes_298099_850551059((*n0).typ, IL64(211106232576256));
  				LOC26 = ((*LOC28).kind == ((Ttypekind294244) 22) || (*LOC28).kind == ((Ttypekind294244) 21) || (*LOC28).kind == ((Ttypekind294244) 23));
  				LA27: ;
  				if (!LOC26) goto LA29;
  				gettemp_539032_839829468(p0, (*n0).typ, d0, NIM_FALSE);
  				memset((void*)LOC31, 0, sizeof(LOC31));
  				LOC31[0] = rdloc_540188_839829468((*d0));
  				LOC31[1] = r0;
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_559), LOC31, 2);
  			}
  			goto LA24;
  			LA29: ;
  			{
  				r0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_52), r0);
  				putintodest_552468_839829468(p0, d0, (*n0).typ, r0, a0.s);
  			}
  			LA24: ;
  		}
  		goto LA20;
  		LA22: ;
  		{
  			putintodest_552468_839829468(p0, d0, (*n0).typ, r0, a0.s);
  		}
  		LA20: ;
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, upconv_560431_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* dest0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	dest0 = skiptypes_298099_850551059((*n0).typ, IL64(211106247256320));
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		Ropeobj180006* r0;
  		Ropeobj180006* nilcheck0;
  		Ttype294840* t0;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (((*p0).options &(1U<<((NU)(((Toption171009) 1))&31U)))!=0);
  		if (!(LOC3)) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = isobjlackingtypefield_535513_839829468(dest0);
  		LOC3 = !(LOC5);
  		LA4: ;
  		if (!LOC3) goto LA6;
  		r0 = rdloc_540188_839829468(a0);
  		nilcheck0 = NIM_NIL;
  		t0 = skiptypes_298099_850551059(a0.t, IL64(211106232576256));
  		{
  			while (1) {
  				Ttype294840* LOC23;
  				if (!((*t0).kind == ((Ttypekind294244) 23) || (*t0).kind == ((Ttypekind294244) 21) || (*t0).kind == ((Ttypekind294244) 22))) goto LA9;
  				{
  					if (!!(((*t0).kind == ((Ttypekind294244) 23)))) goto LA12;
  					nilcheck0 = r0;
  				}
  				LA12: ;
  				{
  					NIM_BOOL LOC16;
  					NIM_BOOL LOC18;
  					TY180507 LOC22;
  					LOC16 = (NIM_BOOL)0;
  					LOC16 = !(((*t0).kind == ((Ttypekind294244) 23)));
  					if (LOC16) goto LA17;
  					LOC18 = (NIM_BOOL)0;
  					LOC18 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  					if (LOC18) goto LA19;
  					LOC18 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  					LA19: ;
  					LOC16 = !(LOC18);
  					LA17: ;
  					if (!LOC16) goto LA20;
  					memset((void*)LOC22, 0, sizeof(LOC22));
  					LOC22[0] = r0;
  					r0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_124), LOC22, 1);
  				}
  				LA20: ;
  				LOC23 = (Ttype294840*)0;
  				LOC23 = lastson_297377_850551059(t0);
  				t0 = skiptypes_298099_850551059(LOC23, IL64(211106232576256));
  			} LA9: ;
  		}
  		{
  			NIM_BOOL LOC26;
  			LOC26 = (NIM_BOOL)0;
  			LOC26 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC26) goto LA27;
  			LOC26 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA27: ;
  			if (!!(LOC26)) goto LA28;
  			{
  				while (1) {
  					NIM_BOOL LOC32;
  					LOC32 = (NIM_BOOL)0;
  					LOC32 = ((*t0).kind == ((Ttypekind294244) 17));
  					if (!(LOC32)) goto LA33;
  					LOC32 = !(((*t0).sons->data[((NI) 0)] == NIM_NIL));
  					LA33: ;
  					if (!LOC32) goto LA31;
  					add_180487_2381377266(&r0, ((NimStringDesc*) &T839829468_153));
  					t0 = skiptypes_298099_850551059((*t0).sons->data[((NI) 0)], IL64(211106247215360));
  				} LA31: ;
  			}
  		}
  		LA28: ;
  		{
  			TY537238 LOC38;
  			if (!!((nilcheck0 == NIM_NIL))) goto LA36;
  			memset((void*)LOC38, 0, sizeof(LOC38));
  			LOC38[0] = nilcheck0;
  			LOC38[1] = r0;
  			LOC38[2] = gentypeinfo_537941_839829468((*p0).module, dest0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_560), LOC38, 3);
  		}
  		goto LA34;
  		LA36: ;
  		{
  			TY534811 LOC40;
  			memset((void*)LOC40, 0, sizeof(LOC40));
  			LOC40[0] = r0;
  			LOC40[1] = gentypeinfo_537941_839829468((*p0).module, dest0);
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_561), LOC40, 2);
  		}
  		LA34: ;
  	}
  	LA6: ;
  	{
  		TY534811 LOC45;
  		Ropeobj180006* LOC46;
  		if (!!(((*(*(*n0).kindU.S6.sons->data[((NI) 0)]).typ).kind == ((Ttypekind294244) 17)))) goto LA43;
  		memset((void*)LOC45, 0, sizeof(LOC45));
  		LOC45[0] = gettypedesc_537671_839829468((*p0).module, (*n0).typ);
  		LOC45[1] = rdloc_540188_839829468(a0);
  		LOC46 = (Ropeobj180006*)0;
  		LOC46 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_430), LOC45, 2);
  		putintodest_552468_839829468(p0, d0, (*n0).typ, LOC46, a0.s);
  	}
  	goto LA41;
  	LA43: ;
  	{
  		TY534811 LOC48;
  		Ropeobj180006* LOC49;
  		memset((void*)LOC48, 0, sizeof(LOC48));
  		LOC48[0] = gettypedesc_537671_839829468((*p0).module, dest0);
  		LOC48[1] = addrloc_540204_839829468(a0);
  		LOC49 = (Ropeobj180006*)0;
  		LOC49 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_429), LOC48, 2);
  		putintodest_552468_839829468(p0, d0, (*n0).typ, LOC49, a0.s);
  	}
  	LA41: ;
  }
  
  N_NIMCALL(void, genrangechck_558590_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0, NimStringDesc* magic0) {
  	Tloc294816 a0;
  	Ttype294840* dest0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	dest0 = skiptypes_298099_850551059((*n0).typ, IL64(211106240964864));
  	{
  		NIM_BOOL LOC3;
  		Ttype294840* LOC5;
  		TY534811 LOC8;
  		Ropeobj180006* LOC9;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !((((*p0).options &(1U<<((NU)(((Toption171009) 3))&31U)))!=0));
  		if (LOC3) goto LA4;
  		LOC5 = (Ttype294840*)0;
  		LOC5 = skiptypes_298099_850551059(dest0, 1048576);
  		LOC3 = ((*LOC5).kind >= ((Ttypekind294244) 40) && (*LOC5).kind <= ((Ttypekind294244) 44));
  		LA4: ;
  		if (!LOC3) goto LA6;
  		initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = gettypedesc_537671_839829468((*p0).module, dest0);
  		LOC8[1] = rdcharloc_540227_839829468(a0);
  		LOC9 = (Ropeobj180006*)0;
  		LOC9 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_430), LOC8, 2);
  		putintodest_552468_839829468(p0, d0, (*n0).typ, LOC9, a0.s);
  	}
  	goto LA1;
  	LA6: ;
  	{
  		TY538475 LOC11;
  		Ropeobj180006* LOC12;
  		initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = gettypedesc_537671_839829468((*p0).module, dest0);
  		LOC11[1] = rdcharloc_540227_839829468(a0);
  		LOC11[2] = genliteral_551476_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], dest0);
  		LOC11[3] = genliteral_551476_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 2)], dest0);
  		LOC11[4] = rope_180277_2381377266(magic0);
  		LOC12 = (Ropeobj180006*)0;
  		LOC12 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_562), LOC11, 5);
  		putintodest_552468_839829468(p0, d0, dest0, LOC12, a0.s);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, convstrtocstr_558642_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* LOC1;
  	TY180507 LOC2;
  	Ropeobj180006* LOC3;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	LOC1 = (Ttype294840*)0;
  	LOC1 = skiptypes_298099_850551059((*n0).typ, IL64(211106240964864));
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = rdloc_540188_839829468(a0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_485), LOC2, 1);
  	putintodest_552468_839829468(p0, d0, LOC1, LOC3, a0.s);
  }
  
  N_NIMCALL(void, convcstrtostr_558654_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	Tloc294816 a0;
  	Ttype294840* LOC1;
  	TY180507 LOC2;
  	Ropeobj180006* LOC3;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	LOC1 = (Ttype294840*)0;
  	LOC1 = skiptypes_298099_850551059((*n0).typ, IL64(211106240964864));
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = rdloc_540188_839829468(a0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_411), LOC2, 1);
  	putintodest_552468_839829468(p0, d0, LOC1, LOC3, a0.s);
  	gcusage_556439_839829468(n0);
  }
  
  static N_INLINE(NIM_BOOL, isroutine_299323_850551059)(Tsym294834* s0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = ((258048 &(1U<<((NU)((*s0).kind)&31U)))!=0);
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, isconstclosure_559810_839829468)(Tnode294802* n0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC2;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = ((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  	if (!(LOC2)) goto LA3;
  	LOC2 = isroutine_299323_850551059((*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym);
  	LA3: ;
  	LOC1 = LOC2;
  	if (!(LOC1)) goto LA4;
  	LOC1 = ((*(*n0).kindU.S6.sons->data[((NI) 1)]).kind == ((Tnodekind294020) 23));
  	LA4: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, genclosure_559836_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006* tmp0;
  		Ropeobj180006* LOC6;
  		TY537238 LOC7;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = isconstclosure_559810_839829468(n0);
  		if (!LOC3) goto LA4;
  		(*(*p0).module).labels += ((NI) 1);
  		LOC6 = (Ropeobj180006*)0;
  		LOC6 = rope_180401_2381377266(((NI64) ((*(*p0).module).labels)));
  		tmp0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_566), LOC6);
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = gettypedesc_537671_839829468((*p0).module, (*n0).typ);
  		LOC7[1] = tmp0;
  		LOC7[2] = genconstexpr_556849_839829468(p0, n0);
  		addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 8))- 0], ((NimStringDesc*) &T839829468_524), LOC7, 3);
  		putintodest_552468_839829468(p0, d0, (*n0).typ, tmp0, ((Tstorageloc294812) 1));
  	}
  	goto LA1;
  	LA4: ;
  	{
  		Tloc294816 tmp0;
  		Tloc294816 a0;
  		Tloc294816 b0;
  		TY537238 LOC14;
  		memset((void*)(&tmp0), 0, sizeof(tmp0));
  		memset((void*)(&a0), 0, sizeof(a0));
  		memset((void*)(&b0), 0, sizeof(b0));
  		initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], (&b0));
  		{
  			Tnode294802* LOC11;
  			LOC11 = (Tnode294802*)0;
  			LOC11 = skipconv_330882_3876443242((*n0).kindU.S6.sons->data[((NI) 0)]);
  			if (!((*LOC11).kind == ((Tnodekind294020) 155))) goto LA12;
  			internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_567));
  		}
  		LA12: ;
  		gettemp_539032_839829468(p0, (*n0).typ, (&tmp0), NIM_FALSE);
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = rdloc_540188_839829468(tmp0);
  		LOC14[1] = rdloc_540188_839829468(a0);
  		LOC14[2] = rdloc_540188_839829468(b0);
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_568), LOC14, 3);
  		putlocintodest_541258_839829468(p0, d0, tmp0);
  	}
  	LA1: ;
  }
  
  static N_INLINE(Ropeobj180006*, assignlabel_546020_839829468)(Tblock531019* b0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = rope_180401_2381377266(((NI64) ((*b0).id)));
  	unsureAsgnRef((void**) (&(*b0).label), HEX26_180452_2381377266(((NimStringDesc*) &T839829468_296), LOC1));
  	result0 = (*b0).label;
  	return result0;
  }
  
  N_NIMCALL(void, gencomputedgoto_547744_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	NI casepos0;
  	NI arraysize0;
  	NI id0;
  	Ropeobj180006* tmp0;
  	TY180507 LOC27;
  	Ropeobj180006* gotoarray0;
  	TY534811 LOC28;
  	TY180507 LOC33;
  	NI topblock0;
  	Ropeobj180006* oldbody0;
  	Ropeobj180006* tailb0;
  	Ropeobj180006* taila0;
  	Tnode294802* casestmt0;
  	Tloc294816 a_547871_839829468;
  	TY534811 LOC41;
  {	casepos0 = ((NI) -1);
  	arraysize0 = (NI)0;
  	{
  		NI i_547768_839829468;
  		NI HEX3Atmp_547933_839829468;
  		NI LOC2;
  		NI res_547936_839829468;
  		i_547768_839829468 = (NI)0;
  		HEX3Atmp_547933_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = len_295081_850551059(n0);
  		HEX3Atmp_547933_839829468 = (LOC2 - 1);
  		res_547936_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Tnode294802* it0;
  				if (!(res_547936_839829468 <= HEX3Atmp_547933_839829468)) goto LA4;
  				i_547768_839829468 = res_547936_839829468;
  				it0 = (*n0).kindU.S6.sons->data[i_547768_839829468];
  				{
  					NI64 asize0;
  					if (!((*it0).kind == ((Tnodekind294020) 97))) goto LA7;
  					{
  						Tnode294802* LOC11;
  						LOC11 = (Tnode294802*)0;
  						LOC11 = lastson_297364_850551059(it0);
  						if (!!(((*LOC11).kind == ((Tnodekind294020) 85)))) goto LA12;
  						localerror_198085_155036129((*it0).info, ((NimStringDesc*) &T839829468_570));
  						goto BeforeRet;
  					}
  					LA12: ;
  					casepos0 = i_547768_839829468;
  					asize0 = lengthord_322007_3876443242((*(*it0).kindU.S6.sons->data[((NI) 0)]).typ);
  					{
  						if (!(IL64(10000) < asize0)) goto LA16;
  						localerror_198085_155036129((*it0).info, ((NimStringDesc*) &T839829468_571));
  						goto BeforeRet;
  					}
  					LA16: ;
  					arraysize0 = ((NI) (asize0));
  					{
  						NI64 LOC20;
  						LOC20 = (NI64)0;
  						LOC20 = firstord_322001_3876443242((*(*it0).kindU.S6.sons->data[((NI) 0)]).typ);
  						if (!!((LOC20 == IL64(0)))) goto LA21;
  						localerror_198085_155036129((*it0).info, ((NimStringDesc*) &T839829468_572));
  						goto BeforeRet;
  					}
  					LA21: ;
  				}
  				LA7: ;
  				res_547936_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	{
  		if (!(casepos0 < ((NI) 0))) goto LA25;
  		localerror_198085_155036129((*n0).info, ((NimStringDesc*) &T839829468_573));
  		goto BeforeRet;
  	}
  	LA25: ;
  	id0 = (NI)(((NI) ((*p0).labels)) + ((NI) 1));
  	(*p0).labels += (NI)(arraysize0 + ((NI) 1));
  	memset((void*)LOC27, 0, sizeof(LOC27));
  	LOC27[0] = rope_180401_2381377266(((NI64) (id0)));
  	tmp0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_574), LOC27, 1);
  	memset((void*)LOC28, 0, sizeof(LOC28));
  	LOC28[0] = tmp0;
  	LOC28[1] = rope_180401_2381377266(((NI64) (arraysize0)));
  	gotoarray0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_575), LOC28, 2);
  	{
  		NI i_547819_839829468;
  		NI HEX3Atmp_547941_839829468;
  		NI res_547944_839829468;
  		i_547819_839829468 = (NI)0;
  		HEX3Atmp_547941_839829468 = (NI)0;
  		HEX3Atmp_547941_839829468 = (NI)(arraysize0 - ((NI) 1));
  		res_547944_839829468 = ((NI) 1);
  		{
  			while (1) {
  				TY180507 LOC32;
  				if (!(res_547944_839829468 <= HEX3Atmp_547941_839829468)) goto LA31;
  				i_547819_839829468 = res_547944_839829468;
  				memset((void*)LOC32, 0, sizeof(LOC32));
  				LOC32[0] = rope_180401_2381377266(((NI64) ((NI)(((NI) (id0)) + i_547819_839829468))));
  				addf_181205_2381377266(&gotoarray0, ((NimStringDesc*) &T839829468_576), LOC32, 1);
  				res_547944_839829468 += ((NI) 1);
  			} LA31: ;
  		}
  	}
  	memset((void*)LOC33, 0, sizeof(LOC33));
  	LOC33[0] = rope_180401_2381377266(((NI64) ((NI)(((NI) (id0)) + arraysize0))));
  	addf_181205_2381377266(&gotoarray0, ((NimStringDesc*) &T839829468_577), LOC33, 1);
  	line_534690_839829468(p0, ((Tcprocsection531011) 0), gotoarray0);
  	topblock0 = (NI)(((*p0).blocks ? (*p0).blocks->Sup.len : 0) - ((NI) 1));
  	oldbody0 = (*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0];
  	asgnRefNoCycle((void**) (&(*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0]), NIM_NIL);
  	{
  		NI j_547854_839829468;
  		NI HEX3Atmp_547949_839829468;
  		NI HEX3Atmp_547950_839829468;
  		NI LOC35;
  		NI res_547953_839829468;
  		j_547854_839829468 = (NI)0;
  		HEX3Atmp_547949_839829468 = (NI)0;
  		HEX3Atmp_547950_839829468 = (NI)0;
  		HEX3Atmp_547949_839829468 = (NI)(casepos0 + ((NI) 1));
  		LOC35 = (NI)0;
  		LOC35 = len_295081_850551059(n0);
  		HEX3Atmp_547950_839829468 = (LOC35 - 1);
  		res_547953_839829468 = HEX3Atmp_547949_839829468;
  		{
  			while (1) {
  				if (!(res_547953_839829468 <= HEX3Atmp_547950_839829468)) goto LA37;
  				j_547854_839829468 = res_547953_839829468;
  				genstmts_541244_839829468(p0, (*n0).kindU.S6.sons->data[j_547854_839829468]);
  				res_547953_839829468 += ((NI) 1);
  			} LA37: ;
  		}
  	}
  	tailb0 = (*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0];
  	asgnRefNoCycle((void**) (&(*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0]), NIM_NIL);
  	{
  		NI j_547866_839829468;
  		NI HEX3Atmp_547958_839829468;
  		NI res_547961_839829468;
  		j_547866_839829468 = (NI)0;
  		HEX3Atmp_547958_839829468 = (NI)0;
  		HEX3Atmp_547958_839829468 = (NI)(casepos0 - ((NI) 1));
  		res_547961_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_547961_839829468 <= HEX3Atmp_547958_839829468)) goto LA40;
  				j_547866_839829468 = res_547961_839829468;
  				genstmts_541244_839829468(p0, (*n0).kindU.S6.sons->data[j_547866_839829468]);
  				res_547961_839829468 += ((NI) 1);
  			} LA40: ;
  		}
  	}
  	taila0 = (*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0];
  	asgnRefNoCycle((void**) (&(*p0).blocks->data[topblock0].sections[(((Tcprocsection531011) 2))- 0]), HEX26_180418_2381377266(oldbody0, taila0));
  	casestmt0 = (*n0).kindU.S6.sons->data[casepos0];
  	memset((void*)(&a_547871_839829468), 0, sizeof(a_547871_839829468));
  	initlocexpr_541283_839829468(p0, (*casestmt0).kindU.S6.sons->data[((NI) 0)], (&a_547871_839829468));
  	memset((void*)LOC41, 0, sizeof(LOC41));
  	LOC41[0] = tmp0;
  	LOC41[1] = rdloc_540188_839829468(a_547871_839829468);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_578), LOC41, 2);
  	{
  		NI i_547894_839829468;
  		NI HEX3Atmp_547977_839829468;
  		NI LOC43;
  		NI res_547980_839829468;
  		i_547894_839829468 = (NI)0;
  		HEX3Atmp_547977_839829468 = (NI)0;
  		LOC43 = (NI)0;
  		LOC43 = len_295081_850551059(casestmt0);
  		HEX3Atmp_547977_839829468 = (LOC43 - 1);
  		res_547980_839829468 = ((NI) 1);
  		{
  			while (1) {
  				TY535289 LOC46;
  				NI LOC47;
  				Tnode294802* it0;
  				Tnode294802* LOC57;
  				Ropeobj180006** LOC58;
  				Ropeobj180006** LOC59;
  				Tloc294816 a0;
  				TY534811 LOC60;
  				if (!(res_547980_839829468 <= HEX3Atmp_547977_839829468)) goto LA45;
  				i_547894_839829468 = res_547980_839829468;
  				memset((void*)LOC46, 0, sizeof(LOC46));
  				LOC47 = (NI)0;
  				LOC47 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC46, 0);
  				it0 = (*casestmt0).kindU.S6.sons->data[i_547894_839829468];
  				{
  					NI j_547910_839829468;
  					NI HEX3Atmp_547969_839829468;
  					NI LOC49;
  					NI res_547972_839829468;
  					j_547910_839829468 = (NI)0;
  					HEX3Atmp_547969_839829468 = (NI)0;
  					LOC49 = (NI)0;
  					LOC49 = len_295081_850551059(it0);
  					HEX3Atmp_547969_839829468 = (NI)(LOC49 - ((NI) 2));
  					res_547972_839829468 = ((NI) 0);
  					{
  						while (1) {
  							NI64 val0;
  							TY180507 LOC56;
  							if (!(res_547972_839829468 <= HEX3Atmp_547969_839829468)) goto LA51;
  							j_547910_839829468 = res_547972_839829468;
  							{
  								if (!((*(*it0).kindU.S6.sons->data[j_547910_839829468]).kind == ((Tnodekind294020) 44))) goto LA54;
  								localerror_198085_155036129((*it0).info, ((NimStringDesc*) &T839829468_579));
  								goto BeforeRet;
  							}
  							LA54: ;
  							val0 = getordvalue_322129_3876443242((*it0).kindU.S6.sons->data[j_547910_839829468]);
  							memset((void*)LOC56, 0, sizeof(LOC56));
  							LOC56[0] = intliteral_541270_839829468((NI64)((NI64)(val0 + ((NI64) (id0))) + IL64(1)));
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_580), LOC56, 1);
  							res_547972_839829468 += ((NI) 1);
  						} LA51: ;
  					}
  				}
  				LOC57 = (Tnode294802*)0;
  				LOC57 = lastson_297364_850551059(it0);
  				genstmts_541244_839829468(p0, LOC57);
  				LOC58 = (Ropeobj180006**)0;
  				LOC58 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  				add_180482_2381377266(LOC58, tailb0);
  				LOC59 = (Ropeobj180006**)0;
  				LOC59 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  				add_180482_2381377266(LOC59, taila0);
  				memset((void*)(&a0), 0, sizeof(a0));
  				initlocexpr_541283_839829468(p0, (*casestmt0).kindU.S6.sons->data[((NI) 0)], (&a0));
  				memset((void*)LOC60, 0, sizeof(LOC60));
  				LOC60[0] = tmp0;
  				LOC60[1] = rdloc_540188_839829468(a0);
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_578), LOC60, 2);
  				endblock_546060_839829468(p0);
  				res_547980_839829468 += ((NI) 1);
  			} LA45: ;
  		}
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genwhilestmt_547984_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	Tloc294816 a0;
  	NI oldbreakidx_548011_839829468;
  	TY535289 LOC1;
  	Tnode294802* loopbody0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	(*p0).withinloop += ((NI) 1);
  	genlinedir_534823_839829468(p0, t0);
  	oldbreakidx_548011_839829468 = (*p0).breakidx;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	(*p0).breakidx = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_569), LOC1, 0);
  	(*p0).blocks->data[(*p0).breakidx].isloop = NIM_TRUE;
  	initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	{
  		NIM_BOOL LOC4;
  		Ropeobj180006* label0;
  		TY534811 LOC8;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = !(((*(*t0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 6)));
  		if (LOC4) goto LA5;
  		LOC4 = ((*(*t0).kindU.S6.sons->data[((NI) 0)]).kindU.S1.intval == IL64(0));
  		LA5: ;
  		if (!LOC4) goto LA6;
  		label0 = assignlabel_546020_839829468((&(*p0).blocks->data[(*p0).breakidx]));
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = rdloc_540188_839829468(a0);
  		LOC8[1] = label0;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_555), LOC8, 2);
  	}
  	LA6: ;
  	loopbody0 = (*t0).kindU.S6.sons->data[((NI) 1)];
  	{
  		NIM_BOOL LOC11;
  		LOC11 = (NIM_BOOL)0;
  		LOC11 = stmtscontainpragma_530083_2036603609(loopbody0, ((Tspecialword277003) 182));
  		if (!(LOC11)) goto LA12;
  		LOC11 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 1))&7U)))!=0);
  		LA12: ;
  		if (!LOC11) goto LA13;
  		{
  			NIM_BOOL LOC17;
  			NI LOC18;
  			LOC17 = (NIM_BOOL)0;
  			LOC18 = (NI)0;
  			LOC18 = len_295081_850551059(loopbody0);
  			LOC17 = (LOC18 == ((NI) 2));
  			if (!(LOC17)) goto LA19;
  			LOC17 = ((*(*loopbody0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1));
  			LA19: ;
  			if (!LOC17) goto LA20;
  			loopbody0 = (*loopbody0).kindU.S6.sons->data[((NI) 1)];
  		}
  		LA20: ;
  		gencomputedgoto_547744_839829468(p0, loopbody0);
  	}
  	goto LA9;
  	LA13: ;
  	{
  		genstmts_541244_839829468(p0, loopbody0);
  	}
  	LA9: ;
  	{
  		TY535289 LOC27;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 19))&31U)))!=0)) goto LA25;
  		memset((void*)LOC27, 0, sizeof(LOC27));
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_581), LOC27, 0);
  	}
  	LA25: ;
  	endblock_546060_839829468(p0);
  	(*p0).breakidx = oldbreakidx_548011_839829468;
  	(*p0).withinloop -= ((NI) 1);
  }
  
  N_NIMCALL(void, gengotovar_546258_839829468)(Tcproc531021* p0, Tnode294802* value0) {
  	{
  		if (!!(((*value0).kind >= ((Tnodekind294020) 5) && (*value0).kind <= ((Tnodekind294020) 15)))) goto LA3;
  		localerror_198085_155036129((*value0).info, ((NimStringDesc*) &T839829468_582));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY180507 LOC6;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = rope_180401_2381377266((*value0).kindU.S1.intval);
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_583), LOC6, 1);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, varindynamiclib_540812_839829468)(Tcgen531027* m0, Tsym294834* sym0) {
  	Tlib294820* lib0;
  	Ropeobj180006* extname0;
  	Ropeobj180006* tmp0;
  	TY537235 LOC1;
  	NimStringDesc* LOC2;
  	TY534811 LOC3;
  	lib0 = (*sym0).annex;
  	extname0 = (*sym0).loc.r;
  	loaddynamiclib_561480_839829468(m0, lib0);
  	(*sym0).loc.flags |= ((NU16)1)<<((((Tlocflag294810) 0))%(sizeof(NU16)*8));
  	tmp0 = mangledynlibproc_540816_839829468(sym0);
  	asgnRefNoCycle((void**) (&(*sym0).loc.r), tmp0);
  	(*m0).labels += ((NI) 2);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = tmp0;
  	LOC1[1] = gettypedesc_537671_839829468(m0, (*sym0).typ);
  	LOC1[2] = (*lib0).name;
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = HEX24_180856_2381377266(extname0);
  	LOC1[3] = makecstring_193638_155036129(LOC2);
  	appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 16))- 0], ((NimStringDesc*) &T839829468_584), LOC1, 4);
  	memset((void*)LOC3, 0, sizeof(LOC3));
  	LOC3[0] = (*sym0).loc.r;
  	LOC3[1] = gettypedesc_537671_839829468(m0, (*sym0).loc.t);
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 9))- 0], ((NimStringDesc*) &T839829468_585), LOC3, 2);
  }
  
  N_NIMCALL(void, assignglobalvar_540819_839829468)(Tcproc531021* p0, Tsym294834* s0) {
  {	{
  		Ropeobj180006* LOC5;
  		if (!((*s0).loc.k == ((Tlockind294808) 0))) goto LA3;
  		LOC5 = (Ropeobj180006*)0;
  		LOC5 = manglename_535205_839829468(s0);
  		fillloc_534282_839829468((&(*s0).loc), ((Tlockind294808) 3), (*s0).typ, LOC5, ((Tstorageloc294812) 3));
  	}
  	LA3: ;
  	{
  		Tcgen531027* q0;
  		if (!(((*s0).loc.flags &(1U<<((NU)(((Tlocflag294810) 4))&15U)))!=0)) goto LA8;
  		q0 = findpendingmodule_534241_839829468((*p0).module, s0);
  		{
  			NIM_BOOL LOC12;
  			NIM_BOOL LOC14;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = !((q0 == NIM_NIL));
  			if (!(LOC12)) goto LA13;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = containsorincl_270862_2627731572((&(*q0).declaredthings), (*s0).Sup.id);
  			LOC12 = !(LOC14);
  			LA13: ;
  			if (!LOC12) goto LA15;
  			varindynamiclib_540812_839829468(q0, s0);
  		}
  		goto LA10;
  		LA15: ;
  		{
  			asgnRefNoCycle((void**) (&(*s0).loc.r), mangledynlibproc_540816_839829468(s0));
  		}
  		LA10: ;
  		goto BeforeRet;
  	}
  	LA8: ;
  	useheader_534369_839829468((*p0).module, s0);
  	{
  		if (!(((*s0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0)) goto LA20;
  		goto BeforeRet;
  	}
  	LA20: ;
  	{
  		if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 22))&31U)))!=0)) goto LA24;
  		declarethreadvar_540676_839829468((*p0).module, s0, (((*s0).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0));
  	}
  	goto LA22;
  	LA24: ;
  	{
  		Ropeobj180006* decl0;
  		Ropeobj180006* td0;
  		decl0 = NIM_NIL;
  		td0 = gettypedesc_537671_839829468((*p0).module, (*s0).loc.t);
  		{
  			TY180507 LOC43;
  			if (!(*s0).constraint == 0) goto LA29;
  			{
  				if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 5))&31U)))!=0)) goto LA33;
  				add_180487_2381377266(&decl0, ((NimStringDesc*) &T839829468_240));
  			}
  			LA33: ;
  			add_180482_2381377266(&decl0, td0);
  			{
  				if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 8))&31U)))!=0)) goto LA37;
  				add_180487_2381377266(&decl0, ((NimStringDesc*) &T839829468_121));
  			}
  			LA37: ;
  			{
  				if (!(((*s0).flags &(1U<<((NU)(((Tsymflag294184) 7))&31U)))!=0)) goto LA41;
  				add_180487_2381377266(&decl0, ((NimStringDesc*) &T839829468_122));
  			}
  			LA41: ;
  			memset((void*)LOC43, 0, sizeof(LOC43));
  			LOC43[0] = (*s0).loc.r;
  			addf_181205_2381377266(&decl0, ((NimStringDesc*) &T839829468_242), LOC43, 1);
  		}
  		goto LA27;
  		LA29: ;
  		{
  			NimStringDesc* LOC45;
  			TY534811 LOC46;
  			LOC45 = (NimStringDesc*)0;
  			LOC45 = rawNewString((*(*s0).constraint).kindU.S3.strval->Sup.len + 3);
  appendString(LOC45, (*(*s0).constraint).kindU.S3.strval);
  appendString(LOC45, ((NimStringDesc*) &T839829468_497));
  			memset((void*)LOC46, 0, sizeof(LOC46));
  			LOC46[0] = td0;
  			LOC46[1] = (*s0).loc.r;
  			decl0 = HEX25_180905_2381377266(LOC45, LOC46, 2);
  		}
  		LA27: ;
  		add_180482_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 9))- 0], decl0);
  	}
  	LA22: ;
  	{
  		if (!(((NI) 0) < (*p0).withinloop)) goto LA49;
  		resetloc_540350_839829468(p0, (&(*s0).loc));
  	}
  	LA49: ;
  	{
  		TY537238 LOC55;
  		NimStringDesc* LOC56;
  		NimStringDesc* LOC57;
  		if (!(((*(*(*p0).module).module).options & 163840) == 163840)) goto LA53;
  		memset((void*)LOC55, 0, sizeof(LOC55));
  		LOC56 = (NimStringDesc*)0;
  		LOC56 = rawNewString((*(*(*s0).owner).name).s->Sup.len + (*(*s0).name).s->Sup.len + 1);
  appendString(LOC56, (*(*(*s0).owner).name).s);
  appendChar(LOC56, 46);
  appendString(LOC56, (*(*s0).name).s);
  		LOC57 = (NimStringDesc*)0;
  		LOC57 = nsuNormalize(LOC56);
  		LOC55[0] = makecstring_193638_155036129(LOC57);
  		LOC55[1] = (*s0).loc.r;
  		LOC55[2] = gentypeinfo_537941_839829468((*p0).module, (*s0).typ);
  		appcg_534632_839829468((*p0).module, &(*(*p0).module).s[(((Tcfilesection531005) 15))- 0], ((NimStringDesc*) &T839829468_586), LOC55, 3);
  	}
  	LA53: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(Ropeobj180006*, gentraverseprocforglobal_540032_839829468)(Tcgen531027* m0, Tsym294834* s0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	Ttraversalclosure539019 c0;
  	Tcproc531021* p0;
  	Ropeobj180006* sloc0;
  	Ropeobj180006* header0;
  	TY180507 LOC8;
  	Ropeobj180006* generatedproc0;
  	TY537235 LOC9;
  	Ropeobj180006** LOC10;
  	Ropeobj180006** LOC11;
  	Ropeobj180006** LOC12;
  	TY180507 LOC13;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = gentypeinfo_537941_839829468(m0, (*s0).loc.t);
  	memset((void*)(&c0), 0, sizeof(c0));
  	p0 = newproc_531206_3723162438(NIM_NIL, m0);
  	sloc0 = (*s0).loc.r;
  	result0 = gettempname_535596_839829468(m0);
  	{
  		NIM_BOOL LOC4;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = (((*s0).flags &(1U<<((NU)(((Tsymflag294184) 22))&31U)))!=0);
  		if (!(LOC4)) goto LA5;
  		LOC4 = emulatedthreadvars_534949_839829468();
  		LA5: ;
  		if (!LOC4) goto LA6;
  		accessthreadlocalvar_534945_839829468(p0, s0);
  		sloc0 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_288), sloc0);
  	}
  	LA6: ;
  	c0.visitorfrmt = copyString(((NimStringDesc*) &T839829468_587));
  	c0.p = p0;
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = result0;
  	header0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_588), LOC8, 1);
  	gentraverseproc_539022_839829468((&c0), sloc0, (*s0).loc.t);
  	memset((void*)LOC9, 0, sizeof(LOC9));
  	LOC9[0] = header0;
  	LOC10 = (Ropeobj180006**)0;
  	LOC10 = s_531179_3723162438(p0, ((Tcprocsection531011) 0));
  	LOC9[1] = (*LOC10);
  	LOC11 = (Ropeobj180006**)0;
  	LOC11 = s_531179_3723162438(p0, ((Tcprocsection531011) 1));
  	LOC9[2] = (*LOC11);
  	LOC12 = (Ropeobj180006**)0;
  	LOC12 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  	LOC9[3] = (*LOC12);
  	generatedproc0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_190), LOC9, 4);
  	memset((void*)LOC13, 0, sizeof(LOC13));
  	LOC13[0] = header0;
  	addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 7))- 0], ((NimStringDesc*) &T839829468_191), LOC13, 1);
  	add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 10))- 0], generatedproc0);
  	return result0;
  }
  
  N_NIMCALL(void, registergcroot_545762_839829468)(Tcproc531021* p0, Tsym294834* v0) {
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006* prc0;
  		Ropeobj180006** LOC7;
  		TY180507 LOC8;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((240 &(1U<<((NU)(gselectedgc_171133_2607990831)&7U)))!=0);
  		if (!(LOC3)) goto LA4;
  		LOC3 = containsgarbagecollectedref_322117_3876443242((*v0).loc.t);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		prc0 = gentraverseprocforglobal_540032_839829468((*p0).module, v0);
  		LOC7 = (Ropeobj180006**)0;
  		LOC7 = procsec_531194_3723162438((*(*p0).module).initproc, ((Tcprocsection531011) 1));
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = prc0;
  		appcg_534632_839829468((*p0).module, LOC7, ((NimStringDesc*) &T839829468_589), LOC8, 1);
  	}
  	LA5: ;
  }
  
  static N_INLINE(NIM_BOOL, isassignedimmediately_545781_839829468)(Tnode294802* n0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	{
  		if (!((*n0).kind == ((Tnodekind294020) 1))) goto LA3;
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = isinvalidreturntype_535548_839829468((*n0).typ);
  		if (!LOC7) goto LA8;
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	LA8: ;
  	result0 = NIM_TRUE;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(void, genasgncall_545695_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* d0) {
  	{
  		Ttype294840* LOC3;
  		LOC3 = (Ttype294840*)0;
  		LOC3 = skiptypes_298099_850551059((*(*ri0).kindU.S6.sons->data[((NI) 0)]).typ, 2048);
  		if (!((*LOC3).callconv == ((Tcallingconvention294002) 8))) goto LA4;
  		genclosurecall_542452_839829468(p0, le0, ri0, d0);
  	}
  	goto LA1;
  	LA4: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = ((*(*ri0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  		if (!(LOC7)) goto LA8;
  		LOC7 = (((*(*(*ri0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA8: ;
  		if (!LOC7) goto LA9;
  		geninfixcall_543929_839829468(p0, le0, ri0, d0);
  	}
  	goto LA1;
  	LA9: ;
  	{
  		NIM_BOOL LOC12;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = ((*(*ri0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  		if (!(LOC12)) goto LA13;
  		LOC12 = (((*(*(*ri0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 28))&31U)))!=0);
  		LA13: ;
  		if (!LOC12) goto LA14;
  		gennamedparamcall_544616_839829468(p0, ri0, d0);
  	}
  	goto LA1;
  	LA14: ;
  	{
  		genprefixcall_541960_839829468(p0, le0, ri0, d0);
  	}
  	LA1: ;
  	poststmtactions_534942_839829468(p0);
  }
  
  static N_INLINE(void, loadinto_545928_839829468)(Tcproc531021* p0, Tnode294802* le0, Tnode294802* ri0, Tloc294816* a0) {
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*ri0).kind == ((Tnodekind294020) 27) || (*ri0).kind == ((Tnodekind294020) 29) || (*ri0).kind == ((Tnodekind294020) 30) || (*ri0).kind == ((Tnodekind294020) 31) || (*ri0).kind == ((Tnodekind294020) 26) || (*ri0).kind == ((Tnodekind294020) 28) || (*ri0).kind == ((Tnodekind294020) 32));
  		if (!(LOC3)) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = !(((*(*ri0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3)));
  		if (LOC5) goto LA6;
  		LOC5 = ((*(*(*ri0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).magic == ((Tmagic294524) 0));
  		LA6: ;
  		LOC3 = LOC5;
  		LA4: ;
  		if (!LOC3) goto LA7;
  		genasgncall_545695_839829468(p0, le0, ri0, a0);
  	}
  	goto LA1;
  	LA7: ;
  	{
  		if (!((*ri0).kind == ((Tnodekind294020) 47) || (*ri0).kind == ((Tnodekind294020) 65))) goto LA10;
  		genderef_545921_839829468(p0, ri0, a0, NIM_TRUE);
  	}
  	goto LA1;
  	LA10: ;
  	{
  		expr_541248_839829468(p0, ri0, a0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, gensinglevar_546276_839829468)(Tcproc531021* p0, Tnode294802* a0) {
  	Tsym294834* v0;
  	Tcproc531021* targetproc0;
  {	v0 = (*(*a0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  	{
  		if (!!(((1082130432 & (*v0).flags) == 0))) goto LA3;
  		{
  			if (!(((*v0).flags &(1U<<((NU)(((Tsymflag294184) 30))&31U)))!=0)) goto LA7;
  			gengotovar_546258_839829468(p0, (*a0).kindU.S6.sons->data[((NI) 2)]);
  		}
  		LA7: ;
  		goto BeforeRet;
  	}
  	LA3: ;
  	targetproc0 = p0;
  	{
  		if (!(((*v0).flags &(1U<<((NU)(((Tsymflag294184) 3))&31U)))!=0)) goto LA11;
  		{
  			NIM_BOOL LOC15;
  			NIM_BOOL LOC16;
  			LOC15 = (NIM_BOOL)0;
  			LOC16 = (NIM_BOOL)0;
  			LOC16 = (((*v0).flags & 96) == 32);
  			if (!(LOC16)) goto LA17;
  			LOC16 = ((*(*a0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 1));
  			LA17: ;
  			LOC15 = LOC16;
  			if (!(LOC15)) goto LA18;
  			LOC15 = !((((*v0).loc.flags & 72) == 0));
  			LA18: ;
  			if (!LOC15) goto LA19;
  			goto BeforeRet;
  		}
  		LA19: ;
  		{
  			if (!(((*v0).flags &(1U<<((NU)(((Tsymflag294184) 9))&31U)))!=0)) goto LA23;
  			targetproc0 = (*(*p0).module).preinitproc;
  		}
  		LA23: ;
  		assignglobalvar_540819_839829468(targetproc0, v0);
  		genobjectinit_540242_839829468((*(*p0).module).preinitproc, ((Tcprocsection531011) 1), (*v0).typ, (*v0).loc, NIM_TRUE);
  		{
  			NIM_BOOL LOC27;
  			LOC27 = (NIM_BOOL)0;
  			LOC27 = (((*v0).flags &(1U<<((NU)(((Tsymflag294184) 6))&31U)))!=0);
  			if (!(LOC27)) goto LA28;
  			LOC27 = !((generatedheader_534201_839829468 == NIM_NIL));
  			LA28: ;
  			if (!LOC27) goto LA29;
  			genvarprototypeaux_546254_839829468(generatedheader_534201_839829468, v0);
  		}
  		LA29: ;
  		registergcroot_545762_839829468(p0, v0);
  	}
  	goto LA9;
  	LA11: ;
  	{
  		Tnode294802* value0;
  		NIM_BOOL imm0;
  		value0 = (*a0).kindU.S6.sons->data[((NI) 2)];
  		imm0 = isassignedimmediately_545781_839829468(value0);
  		{
  			NIM_BOOL LOC34;
  			NIM_BOOL LOC35;
  			NIM_BOOL LOC36;
  			NIM_BOOL LOC38;
  			NIM_BOOL LOC42;
  			Ropeobj180006* decl0;
  			Tloc294816 tmp0;
  			LOC34 = (NIM_BOOL)0;
  			LOC35 = (NIM_BOOL)0;
  			LOC36 = (NIM_BOOL)0;
  			LOC36 = imm0;
  			if (!(LOC36)) goto LA37;
  			LOC38 = (NIM_BOOL)0;
  			LOC38 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC38) goto LA39;
  			LOC38 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA39: ;
  			LOC36 = LOC38;
  			LA37: ;
  			LOC35 = LOC36;
  			if (!(LOC35)) goto LA40;
  			LOC35 = ((*p0).splitdecls == ((NI) 0));
  			LA40: ;
  			LOC34 = LOC35;
  			if (!(LOC34)) goto LA41;
  			LOC42 = (NIM_BOOL)0;
  			LOC42 = containshiddenpointer_322120_3876443242((*v0).typ);
  			LOC34 = !(LOC42);
  			LA41: ;
  			if (!LOC34) goto LA43;
  			genlinedir_534823_839829468(p0, a0);
  			decl0 = localvardecl_540532_839829468(p0, v0);
  			memset((void*)(&tmp0), 0, sizeof(tmp0));
  			{
  				NIM_BOOL LOC47;
  				NIM_BOOL LOC48;
  				Tnode294802* LOC50;
  				Tnode294802* LOC52;
  				Ropeobj180006* params0;
  				Ttype294840* typ0;
  				TY534811 LOC66;
  				LOC47 = (NIM_BOOL)0;
  				LOC48 = (NIM_BOOL)0;
  				LOC48 = ((*value0).kind == ((Tnodekind294020) 27) || (*value0).kind == ((Tnodekind294020) 29) || (*value0).kind == ((Tnodekind294020) 30) || (*value0).kind == ((Tnodekind294020) 31) || (*value0).kind == ((Tnodekind294020) 26) || (*value0).kind == ((Tnodekind294020) 28) || (*value0).kind == ((Tnodekind294020) 32));
  				if (!(LOC48)) goto LA49;
  				LOC50 = (Tnode294802*)0;
  				LOC50 = HEX5BHEX5D_295238_850551059(value0, ((NI) 0));
  				LOC48 = ((*LOC50).kind == ((Tnodekind294020) 3));
  				LA49: ;
  				LOC47 = LOC48;
  				if (!(LOC47)) goto LA51;
  				LOC52 = (Tnode294802*)0;
  				LOC52 = HEX5BHEX5D_295238_850551059(value0, ((NI) 0));
  				LOC47 = (((*(*LOC52).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 24))&31U)))!=0);
  				LA51: ;
  				if (!LOC47) goto LA53;
  				params0 = (Ropeobj180006*)0;
  				typ0 = skiptypes_298099_850551059((*(*value0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106232576256));
  				{
  					NI i_546619_839829468;
  					NI HEX3Atmp_546825_839829468;
  					NI LOC56;
  					NI res_546828_839829468;
  					i_546619_839829468 = (NI)0;
  					HEX3Atmp_546825_839829468 = (NI)0;
  					LOC56 = (NI)0;
  					LOC56 = len_295081_850551059(value0);
  					HEX3Atmp_546825_839829468 = (LOC56 - 1);
  					res_546828_839829468 = ((NI) 1);
  					{
  						while (1) {
  							Ropeobj180006* LOC65;
  							if (!(res_546828_839829468 <= HEX3Atmp_546825_839829468)) goto LA58;
  							i_546619_839829468 = res_546828_839829468;
  							{
  								TY535289 LOC63;
  								Ropeobj180006* LOC64;
  								if (!!((params0 == NIM_NIL))) goto LA61;
  								memset((void*)LOC63, 0, sizeof(LOC63));
  								LOC64 = (Ropeobj180006*)0;
  								LOC64 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_110), LOC63, 0);
  								add_180482_2381377266(&params0, LOC64);
  							}
  							LA61: ;
  							LOC65 = (Ropeobj180006*)0;
  							LOC65 = genotherarg_541277_839829468(p0, value0, i_546619_839829468, typ0);
  							add_180482_2381377266(&params0, LOC65);
  							res_546828_839829468 += ((NI) 1);
  						} LA58: ;
  					}
  				}
  				memset((void*)LOC66, 0, sizeof(LOC66));
  				LOC66[0] = decl0;
  				LOC66[1] = params0;
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_590), LOC66, 2);
  			}
  			goto LA45;
  			LA53: ;
  			{
  				TY534811 LOC68;
  				initlocexprsingleuse_541289_839829468(p0, value0, (&tmp0));
  				memset((void*)LOC68, 0, sizeof(LOC68));
  				LOC68[0] = decl0;
  				LOC68[1] = rdloc_540188_839829468(tmp0);
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_591), LOC68, 2);
  			}
  			LA45: ;
  			goto BeforeRet;
  		}
  		LA43: ;
  		assignlocalvar_540614_839829468(p0, v0);
  		initlocalvar_540398_839829468(p0, v0, imm0);
  	}
  	LA9: ;
  	{
  		if (!!(((*(*a0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 1)))) goto LA71;
  		genlinedir_534823_839829468(targetproc0, a0);
  		loadinto_545928_839829468(targetproc0, (*a0).kindU.S6.sons->data[((NI) 0)], (*a0).kindU.S6.sons->data[((NI) 2)], (&(*v0).loc));
  	}
  	LA71: ;
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genclosurevar_546832_839829468)(Tcproc531021* p0, Tnode294802* a0) {
  	NIM_BOOL immediateasgn0;
  	immediateasgn0 = !(((*(*a0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 1)));
  	{
  		Tloc294816 v0;
  		if (!immediateasgn0) goto LA3;
  		memset((void*)(&v0), 0, sizeof(v0));
  		initlocexpr_541283_839829468(p0, (*a0).kindU.S6.sons->data[((NI) 0)], (&v0));
  		genlinedir_534823_839829468(p0, a0);
  		loadinto_545928_839829468(p0, (*a0).kindU.S6.sons->data[((NI) 0)], (*a0).kindU.S6.sons->data[((NI) 2)], (&v0));
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, genvartuple_545794_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Tloc294816 tup0;
  	Tloc294816 field0;
  	NI L0;
  	NIM_BOOL uselowering0;
  	Ttype294840* t0;
  {	memset((void*)(&tup0), 0, sizeof(tup0));
  	memset((void*)(&field0), 0, sizeof(field0));
  	{
  		if (!!(((*n0).kind == ((Tnodekind294020) 36)))) goto LA3;
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_592));
  	}
  	LA3: ;
  	L0 = sonslen_297351_850551059(n0);
  	uselowering0 = NIM_FALSE;
  	{
  		NI i_545822_839829468;
  		NI HEX3Atmp_545905_839829468;
  		NI res_545908_839829468;
  		i_545822_839829468 = (NI)0;
  		HEX3Atmp_545905_839829468 = (NI)0;
  		HEX3Atmp_545905_839829468 = (NI)(L0 - ((NI) 3));
  		res_545908_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_545908_839829468 <= HEX3Atmp_545905_839829468)) goto LA7;
  				i_545822_839829468 = res_545908_839829468;
  				{
  					Tnode294802* LOC10;
  					LOC10 = (Tnode294802*)0;
  					LOC10 = HEX5BHEX5D_295238_850551059(n0, i_545822_839829468);
  					if (!!(((*LOC10).kind == ((Tnodekind294020) 3)))) goto LA11;
  					uselowering0 = NIM_TRUE;
  					goto LA5;
  				}
  				LA11: ;
  				res_545908_839829468 += ((NI) 1);
  			} LA7: ;
  		}
  	} LA5: ;
  	{
  		Tnode294802* LOC17;
  		if (!uselowering0) goto LA15;
  		LOC17 = (Tnode294802*)0;
  		LOC17 = lowertupleunpacking_435037_2218250499(n0, (*p0).prc);
  		genstmts_541244_839829468(p0, LOC17);
  		goto BeforeRet;
  	}
  	LA15: ;
  	genlinedir_534823_839829468(p0, n0);
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[(NI)(L0 - ((NI) 1))], (&tup0));
  	t0 = getuniquetype_530640_2036603609(tup0.t);
  	{
  		NI i_545846_839829468;
  		NI HEX3Atmp_545914_839829468;
  		NI res_545917_839829468;
  		i_545846_839829468 = (NI)0;
  		HEX3Atmp_545914_839829468 = (NI)0;
  		HEX3Atmp_545914_839829468 = (NI)(L0 - ((NI) 3));
  		res_545917_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_545917_839829468 <= HEX3Atmp_545914_839829468)) goto LA20;
  				i_545846_839829468 = res_545917_839829468;
  				{
  					Tsym294834* v0;
  					v0 = (*(*n0).kindU.S6.sons->data[i_545846_839829468]).kindU.S4.sym;
  					{
  						if (!(((*v0).flags &(1U<<((NU)(((Tsymflag294184) 23))&31U)))!=0)) goto LA24;
  						goto LA21;
  					}
  					LA24: ;
  					{
  						if (!(((*v0).flags &(1U<<((NU)(((Tsymflag294184) 3))&31U)))!=0)) goto LA28;
  						assignglobalvar_540819_839829468(p0, v0);
  						genobjectinit_540242_839829468(p0, ((Tcprocsection531011) 1), (*v0).typ, (*v0).loc, NIM_TRUE);
  						registergcroot_545762_839829468(p0, v0);
  					}
  					goto LA26;
  					LA28: ;
  					{
  						Tnode294802* LOC31;
  						NIM_BOOL LOC32;
  						assignlocalvar_540614_839829468(p0, v0);
  						LOC31 = (Tnode294802*)0;
  						LOC31 = HEX5BHEX5D_295238_850551059(n0, (NI)(L0 - ((NI) 1)));
  						LOC32 = (NIM_BOOL)0;
  						LOC32 = isassignedimmediately_545781_839829468(LOC31);
  						initlocalvar_540398_839829468(p0, v0, LOC32);
  					}
  					LA26: ;
  					initloc_534273_839829468((&field0), ((Tlockind294808) 6), (*t0).sons->data[i_545846_839829468], tup0.s);
  					{
  						TY534811 LOC37;
  						if (!((*t0).kind == ((Ttypekind294244) 18))) goto LA35;
  						memset((void*)LOC37, 0, sizeof(LOC37));
  						LOC37[0] = rdloc_540188_839829468(tup0);
  						LOC37[1] = rope_180401_2381377266(((NI64) (i_545846_839829468)));
  						field0.r = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_185), LOC37, 2);
  					}
  					goto LA33;
  					LA35: ;
  					{
  						TY534811 LOC43;
  						{
  							if (!!(((*(*(*t0).n).kindU.S6.sons->data[i_545846_839829468]).kind == ((Tnodekind294020) 3)))) goto LA41;
  							internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_592));
  						}
  						LA41: ;
  						memset((void*)LOC43, 0, sizeof(LOC43));
  						LOC43[0] = rdloc_540188_839829468(tup0);
  						LOC43[1] = manglerecfieldname_536361_839829468((*(*(*t0).n).kindU.S6.sons->data[i_545846_839829468]).kindU.S4.sym, t0);
  						field0.r = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_90), LOC43, 2);
  					}
  					LA33: ;
  					putlocintodest_541258_839829468(p0, (&(*v0).loc), field0);
  				} LA21: ;
  				res_545917_839829468 += ((NI) 1);
  			} LA20: ;
  		}
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genvarstmt_546854_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	{
  		NI i_546869_839829468;
  		NI HEX3Atmp_546902_839829468;
  		NI LOC2;
  		NI res_546905_839829468;
  		i_546869_839829468 = (NI)0;
  		HEX3Atmp_546902_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(n0);
  		HEX3Atmp_546902_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_546905_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_546905_839829468 <= HEX3Atmp_546902_839829468)) goto LA4;
  				i_546869_839829468 = res_546905_839829468;
  				{
  					Tnode294802* a0;
  					a0 = (*n0).kindU.S6.sons->data[i_546869_839829468];
  					{
  						if (!((*a0).kind == ((Tnodekind294020) 125))) goto LA8;
  						goto LA5;
  					}
  					LA8: ;
  					{
  						if (!((*a0).kind == ((Tnodekind294020) 35))) goto LA12;
  						{
  							if (!((*(*a0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3))) goto LA16;
  							gensinglevar_546276_839829468(p0, a0);
  						}
  						goto LA14;
  						LA16: ;
  						{
  							genclosurevar_546832_839829468(p0, a0);
  						}
  						LA14: ;
  					}
  					goto LA10;
  					LA12: ;
  					{
  						genvartuple_545794_839829468(p0, a0);
  					}
  					LA10: ;
  				} LA5: ;
  				res_546905_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  }
  
  static N_INLINE(NIM_BOOL, emitlazily_534248_839829468)(Tsym294834* s0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	Tsym294834* LOC3;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 2))&63U)))!=0);
  	if (LOC1) goto LA2;
  	LOC3 = (Tsym294834*)0;
  	LOC3 = getmodule_301123_2984716966(s0);
  	LOC1 = (((*LOC3).flags &(1U<<((NU)(((Tsymflag294184) 25))&31U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(void, genconststmt_546909_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	{
  		NI i_546924_839829468;
  		NI HEX3Atmp_546975_839829468;
  		NI LOC2;
  		NI res_546978_839829468;
  		i_546924_839829468 = (NI)0;
  		HEX3Atmp_546975_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(t0);
  		HEX3Atmp_546975_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_546978_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_546978_839829468 <= HEX3Atmp_546975_839829468)) goto LA4;
  				i_546924_839829468 = res_546978_839829468;
  				{
  					Tnode294802* it0;
  					Tsym294834* c0;
  					it0 = (*t0).kindU.S6.sons->data[i_546924_839829468];
  					{
  						if (!((*it0).kind == ((Tnodekind294020) 125))) goto LA8;
  						goto LA5;
  					}
  					LA8: ;
  					{
  						if (!!(((*it0).kind == ((Tnodekind294020) 102)))) goto LA12;
  						internalerror_198100_155036129((*t0).info, ((NimStringDesc*) &T839829468_593));
  					}
  					LA12: ;
  					c0 = (*(*it0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  					{
  						NIM_BOOL LOC16;
  						LOC16 = (NIM_BOOL)0;
  						LOC16 = containscompiletimeonly_330721_3876443242((*c0).typ);
  						if (!LOC16) goto LA17;
  						goto LA5;
  					}
  					goto LA14;
  					LA17: ;
  					{
  						NIM_BOOL LOC20;
  						NIM_BOOL LOC21;
  						NI LOC24;
  						LOC20 = (NIM_BOOL)0;
  						LOC21 = (NIM_BOOL)0;
  						LOC21 = ((*(*c0).typ).kind == ((Ttypekind294244) 4) || (*(*c0).typ).kind == ((Ttypekind294244) 16) || (*(*c0).typ).kind == ((Ttypekind294244) 19) || (*(*c0).typ).kind == ((Ttypekind294244) 18) || (*(*c0).typ).kind == ((Ttypekind294244) 24));
  						if (!(LOC21)) goto LA22;
  						LOC21 = !((((*c0).loc.flags &(1U<<((NU)(((Tlocflag294810) 3))&15U)))!=0));
  						LA22: ;
  						LOC20 = LOC21;
  						if (!(LOC20)) goto LA23;
  						LOC24 = (NI)0;
  						LOC24 = len_295081_850551059((*c0).ast);
  						LOC20 = !((LOC24 == ((NI) 0)));
  						LA23: ;
  						if (!LOC20) goto LA25;
  						{
  							NIM_BOOL LOC29;
  							LOC29 = (NIM_BOOL)0;
  							LOC29 = emitlazily_534248_839829468(c0);
  							if (!!(LOC29)) goto LA30;
  							requestconstimpl_541240_839829468(p0, c0);
  						}
  						LA30: ;
  					}
  					goto LA14;
  					LA25: ;
  					LA14: ;
  				} LA5: ;
  				res_546978_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  }
  
  N_NIMCALL(void, gencasestringbranch_549100_839829468)(Tcproc531021* p0, Tnode294802* b0, Tloc294816 e0, Ropeobj180006* labl0, Ropeobj180006** branches0, NI branches0Len0) {
  	Tloc294816 x0;
  	NI length0;
  	memset((void*)(&x0), 0, sizeof(x0));
  	length0 = sonslen_297351_850551059(b0);
  	{
  		NI i_549122_839829468;
  		NI HEX3Atmp_549409_839829468;
  		NI res_549412_839829468;
  		i_549122_839829468 = (NI)0;
  		HEX3Atmp_549409_839829468 = (NI)0;
  		HEX3Atmp_549409_839829468 = (NI)(length0 - ((NI) 2));
  		res_549412_839829468 = ((NI) 0);
  		{
  			while (1) {
  				NI j0;
  				NI64 LOC4;
  				TY537238 LOC5;
  				if (!(res_549412_839829468 <= HEX3Atmp_549409_839829468)) goto LA3;
  				i_549122_839829468 = res_549412_839829468;
  				initlocexpr_541283_839829468(p0, (*b0).kindU.S6.sons->data[i_549122_839829468], (&x0));
  				LOC4 = (NI64)0;
  				LOC4 = hashstring_530100_2036603609((*(*b0).kindU.S6.sons->data[i_549122_839829468]).kindU.S3.strval);
  				j0 = ((NI) ((NI64)(LOC4 & ((NI64) ((branches0Len0-1))))));
  				memset((void*)LOC5, 0, sizeof(LOC5));
  				LOC5[0] = rdloc_540188_839829468(e0);
  				LOC5[1] = rdloc_540188_839829468(x0);
  				LOC5[2] = labl0;
  				appcg_534632_839829468((*p0).module, &branches0[j0], ((NimStringDesc*) &T839829468_595), LOC5, 3);
  				res_549412_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  }
  
  N_NIMCALL(void, exprblock_546103_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	TY535289 LOC1;
  	NI LOC2;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC2 = (NI)0;
  	LOC2 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC1, 0);
  	expr_541248_839829468(p0, n0, d0);
  	endblock_546060_839829468(p0);
  }
  
  N_NIMCALL(Ropeobj180006*, gencasesecondpass_548965_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NI labid0, NI until0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* lend0;
  	result0 = (Ropeobj180006*)0;
  	lend0 = getlabel_541217_839829468(p0);
  	{
  		NI i_548984_839829468;
  		NI res_549017_839829468;
  		i_548984_839829468 = (NI)0;
  		res_549017_839829468 = ((NI) 1);
  		{
  			while (1) {
  				TY180507 LOC10;
  				if (!(res_549017_839829468 <= until0)) goto LA3;
  				i_548984_839829468 = res_549017_839829468;
  				{
  					NIM_BOOL LOC6;
  					LOC6 = (NIM_BOOL)0;
  					LOC6 = ((*d0).k == ((Tlockind294808) 1));
  					if (!(LOC6)) goto LA7;
  					LOC6 = isemptytype_299440_850551059((*t0).typ);
  					LA7: ;
  					if (!LOC6) goto LA8;
  					(*d0).k = ((Tlockind294808) 0);
  				}
  				LA8: ;
  				memset((void*)LOC10, 0, sizeof(LOC10));
  				LOC10[0] = rope_180401_2381377266(((NI64) ((NI)(labid0 + i_548984_839829468))));
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_599), LOC10, 1);
  				{
  					NI length0;
  					TY180507 LOC15;
  					if (!((*(*t0).kindU.S6.sons->data[i_548984_839829468]).kind == ((Tnodekind294020) 85))) goto LA13;
  					length0 = sonslen_297351_850551059((*t0).kindU.S6.sons->data[i_548984_839829468]);
  					exprblock_546103_839829468(p0, (*(*t0).kindU.S6.sons->data[i_548984_839829468]).kindU.S6.sons->data[(NI)(length0 - ((NI) 1))], d0);
  					memset((void*)LOC15, 0, sizeof(LOC15));
  					LOC15[0] = lend0;
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_556), LOC15, 1);
  				}
  				goto LA11;
  				LA13: ;
  				{
  					exprblock_546103_839829468(p0, (*(*t0).kindU.S6.sons->data[i_548984_839829468]).kindU.S6.sons->data[((NI) 0)], d0);
  				}
  				LA11: ;
  				res_549017_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	result0 = lend0;
  	return result0;
  }
  
  N_NIMCALL(void, gencasegenericbranch_548910_839829468)(Tcproc531021* p0, Tnode294802* b0, Tloc294816 e0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0, Ropeobj180006* labl0) {
  	Tloc294816 x0;
  	Tloc294816 y0;
  	NI length0;
  	memset((void*)(&x0), 0, sizeof(x0));
  	memset((void*)(&y0), 0, sizeof(y0));
  	length0 = sonslen_297351_850551059(b0);
  	{
  		NI i_548932_839829468;
  		NI HEX3Atmp_548958_839829468;
  		NI res_548961_839829468;
  		i_548932_839829468 = (NI)0;
  		HEX3Atmp_548958_839829468 = (NI)0;
  		HEX3Atmp_548958_839829468 = (NI)(length0 - ((NI) 2));
  		res_548961_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_548961_839829468 <= HEX3Atmp_548958_839829468)) goto LA3;
  				i_548932_839829468 = res_548961_839829468;
  				{
  					TY537235 LOC8;
  					if (!((*(*b0).kindU.S6.sons->data[i_548932_839829468]).kind == ((Tnodekind294020) 44))) goto LA6;
  					initlocexpr_541283_839829468(p0, (*(*b0).kindU.S6.sons->data[i_548932_839829468]).kindU.S6.sons->data[((NI) 0)], (&x0));
  					initlocexpr_541283_839829468(p0, (*(*b0).kindU.S6.sons->data[i_548932_839829468]).kindU.S6.sons->data[((NI) 1)], (&y0));
  					memset((void*)LOC8, 0, sizeof(LOC8));
  					LOC8[0] = rdcharloc_540227_839829468(e0);
  					LOC8[1] = rdcharloc_540227_839829468(x0);
  					LOC8[2] = rdcharloc_540227_839829468(y0);
  					LOC8[3] = labl0;
  					linecg_534707_839829468(p0, ((Tcprocsection531011) 2), rangeformat0, LOC8, 4);
  				}
  				goto LA4;
  				LA6: ;
  				{
  					TY537238 LOC10;
  					initlocexpr_541283_839829468(p0, (*b0).kindU.S6.sons->data[i_548932_839829468], (&x0));
  					memset((void*)LOC10, 0, sizeof(LOC10));
  					LOC10[0] = rdcharloc_540227_839829468(e0);
  					LOC10[1] = rdcharloc_540227_839829468(x0);
  					LOC10[2] = labl0;
  					linecg_534707_839829468(p0, ((Tcprocsection531011) 2), eqformat0, LOC10, 3);
  				}
  				LA4: ;
  				res_548961_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  }
  
  N_NIMCALL(Ropeobj180006*, genifforcaseuntil_549021_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0, NI until0, Tloc294816 a0) {
  	Ropeobj180006* result0;
  	NI labid0;
  	result0 = (Ropeobj180006*)0;
  	labid0 = (*p0).labels;
  	{
  		NI i_549042_839829468;
  		NI res_549083_839829468;
  		i_549042_839829468 = (NI)0;
  		res_549083_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_549083_839829468 <= until0)) goto LA3;
  				i_549042_839829468 = res_549083_839829468;
  				(*p0).labels += ((NI) 1);
  				{
  					Ropeobj180006* LOC8;
  					Ropeobj180006* LOC9;
  					if (!((*(*t0).kindU.S6.sons->data[i_549042_839829468]).kind == ((Tnodekind294020) 85))) goto LA6;
  					LOC8 = (Ropeobj180006*)0;
  					LOC8 = rope_180401_2381377266(((NI64) ((*p0).labels)));
  					LOC9 = (Ropeobj180006*)0;
  					LOC9 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_296), LOC8);
  					gencasegenericbranch_548910_839829468(p0, (*t0).kindU.S6.sons->data[i_549042_839829468], a0, rangeformat0, eqformat0, LOC9);
  				}
  				goto LA4;
  				LA6: ;
  				{
  					TY180507 LOC11;
  					memset((void*)LOC11, 0, sizeof(LOC11));
  					LOC11[0] = rope_180401_2381377266(((NI64) ((*p0).labels)));
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_598), LOC11, 1);
  				}
  				LA4: ;
  				res_549083_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	{
  		NI LOC14;
  		NI gototarget0;
  		TY180507 LOC17;
  		TY180507 LOC18;
  		LOC14 = (NI)0;
  		LOC14 = len_295081_850551059(t0);
  		if (!(until0 < (NI)(LOC14 - ((NI) 1)))) goto LA15;
  		(*p0).labels += ((NI) 1);
  		gototarget0 = (*p0).labels;
  		memset((void*)LOC17, 0, sizeof(LOC17));
  		LOC17[0] = rope_180401_2381377266(((NI64) (gototarget0)));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_598), LOC17, 1);
  		result0 = gencasesecondpass_548965_839829468(p0, t0, d0, ((NI) (labid0)), until0);
  		memset((void*)LOC18, 0, sizeof(LOC18));
  		LOC18[0] = rope_180401_2381377266(((NI64) (gototarget0)));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_599), LOC18, 1);
  	}
  	goto LA12;
  	LA15: ;
  	{
  		result0 = gencasesecondpass_548965_839829468(p0, t0, d0, ((NI) (labid0)), until0);
  	}
  	LA12: ;
  	return result0;
  }
  
  N_NIMCALL(void, gencasegeneric_549087_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0, NimStringDesc* rangeformat0, NimStringDesc* eqformat0) {
  	Tloc294816 a0;
  	Ropeobj180006* lend0;
  	NI LOC1;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	LOC1 = (NI)0;
  	LOC1 = sonslen_297351_850551059(t0);
  	lend0 = genifforcaseuntil_549021_839829468(p0, t0, d0, rangeformat0, eqformat0, (NI)(LOC1 - ((NI) 1)), a0);
  	fixlabel_541230_839829468(p0, lend0);
  }
  
  N_NIMCALL(void, genstringcase_549416_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	NI strings0;
  	strings0 = ((NI) 0);
  	{
  		NI i_549434_839829468;
  		NI HEX3Atmp_549549_839829468;
  		NI LOC2;
  		NI res_549552_839829468;
  		i_549434_839829468 = (NI)0;
  		HEX3Atmp_549549_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(t0);
  		HEX3Atmp_549549_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_549552_839829468 = ((NI) 1);
  		{
  			while (1) {
  				if (!(res_549552_839829468 <= HEX3Atmp_549549_839829468)) goto LA4;
  				i_549434_839829468 = res_549552_839829468;
  				{
  					NI LOC9;
  					if (!((*(*t0).kindU.S6.sons->data[i_549434_839829468]).kind == ((Tnodekind294020) 85))) goto LA7;
  					LOC9 = (NI)0;
  					LOC9 = sonslen_297351_850551059((*t0).kindU.S6.sons->data[i_549434_839829468]);
  					strings0 += (NI)(LOC9 - ((NI) 1));
  				}
  				LA7: ;
  				res_549552_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	{
  		NI bitmask0;
  		NI LOC14;
  		TY193350* branches0;
  		Tloc294816 a0;
  		NI labid0;
  		TY534811 LOC26;
  		TY535289 LOC35;
  		Ropeobj180006* lend0;
  		NI LOC42;
  		if (!(((NI) 8) < strings0)) goto LA12;
  		LOC14 = (NI)0;
  		LOC14 = nextpoweroftwo_101629_1009420244(strings0);
  		bitmask0 = (NI)(LOC14 - ((NI) 1));
  		branches0 = (TY193350*)0;
  		branches0 = (TY193350*) newSeq((&NTI193350), ((NI) ((NI)(bitmask0 + ((NI) 1)))));
  		memset((void*)(&a0), 0, sizeof(a0));
  		initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		labid0 = (*p0).labels;
  		{
  			NI i_549483_839829468;
  			NI HEX3Atmp_549559_839829468;
  			NI LOC16;
  			NI res_549562_839829468;
  			i_549483_839829468 = (NI)0;
  			HEX3Atmp_549559_839829468 = (NI)0;
  			LOC16 = (NI)0;
  			LOC16 = sonslen_297351_850551059(t0);
  			HEX3Atmp_549559_839829468 = (NI)(LOC16 - ((NI) 1));
  			res_549562_839829468 = ((NI) 1);
  			{
  				while (1) {
  					if (!(res_549562_839829468 <= HEX3Atmp_549559_839829468)) goto LA18;
  					i_549483_839829468 = res_549562_839829468;
  					(*p0).labels += ((NI) 1);
  					{
  						Ropeobj180006* LOC23;
  						Ropeobj180006* LOC24;
  						if (!((*(*t0).kindU.S6.sons->data[i_549483_839829468]).kind == ((Tnodekind294020) 85))) goto LA21;
  						LOC23 = (Ropeobj180006*)0;
  						LOC23 = rope_180401_2381377266(((NI64) ((*p0).labels)));
  						LOC24 = (Ropeobj180006*)0;
  						LOC24 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_296), LOC23);
  						gencasestringbranch_549100_839829468(p0, (*t0).kindU.S6.sons->data[i_549483_839829468], a0, LOC24, branches0->data, branches0->Sup.len);
  					}
  					goto LA19;
  					LA21: ;
  					{
  					}
  					LA19: ;
  					res_549562_839829468 += ((NI) 1);
  				} LA18: ;
  			}
  		}
  		memset((void*)LOC26, 0, sizeof(LOC26));
  		LOC26[0] = rdloc_540188_839829468(a0);
  		LOC26[1] = rope_180401_2381377266(((NI64) (bitmask0)));
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_596), LOC26, 2);
  		{
  			NI j_549517_839829468;
  			NI HEX3Atmp_549567_839829468;
  			NI res_549570_839829468;
  			j_549517_839829468 = (NI)0;
  			HEX3Atmp_549567_839829468 = (NI)0;
  			HEX3Atmp_549567_839829468 = (branches0 ? (branches0->Sup.len-1) : -1);
  			res_549570_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_549570_839829468 <= HEX3Atmp_549567_839829468)) goto LA29;
  					j_549517_839829468 = res_549570_839829468;
  					{
  						TY534811 LOC34;
  						if (!!((branches0->data[j_549517_839829468] == NIM_NIL))) goto LA32;
  						memset((void*)LOC34, 0, sizeof(LOC34));
  						LOC34[0] = intliteral_541270_839829468(((NI64) (j_549517_839829468)));
  						LOC34[1] = branches0->data[j_549517_839829468];
  						linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_597), LOC34, 2);
  					}
  					LA32: ;
  					res_549570_839829468 += ((NI) 1);
  				} LA29: ;
  			}
  		}
  		memset((void*)LOC35, 0, sizeof(LOC35));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC35, 0);
  		{
  			NI LOC38;
  			TY180507 LOC41;
  			LOC38 = (NI)0;
  			LOC38 = sonslen_297351_850551059(t0);
  			if (!!(((*(*t0).kindU.S6.sons->data[(NI)(LOC38 - ((NI) 1))]).kind == ((Tnodekind294020) 85)))) goto LA39;
  			memset((void*)LOC41, 0, sizeof(LOC41));
  			LOC41[0] = rope_180401_2381377266(((NI64) ((*p0).labels)));
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_598), LOC41, 1);
  		}
  		LA39: ;
  		LOC42 = (NI)0;
  		LOC42 = sonslen_297351_850551059(t0);
  		lend0 = gencasesecondpass_548965_839829468(p0, t0, d0, ((NI) (labid0)), (NI)(LOC42 - ((NI) 1)));
  		fixlabel_541230_839829468(p0, lend0);
  	}
  	goto LA10;
  	LA12: ;
  	{
  		gencasegeneric_549087_839829468(p0, t0, d0, ((NimStringDesc*) &T839829468_490), ((NimStringDesc*) &T839829468_595));
  	}
  	LA10: ;
  }
  
  N_NIMCALL(void, gengotoforcase_547673_839829468)(Tcproc531021* p0, Tnode294802* casestmt0) {
  {	{
  		NI i_547695_839829468;
  		NI HEX3Atmp_547737_839829468;
  		NI LOC2;
  		NI res_547740_839829468;
  		i_547695_839829468 = (NI)0;
  		HEX3Atmp_547737_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = len_295081_850551059(casestmt0);
  		HEX3Atmp_547737_839829468 = (LOC2 - 1);
  		res_547740_839829468 = ((NI) 1);
  		{
  			while (1) {
  				TY535289 LOC5;
  				NI LOC6;
  				Tnode294802* it0;
  				Tnode294802* LOC16;
  				if (!(res_547740_839829468 <= HEX3Atmp_547737_839829468)) goto LA4;
  				i_547695_839829468 = res_547740_839829468;
  				memset((void*)LOC5, 0, sizeof(LOC5));
  				LOC6 = (NI)0;
  				LOC6 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC5, 0);
  				it0 = (*casestmt0).kindU.S6.sons->data[i_547695_839829468];
  				{
  					NI j_547711_839829468;
  					NI HEX3Atmp_547730_839829468;
  					NI LOC8;
  					NI res_547733_839829468;
  					j_547711_839829468 = (NI)0;
  					HEX3Atmp_547730_839829468 = (NI)0;
  					LOC8 = (NI)0;
  					LOC8 = len_295081_850551059(it0);
  					HEX3Atmp_547730_839829468 = (NI)(LOC8 - ((NI) 2));
  					res_547733_839829468 = ((NI) 0);
  					{
  						while (1) {
  							NI64 val0;
  							TY180507 LOC15;
  							if (!(res_547733_839829468 <= HEX3Atmp_547730_839829468)) goto LA10;
  							j_547711_839829468 = res_547733_839829468;
  							{
  								if (!((*(*it0).kindU.S6.sons->data[j_547711_839829468]).kind == ((Tnodekind294020) 44))) goto LA13;
  								localerror_198085_155036129((*it0).info, ((NimStringDesc*) &T839829468_579));
  								goto BeforeRet;
  							}
  							LA13: ;
  							val0 = getordvalue_322129_3876443242((*it0).kindU.S6.sons->data[j_547711_839829468]);
  							memset((void*)LOC15, 0, sizeof(LOC15));
  							LOC15[0] = rope_180401_2381377266(val0);
  							linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_602), LOC15, 1);
  							res_547733_839829468 += ((NI) 1);
  						} LA10: ;
  					}
  				}
  				LOC16 = (Tnode294802*)0;
  				LOC16 = lastson_297364_850551059(it0);
  				genstmts_541244_839829468(p0, LOC16);
  				endblock_546060_839829468(p0);
  				res_547740_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	}BeforeRet: ;
  }
  
  N_NIMCALL(NIM_BOOL, branchhastoobigrange_549575_839829468)(Tnode294802* b0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	{
  		NI i_549590_839829468;
  		NI HEX3Atmp_549608_839829468;
  		NI LOC2;
  		NI res_549611_839829468;
  		i_549590_839829468 = (NI)0;
  		HEX3Atmp_549608_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(b0);
  		HEX3Atmp_549608_839829468 = (NI)(LOC2 - ((NI) 2));
  		res_549611_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_549611_839829468 <= HEX3Atmp_549608_839829468)) goto LA4;
  				i_549590_839829468 = res_549611_839829468;
  				{
  					NIM_BOOL LOC7;
  					LOC7 = (NIM_BOOL)0;
  					LOC7 = ((*(*b0).kindU.S6.sons->data[i_549590_839829468]).kind == ((Tnodekind294020) 44));
  					if (!(LOC7)) goto LA8;
  					LOC7 = (IL64(256) < (NI64)((*(*(*b0).kindU.S6.sons->data[i_549590_839829468]).kindU.S6.sons->data[((NI) 1)]).kindU.S1.intval - (*(*(*b0).kindU.S6.sons->data[i_549590_839829468]).kindU.S6.sons->data[((NI) 0)]).kindU.S1.intval));
  					LA8: ;
  					if (!LOC7) goto LA9;
  					result0 = NIM_TRUE;
  					goto BeforeRet;
  				}
  				LA9: ;
  				res_549611_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(NI, ifswitchsplitpoint_549615_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	NI result0;
  	result0 = (NI)0;
  	{
  		NI i_549630_839829468;
  		NI HEX3Atmp_549654_839829468;
  		NI LOC2;
  		NI res_549657_839829468;
  		i_549630_839829468 = (NI)0;
  		HEX3Atmp_549654_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = len_295081_850551059(n0);
  		HEX3Atmp_549654_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_549657_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Tnode294802* branch0;
  				Tnode294802* stmtblock0;
  				if (!(res_549657_839829468 <= HEX3Atmp_549654_839829468)) goto LA4;
  				i_549630_839829468 = res_549657_839829468;
  				branch0 = HEX5BHEX5D_295238_850551059(n0, i_549630_839829468);
  				stmtblock0 = lastson_297364_850551059(branch0);
  				{
  					NIM_BOOL LOC7;
  					LOC7 = (NIM_BOOL)0;
  					LOC7 = stmtscontainpragma_530083_2036603609(stmtblock0, ((Tspecialword277003) 181));
  					if (!LOC7) goto LA8;
  					result0 = i_549630_839829468;
  				}
  				goto LA5;
  				LA8: ;
  				{
  					if (!!(((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 0))&7U)))!=0))) goto LA11;
  					{
  						NIM_BOOL LOC15;
  						LOC15 = (NIM_BOOL)0;
  						LOC15 = ((*branch0).kind == ((Tnodekind294020) 85));
  						if (!(LOC15)) goto LA16;
  						LOC15 = branchhastoobigrange_549575_839829468(branch0);
  						LA16: ;
  						if (!LOC15) goto LA17;
  						result0 = i_549630_839829468;
  					}
  					LA17: ;
  				}
  				goto LA5;
  				LA11: ;
  				LA5: ;
  				res_549657_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	return result0;
  }
  
  N_NIMCALL(void, genordinalcase_549724_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	NI splitpoint0;
  	Tloc294816 a0;
  	Ropeobj180006* lend0;
  	splitpoint0 = ifswitchsplitpoint_549615_839829468(p0, n0);
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	{
  		if (!(((NI) 0) < splitpoint0)) goto LA3;
  		lend0 = genifforcaseuntil_549021_839829468(p0, n0, d0, ((NimStringDesc*) &T839829468_600), ((NimStringDesc*) &T839829468_601), splitpoint0, a0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		lend0 = NIM_NIL;
  	}
  	LA1: ;
  	{
  		NI LOC8;
  		TY180507 LOC11;
  		NIM_BOOL hasdefault0;
  		TY535289 LOC37;
  		LOC8 = (NI)0;
  		LOC8 = len_295081_850551059(n0);
  		if (!((NI)(splitpoint0 + ((NI) 1)) < LOC8)) goto LA9;
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = rdcharloc_540227_839829468(a0);
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_603), LOC11, 1);
  		hasdefault0 = NIM_FALSE;
  		{
  			NI i_549757_839829468;
  			NI HEX3Atmp_549816_839829468;
  			NI HEX3Atmp_549817_839829468;
  			NI LOC13;
  			NI res_549820_839829468;
  			i_549757_839829468 = (NI)0;
  			HEX3Atmp_549816_839829468 = (NI)0;
  			HEX3Atmp_549817_839829468 = (NI)0;
  			HEX3Atmp_549816_839829468 = (NI)(splitpoint0 + ((NI) 1));
  			LOC13 = (NI)0;
  			LOC13 = len_295081_850551059(n0);
  			HEX3Atmp_549817_839829468 = (LOC13 - 1);
  			res_549820_839829468 = HEX3Atmp_549816_839829468;
  			{
  				while (1) {
  					Tnode294802* branch0;
  					Tnode294802* LOC28;
  					TY535289 LOC29;
  					if (!(res_549820_839829468 <= HEX3Atmp_549817_839829468)) goto LA15;
  					i_549757_839829468 = res_549820_839829468;
  					{
  						NIM_BOOL LOC18;
  						LOC18 = (NIM_BOOL)0;
  						LOC18 = ((*d0).k == ((Tlockind294808) 1));
  						if (!(LOC18)) goto LA19;
  						LOC18 = isemptytype_299440_850551059((*n0).typ);
  						LA19: ;
  						if (!LOC18) goto LA20;
  						(*d0).k = ((Tlockind294808) 0);
  					}
  					LA20: ;
  					branch0 = HEX5BHEX5D_295238_850551059(n0, i_549757_839829468);
  					{
  						if (!((*branch0).kind == ((Tnodekind294020) 85))) goto LA24;
  						gencaserange_539028_839829468(p0, branch0);
  					}
  					goto LA22;
  					LA24: ;
  					{
  						TY535289 LOC27;
  						memset((void*)LOC27, 0, sizeof(LOC27));
  						linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_181), LOC27, 0);
  						hasdefault0 = NIM_TRUE;
  					}
  					LA22: ;
  					LOC28 = (Tnode294802*)0;
  					LOC28 = lastson_297364_850551059(branch0);
  					exprblock_546103_839829468(p0, LOC28, d0);
  					memset((void*)LOC29, 0, sizeof(LOC29));
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_182), LOC29, 0);
  					res_549820_839829468 += ((NI) 1);
  				} LA15: ;
  			}
  		}
  		{
  			NIM_BOOL LOC32;
  			TY535289 LOC36;
  			LOC32 = (NIM_BOOL)0;
  			LOC32 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 3))&7U)))!=0);
  			if (!(LOC32)) goto LA33;
  			LOC32 = !(hasdefault0);
  			LA33: ;
  			if (!LOC32) goto LA34;
  			memset((void*)LOC36, 0, sizeof(LOC36));
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_604), LOC36, 0);
  		}
  		LA34: ;
  		memset((void*)LOC37, 0, sizeof(LOC37));
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC37, 0);
  	}
  	LA9: ;
  	{
  		if (!!((lend0 == NIM_NIL))) goto LA40;
  		fixlabel_541230_839829468(p0, lend0);
  	}
  	LA40: ;
  }
  
  N_NIMCALL(void, gencase_549826_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	Ttype294840* LOC8;
  	genlinedir_534823_839829468(p0, t0);
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = isemptytype_299440_850551059((*t0).typ);
  		LOC3 = !(LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*d0).k == ((Tlockind294808) 0));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		gettemp_539032_839829468(p0, (*t0).typ, d0, NIM_FALSE);
  	}
  	LA6: ;
  	LOC8 = (Ttype294840*)0;
  	LOC8 = skiptypes_298099_850551059((*(*t0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106242013440));
  	switch ((*LOC8).kind) {
  	case ((Ttypekind294244) 28):
  	{
  		genstringcase_549416_839829468(p0, t0, d0);
  	}
  	break;
  	case ((Ttypekind294244) 36) ... ((Ttypekind294244) 39):
  	{
  		gencasegeneric_549087_839829468(p0, t0, d0, ((NimStringDesc*) &T839829468_600), ((NimStringDesc*) &T839829468_601));
  	}
  	break;
  	default:
  	{
  		{
  			NIM_BOOL LOC14;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = ((*(*t0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  			if (!(LOC14)) goto LA15;
  			LOC14 = (((*(*(*t0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 30))&31U)))!=0);
  			LA15: ;
  			if (!LOC14) goto LA16;
  			gengotoforcase_547673_839829468(p0, t0);
  		}
  		goto LA12;
  		LA16: ;
  		{
  			genordinalcase_549724_839829468(p0, t0, d0);
  		}
  		LA12: ;
  	}
  	break;
  	}
  }
  
  static N_INLINE(Tnode294802*, pop_320246_1689653243)(Tnodeseq294796** s0) {
  	Tnode294802* result0;
  	NI L0;
  	result0 = (Tnode294802*)0;
  	L0 = (NI)(((*s0) ? (*s0)->Sup.len : 0) - ((NI) 1));
  	result0 = (*s0)->data[L0];
  	(*s0) = (Tnodeseq294796*) setLengthSeq(&((*s0))->Sup, sizeof(Tnode294802*), ((NI) (L0)));
  	return result0;
  }
  
  N_NIMCALL(void, blockleaveactions_547442_839829468)(Tcproc531021* p0, NI howmanytrys0, NI howmanyexcepts0) {
  	Tnodeseq294796* stack0;
  	NI alreadypoppedcnt0;
  	stack0 = (Tnodeseq294796*)0;
  	stack0 = (Tnodeseq294796*) newSeq((&NTI294796), ((NI) 0));
  	alreadypoppedcnt0 = (*p0).inexceptblock;
  	{
  		NI i_547471_839829468;
  		NI res_547596_839829468;
  		i_547471_839829468 = (NI)0;
  		res_547596_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Tnode294802* trystmt0;
  				Tnode294802* finallystmt0;
  				if (!(res_547596_839829468 <= howmanytrys0)) goto LA3;
  				i_547471_839829468 = res_547596_839829468;
  				{
  					NIM_BOOL LOC6;
  					LOC6 = (NIM_BOOL)0;
  					LOC6 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  					if (LOC6) goto LA7;
  					LOC6 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  					LA7: ;
  					if (!!(LOC6)) goto LA8;
  					{
  						if (!(((NI) 0) < alreadypoppedcnt0)) goto LA12;
  						alreadypoppedcnt0 -= ((NI) 1);
  					}
  					goto LA10;
  					LA12: ;
  					{
  						TY535289 LOC15;
  						memset((void*)LOC15, 0, sizeof(LOC15));
  						linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_605), LOC15, 0);
  					}
  					LA10: ;
  				}
  				LA8: ;
  				trystmt0 = pop_320246_1689653243((&(*p0).nestedtrystmts));
  				stack0 = (Tnodeseq294796*) incrSeqV2(&(stack0)->Sup, sizeof(Tnode294802*));
  				asgnRefNoCycle((void**) (&stack0->data[stack0->Sup.len]), trystmt0);
  				++stack0->Sup.len;
  				finallystmt0 = lastson_297364_850551059(trystmt0);
  				{
  					if (!((*finallystmt0).kind == ((Tnodekind294020) 107))) goto LA18;
  					genstmts_541244_839829468(p0, (*finallystmt0).kindU.S6.sons->data[((NI) 0)]);
  				}
  				LA18: ;
  				res_547596_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  	{
  		NI i_547546_839829468;
  		NI HEX3Atmp_547601_839829468;
  		NI res_547604_839829468;
  		i_547546_839829468 = (NI)0;
  		HEX3Atmp_547601_839829468 = (NI)0;
  		HEX3Atmp_547601_839829468 = (NI)(howmanytrys0 - ((NI) 1));
  		res_547604_839829468 = HEX3Atmp_547601_839829468;
  		{
  			while (1) {
  				if (!(((NI) 0) <= res_547604_839829468)) goto LA22;
  				i_547546_839829468 = res_547604_839829468;
  				(*p0).nestedtrystmts = (Tnodeseq294796*) incrSeqV2(&((*p0).nestedtrystmts)->Sup, sizeof(Tnode294802*));
  				asgnRefNoCycle((void**) (&(*p0).nestedtrystmts->data[(*p0).nestedtrystmts->Sup.len]), stack0->data[i_547546_839829468]);
  				++(*p0).nestedtrystmts->Sup.len;
  				res_547604_839829468 -= ((NI) 1);
  			} LA22: ;
  		}
  	}
  	{
  		NIM_BOOL LOC25;
  		LOC25 = (NIM_BOOL)0;
  		LOC25 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  		if (LOC25) goto LA26;
  		LOC25 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  		LA26: ;
  		if (!!(LOC25)) goto LA27;
  		{
  			NI i_547587_839829468;
  			NI HEX3Atmp_547610_839829468;
  			NI res_547613_839829468;
  			i_547587_839829468 = (NI)0;
  			HEX3Atmp_547610_839829468 = (NI)0;
  			HEX3Atmp_547610_839829468 = (NI)(howmanyexcepts0 - ((NI) 1));
  			res_547613_839829468 = HEX3Atmp_547610_839829468;
  			{
  				while (1) {
  					TY535289 LOC32;
  					if (!(((NI) 0) <= res_547613_839829468)) goto LA31;
  					i_547587_839829468 = res_547613_839829468;
  					memset((void*)LOC32, 0, sizeof(LOC32));
  					linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_606), LOC32, 0);
  					res_547613_839829468 -= ((NI) 1);
  				} LA31: ;
  			}
  		}
  	}
  	LA27: ;
  }
  
  N_NIMCALL(void, genreturnstmt_547617_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	TY535289 LOC14;
  {	{
  		if (!(((*t0).flags &(1U<<((NU)(((Tnodeflag294427) 14))&15U)))!=0)) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	(*p0).beforeretneeded = NIM_TRUE;
  	genlinedir_534823_839829468(p0, t0);
  	{
  		if (!!(((*(*t0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1)))) goto LA7;
  		genstmts_541244_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)]);
  	}
  	LA7: ;
  	blockleaveactions_547442_839829468(p0, ((*p0).nestedtrystmts ? (*p0).nestedtrystmts->Sup.len : 0), (*p0).inexceptblock);
  	{
  		Ropeobj180006* safepoint0;
  		TY180507 LOC13;
  		if (!(((NI) 0) < ((*p0).finallysafepoints ? (*p0).finallysafepoints->Sup.len : 0))) goto LA11;
  		safepoint0 = (*p0).finallysafepoints->data[(NI)(((*p0).finallysafepoints ? (*p0).finallysafepoints->Sup.len : 0) - ((NI) 1))];
  		memset((void*)LOC13, 0, sizeof(LOC13));
  		LOC13[0] = safepoint0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_607), LOC13, 1);
  	}
  	LA11: ;
  	memset((void*)LOC14, 0, sizeof(LOC14));
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_608), LOC14, 0);
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genbreakstmt_548444_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	NI idx0;
  	Ropeobj180006* label0;
  	TY180507 LOC16;
  	idx0 = (*p0).breakidx;
  	{
  		Tsym294834* sym0;
  		if (!!(((*(*t0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1)))) goto LA3;
  		sym0 = (*(*t0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		idx0 = (NI)((*sym0).position - ((NI) 1));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		{
  			while (1) {
  				NIM_BOOL LOC8;
  				LOC8 = (NIM_BOOL)0;
  				LOC8 = (((NI) 0) <= idx0);
  				if (!(LOC8)) goto LA9;
  				LOC8 = !((*p0).blocks->data[idx0].isloop);
  				LA9: ;
  				if (!LOC8) goto LA7;
  				idx0 -= ((NI) 1);
  			} LA7: ;
  		}
  		{
  			NIM_BOOL LOC12;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = (idx0 < ((NI) 0));
  			if (LOC12) goto LA13;
  			LOC12 = !((*p0).blocks->data[idx0].isloop);
  			LA13: ;
  			if (!LOC12) goto LA14;
  			internalerror_198100_155036129((*t0).info, ((NimStringDesc*) &T839829468_609));
  		}
  		LA14: ;
  	}
  	LA1: ;
  	label0 = assignlabel_546020_839829468((&(*p0).blocks->data[idx0]));
  	blockleaveactions_547442_839829468(p0, (NI)(((*p0).nestedtrystmts ? (*p0).nestedtrystmts->Sup.len : 0) - ((NI) ((*p0).blocks->data[idx0].nestedtrystmts))), (NI)((*p0).inexceptblock - ((NI) ((*p0).blocks->data[idx0].nestedexceptstmts))));
  	genlinedir_534823_839829468(p0, t0);
  	memset((void*)LOC16, 0, sizeof(LOC16));
  	LOC16[0] = label0;
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_556), LOC16, 1);
  }
  
  N_NIMCALL(NIM_BOOL, fielddiscriminantcheckneeded_551080_839829468)(Tcproc531021* p0, Tnode294802* asgn0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	{
  		Tnode294802* le0;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 2))&31U)))!=0)) goto LA3;
  		le0 = (*asgn0).kindU.S6.sons->data[((NI) 0)];
  		{
  			Tsym294834* field0;
  			if (!((*le0).kind == ((Tnodekind294020) 46))) goto LA7;
  			field0 = (*(*(*le0).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
  			result0 = (((*field0).flags &(1U<<((NU)(((Tsymflag294184) 18))&31U)))!=0);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			Tsym294834* field0;
  			if (!((*le0).kind == ((Tnodekind294020) 45))) goto LA10;
  			field0 = (*(*le0).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
  			result0 = (((*field0).flags &(1U<<((NU)(((Tsymflag294184) 18))&31U)))!=0);
  		}
  		goto LA5;
  		LA10: ;
  		LA5: ;
  	}
  	LA3: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, discriminatortabledecl_538094_839829468)(Tcgen531027* m0, Ttype294840* objtype0, Tsym294834* d0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	Ropeobj180006* tmp0;
  	TY534811 LOC2;
  	NI64 LOC3;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_130));
  	tmp0 = discriminatortablename_538057_839829468(m0, objtype0, d0);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = tmp0;
  	LOC3 = (NI64)0;
  	LOC3 = lengthord_322007_3876443242((*d0).typ);
  	LOC2[1] = rope_180401_2381377266((NI64)(LOC3 + IL64(1)));
  	result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_203), LOC2, 2);
  	return result0;
  }
  
  N_NIMCALL(void, gendiscriminantcheck_551144_839829468)(Tcproc531021* p0, Tloc294816 a0, Tloc294816 tmp0, Ttype294840* objtype0, Tsym294834* field0) {
  	Ttype294840* t0;
  	Ropeobj180006* LOC1;
  	NI64 L0;
  	TY537235 LOC8;
  	t0 = skiptypes_298099_850551059(objtype0, IL64(211106240964864));
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = gentypeinfo_537941_839829468((*p0).module, t0);
  	L0 = lengthord_322007_3876443242((*field0).typ);
  	{
  		NIM_BOOL LOC4;
  		TY180507 LOC7;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = containsorincl_270862_2627731572((&(*(*p0).module).declaredthings), (*field0).Sup.id);
  		if (!!(LOC4)) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = discriminatortabledecl_538094_839829468((*p0).module, t0, field0);
  		appcg_534640_839829468((*p0).module, ((Tcfilesection531005) 9), ((NimStringDesc*) &T839829468_610), LOC7, 1);
  	}
  	LA5: ;
  	memset((void*)LOC8, 0, sizeof(LOC8));
  	LOC8[0] = rdloc_540188_839829468(a0);
  	LOC8[1] = rdloc_540188_839829468(tmp0);
  	LOC8[2] = discriminatortablename_538057_839829468((*p0).module, t0, field0);
  	LOC8[3] = intliteral_541270_839829468((NI64)(L0 + IL64(1)));
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_611), LOC8, 4);
  }
  
  N_NIMCALL(void, asgnfielddiscriminant_551209_839829468)(Tcproc531021* p0, Tnode294802* e0) {
  	Tloc294816 a0;
  	Tloc294816 tmp0;
  	Tnode294802* dotexpr0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	memset((void*)(&tmp0), 0, sizeof(tmp0));
  	dotexpr0 = (*e0).kindU.S6.sons->data[((NI) 0)];
  	{
  		if (!((*dotexpr0).kind == ((Tnodekind294020) 46))) goto LA3;
  		dotexpr0 = (*dotexpr0).kindU.S6.sons->data[((NI) 0)];
  	}
  	LA3: ;
  	initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	gettemp_539032_839829468(p0, a0.t, (&tmp0), NIM_FALSE);
  	expr_541248_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)], (&tmp0));
  	gendiscriminantcheck_551144_839829468(p0, a0, tmp0, (*(*dotexpr0).kindU.S6.sons->data[((NI) 0)]).typ, (*(*dotexpr0).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym);
  	genassignment_541264_839829468(p0, a0, tmp0, 0);
  }
  
  N_NIMCALL(void, genasgn_551239_839829468)(Tcproc531021* p0, Tnode294802* e0, NIM_BOOL fastasgn0) {
  	genlinedir_534823_839829468(p0, e0);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*(*e0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 3));
  		if (!(LOC3)) goto LA4;
  		LOC3 = (((*(*(*e0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).flags &(1U<<((NU)(((Tsymflag294184) 30))&31U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		gengotovar_546258_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 1)]);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NIM_BOOL LOC8;
  		Tloc294816 a0;
  		LOC8 = (NIM_BOOL)0;
  		LOC8 = fielddiscriminantcheckneeded_551080_839829468(p0, e0);
  		if (!!(LOC8)) goto LA9;
  		memset((void*)(&a0), 0, sizeof(a0));
  		{
  			Tnode294802* LOC13;
  			Tnode294802* LOC16;
  			LOC13 = (Tnode294802*)0;
  			LOC13 = HEX5BHEX5D_295238_850551059(e0, ((NI) 0));
  			if (!((*LOC13).kind == ((Tnodekind294020) 47) || (*LOC13).kind == ((Tnodekind294020) 65))) goto LA14;
  			LOC16 = (Tnode294802*)0;
  			LOC16 = HEX5BHEX5D_295238_850551059(e0, ((NI) 0));
  			genderef_545921_839829468(p0, LOC16, (&a0), NIM_TRUE);
  		}
  		goto LA11;
  		LA14: ;
  		{
  			initlocexpr_541283_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		}
  		LA11: ;
  		{
  			if (!fastasgn0) goto LA20;
  			a0.flags |= ((NU16)1)<<((((Tlocflag294810) 2))%(sizeof(NU16)*8));
  		}
  		LA20: ;
  		loadinto_545928_839829468(p0, (*e0).kindU.S6.sons->data[((NI) 0)], (*e0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	}
  	goto LA1;
  	LA9: ;
  	{
  		asgnfielddiscriminant_551209_839829468(p0, e0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(Ropeobj180006*, genasmoremitstmt_550529_839829468)(Tcproc531021* p0, Tnode294802* t0, NIM_BOOL isasmstmt0) {
  	Ropeobj180006* result0;
  	NimStringDesc* res0;
  	result0 = (Ropeobj180006*)0;
  	res0 = copyString(((NimStringDesc*) &T839829468_490));
  	{
  		NI i_550547_839829468;
  		NI HEX3Atmp_550644_839829468;
  		NI LOC2;
  		NI res_550647_839829468;
  		i_550547_839829468 = (NI)0;
  		HEX3Atmp_550644_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(t0);
  		HEX3Atmp_550644_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_550647_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_550647_839829468 <= HEX3Atmp_550644_839829468)) goto LA4;
  				i_550547_839829468 = res_550647_839829468;
  				switch ((*(*t0).kindU.S6.sons->data[i_550547_839829468]).kind) {
  				case ((Tnodekind294020) 20) ... ((Tnodekind294020) 22):
  				{
  					res0 = resizeString(res0, (*(*t0).kindU.S6.sons->data[i_550547_839829468]).kindU.S3.strval->Sup.len + 0);
  appendString(res0, (*(*t0).kindU.S6.sons->data[i_550547_839829468]).kindU.S3.strval);
  				}
  				break;
  				case ((Tnodekind294020) 3):
  				{
  					Tsym294834* sym0;
  					sym0 = (*(*t0).kindU.S6.sons->data[i_550547_839829468]).kindU.S4.sym;
  					{
  						Tloc294816 a0;
  						Ropeobj180006* LOC11;
  						NimStringDesc* LOC12;
  						if (!((28672 &(1U<<((NU)((*sym0).kind)&31U)))!=0)) goto LA9;
  						memset((void*)(&a0), 0, sizeof(a0));
  						initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[i_550547_839829468], (&a0));
  						LOC11 = (Ropeobj180006*)0;
  						LOC11 = rdloc_540188_839829468(a0);
  						LOC12 = (NimStringDesc*)0;
  						LOC12 = HEX24_180856_2381377266(LOC11);
  						res0 = resizeString(res0, LOC12->Sup.len + 0);
  appendString(res0, LOC12);
  					}
  					goto LA7;
  					LA9: ;
  					{
  						Ropeobj180006* LOC16;
  						NimStringDesc* LOC17;
  						if (!((*sym0).kind == ((Tsymkind294435) 7))) goto LA14;
  						LOC16 = (Ropeobj180006*)0;
  						LOC16 = gettypedesc_537671_839829468((*p0).module, (*sym0).typ);
  						LOC17 = (NimStringDesc*)0;
  						LOC17 = HEX24_180856_2381377266(LOC16);
  						res0 = resizeString(res0, LOC17->Sup.len + 0);
  appendString(res0, LOC17);
  					}
  					goto LA7;
  					LA14: ;
  					{
  						Ropeobj180006* r0;
  						NimStringDesc* LOC23;
  						r0 = (*sym0).loc.r;
  						{
  							if (!(r0 == NIM_NIL)) goto LA21;
  							r0 = manglename_535205_839829468(sym0);
  							asgnRefNoCycle((void**) (&(*sym0).loc.r), r0);
  						}
  						LA21: ;
  						LOC23 = (NimStringDesc*)0;
  						LOC23 = HEX24_180856_2381377266(r0);
  						res0 = resizeString(res0, LOC23->Sup.len + 0);
  appendString(res0, LOC23);
  					}
  					LA7: ;
  				}
  				break;
  				default:
  				{
  					internalerror_198100_155036129((*(*t0).kindU.S6.sons->data[i_550547_839829468]).info, ((NimStringDesc*) &T839829468_612));
  				}
  				break;
  				}
  				res_550647_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	{
  		NIM_BOOL LOC27;
  		LOC27 = (NIM_BOOL)0;
  		LOC27 = isasmstmt0;
  		if (!(LOC27)) goto LA28;
  		LOC27 = ((Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field20 &(1U<<((NU)(((Tinfoccprop275004) 5))&7U)))!=0);
  		LA28: ;
  		if (!LOC27) goto LA29;
  		{
  			NimStringDesc* x_550604_839829468;
  			NI first_550656_839829468;
  			NI last_550658_839829468;
  			x_550604_839829468 = (NimStringDesc*)0;
  			first_550656_839829468 = ((NI) 0);
  			last_550658_839829468 = ((NI) 0);
  			{
  				while (1) {
  					NI j0;
  					{
  						while (1) {
  							if (!!((((NU8)(res0->data[last_550658_839829468])) == ((NU8)(0)) || ((NU8)(res0->data[last_550658_839829468])) == ((NU8)(13)) || ((NU8)(res0->data[last_550658_839829468])) == ((NU8)(10))))) goto LA35;
  							last_550658_839829468 += ((NI) 1);
  						} LA35: ;
  					}
  					x_550604_839829468 = copyStrLast(res0, first_550656_839829468, (NI)(last_550658_839829468 - ((NI) 1)));
  					j0 = ((NI) 0);
  					{
  						while (1) {
  							if (!(((NU8)(x_550604_839829468->data[j0])) == ((NU8)(32)) || ((NU8)(x_550604_839829468->data[j0])) == ((NU8)(9)))) goto LA37;
  							j0 += ((NI) 1);
  						} LA37: ;
  					}
  					{
  						if (!(((NU8)(x_550604_839829468->data[j0])) == ((NU8)(34)) || ((NU8)(x_550604_839829468->data[j0])) == ((NU8)(58)))) goto LA40;
  						add_180487_2381377266(&result0, x_550604_839829468);
  						add_180487_2381377266(&result0, tnl_178644_4151366050);
  					}
  					goto LA38;
  					LA40: ;
  					{
  						if (!!(((NU8)(x_550604_839829468->data[j0]) == (NU8)(0)))) goto LA43;
  						add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_613));
  						add_180487_2381377266(&result0, x_550604_839829468);
  						add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_614));
  					}
  					goto LA38;
  					LA43: ;
  					LA38: ;
  					{
  						if (!((NU8)(res0->data[last_550658_839829468]) == (NU8)(10))) goto LA47;
  						last_550658_839829468 += ((NI) 1);
  					}
  					goto LA45;
  					LA47: ;
  					{
  						if (!((NU8)(res0->data[last_550658_839829468]) == (NU8)(13))) goto LA50;
  						last_550658_839829468 += ((NI) 1);
  						{
  							if (!((NU8)(res0->data[last_550658_839829468]) == (NU8)(10))) goto LA54;
  							last_550658_839829468 += ((NI) 1);
  						}
  						LA54: ;
  					}
  					goto LA45;
  					LA50: ;
  					{
  						goto LA32;
  					}
  					LA45: ;
  					first_550656_839829468 = last_550658_839829468;
  				}
  			} LA32: ;
  		}
  	}
  	goto LA25;
  	LA29: ;
  	{
  		res0 = resizeString(res0, tnl_178644_4151366050->Sup.len + 0);
  appendString(res0, tnl_178644_4151366050);
  		result0 = rope_180277_2381377266(res0);
  	}
  	LA25: ;
  	return result0;
  }
  
  N_NIMCALL(void, genasmstmt_550659_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	Ropeobj180006* s0;
  	genlinedir_534823_839829468(p0, t0);
  	s0 = genasmoremitstmt_550529_839829468(p0, t0, NIM_TRUE);
  	{
  		TY180507 LOC5;
  		if (!((*p0).prc == NIM_NIL)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = s0;
  		addf_181205_2381377266(&(*(*p0).module).s[(((Tcfilesection531005) 7))- 0], Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field17, LOC5, 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY180507 LOC7;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = s0;
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field17, LOC7, 1);
  	}
  	LA1: ;
  }
  
  static N_INLINE(void, gensimpleblock_546095_839829468)(Tcproc531021* p0, Tnode294802* stmts0) {
  	TY535289 LOC1;
  	NI LOC2;
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC2 = (NI)0;
  	LOC2 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC1, 0);
  	genstmts_541244_839829468(p0, stmts0);
  	endblock_546060_839829468(p0);
  }
  
  N_NIMCALL(void, gentrycpp_549865_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	Ropeobj180006* exc0;
  	TY535289 LOC16;
  	NI LOC17;
  	NI length0;
  	TY180507 LOC18;
  	Ropeobj180006* LOC19;
  	NI i0;
  	NIM_BOOL catchallpresent0;
  	TY535289 LOC78;
  	Tnode294802* LOC79;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = isemptytype_299440_850551059((*t0).typ);
  		LOC3 = !(LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*d0).k == ((Tlockind294808) 0));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		gettemp_539032_839829468(p0, (*t0).typ, d0, NIM_FALSE);
  	}
  	LA6: ;
  	genlinedir_534823_839829468(p0, t0);
  	exc0 = gettempname_535596_839829468((*p0).module);
  	{
  		Tsym294834* LOC10;
  		Ropeobj180006* LOC13;
  		LOC10 = (Tsym294834*)0;
  		LOC10 = getcompilerproc_340746_3937434831(((NimStringDesc*) &T839829468_615));
  		if (!!((LOC10 == NIM_NIL))) goto LA11;
  		LOC13 = (Ropeobj180006*)0;
  		LOC13 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_615));
  	}
  	goto LA8;
  	LA11: ;
  	{
  		Ropeobj180006* LOC15;
  		LOC15 = (Ropeobj180006*)0;
  		LOC15 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_616));
  	}
  	LA8: ;
  	(*p0).nestedtrystmts = (Tnodeseq294796*) incrSeqV2(&((*p0).nestedtrystmts)->Sup, sizeof(Tnode294802*));
  	asgnRefNoCycle((void**) (&(*p0).nestedtrystmts->data[(*p0).nestedtrystmts->Sup.len]), t0);
  	++(*p0).nestedtrystmts->Sup.len;
  	memset((void*)LOC16, 0, sizeof(LOC16));
  	LOC17 = (NI)0;
  	LOC17 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_617), LOC16, 0);
  	expr_541248_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], d0);
  	length0 = sonslen_297351_850551059(t0);
  	memset((void*)LOC18, 0, sizeof(LOC18));
  	LOC18[0] = exc0;
  	LOC19 = (Ropeobj180006*)0;
  	LOC19 = ropecg_534407_839829468((*p0).module, ((NimStringDesc*) &T839829468_618), LOC18, 1);
  	endblock_546035_839829468(p0, LOC19);
  	{
  		TY535289 LOC24;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0)) goto LA22;
  		memset((void*)LOC24, 0, sizeof(LOC24));
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_619), LOC24, 0);
  	}
  	LA22: ;
  	(*p0).inexceptblock += ((NI) 1);
  	i0 = ((NI) 1);
  	catchallpresent0 = NIM_FALSE;
  	{
  		while (1) {
  			NIM_BOOL LOC27;
  			NI blen0;
  			LOC27 = (NIM_BOOL)0;
  			LOC27 = (i0 < length0);
  			if (!(LOC27)) goto LA28;
  			LOC27 = ((*(*t0).kindU.S6.sons->data[i0]).kind == ((Tnodekind294020) 87));
  			LA28: ;
  			if (!LOC27) goto LA26;
  			{
  				NIM_BOOL LOC31;
  				LOC31 = (NIM_BOOL)0;
  				LOC31 = ((*d0).k == ((Tlockind294808) 1));
  				if (!(LOC31)) goto LA32;
  				LOC31 = isemptytype_299440_850551059((*t0).typ);
  				LA32: ;
  				if (!LOC31) goto LA33;
  				(*d0).k = ((Tlockind294808) 0);
  			}
  			LA33: ;
  			blen0 = sonslen_297351_850551059((*t0).kindU.S6.sons->data[i0]);
  			{
  				Ropeobj180006** LOC39;
  				TY535289 LOC40;
  				if (!(((NI) 1) < i0)) goto LA37;
  				LOC39 = (Ropeobj180006**)0;
  				LOC39 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  				memset((void*)LOC40, 0, sizeof(LOC40));
  				addf_181205_2381377266(LOC39, ((NimStringDesc*) &T839829468_620), LOC40, 0);
  			}
  			LA37: ;
  			{
  				TY535289 LOC45;
  				NI LOC46;
  				TY535289 LOC47;
  				if (!(blen0 == ((NI) 1))) goto LA43;
  				catchallpresent0 = NIM_TRUE;
  				memset((void*)LOC45, 0, sizeof(LOC45));
  				LOC46 = (NI)0;
  				LOC46 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC45, 0);
  				expr_541248_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[((NI) 0)], d0);
  				memset((void*)LOC47, 0, sizeof(LOC47));
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_606), LOC47, 0);
  				endblock_546060_839829468(p0);
  			}
  			goto LA41;
  			LA43: ;
  			{
  				Ropeobj180006* orexpr0;
  				TY180507 LOC57;
  				TY535289 LOC58;
  				NI LOC59;
  				TY535289 LOC60;
  				orexpr0 = NIM_NIL;
  				{
  					NI j_549978_839829468;
  					NI HEX3Atmp_550101_839829468;
  					NI res_550104_839829468;
  					j_549978_839829468 = (NI)0;
  					HEX3Atmp_550101_839829468 = (NI)0;
  					HEX3Atmp_550101_839829468 = (NI)(blen0 - ((NI) 2));
  					res_550104_839829468 = ((NI) 0);
  					{
  						while (1) {
  							TY534811 LOC56;
  							if (!(res_550104_839829468 <= HEX3Atmp_550101_839829468)) goto LA51;
  							j_549978_839829468 = res_550104_839829468;
  							{
  								if (!!((orexpr0 == NIM_NIL))) goto LA54;
  								add_180487_2381377266(&orexpr0, ((NimStringDesc*) &T839829468_229));
  							}
  							LA54: ;
  							memset((void*)LOC56, 0, sizeof(LOC56));
  							LOC56[0] = exc0;
  							LOC56[1] = gentypeinfo_537941_839829468((*p0).module, (*(*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[j_549978_839829468]).typ);
  							appcg_534632_839829468((*p0).module, &orexpr0, ((NimStringDesc*) &T839829468_621), LOC56, 2);
  							res_550104_839829468 += ((NI) 1);
  						} LA51: ;
  					}
  				}
  				memset((void*)LOC57, 0, sizeof(LOC57));
  				LOC57[0] = orexpr0;
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_622), LOC57, 1);
  				memset((void*)LOC58, 0, sizeof(LOC58));
  				LOC59 = (NI)0;
  				LOC59 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC58, 0);
  				expr_541248_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[(NI)(blen0 - ((NI) 1))], d0);
  				memset((void*)LOC60, 0, sizeof(LOC60));
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_606), LOC60, 0);
  				endblock_546060_839829468(p0);
  			}
  			LA41: ;
  			i0 += ((NI) 1);
  		} LA26: ;
  	}
  	{
  		TY535289 LOC70;
  		NI LOC71;
  		Tnode294802* finallyblock0;
  		TY535289 LOC76;
  		Ropeobj180006* LOC77;
  		if (!!(catchallpresent0)) goto LA63;
  		{
  			TY535289 LOC69;
  			if (!(((NI) 1) < i0)) goto LA67;
  			memset((void*)LOC69, 0, sizeof(LOC69));
  			linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_620), LOC69, 0);
  		}
  		LA67: ;
  		memset((void*)LOC70, 0, sizeof(LOC70));
  		LOC71 = (NI)0;
  		LOC71 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC70, 0);
  		finallyblock0 = lastson_297364_850551059(t0);
  		{
  			if (!((*finallyblock0).kind == ((Tnodekind294020) 107))) goto LA74;
  			genstmts_541244_839829468(p0, (*finallyblock0).kindU.S6.sons->data[((NI) 0)]);
  		}
  		LA74: ;
  		memset((void*)LOC76, 0, sizeof(LOC76));
  		LOC77 = (Ropeobj180006*)0;
  		LOC77 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_623), LOC76, 0);
  		line_534690_839829468(p0, ((Tcprocsection531011) 2), LOC77);
  		endblock_546060_839829468(p0);
  	}
  	LA63: ;
  	memset((void*)LOC78, 0, sizeof(LOC78));
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC78, 0);
  	(*p0).inexceptblock -= ((NI) 1);
  	LOC79 = (Tnode294802*)0;
  	LOC79 = pop_320246_1689653243((&(*p0).nestedtrystmts));
  	{
  		NIM_BOOL LOC82;
  		LOC82 = (NIM_BOOL)0;
  		LOC82 = (i0 < length0);
  		if (!(LOC82)) goto LA83;
  		LOC82 = ((*(*t0).kindU.S6.sons->data[i0]).kind == ((Tnodekind294020) 107));
  		LA83: ;
  		if (!LOC82) goto LA84;
  		gensimpleblock_546095_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[((NI) 0)]);
  	}
  	LA84: ;
  }
  
  N_NIMCALL(void, line_534695_839829468)(Tcproc531021* p0, Tcprocsection531011 s0, NimStringDesc* r0) {
  	Ropeobj180006** LOC1;
  	Ropeobj180006* LOC2;
  	Ropeobj180006* LOC3;
  	LOC1 = (Ropeobj180006**)0;
  	LOC1 = s_531179_3723162438(p0, s0);
  	LOC2 = (Ropeobj180006*)0;
  	LOC2 = rope_180277_2381377266(r0);
  	LOC3 = (Ropeobj180006*)0;
  	LOC3 = indentline_534656_839829468(p0, LOC2);
  	add_180482_2381377266(LOC1, LOC3);
  }
  
  static N_INLINE(Ropeobj180006*, pop_180530_1689653243)(TY193350** s0) {
  	Ropeobj180006* result0;
  	NI L0;
  	result0 = (Ropeobj180006*)0;
  	L0 = (NI)(((*s0) ? (*s0)->Sup.len : 0) - ((NI) 1));
  	result0 = (*s0)->data[L0];
  	(*s0) = (TY193350*) setLengthSeq(&((*s0))->Sup, sizeof(Ropeobj180006*), ((NI) (L0)));
  	return result0;
  }
  
  N_NIMCALL(void, gentry_550114_839829468)(Tcproc531021* p0, Tnode294802* t0, Tloc294816* d0) {
  	NIM_BOOL LOC8;
  	Ropeobj180006* safepoint0;
  	TY180507 LOC17;
  	TY180507 LOC18;
  	TY180507 LOC37;
  	NI LOC38;
  	NI length0;
  	TY535289 LOC39;
  	TY535289 LOC40;
  	NI LOC41;
  	TY535289 LOC42;
  	NI i0;
  	Tnode294802* LOC95;
  	TY180507 LOC103;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC4;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NIM_BOOL)0;
  		LOC4 = isemptytype_299440_850551059((*t0).typ);
  		LOC3 = !(LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*d0).k == ((Tlockind294808) 0));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		gettemp_539032_839829468(p0, (*t0).typ, d0, NIM_FALSE);
  	}
  	LA6: ;
  	LOC8 = (NIM_BOOL)0;
  	LOC8 = includestr_148249_3771138726((&(*(*p0).module).headerfiles), ((NimStringDesc*) &T839829468_624));
  	genlinedir_534823_839829468(p0, t0);
  	safepoint0 = gettempname_535596_839829468((*p0).module);
  	{
  		Tsym294834* LOC11;
  		Ropeobj180006* LOC14;
  		LOC11 = (Tsym294834*)0;
  		LOC11 = getcompilerproc_340746_3937434831(((NimStringDesc*) &T839829468_615));
  		if (!!((LOC11 == NIM_NIL))) goto LA12;
  		LOC14 = (Ropeobj180006*)0;
  		LOC14 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_615));
  	}
  	goto LA9;
  	LA12: ;
  	{
  		Ropeobj180006* LOC16;
  		LOC16 = (Ropeobj180006*)0;
  		LOC16 = cgsym_534403_839829468((*p0).module, ((NimStringDesc*) &T839829468_616));
  	}
  	LA9: ;
  	memset((void*)LOC17, 0, sizeof(LOC17));
  	LOC17[0] = safepoint0;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 0), ((NimStringDesc*) &T839829468_625), LOC17, 1);
  	memset((void*)LOC18, 0, sizeof(LOC18));
  	LOC18[0] = safepoint0;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_626), LOC18, 1);
  	{
  		NIM_BOOL LOC21;
  		TY180507 LOC24;
  		LOC21 = (NIM_BOOL)0;
  		LOC21 = isdefined_202011_1967573533(((NimStringDesc*) &T839829468_627));
  		if (!LOC21) goto LA22;
  		memset((void*)LOC24, 0, sizeof(LOC24));
  		LOC24[0] = safepoint0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_628), LOC24, 1);
  	}
  	goto LA19;
  	LA22: ;
  	{
  		NIM_BOOL LOC26;
  		TY180507 LOC29;
  		LOC26 = (NIM_BOOL)0;
  		LOC26 = isdefined_202011_1967573533(((NimStringDesc*) &T839829468_629));
  		if (!LOC26) goto LA27;
  		memset((void*)LOC29, 0, sizeof(LOC29));
  		LOC29[0] = safepoint0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_630), LOC29, 1);
  	}
  	goto LA19;
  	LA27: ;
  	{
  		NIM_BOOL LOC31;
  		TY180507 LOC34;
  		LOC31 = (NIM_BOOL)0;
  		LOC31 = isdefined_202011_1967573533(((NimStringDesc*) &T839829468_631));
  		if (!LOC31) goto LA32;
  		memset((void*)LOC34, 0, sizeof(LOC34));
  		LOC34[0] = safepoint0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_632), LOC34, 1);
  	}
  	goto LA19;
  	LA32: ;
  	{
  		TY180507 LOC36;
  		memset((void*)LOC36, 0, sizeof(LOC36));
  		LOC36[0] = safepoint0;
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_628), LOC36, 1);
  	}
  	LA19: ;
  	memset((void*)LOC37, 0, sizeof(LOC37));
  	LOC37[0] = safepoint0;
  	LOC38 = (NI)0;
  	LOC38 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_633), LOC37, 1);
  	length0 = sonslen_297351_850551059(t0);
  	(*p0).nestedtrystmts = (Tnodeseq294796*) incrSeqV2(&((*p0).nestedtrystmts)->Sup, sizeof(Tnode294802*));
  	asgnRefNoCycle((void**) (&(*p0).nestedtrystmts->data[(*p0).nestedtrystmts->Sup.len]), t0);
  	++(*p0).nestedtrystmts->Sup.len;
  	expr_541248_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], d0);
  	memset((void*)LOC39, 0, sizeof(LOC39));
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_605), LOC39, 0);
  	endblock_546060_839829468(p0);
  	memset((void*)LOC40, 0, sizeof(LOC40));
  	LOC41 = (NI)0;
  	LOC41 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_634), LOC40, 0);
  	memset((void*)LOC42, 0, sizeof(LOC42));
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_605), LOC42, 0);
  	{
  		TY535289 LOC47;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0)) goto LA45;
  		memset((void*)LOC47, 0, sizeof(LOC47));
  		linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_619), LOC47, 0);
  	}
  	LA45: ;
  	(*p0).inexceptblock += ((NI) 1);
  	i0 = ((NI) 1);
  	{
  		while (1) {
  			NIM_BOOL LOC50;
  			NI blen0;
  			LOC50 = (NIM_BOOL)0;
  			LOC50 = (i0 < length0);
  			if (!(LOC50)) goto LA51;
  			LOC50 = ((*(*t0).kindU.S6.sons->data[i0]).kind == ((Tnodekind294020) 87));
  			LA51: ;
  			if (!LOC50) goto LA49;
  			{
  				NIM_BOOL LOC54;
  				LOC54 = (NIM_BOOL)0;
  				LOC54 = ((*d0).k == ((Tlockind294808) 1));
  				if (!(LOC54)) goto LA55;
  				LOC54 = isemptytype_299440_850551059((*t0).typ);
  				LA55: ;
  				if (!LOC54) goto LA56;
  				(*d0).k = ((Tlockind294808) 0);
  			}
  			LA56: ;
  			blen0 = sonslen_297351_850551059((*t0).kindU.S6.sons->data[i0]);
  			{
  				TY535289 LOC67;
  				NI LOC68;
  				TY180507 LOC69;
  				TY535289 LOC70;
  				if (!(blen0 == ((NI) 1))) goto LA60;
  				{
  					TY535289 LOC66;
  					if (!(((NI) 1) < i0)) goto LA64;
  					memset((void*)LOC66, 0, sizeof(LOC66));
  					linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_635), LOC66, 0);
  				}
  				LA64: ;
  				memset((void*)LOC67, 0, sizeof(LOC67));
  				LOC68 = (NI)0;
  				LOC68 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC67, 0);
  				memset((void*)LOC69, 0, sizeof(LOC69));
  				LOC69[0] = safepoint0;
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_636), LOC69, 1);
  				expr_541248_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[((NI) 0)], d0);
  				memset((void*)LOC70, 0, sizeof(LOC70));
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_606), LOC70, 0);
  				endblock_546060_839829468(p0);
  			}
  			goto LA58;
  			LA60: ;
  			{
  				Ropeobj180006* orexpr0;
  				TY180507 LOC91;
  				NI LOC92;
  				TY180507 LOC93;
  				TY535289 LOC94;
  				orexpr0 = NIM_NIL;
  				{
  					NI j_550247_839829468;
  					NI HEX3Atmp_550521_839829468;
  					NI res_550524_839829468;
  					j_550247_839829468 = (NI)0;
  					HEX3Atmp_550521_839829468 = (NI)0;
  					HEX3Atmp_550521_839829468 = (NI)(blen0 - ((NI) 2));
  					res_550524_839829468 = ((NI) 0);
  					{
  						while (1) {
  							NimStringDesc* isobjformat0;
  							TY180507 LOC86;
  							if (!(res_550524_839829468 <= HEX3Atmp_550521_839829468)) goto LA74;
  							j_550247_839829468 = res_550524_839829468;
  							{
  								if (!!((orexpr0 == NIM_NIL))) goto LA77;
  								add_180487_2381377266(&orexpr0, ((NimStringDesc*) &T839829468_229));
  							}
  							LA77: ;
  							{
  								NIM_BOOL LOC81;
  								LOC81 = (NIM_BOOL)0;
  								LOC81 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  								if (LOC81) goto LA82;
  								LOC81 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  								LA82: ;
  								if (!!(LOC81)) goto LA83;
  								isobjformat0 = copyString(((NimStringDesc*) &T839829468_637));
  							}
  							goto LA79;
  							LA83: ;
  							{
  								isobjformat0 = copyString(((NimStringDesc*) &T839829468_638));
  							}
  							LA79: ;
  							memset((void*)LOC86, 0, sizeof(LOC86));
  							LOC86[0] = gentypeinfo_537941_839829468((*p0).module, (*(*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[j_550247_839829468]).typ);
  							appcg_534632_839829468((*p0).module, &orexpr0, isobjformat0, LOC86, 1);
  							res_550524_839829468 += ((NI) 1);
  						} LA74: ;
  					}
  				}
  				{
  					if (!(((NI) 1) < i0)) goto LA89;
  					line_534695_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_620));
  				}
  				LA89: ;
  				memset((void*)LOC91, 0, sizeof(LOC91));
  				LOC91[0] = orexpr0;
  				LOC92 = (NI)0;
  				LOC92 = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_639), LOC91, 1);
  				memset((void*)LOC93, 0, sizeof(LOC93));
  				LOC93[0] = safepoint0;
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_636), LOC93, 1);
  				expr_541248_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[(NI)(blen0 - ((NI) 1))], d0);
  				memset((void*)LOC94, 0, sizeof(LOC94));
  				linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_606), LOC94, 0);
  				endblock_546060_839829468(p0);
  			}
  			LA58: ;
  			i0 += ((NI) 1);
  		} LA49: ;
  	}
  	(*p0).inexceptblock -= ((NI) 1);
  	LOC95 = (Tnode294802*)0;
  	LOC95 = pop_320246_1689653243((&(*p0).nestedtrystmts));
  	endblock_546060_839829468(p0);
  	{
  		NIM_BOOL LOC98;
  		Ropeobj180006* LOC102;
  		LOC98 = (NIM_BOOL)0;
  		LOC98 = (i0 < length0);
  		if (!(LOC98)) goto LA99;
  		LOC98 = ((*(*t0).kindU.S6.sons->data[i0]).kind == ((Tnodekind294020) 107));
  		LA99: ;
  		if (!LOC98) goto LA100;
  		(*p0).finallysafepoints = (TY193350*) incrSeqV2(&((*p0).finallysafepoints)->Sup, sizeof(Ropeobj180006*));
  		asgnRefNoCycle((void**) (&(*p0).finallysafepoints->data[(*p0).finallysafepoints->Sup.len]), safepoint0);
  		++(*p0).finallysafepoints->Sup.len;
  		gensimpleblock_546095_839829468(p0, (*(*t0).kindU.S6.sons->data[i0]).kindU.S6.sons->data[((NI) 0)]);
  		LOC102 = (Ropeobj180006*)0;
  		LOC102 = pop_180530_1689653243((&(*p0).finallysafepoints));
  	}
  	LA100: ;
  	memset((void*)LOC103, 0, sizeof(LOC103));
  	LOC103[0] = safepoint0;
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_640), LOC103, 1);
  }
  
  N_NIMCALL(NimStringDesc*, getraisefrmt_548824_839829468)(Tcproc531021* p0) {
  	NimStringDesc* result0;
  	result0 = (NimStringDesc*)0;
  	result0 = copyString(((NimStringDesc*) &T839829468_641));
  	return result0;
  }
  
  N_NIMCALL(void, genraisestmt_548828_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	{
  		Tnode294802* finallyblock0;
  		if (!(((NI) 0) < (*p0).inexceptblock)) goto LA3;
  		finallyblock0 = lastson_297364_850551059((*p0).nestedtrystmts->data[(NI)(((*p0).nestedtrystmts ? (*p0).nestedtrystmts->Sup.len : 0) - ((NI) 1))]);
  		{
  			if (!((*finallyblock0).kind == ((Tnodekind294020) 107))) goto LA7;
  			gensimpleblock_546095_839829468(p0, (*finallyblock0).kindU.S6.sons->data[((NI) 0)]);
  		}
  		LA7: ;
  	}
  	LA3: ;
  	{
  		Tloc294816 a0;
  		Ropeobj180006* e0;
  		Ttype294840* typ0;
  		NimStringDesc* LOC13;
  		TY534811 LOC14;
  		if (!!(((*(*t0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1)))) goto LA11;
  		memset((void*)(&a0), 0, sizeof(a0));
  		initlocexpr_541283_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		e0 = rdloc_540188_839829468(a0);
  		typ0 = skiptypes_298099_850551059((*(*t0).kindU.S6.sons->data[((NI) 0)]).typ, IL64(211106247256320));
  		genlinedir_534823_839829468(p0, t0);
  		LOC13 = (NimStringDesc*)0;
  		LOC13 = getraisefrmt_548824_839829468(p0);
  		memset((void*)LOC14, 0, sizeof(LOC14));
  		LOC14[0] = e0;
  		LOC14[1] = makecstring_193638_155036129((*(*(*typ0).sym).name).s);
  		linecg_534707_839829468(p0, ((Tcprocsection531011) 2), LOC13, LOC14, 2);
  	}
  	goto LA9;
  	LA11: ;
  	{
  		genlinedir_534823_839829468(p0, t0);
  		{
  			NIM_BOOL LOC18;
  			NIM_BOOL LOC19;
  			TY535289 LOC24;
  			Ropeobj180006* LOC25;
  			LOC18 = (NIM_BOOL)0;
  			LOC19 = (NIM_BOOL)0;
  			LOC19 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC19) goto LA20;
  			LOC19 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA20: ;
  			LOC18 = LOC19;
  			if (!(LOC18)) goto LA21;
  			LOC18 = !(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 31))&63U)))!=0));
  			LA21: ;
  			if (!LOC18) goto LA22;
  			memset((void*)LOC24, 0, sizeof(LOC24));
  			LOC25 = (Ropeobj180006*)0;
  			LOC25 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_623), LOC24, 0);
  			line_534690_839829468(p0, ((Tcprocsection531011) 2), LOC25);
  		}
  		goto LA16;
  		LA22: ;
  		{
  			TY535289 LOC27;
  			memset((void*)LOC27, 0, sizeof(LOC27));
  			linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_642), LOC27, 0);
  		}
  		LA16: ;
  	}
  	LA9: ;
  }
  
  N_NIMCALL(void, gentypesection_540184_839829468)(Tcgen531027* m0, Tnode294802* n0) {
  }
  
  N_NIMCALL(Tcfilesection531005, determinesection_550819_839829468)(Tnode294802* n0) {
  	Tcfilesection531005 result0;
  	result0 = (Tcfilesection531005)0;
  	result0 = ((Tcfilesection531005) 7);
  	{
  		NIM_BOOL LOC3;
  		NI LOC4;
  		NimStringDesc* sec0;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NI)0;
  		LOC4 = len_295081_850551059(n0);
  		LOC3 = (((NI) 1) <= LOC4);
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind >= ((Tnodekind294020) 20) && (*(*n0).kindU.S6.sons->data[((NI) 0)]).kind <= ((Tnodekind294020) 22));
  		LA5: ;
  		if (!LOC3) goto LA6;
  		sec0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S3.strval;
  		{
  			NIM_BOOL LOC10;
  			LOC10 = (NIM_BOOL)0;
  			LOC10 = nsuStartsWith(sec0, ((NimStringDesc*) &T839829468_643));
  			if (!LOC10) goto LA11;
  			result0 = ((Tcfilesection531005) 3);
  		}
  		goto LA8;
  		LA11: ;
  		{
  			NIM_BOOL LOC14;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = nsuStartsWith(sec0, ((NimStringDesc*) &T839829468_644));
  			if (!LOC14) goto LA15;
  			result0 = ((Tcfilesection531005) 9);
  		}
  		goto LA8;
  		LA15: ;
  		{
  			NIM_BOOL LOC18;
  			LOC18 = (NIM_BOOL)0;
  			LOC18 = nsuStartsWith(sec0, ((NimStringDesc*) &T839829468_645));
  			if (!LOC18) goto LA19;
  			result0 = ((Tcfilesection531005) 1);
  		}
  		goto LA8;
  		LA19: ;
  		LA8: ;
  	}
  	LA6: ;
  	return result0;
  }
  
  N_NIMCALL(void, genemit_550839_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	Ropeobj180006* s0;
  	s0 = genasmoremitstmt_550529_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 1)], NIM_FALSE);
  	{
  		Tcfilesection531005 section0;
  		Tnode294802* LOC5;
  		if (!((*p0).prc == NIM_NIL)) goto LA3;
  		LOC5 = (Tnode294802*)0;
  		LOC5 = HEX5BHEX5D_295238_850551059(t0, ((NI) 1));
  		section0 = determinesection_550819_839829468(LOC5);
  		genclinedir_534813_839829468(&(*(*p0).module).s[(section0)- 0], (*t0).info);
  		add_180482_2381377266(&(*(*p0).module).s[(section0)- 0], s0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		genlinedir_534823_839829468(p0, t0);
  		line_534690_839829468(p0, ((Tcprocsection531011) 2), s0);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, genbreakpoint_550862_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	NimStringDesc* name0;
  	name0 = (NimStringDesc*)0;
  	{
  		TY537238 LOC12;
  		NI LOC13;
  		NimStringDesc* LOC14;
  		if (!(((*p0).options &(1U<<((NU)(((Toption171009) 17))&31U)))!=0)) goto LA3;
  		{
  			if (!((*t0).kind == ((Tnodekind294020) 34))) goto LA7;
  			name0 = nsuNormalize((*(*t0).kindU.S6.sons->data[((NI) 1)]).kindU.S3.strval);
  		}
  		goto LA5;
  		LA7: ;
  		{
  			NimStringDesc* LOC10;
  			NimStringDesc* LOC11;
  			breakpointid_550860_839829468 += ((NI) 1);
  			LOC10 = (NimStringDesc*)0;
  			LOC11 = (NimStringDesc*)0;
  			LOC11 = nimIntToStr(breakpointid_550860_839829468);
  			LOC10 = rawNewString(LOC11->Sup.len + 2);
  appendString(LOC10, ((NimStringDesc*) &T839829468_646));
  appendString(LOC10, LOC11);
  			name0 = LOC10;
  		}
  		LA5: ;
  		genlinedir_534823_839829468(p0, t0);
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		LOC13 = (NI)0;
  		LOC13 = tolinenumber_194415_155036129((*t0).info);
  		LOC12[0] = rope_180401_2381377266(((NI64) (LOC13)));
  		LOC14 = (NimStringDesc*)0;
  		LOC14 = tofilename_194260_155036129((*t0).info.fileindex);
  		LOC12[1] = makecstring_193638_155036129(LOC14);
  		LOC12[2] = makecstring_193638_155036129(name0);
  		appcg_534632_839829468((*p0).module, &gbreakpoints_550861_839829468, ((NimStringDesc*) &T839829468_647), LOC12, 3);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, genwatchpoint_551016_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Tloc294816 a0;
  	Ttype294840* typ0;
  	TY537238 LOC5;
  	NimStringDesc* LOC6;
  {	{
  		if (!!((((*p0).options &(1U<<((NU)(((Toption171009) 17))&31U)))!=0))) goto LA3;
  		goto BeforeRet;
  	}
  	LA3: ;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 1)], (&a0));
  	typ0 = skiptypes_298099_850551059((*(*n0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106242013440));
  	memset((void*)LOC5, 0, sizeof(LOC5));
  	LOC5[0] = addrloc_540204_839829468(a0);
  	LOC6 = (NimStringDesc*)0;
  	LOC6 = rendertree_313044_382274130((*n0).kindU.S6.sons->data[((NI) 1)], 0);
  	LOC5[1] = makecstring_193638_155036129(LOC6);
  	LOC5[2] = gentypeinfo_537941_839829468((*p0).module, typ0);
  	linecg_534707_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_648), LOC5, 3);
  	}BeforeRet: ;
  }
  
  N_NIMCALL(void, genpragma_551039_839829468)(Tcproc531021* p_551041_839829468, Tnode294802* n0) {
  	{
  		NI i_551054_839829468;
  		NI HEX3Atmp_551073_839829468;
  		NI LOC2;
  		NI res_551076_839829468;
  		i_551054_839829468 = (NI)0;
  		HEX3Atmp_551073_839829468 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_297351_850551059(n0);
  		HEX3Atmp_551073_839829468 = (NI)(LOC2 - ((NI) 1));
  		res_551076_839829468 = ((NI) 0);
  		{
  			while (1) {
  				Tnode294802* it0;
  				Tspecialword277003 LOC5;
  				if (!(res_551076_839829468 <= HEX3Atmp_551073_839829468)) goto LA4;
  				i_551054_839829468 = res_551076_839829468;
  				it0 = (*n0).kindU.S6.sons->data[i_551054_839829468];
  				LOC5 = (Tspecialword277003)0;
  				LOC5 = whichpragma_320911_2616423590(it0);
  				switch (LOC5) {
  				case ((Tspecialword277003) 191):
  				{
  					genemit_550839_839829468(p_551041_839829468, it0);
  				}
  				break;
  				case ((Tspecialword277003) 131):
  				{
  					genbreakpoint_550862_839829468(p_551041_839829468, it0);
  				}
  				break;
  				case ((Tspecialword277003) 176):
  				{
  					genwatchpoint_551016_839829468(p_551041_839829468, it0);
  				}
  				break;
  				case ((Tspecialword277003) 183):
  				{
  					Tcproc531021* p0;
  					Ropeobj180006** LOC10;
  					p0 = newproc_531206_3723162438(NIM_NIL, (*p_551041_839829468).module);
  					(*p0).options = ((*p0).options & ~ 98304);
  					genstmts_541244_839829468(p0, (*it0).kindU.S6.sons->data[((NI) 1)]);
  					LOC10 = (Ropeobj180006**)0;
  					LOC10 = s_531179_3723162438(p0, ((Tcprocsection531011) 2));
  					asgnRefNoCycle((void**) (&(*(*p0).module).injectstmt), (*LOC10));
  				}
  				break;
  				default:
  				{
  				}
  				break;
  				}
  				res_551076_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  }
  
  N_NIMCALL(void, genparforstmt_548208_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	NI oldbreakidx_548411_839829468;
  	Tsym294834* forloopvar0;
  	Tloc294816 rangea0;
  	Tloc294816 rangeb0;
  	Tnode294802* call0;
  	TY537235 LOC1;
  	NimStringDesc* LOC2;
  	TY535289 LOC3;
  	(*p0).withinloop += ((NI) 1);
  	genlinedir_534823_839829468(p0, t0);
  	oldbreakidx_548411_839829468 = (*p0).breakidx;
  	forloopvar0 = (*(*t0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  	memset((void*)(&rangea0), 0, sizeof(rangea0));
  	memset((void*)(&rangeb0), 0, sizeof(rangeb0));
  	assignlocalvar_540614_839829468(p0, forloopvar0);
  	call0 = (*t0).kindU.S6.sons->data[((NI) 1)];
  	initlocexpr_541283_839829468(p0, (*call0).kindU.S6.sons->data[((NI) 1)], (&rangea0));
  	initlocexpr_541283_839829468(p0, (*call0).kindU.S6.sons->data[((NI) 2)], (&rangeb0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468((*forloopvar0).loc);
  	LOC1[1] = rdloc_540188_839829468(rangea0);
  	LOC1[2] = rdloc_540188_839829468(rangeb0);
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstr_299230_850551059((*call0).kindU.S6.sons->data[((NI) 3)]);
  	LOC1[3] = rope_180277_2381377266(LOC2);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_649), LOC1, 4);
  	memset((void*)LOC3, 0, sizeof(LOC3));
  	(*p0).breakidx = startblock_545978_839829468(p0, ((NimStringDesc*) &T839829468_273), LOC3, 0);
  	(*p0).blocks->data[(*p0).breakidx].isloop = NIM_TRUE;
  	genstmts_541244_839829468(p0, (*t0).kindU.S6.sons->data[((NI) 2)]);
  	endblock_546060_839829468(p0);
  	(*p0).breakidx = oldbreakidx_548411_839829468;
  	(*p0).withinloop -= ((NI) 1);
  }
  
  N_NIMCALL(void, genstate_546117_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	NI64 idx0;
  	TY180507 LOC9;
  	{
  		NIM_BOOL LOC3;
  		NI LOC4;
  		NimStringDesc* LOC8;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NI)0;
  		LOC4 = len_295081_850551059(n0);
  		LOC3 = (LOC4 == ((NI) 1));
  		if (!(LOC3)) goto LA5;
  		LOC3 = ((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 6));
  		LA5: ;
  		if (!!(LOC3)) goto LA6;
  		LOC8 = (NimStringDesc*)0;
  		LOC8 = HEX24_198185_1689653243(T839829468_650);
  		internalerror_198113_155036129(LOC8);
  	}
  	LA6: ;
  	idx0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S1.intval;
  	memset((void*)LOC9, 0, sizeof(LOC9));
  	LOC9[0] = rope_180401_2381377266(idx0);
  	linefmt_534714_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_652), LOC9, 1);
  }
  
  N_NIMCALL(void, gengotostate_546144_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Tloc294816 a0;
  	TY180507 LOC1;
  	TY535289 LOC2;
  	TY535289 LOC7;
  	memset((void*)(&a0), 0, sizeof(a0));
  	initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = rdloc_540188_839829468(a0);
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_603), LOC1, 1);
  	(*p0).beforeretneeded = NIM_TRUE;
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_653), LOC2, 0);
  	{
  		NI64 i_546214_839829468;
  		NI64 HEX3Atmp_546223_839829468;
  		NI64 res_546226_839829468;
  		i_546214_839829468 = (NI64)0;
  		HEX3Atmp_546223_839829468 = (NI64)0;
  		HEX3Atmp_546223_839829468 = lastord_322004_3876443242((*(*n0).kindU.S6.sons->data[((NI) 0)]).typ);
  		res_546226_839829468 = IL64(0);
  		{
  			while (1) {
  				TY180507 LOC6;
  				if (!(res_546226_839829468 <= HEX3Atmp_546223_839829468)) goto LA5;
  				i_546214_839829468 = res_546226_839829468;
  				memset((void*)LOC6, 0, sizeof(LOC6));
  				LOC6[0] = rope_180401_2381377266(i_546214_839829468);
  				linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_654), LOC6, 1);
  				res_546226_839829468 += ((NI) 1);
  			} LA5: ;
  		}
  	}
  	memset((void*)LOC7, 0, sizeof(LOC7));
  	linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_160), LOC7, 0);
  }
  
  N_NIMCALL(void, genbreakstate_546229_839829468)(Tcproc531021* p0, Tnode294802* n0) {
  	Tloc294816 a0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	{
  		TY180507 LOC5;
  		if (!((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 155))) goto LA3;
  		initlocexpr_541283_839829468(p0, (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S6.sons->data[((NI) 1)], (&a0));
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rdloc_540188_839829468(a0);
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_655), LOC5, 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY180507 LOC7;
  		initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = rdloc_540188_839829468(a0);
  		linef_534700_839829468(p0, ((Tcprocsection531011) 2), ((NimStringDesc*) &T839829468_656), LOC7, 1);
  	}
  	LA1: ;
  }
  
  N_NIMCALL(void, expr_541248_839829468)(Tcproc531021* p0, Tnode294802* n0, Tloc294816* d0) {
  	switch ((*n0).kind) {
  	case ((Tnodekind294020) 3):
  	{
  		Tsym294834* sym0;
  		sym0 = (*n0).kindU.S4.sym;
  		switch ((*sym0).kind) {
  		case ((Tsymkind294435) 13):
  		{
  			{
  				if (!!(((33554448 & (*sym0).flags) == 0))) goto LA5;
  				fillprocloc_541201_839829468(sym0);
  				genprocprototype_541254_839829468((*p0).module, sym0);
  			}
  			goto LA3;
  			LA5: ;
  			{
  				genproc_534951_839829468((*p0).module, sym0);
  			}
  			LA3: ;
  			putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  		}
  		break;
  		case ((Tsymkind294435) 12):
  		case ((Tsymkind294435) 15):
  		case ((Tsymkind294435) 14):
  		{
  			{
  				NimStringDesc* LOC13;
  				if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 23))&31U)))!=0)) goto LA11;
  				LOC13 = (NimStringDesc*)0;
  				LOC13 = rawNewString((*(*sym0).name).s->Sup.len + 48);
  appendString(LOC13, ((NimStringDesc*) &T839829468_270));
  appendString(LOC13, (*(*sym0).name).s);
  				localerror_198085_155036129((*n0).info, LOC13);
  			}
  			LA11: ;
  			genproc_534951_839829468((*p0).module, sym0);
  			{
  				NIM_BOOL LOC16;
  				NimStringDesc* LOC20;
  				LOC16 = (NIM_BOOL)0;
  				LOC16 = ((*sym0).loc.r == NIM_NIL);
  				if (LOC16) goto LA17;
  				LOC16 = ((*sym0).loc.t == NIM_NIL);
  				LA17: ;
  				if (!LOC16) goto LA18;
  				LOC20 = (NimStringDesc*)0;
  				LOC20 = rawNewString((*(*sym0).name).s->Sup.len + 20);
  appendString(LOC20, ((NimStringDesc*) &T839829468_271));
  appendString(LOC20, (*(*sym0).name).s);
  				internalerror_198100_155036129((*n0).info, LOC20);
  			}
  			LA18: ;
  			putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  		}
  		break;
  		case ((Tsymkind294435) 10):
  		{
  			{
  				NIM_BOOL LOC24;
  				Ropeobj180006* LOC27;
  				LOC24 = (NIM_BOOL)0;
  				LOC24 = issimpleconst_534311_839829468((*sym0).typ);
  				if (!LOC24) goto LA25;
  				LOC27 = (Ropeobj180006*)0;
  				LOC27 = genliteral_551476_839829468(p0, (*sym0).ast, (*sym0).typ);
  				putintodest_552468_839829468(p0, d0, (*n0).typ, LOC27, ((Tstorageloc294812) 1));
  			}
  			goto LA22;
  			LA25: ;
  			{
  				gencomplexconst_560249_839829468(p0, sym0, d0);
  			}
  			LA22: ;
  		}
  		break;
  		case ((Tsymkind294435) 19):
  		{
  			Ropeobj180006* LOC30;
  			LOC30 = (Ropeobj180006*)0;
  			LOC30 = rope_180401_2381377266(((NI64) ((*sym0).position)));
  			putintodest_552468_839829468(p0, d0, (*n0).typ, LOC30, ((Tstorageloc294812) 0));
  		}
  		break;
  		case ((Tsymkind294435) 8):
  		case ((Tsymkind294435) 20):
  		case ((Tsymkind294435) 11):
  		case ((Tsymkind294435) 9):
  		{
  			{
  				if (!!(((4194312 & (*sym0).flags) == 0))) goto LA34;
  				genvarprototype_541236_839829468((*p0).module, sym0);
  			}
  			LA34: ;
  			{
  				NIM_BOOL LOC38;
  				NimStringDesc* LOC42;
  				NimStringDesc* LOC43;
  				LOC38 = (NIM_BOOL)0;
  				LOC38 = ((*sym0).loc.r == NIM_NIL);
  				if (LOC38) goto LA39;
  				LOC38 = ((*sym0).loc.t == NIM_NIL);
  				LA39: ;
  				if (!LOC38) goto LA40;
  				LOC42 = (NimStringDesc*)0;
  				LOC43 = (NimStringDesc*)0;
  				LOC43 = nimIntToStr((*sym0).Sup.id);
  				LOC42 = rawNewString((*(*sym0).name).s->Sup.len + LOC43->Sup.len + 20);
  appendString(LOC42, ((NimStringDesc*) &T839829468_285));
  appendString(LOC42, (*(*sym0).name).s);
  appendString(LOC42, ((NimStringDesc*) &T839829468_12));
  appendString(LOC42, LOC43);
  				internalerror_198100_155036129((*n0).info, LOC42);
  			}
  			LA40: ;
  			{
  				if (!(((*sym0).flags &(1U<<((NU)(((Tsymflag294184) 22))&31U)))!=0)) goto LA46;
  				accessthreadlocalvar_534945_839829468(p0, sym0);
  				{
  					NIM_BOOL LOC50;
  					Ropeobj180006* LOC53;
  					LOC50 = (NIM_BOOL)0;
  					LOC50 = emulatedthreadvars_534949_839829468();
  					if (!LOC50) goto LA51;
  					LOC53 = (Ropeobj180006*)0;
  					LOC53 = HEX26_180452_2381377266(((NimStringDesc*) &T839829468_288), (*sym0).loc.r);
  					putintodest_552468_839829468(p0, d0, (*sym0).loc.t, LOC53, ((Tstorageloc294812) 0));
  				}
  				goto LA48;
  				LA51: ;
  				{
  					putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  				}
  				LA48: ;
  			}
  			goto LA44;
  			LA46: ;
  			{
  				putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  			}
  			LA44: ;
  		}
  		break;
  		case ((Tsymkind294435) 5):
  		{
  			{
  				NIM_BOOL LOC59;
  				NimStringDesc* LOC63;
  				NimStringDesc* LOC64;
  				LOC59 = (NIM_BOOL)0;
  				LOC59 = ((*sym0).loc.r == NIM_NIL);
  				if (LOC59) goto LA60;
  				LOC59 = ((*sym0).loc.t == NIM_NIL);
  				LA60: ;
  				if (!LOC59) goto LA61;
  				LOC63 = (NimStringDesc*)0;
  				LOC64 = (NimStringDesc*)0;
  				LOC64 = nimIntToStr((*sym0).Sup.id);
  				LOC63 = rawNewString((*(*sym0).name).s->Sup.len + LOC64->Sup.len + 21);
  appendString(LOC63, ((NimStringDesc*) &T839829468_289));
  appendString(LOC63, (*(*sym0).name).s);
  appendString(LOC63, ((NimStringDesc*) &T839829468_12));
  appendString(LOC63, LOC64);
  				internalerror_198100_155036129((*n0).info, LOC63);
  			}
  			LA61: ;
  			putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  		}
  		break;
  		case ((Tsymkind294435) 3):
  		{
  			{
  				NIM_BOOL LOC68;
  				NimStringDesc* LOC72;
  				NimStringDesc* LOC73;
  				LOC68 = (NIM_BOOL)0;
  				LOC68 = ((*sym0).loc.r == NIM_NIL);
  				if (LOC68) goto LA69;
  				LOC68 = ((*sym0).loc.t == NIM_NIL);
  				LA69: ;
  				if (!LOC68) goto LA70;
  				LOC72 = (NimStringDesc*)0;
  				LOC73 = (NimStringDesc*)0;
  				LOC73 = nimIntToStr((*sym0).Sup.id);
  				LOC72 = rawNewString((*(*sym0).name).s->Sup.len + LOC73->Sup.len + 22);
  appendString(LOC72, ((NimStringDesc*) &T839829468_290));
  appendString(LOC72, (*(*sym0).name).s);
  appendString(LOC72, ((NimStringDesc*) &T839829468_12));
  appendString(LOC72, LOC73);
  				internalerror_198100_155036129((*n0).info, LOC72);
  			}
  			LA70: ;
  			putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  		}
  		break;
  		default:
  		{
  			NimStringDesc* LOC75;
  			LOC75 = (NimStringDesc*)0;
  			LOC75 = rawNewString(reprEnum((NI)(*sym0).kind, (&NTI294435))->Sup.len + 22);
  appendString(LOC75, ((NimStringDesc*) &T839829468_291));
  appendString(LOC75, reprEnum((NI)(*sym0).kind, (&NTI294435)));
  appendString(LOC75, ((NimStringDesc*) &T839829468_292));
  			internalerror_198100_155036129((*n0).info, LOC75);
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tnodekind294020) 23):
  	{
  		{
  			NIM_BOOL LOC79;
  			Ropeobj180006* LOC82;
  			LOC79 = (NIM_BOOL)0;
  			LOC79 = isemptytype_299440_850551059((*n0).typ);
  			if (!!(LOC79)) goto LA80;
  			LOC82 = (Ropeobj180006*)0;
  			LOC82 = genliteral_541273_839829468(p0, n0);
  			putintodest_552468_839829468(p0, d0, (*n0).typ, LOC82, ((Tstorageloc294812) 0));
  		}
  		LA80: ;
  	}
  	break;
  	case ((Tnodekind294020) 20) ... ((Tnodekind294020) 22):
  	{
  		Ropeobj180006* LOC84;
  		LOC84 = (Ropeobj180006*)0;
  		LOC84 = genliteral_541273_839829468(p0, n0);
  		putdataintodest_552436_839829468(p0, d0, (*n0).typ, LOC84);
  	}
  	break;
  	case ((Tnodekind294020) 6) ... ((Tnodekind294020) 15):
  	case ((Tnodekind294020) 16) ... ((Tnodekind294020) 19):
  	case ((Tnodekind294020) 5):
  	{
  		Ropeobj180006* LOC86;
  		LOC86 = (Ropeobj180006*)0;
  		LOC86 = genliteral_541273_839829468(p0, n0);
  		putintodest_552468_839829468(p0, d0, (*n0).typ, LOC86, ((Tstorageloc294812) 0));
  	}
  	break;
  	case ((Tnodekind294020) 27):
  	case ((Tnodekind294020) 32):
  	case ((Tnodekind294020) 29):
  	case ((Tnodekind294020) 30):
  	case ((Tnodekind294020) 31):
  	case ((Tnodekind294020) 26):
  	case ((Tnodekind294020) 28):
  	{
  		Tnode294802* op0;
  		genlinedir_534823_839829468(p0, n0);
  		op0 = (*n0).kindU.S6.sons->data[((NI) 0)];
  		{
  			Tloc294816 a0;
  			if (!(*n0).typ == 0) goto LA90;
  			memset((void*)(&a0), 0, sizeof(a0));
  			{
  				NIM_BOOL LOC94;
  				LOC94 = (NIM_BOOL)0;
  				LOC94 = ((*op0).kind == ((Tnodekind294020) 3));
  				if (!(LOC94)) goto LA95;
  				LOC94 = !(((*(*op0).kindU.S4.sym).magic == ((Tmagic294524) 0)));
  				LA95: ;
  				if (!LOC94) goto LA96;
  				genmagicexpr_559033_839829468(p0, n0, (&a0), (*(*op0).kindU.S4.sym).magic);
  			}
  			goto LA92;
  			LA96: ;
  			{
  				gencall_545632_839829468(p0, n0, (&a0));
  			}
  			LA92: ;
  		}
  		goto LA88;
  		LA90: ;
  		{
  			{
  				NIM_BOOL LOC102;
  				LOC102 = (NIM_BOOL)0;
  				LOC102 = ((*op0).kind == ((Tnodekind294020) 3));
  				if (!(LOC102)) goto LA103;
  				LOC102 = !(((*(*op0).kindU.S4.sym).magic == ((Tmagic294524) 0)));
  				LA103: ;
  				if (!LOC102) goto LA104;
  				genmagicexpr_559033_839829468(p0, n0, d0, (*(*op0).kindU.S4.sym).magic);
  			}
  			goto LA100;
  			LA104: ;
  			{
  				gencall_545632_839829468(p0, n0, d0);
  			}
  			LA100: ;
  		}
  		LA88: ;
  	}
  	break;
  	case ((Tnodekind294020) 39):
  	{
  		{
  			NIM_BOOL LOC110;
  			NI LOC112;
  			Ropeobj180006* LOC115;
  			LOC110 = (NIM_BOOL)0;
  			LOC110 = isdeepconstexpr_320566_2616423590(n0);
  			if (!(LOC110)) goto LA111;
  			LOC112 = (NI)0;
  			LOC112 = len_295081_850551059(n0);
  			LOC110 = !((LOC112 == ((NI) 0)));
  			LA111: ;
  			if (!LOC110) goto LA113;
  			LOC115 = (Ropeobj180006*)0;
  			LOC115 = gensetnode_551664_839829468(p0, n0);
  			putintodest_552468_839829468(p0, d0, (*n0).typ, LOC115, ((Tstorageloc294812) 0));
  		}
  		goto LA108;
  		LA113: ;
  		{
  			gensetconstr_559496_839829468(p0, n0, d0);
  		}
  		LA108: ;
  	}
  	break;
  	case ((Tnodekind294020) 41):
  	{
  		{
  			NIM_BOOL LOC120;
  			NI LOC122;
  			LOC120 = (NIM_BOOL)0;
  			LOC120 = isdeepconstexpr_320566_2616423590(n0);
  			if (!(LOC120)) goto LA121;
  			LOC122 = (NI)0;
  			LOC122 = len_295081_850551059(n0);
  			LOC120 = !((LOC122 == ((NI) 0)));
  			LA121: ;
  			if (!LOC120) goto LA123;
  			exprcomplexconst_560684_839829468(p0, n0, d0);
  		}
  		goto LA118;
  		LA123: ;
  		{
  			Ttype294840* LOC126;
  			LOC126 = (Ttype294840*)0;
  			LOC126 = skiptypes_298099_850551059((*n0).typ, IL64(211106242013440));
  			if (!((*LOC126).kind == ((Ttypekind294244) 24))) goto LA127;
  			genseqconstr_557004_839829468(p0, n0, d0);
  		}
  		goto LA118;
  		LA127: ;
  		{
  			genarrayconstr_560207_839829468(p0, n0, d0);
  		}
  		LA118: ;
  	}
  	break;
  	case ((Tnodekind294020) 37):
  	{
  		{
  			NIM_BOOL LOC133;
  			NI LOC135;
  			LOC133 = (NIM_BOOL)0;
  			LOC133 = isdeepconstexpr_320566_2616423590(n0);
  			if (!(LOC133)) goto LA134;
  			LOC135 = (NI)0;
  			LOC135 = len_295081_850551059(n0);
  			LOC133 = !((LOC135 == ((NI) 0)));
  			LA134: ;
  			if (!LOC133) goto LA136;
  			exprcomplexconst_560684_839829468(p0, n0, d0);
  		}
  		goto LA131;
  		LA136: ;
  		{
  			gentupleconstr_559618_839829468(p0, n0, d0);
  		}
  		LA131: ;
  	}
  	break;
  	case ((Tnodekind294020) 38):
  	{
  		genobjconstr_556903_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 61):
  	{
  		gencast_558537_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 58):
  	case ((Tnodekind294020) 59):
  	case ((Tnodekind294020) 60):
  	{
  		genconv_558632_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 64):
  	case ((Tnodekind294020) 63):
  	{
  		genaddr_555051_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 42):
  	{
  		genbracketexpr_556277_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 47):
  	case ((Tnodekind294020) 65):
  	{
  		genderef_545921_839829468(p0, n0, d0, NIM_FALSE);
  	}
  	break;
  	case ((Tnodekind294020) 45):
  	{
  		genrecordfield_555448_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 46):
  	{
  		gencheckedrecordfield_556046_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 127):
  	case ((Tnodekind294020) 112):
  	{
  		genblock_548083_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 126):
  	{
  		genstmtlistexpr_560402_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 115):
  	{
  		{
  			NI i_561023_839829468;
  			NI HEX3Atmp_561276_839829468;
  			NI LOC151;
  			NI res_561279_839829468;
  			i_561023_839829468 = (NI)0;
  			HEX3Atmp_561276_839829468 = (NI)0;
  			LOC151 = (NI)0;
  			LOC151 = sonslen_297351_850551059(n0);
  			HEX3Atmp_561276_839829468 = (NI)(LOC151 - ((NI) 1));
  			res_561279_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_561279_839829468 <= HEX3Atmp_561276_839829468)) goto LA153;
  					i_561023_839829468 = res_561279_839829468;
  					genstmts_541244_839829468(p0, (*n0).kindU.S6.sons->data[i_561023_839829468]);
  					res_561279_839829468 += ((NI) 1);
  				} LA153: ;
  			}
  		}
  	}
  	break;
  	case ((Tnodekind294020) 48):
  	case ((Tnodekind294020) 92):
  	{
  		genif_546982_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 93):
  	{
  		expr_541248_839829468(p0, (*(*n0).kindU.S6.sons->data[((NI) 1)]).kindU.S6.sons->data[((NI) 0)], d0);
  	}
  	break;
  	case ((Tnodekind294020) 66):
  	{
  		downconv_560581_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 67):
  	{
  		upconv_560431_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 68):
  	{
  		genrangechck_558590_839829468(p0, n0, d0, ((NimStringDesc*) &T839829468_563));
  	}
  	break;
  	case ((Tnodekind294020) 69):
  	{
  		genrangechck_558590_839829468(p0, n0, d0, ((NimStringDesc*) &T839829468_564));
  	}
  	break;
  	case ((Tnodekind294020) 70):
  	{
  		genrangechck_558590_839829468(p0, n0, d0, ((NimStringDesc*) &T839829468_565));
  	}
  	break;
  	case ((Tnodekind294020) 71):
  	{
  		convstrtocstr_558642_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 72):
  	{
  		convcstrtostr_558654_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 51):
  	case ((Tnodekind294020) 52):
  	{
  		Tsym294834* sym0;
  		sym0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		genproc_534951_839829468((*p0).module, sym0);
  		{
  			NIM_BOOL LOC166;
  			NimStringDesc* LOC170;
  			LOC166 = (NIM_BOOL)0;
  			LOC166 = ((*sym0).loc.r == NIM_NIL);
  			if (LOC166) goto LA167;
  			LOC166 = ((*sym0).loc.t == NIM_NIL);
  			LA167: ;
  			if (!LOC166) goto LA168;
  			LOC170 = (NimStringDesc*)0;
  			LOC170 = rawNewString((*(*sym0).name).s->Sup.len + 20);
  appendString(LOC170, ((NimStringDesc*) &T839829468_271));
  appendString(LOC170, (*(*sym0).name).s);
  			internalerror_198100_155036129((*n0).info, LOC170);
  		}
  		LA168: ;
  		putlocintodest_541258_839829468(p0, d0, (*sym0).loc);
  	}
  	break;
  	case ((Tnodekind294020) 155):
  	{
  		genclosure_559836_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 1):
  	{
  	}
  	break;
  	case ((Tnodekind294020) 96):
  	{
  		genwhilestmt_547984_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 99):
  	case ((Tnodekind294020) 100):
  	{
  		genvarstmt_546854_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 101):
  	{
  		genconststmt_546909_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 94):
  	{
  		internalerror_198100_155036129((*n0).info, ((NimStringDesc*) &T839829468_594));
  	}
  	break;
  	case ((Tnodekind294020) 97):
  	{
  		gencase_549826_839829468(p0, n0, d0);
  	}
  	break;
  	case ((Tnodekind294020) 109):
  	{
  		genreturnstmt_547617_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 110):
  	{
  		genbreakstmt_548444_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 73):
  	{
  		{
  			if (!!((((*n0).flags &(1U<<((NU)(((Tnodeflag294427) 14))&15U)))!=0))) goto LA183;
  			genasgn_551239_839829468(p0, n0, NIM_FALSE);
  		}
  		LA183: ;
  	}
  	break;
  	case ((Tnodekind294020) 74):
  	{
  		{
  			if (!!((((*n0).flags &(1U<<((NU)(((Tnodeflag294427) 14))&15U)))!=0))) goto LA188;
  			genasgn_551239_839829468(p0, n0, !(((*p0).prc == NIM_NIL)));
  		}
  		LA188: ;
  	}
  	break;
  	case ((Tnodekind294020) 114):
  	{
  		{
  			Tloc294816 a0;
  			if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind294020) 1)))) goto LA193;
  			genlinedir_534823_839829468(p0, n0);
  			memset((void*)(&a0), 0, sizeof(a0));
  			initlocexpr_541283_839829468(p0, (*n0).kindU.S6.sons->data[((NI) 0)], (&a0));
  		}
  		LA193: ;
  	}
  	break;
  	case ((Tnodekind294020) 89):
  	{
  		genasmstmt_550659_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 106):
  	{
  		{
  			NIM_BOOL LOC199;
  			NIM_BOOL LOC200;
  			LOC199 = (NIM_BOOL)0;
  			LOC200 = (NIM_BOOL)0;
  			LOC200 = (gcmd_171132_2607990831 == ((Tcommands171076) 2));
  			if (LOC200) goto LA201;
  			LOC200 = (((*(*(*p0).module).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA201: ;
  			LOC199 = LOC200;
  			if (!(LOC199)) goto LA202;
  			LOC199 = !(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 31))&63U)))!=0));
  			LA202: ;
  			if (!LOC199) goto LA203;
  			gentrycpp_549865_839829468(p0, n0, d0);
  		}
  		goto LA197;
  		LA203: ;
  		{
  			gentry_550114_839829468(p0, n0, d0);
  		}
  		LA197: ;
  	}
  	break;
  	case ((Tnodekind294020) 108):
  	{
  		genraisestmt_548828_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 98):
  	{
  		gentypesection_540184_839829468((*p0).module, n0);
  	}
  	break;
  	case ((Tnodekind294020) 125):
  	case ((Tnodekind294020) 84):
  	case ((Tnodekind294020) 121):
  	case ((Tnodekind294020) 116):
  	case ((Tnodekind294020) 117):
  	case ((Tnodekind294020) 118):
  	case ((Tnodekind294020) 119):
  	case ((Tnodekind294020) 120):
  	case ((Tnodekind294020) 83):
  	case ((Tnodekind294020) 82):
  	{
  	}
  	break;
  	case ((Tnodekind294020) 90):
  	{
  		genpragma_551039_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 91):
  	{
  		Tnode294802* LOC211;
  		LOC211 = (Tnode294802*)0;
  		LOC211 = lastson_297364_850551059(n0);
  		expr_541248_839829468(p0, LOC211, d0);
  	}
  	break;
  	case ((Tnodekind294020) 79):
  	case ((Tnodekind294020) 80):
  	case ((Tnodekind294020) 81):
  	{
  		{
  			Tsym294834* prc0;
  			if (!((*(*n0).kindU.S6.sons->data[((NI) 2)]).kind == ((Tnodekind294020) 1))) goto LA215;
  			prc0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  			{
  				NIM_BOOL LOC219;
  				Tsym294834* LOC220;
  				LOC219 = (NIM_BOOL)0;
  				LOC220 = (Tsym294834*)0;
  				LOC220 = skipgenericowner_299279_850551059(prc0);
  				LOC219 = ((*LOC220).kind == ((Tsymkind294435) 6));
  				if (!(LOC219)) goto LA221;
  				LOC219 = !((((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 23))&31U)))!=0));
  				LA221: ;
  				if (!LOC219) goto LA222;
  				{
  					NIM_BOOL LOC226;
  					NIM_BOOL LOC227;
  					NIM_BOOL LOC228;
  					NIM_BOOL LOC229;
  					Tsym294834* LOC231;
  					NIM_BOOL LOC234;
  					LOC226 = (NIM_BOOL)0;
  					LOC227 = (NIM_BOOL)0;
  					LOC228 = (NIM_BOOL)0;
  					LOC229 = (NIM_BOOL)0;
  					LOC229 = !(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 2))&63U)))!=0));
  					if (!(LOC229)) goto LA230;
  					LOC231 = (Tsym294834*)0;
  					LOC231 = getmodule_301123_2984716966(prc0);
  					LOC229 = !((((*LOC231).flags &(1U<<((NU)(((Tsymflag294184) 25))&31U)))!=0));
  					LA230: ;
  					LOC228 = LOC229;
  					if (LOC228) goto LA232;
  					LOC228 = ((65600 & (*prc0).flags) == 64);
  					LA232: ;
  					LOC227 = LOC228;
  					if (LOC227) goto LA233;
  					LOC234 = (NIM_BOOL)0;
  					LOC234 = (((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 6))&31U)))!=0);
  					if (!(LOC234)) goto LA235;
  					LOC234 = (((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 5))&15U)))!=0);
  					LA235: ;
  					LOC227 = LOC234;
  					LA233: ;
  					LOC226 = LOC227;
  					if (LOC226) goto LA236;
  					LOC226 = ((*prc0).kind == ((Tsymkind294435) 13));
  					LA236: ;
  					if (!LOC226) goto LA237;
  					{
  						NIM_BOOL LOC241;
  						Tnode294802* LOC242;
  						LOC241 = (NIM_BOOL)0;
  						LOC242 = (Tnode294802*)0;
  						LOC242 = getbody_337227_1724185294(prc0);
  						LOC241 = !(((*LOC242).kind == ((Tnodekind294020) 1)));
  						if (LOC241) goto LA243;
  						LOC241 = (((*prc0).loc.flags &(1U<<((NU)(((Tlocflag294810) 4))&15U)))!=0);
  						LA243: ;
  						if (!LOC241) goto LA244;
  						genproc_534951_839829468((*p0).module, prc0);
  					}
  					LA244: ;
  				}
  				LA237: ;
  			}
  			LA222: ;
  		}
  		LA215: ;
  	}
  	break;
  	case ((Tnodekind294020) 95):
  	{
  		genparforstmt_548208_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 157):
  	{
  		genstate_546117_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 156):
  	{
  		gengotostate_546144_839829468(p0, n0);
  	}
  	break;
  	case ((Tnodekind294020) 158):
  	{
  		genbreakstate_546229_839829468(p0, n0);
  	}
  	break;
  	default:
  	{
  		NimStringDesc* LOC251;
  		LOC251 = (NimStringDesc*)0;
  		LOC251 = rawNewString(reprEnum((NI)(*n0).kind, (&NTI294020))->Sup.len + 25);
  appendString(LOC251, ((NimStringDesc*) &T839829468_291));
  appendString(LOC251, reprEnum((NI)(*n0).kind, (&NTI294020)));
  appendString(LOC251, ((NimStringDesc*) &T839829468_657));
  		internalerror_198100_155036129((*n0).info, LOC251);
  	}
  	break;
  	}
  }
  
  N_NIMCALL(void, genstmts_541244_839829468)(Tcproc531021* p0, Tnode294802* t0) {
  	Tloc294816 a0;
  	memset((void*)(&a0), 0, sizeof(a0));
  	expr_541248_839829468(p0, t0, (&a0));
  	{
  		NimStringDesc* LOC5;
  		if (!!(((7 &(1U<<((NU)(a0.k)&15U)))!=0))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = HEX24_198185_1689653243(T839829468_658);
  		internalerror_198113_155036129(LOC5);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(Tnode294802*, myprocess_565402_839829468)(Tpasscontext343002* b0, Tnode294802* n0) {
  	Tnode294802* result0;
  	Tcgen531027* m0;
  {	result0 = (Tnode294802*)0;
  	result0 = n0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (b0 == NIM_NIL);
  		if (LOC3) goto LA4;
  		LOC3 = skipcodegen_343085_2355241294(n0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		goto BeforeRet;
  	}
  	LA5: ;
  	m0 = ((Tcgen531027*) (b0));
  	(*(*m0).initproc).options = initprocoptions_564635_839829468(m0);
  	genstmts_541244_839829468((*m0).initproc, n0);
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getsomeinitname_563904_839829468)(Tsym294834* m0, NimStringDesc* suffix0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		NimStringDesc* LOC5;
  		if (!((12288 & (*m0).flags) == 0)) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = mangle_530847_2036603609((*(*(*m0).owner).name).s);
  		result0 = rope_180277_2381377266(LOC5);
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_12));
  	}
  	LA3: ;
  	add_180487_2381377266(&result0, (*(*m0).name).s);
  	add_180487_2381377266(&result0, suffix0);
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getinitname_564235_839829468)(Tsym294834* m0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = getsomeinitname_563904_839829468(m0, ((NimStringDesc*) &T839829468_659));
  	return result0;
  }
  
  N_NIMCALL(Ropeobj180006*, getdatinitname_564239_839829468)(Tsym294834* m0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = getsomeinitname_563904_839829468(m0, ((NimStringDesc*) &T839829468_660));
  	return result0;
  }
  
  N_NIMCALL(void, registermoduletomain_564243_839829468)(Tsym294834* m0) {
  	Ropeobj180006* init0;
  	Ropeobj180006* datinit0;
  	TY180507 LOC1;
  	TY180507 LOC2;
  	init0 = getinitname_564235_839829468(m0);
  	datinit0 = getdatinitname_564239_839829468(m0);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = init0;
  	addf_181205_2381377266(&mainmodprocs_531148_3723162438, ((NimStringDesc*) &T839829468_661), LOC1, 1);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = datinit0;
  	addf_181205_2381377266(&mainmodprocs_531148_3723162438, ((NimStringDesc*) &T839829468_661), LOC2, 1);
  	{
  		TY180507 LOC7;
  		Ropeobj180006* initcall0;
  		TY180507 LOC8;
  		if (!!((((*m0).flags &(1U<<((NU)(((Tsymflag294184) 13))&31U)))!=0))) goto LA5;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = datinit0;
  		addf_181205_2381377266(&maindatinit_531151_3723162438, ((NimStringDesc*) &T839829468_662), LOC7, 1);
  		memset((void*)LOC8, 0, sizeof(LOC8));
  		LOC8[0] = init0;
  		initcall0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_662), LOC8, 1);
  		{
  			if (!(((*m0).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0)) goto LA11;
  			add_180482_2381377266(&mainmodinit_531149_3723162438, initcall0);
  		}
  		goto LA9;
  		LA11: ;
  		{
  			add_180482_2381377266(&othermodsinit_531150_3723162438, initcall0);
  		}
  		LA9: ;
  	}
  	LA5: ;
  }
  
  N_NIMCALL(Ropeobj180006*, genfilenames_563688_839829468)(Tcgen531027* m0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_673));
  	result0 = NIM_NIL;
  	{
  		NI i_563717_839829468;
  		NI HEX3Atmp_563722_839829468;
  		NI res_563725_839829468;
  		i_563717_839829468 = (NI)0;
  		HEX3Atmp_563722_839829468 = (NI)0;
  		HEX3Atmp_563722_839829468 = ((fileinfos_193629_155036129 ? fileinfos_193629_155036129->Sup.len : 0) - 1);
  		res_563725_839829468 = ((NI) 0);
  		{
  			while (1) {
  				TY180507 LOC5;
  				if (!(res_563725_839829468 <= HEX3Atmp_563722_839829468)) goto LA4;
  				i_563717_839829468 = res_563725_839829468;
  				memset((void*)LOC5, 0, sizeof(LOC5));
  				LOC5[0] = makecstring_193638_155036129(fileinfos_193629_155036129->data[i_563717_839829468].projpath);
  				addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_674), LOC5, 1);
  				res_563725_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	return result0;
  }
  
  N_NIMCALL(void, genmainproc_563729_839829468)(Tcgen531027* m0) {
  	NimStringDesc* nimmain0;
  	NimStringDesc* othermain0;
  	Ropeobj180006* initstackbottomcall0;
  	TY538475 LOC38;
  	TY537238 LOC47;
  	nimmain0 = (NimStringDesc*)0;
  	othermain0 = (NimStringDesc*)0;
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC12;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (targetos_178629_4151366050 == ((Tsystemos178004) 2));
  		if (!(LOC3)) goto LA4;
  		LOC3 = !(((gglobaloptions_171130_2607990831 & 1280) == 0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		{
  			if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 10))&63U)))!=0)) goto LA9;
  			nimmain0 = copyString(((NimStringDesc*) &T839829468_663));
  			othermain0 = copyString(((NimStringDesc*) &T839829468_664));
  		}
  		goto LA7;
  		LA9: ;
  		{
  			nimmain0 = copyString(((NimStringDesc*) &T839829468_665));
  			othermain0 = copyString(((NimStringDesc*) &T839829468_666));
  		}
  		LA7: ;
  		LOC12 = (NIM_BOOL)0;
  		LOC12 = includestr_148249_3771138726((&(*m0).headerfiles), ((NimStringDesc*) &T839829468_667));
  	}
  	goto LA1;
  	LA5: ;
  	{
  		if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 8))&63U)))!=0)) goto LA14;
  		nimmain0 = copyString(((NimStringDesc*) &T839829468_665));
  		othermain0 = copyString(((NimStringDesc*) &T839829468_668));
  	}
  	goto LA1;
  	LA14: ;
  	{
  		if (!(targetos_178629_4151366050 == ((Tsystemos178004) 24))) goto LA17;
  		nimmain0 = copyString(((NimStringDesc*) &T839829468_669));
  		othermain0 = copyString(((NimStringDesc*) &T839829468_670));
  	}
  	goto LA1;
  	LA17: ;
  	{
  		nimmain0 = copyString(((NimStringDesc*) &T839829468_669));
  		othermain0 = copyString(((NimStringDesc*) &T839829468_671));
  	}
  	LA1: ;
  	{
  		Ropeobj180006* LOC24;
  		if (!!((gbreakpoints_550861_839829468 == NIM_NIL))) goto LA22;
  		LOC24 = (Ropeobj180006*)0;
  		LOC24 = cgsym_534403_839829468(m0, ((NimStringDesc*) &T839829468_672));
  	}
  	LA22: ;
  	{
  		Ropeobj180006* LOC29;
  		if (!((goptions_171128_2607990831 &(1U<<((NU)(((Toption171009) 17))&31U)))!=0)) goto LA27;
  		LOC29 = (Ropeobj180006*)0;
  		LOC29 = genfilenames_563688_839829468(m0);
  		add_180482_2381377266(&gbreakpoints_550861_839829468, LOC29);
  	}
  	LA27: ;
  	{
  		NIM_BOOL LOC32;
  		LOC32 = (NIM_BOOL)0;
  		LOC32 = (targetos_178629_4151366050 == ((Tsystemos178004) 24));
  		if (LOC32) goto LA33;
  		LOC32 = (gselectedgc_171133_2607990831 == ((Tgcmode171080) 0));
  		LA33: ;
  		if (!LOC32) goto LA34;
  		initstackbottomcall0 = rope_180277_2381377266(((NimStringDesc*) &T839829468_490));
  	}
  	goto LA30;
  	LA34: ;
  	{
  		TY535289 LOC37;
  		memset((void*)LOC37, 0, sizeof(LOC37));
  		initstackbottomcall0 = ropecg_534407_839829468(m0, ((NimStringDesc*) &T839829468_675), LOC37, 0);
  	}
  	LA30: ;
  	(*m0).labels += ((NI) 1);
  	memset((void*)LOC38, 0, sizeof(LOC38));
  	LOC38[0] = maindatinit_531151_3723162438;
  	LOC38[1] = gbreakpoints_550861_839829468;
  	LOC38[2] = othermodsinit_531150_3723162438;
  	{
  		NIM_BOOL LOC41;
  		TY535289 LOC45;
  		LOC41 = (NIM_BOOL)0;
  		LOC41 = emulatedthreadvars_534949_839829468();
  		if (!(LOC41)) goto LA42;
  		LOC41 = !((targetos_178629_4151366050 == ((Tsystemos178004) 24)));
  		LA42: ;
  		if (!LOC41) goto LA43;
  		memset((void*)LOC45, 0, sizeof(LOC45));
  		LOC38[3] = ropecg_534407_839829468(m0, ((NimStringDesc*) &T839829468_677), LOC45, 0);
  	}
  	goto LA39;
  	LA43: ;
  	{
  		LOC38[3] = rope_180277_2381377266(((NimStringDesc*) &T839829468_490));
  	}
  	LA39: ;
  	LOC38[4] = initstackbottomcall0;
  	appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 10))- 0], ((NimStringDesc*) &T839829468_676), LOC38, 5);
  	memset((void*)LOC47, 0, sizeof(LOC47));
  	LOC47[0] = mainmodinit_531149_3723162438;
  	LOC47[1] = initstackbottomcall0;
  	LOC47[2] = rope_180401_2381377266(((NI64) ((*m0).labels)));
  	appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 10))- 0], nimmain0, LOC47, 3);
  	{
  		TY535289 LOC52;
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 20))&63U)))!=0))) goto LA50;
  		memset((void*)LOC52, 0, sizeof(LOC52));
  		appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 10))- 0], othermain0, LOC52, 0);
  	}
  	LA50: ;
  }
  
  N_NIMCALL(Tnode294802*, myclose_565830_839829468)(Tpasscontext343002* b0, Tnode294802* n0) {
  	Tnode294802* result0;
  	Tcgen531027* m0;
  {	result0 = (Tnode294802*)0;
  	result0 = n0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (b0 == NIM_NIL);
  		if (LOC3) goto LA4;
  		LOC3 = skipcodegen_343085_2355241294(n0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		goto BeforeRet;
  	}
  	LA5: ;
  	m0 = ((Tcgen531027*) (b0));
  	{
  		if (!!((n0 == NIM_NIL))) goto LA9;
  		(*(*m0).initproc).options = initprocoptions_564635_839829468(m0);
  		genstmts_541244_839829468((*m0).initproc, n0);
  	}
  	LA9: ;
  	registermoduletomain_564243_839829468((*m0).module);
  	{
  		Tnode294802* disp0;
  		if (!(((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0)) goto LA13;
  		(*m0).flags |= ((NU8)1)<<((((Codegenflag531025) 5))%(sizeof(NU8)*8));
  		disp0 = generatemethoddispatchers_434151_3853300031();
  		{
  			NI i_565891_839829468;
  			NI HEX3Atmp_565895_839829468;
  			NI LOC16;
  			NI res_565898_839829468;
  			i_565891_839829468 = (NI)0;
  			HEX3Atmp_565895_839829468 = (NI)0;
  			LOC16 = (NI)0;
  			LOC16 = sonslen_297351_850551059(disp0);
  			HEX3Atmp_565895_839829468 = (NI)(LOC16 - ((NI) 1));
  			res_565898_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_565898_839829468 <= HEX3Atmp_565895_839829468)) goto LA18;
  					i_565891_839829468 = res_565898_839829468;
  					genprocaux_562284_839829468(m0, (*(*disp0).kindU.S6.sons->data[i_565891_839829468]).kindU.S4.sym);
  					res_565898_839829468 += ((NI) 1);
  				} LA18: ;
  			}
  		}
  		genmainproc_563729_839829468(m0);
  	}
  	LA13: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(void, finishmodule_565420_839829468)(Tcgen531027* m0) {
  	NI i0;
  	i0 = ((NI) 0);
  	{
  		while (1) {
  			Tsym294834* prc0;
  			if (!(i0 <= ((*m0).forwardedprocs ? ((*m0).forwardedprocs->Sup.len-1) : -1))) goto LA2;
  			prc0 = (*m0).forwardedprocs->data[i0];
  			{
  				NimStringDesc* LOC7;
  				if (!(((*prc0).flags &(1U<<((NU)(((Tsymflag294184) 4))&31U)))!=0)) goto LA5;
  				LOC7 = (NimStringDesc*)0;
  				LOC7 = rawNewString((*(*prc0).name).s->Sup.len + 17);
  appendString(LOC7, ((NimStringDesc*) &T839829468_678));
  appendString(LOC7, (*(*prc0).name).s);
  				internalerror_198100_155036129((*prc0).info, LOC7);
  			}
  			LA5: ;
  			genprocnoforward_562906_839829468(m0, prc0);
  			i0 += ((NI) 1);
  		} LA2: ;
  	}
  	gforwardedprocscounter_531171_3723162438 -= i0;
  	(*m0).forwardedprocs = (Tsymseq294804*) setLengthSeq(&((*m0).forwardedprocs)->Sup, sizeof(Tsym294834*), ((NI) 0));
  }
  
  N_NIMCALL(void, geninitcode_564286_839829468)(Tcgen531027* m0) {
  	Ropeobj180006* initname0;
  	Ropeobj180006* prc0;
  	TY180507 LOC1;
  	Ropeobj180006* LOC12;
  	Ropeobj180006* LOC13;
  	Ropeobj180006** LOC14;
  	Ropeobj180006** LOC15;
  	Ropeobj180006** LOC16;
  	Ropeobj180006* LOC17;
  	Ropeobj180006* LOC33;
  	Ropeobj180006** LOC34;
  	Ropeobj180006** LOC35;
  	Ropeobj180006** LOC36;
  	Ropeobj180006* LOC37;
  	Ropeobj180006* LOC38;
  	Ropeobj180006** LOC39;
  	Ropeobj180006** LOC40;
  	Ropeobj180006** LOC41;
  	Ropeobj180006* LOC42;
  	Ropeobj180006* LOC50;
  	TY535289 LOC51;
  	TY180507 LOC52;
  	TY535289 LOC58;
  	initname0 = getinitname_564235_839829468((*m0).module);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	LOC1[0] = initname0;
  	prc0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_679), LOC1, 1);
  	{
  		TY534811 LOC6;
  		if (!(((NI) 0) < (*m0).typenodes)) goto LA4;
  		memset((void*)LOC6, 0, sizeof(LOC6));
  		LOC6[0] = (*m0).typenodesname;
  		LOC6[1] = rope_180401_2381377266(((NI64) ((*m0).typenodes)));
  		appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_680), LOC6, 2);
  	}
  	LA4: ;
  	{
  		TY534811 LOC11;
  		if (!(((NI) 0) < (*m0).nimtypes)) goto LA9;
  		memset((void*)LOC11, 0, sizeof(LOC11));
  		LOC11[0] = (*m0).nimtypesname;
  		LOC11[1] = rope_180401_2381377266(((NI64) ((*m0).nimtypes)));
  		appcg_534632_839829468(m0, &(*m0).s[(((Tcfilesection531005) 12))- 0], ((NimStringDesc*) &T839829468_681), LOC11, 2);
  	}
  	LA9: ;
  	LOC12 = (Ropeobj180006*)0;
  	LOC12 = initgcframe_540435_839829468((*m0).initproc);
  	add_180482_2381377266(&prc0, LOC12);
  	LOC13 = (Ropeobj180006*)0;
  	LOC13 = gensectionstart_532081_2760143328(((Tcprocsection531011) 0));
  	add_180482_2381377266(&prc0, LOC13);
  	LOC14 = (Ropeobj180006**)0;
  	LOC14 = s_531179_3723162438((*m0).preinitproc, ((Tcprocsection531011) 0));
  	add_180482_2381377266(&prc0, (*LOC14));
  	LOC15 = (Ropeobj180006**)0;
  	LOC15 = s_531179_3723162438((*m0).initproc, ((Tcprocsection531011) 0));
  	add_180482_2381377266(&prc0, (*LOC15));
  	LOC16 = (Ropeobj180006**)0;
  	LOC16 = s_531179_3723162438((*m0).postinitproc, ((Tcprocsection531011) 0));
  	add_180482_2381377266(&prc0, (*LOC16));
  	LOC17 = (Ropeobj180006*)0;
  	LOC17 = gensectionend_532116_2760143328(((Tcprocsection531011) 0));
  	add_180482_2381377266(&prc0, LOC17);
  	{
  		NIM_BOOL LOC20;
  		LOC20 = (NIM_BOOL)0;
  		LOC20 = (((*(*m0).initproc).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0);
  		if (!(LOC20)) goto LA21;
  		LOC20 = !((((*m0).flags &(1U<<((NU)(((Codegenflag531025) 2))&7U)))!=0));
  		LA21: ;
  		if (!LOC20) goto LA22;
  		(*m0).flags |= ((NU8)1)<<((((Codegenflag531025) 2))%(sizeof(NU8)*8));
  		{
  			Ropeobj180006* procname0;
  			Ropeobj180006* LOC28;
  			Ropeobj180006* LOC29;
  			if (!!((((*m0).flags &(1U<<((NU)(((Codegenflag531025) 0))&7U)))!=0))) goto LA26;
  			procname0 = makecstring_193638_155036129((*(*(*m0).module).name).s);
  			LOC28 = (Ropeobj180006*)0;
  			LOC28 = quotedfilename_198818_155036129((*(*m0).module).info);
  			LOC29 = (Ropeobj180006*)0;
  			LOC29 = initframe_562140_839829468((*m0).initproc, procname0, LOC28);
  			add_180482_2381377266(&prc0, LOC29);
  		}
  		goto LA24;
  		LA26: ;
  		{
  			TY535289 LOC31;
  			Ropeobj180006* LOC32;
  			memset((void*)LOC31, 0, sizeof(LOC31));
  			LOC32 = (Ropeobj180006*)0;
  			LOC32 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_682), LOC31, 0);
  			add_180482_2381377266(&prc0, LOC32);
  		}
  		LA24: ;
  	}
  	LA22: ;
  	LOC33 = (Ropeobj180006*)0;
  	LOC33 = gensectionstart_532081_2760143328(((Tcprocsection531011) 1));
  	add_180482_2381377266(&prc0, LOC33);
  	LOC34 = (Ropeobj180006**)0;
  	LOC34 = s_531179_3723162438((*m0).preinitproc, ((Tcprocsection531011) 1));
  	add_180482_2381377266(&prc0, (*LOC34));
  	LOC35 = (Ropeobj180006**)0;
  	LOC35 = s_531179_3723162438((*m0).initproc, ((Tcprocsection531011) 1));
  	add_180482_2381377266(&prc0, (*LOC35));
  	LOC36 = (Ropeobj180006**)0;
  	LOC36 = s_531179_3723162438((*m0).postinitproc, ((Tcprocsection531011) 1));
  	add_180482_2381377266(&prc0, (*LOC36));
  	LOC37 = (Ropeobj180006*)0;
  	LOC37 = gensectionend_532116_2760143328(((Tcprocsection531011) 1));
  	add_180482_2381377266(&prc0, LOC37);
  	LOC38 = (Ropeobj180006*)0;
  	LOC38 = gensectionstart_532081_2760143328(((Tcprocsection531011) 2));
  	add_180482_2381377266(&prc0, LOC38);
  	LOC39 = (Ropeobj180006**)0;
  	LOC39 = s_531179_3723162438((*m0).preinitproc, ((Tcprocsection531011) 2));
  	add_180482_2381377266(&prc0, (*LOC39));
  	LOC40 = (Ropeobj180006**)0;
  	LOC40 = s_531179_3723162438((*m0).initproc, ((Tcprocsection531011) 2));
  	add_180482_2381377266(&prc0, (*LOC40));
  	LOC41 = (Ropeobj180006**)0;
  	LOC41 = s_531179_3723162438((*m0).postinitproc, ((Tcprocsection531011) 2));
  	add_180482_2381377266(&prc0, (*LOC41));
  	LOC42 = (Ropeobj180006*)0;
  	LOC42 = gensectionend_532116_2760143328(((Tcprocsection531011) 2));
  	add_180482_2381377266(&prc0, LOC42);
  	{
  		NIM_BOOL LOC45;
  		Ropeobj180006* LOC49;
  		LOC45 = (NIM_BOOL)0;
  		LOC45 = (((*(*m0).initproc).options &(1U<<((NU)(((Toption171009) 15))&31U)))!=0);
  		if (!(LOC45)) goto LA46;
  		LOC45 = !((((*m0).flags &(1U<<((NU)(((Codegenflag531025) 0))&7U)))!=0));
  		LA46: ;
  		if (!LOC45) goto LA47;
  		LOC49 = (Ropeobj180006*)0;
  		LOC49 = deinitframe_562150_839829468((*m0).initproc);
  		add_180482_2381377266(&prc0, LOC49);
  	}
  	LA47: ;
  	LOC50 = (Ropeobj180006*)0;
  	LOC50 = deinitgcframe_540441_839829468((*m0).initproc);
  	add_180482_2381377266(&prc0, LOC50);
  	memset((void*)LOC51, 0, sizeof(LOC51));
  	addf_181205_2381377266(&prc0, ((NimStringDesc*) &T839829468_683), LOC51, 0);
  	memset((void*)LOC52, 0, sizeof(LOC52));
  	LOC52[0] = getdatinitname_564239_839829468((*m0).module);
  	addf_181205_2381377266(&prc0, ((NimStringDesc*) &T839829468_679), LOC52, 1);
  	{
  		Tcfilesection531005 i_564401_839829468;
  		NI res_564482_839829468;
  		i_564401_839829468 = (Tcfilesection531005)0;
  		res_564482_839829468 = ((NI) 12);
  		{
  			while (1) {
  				Ropeobj180006* LOC56;
  				Ropeobj180006* LOC57;
  				if (!(res_564482_839829468 <= ((NI) 16))) goto LA55;
  				i_564401_839829468 = ((Tcfilesection531005) (res_564482_839829468));
  				LOC56 = (Ropeobj180006*)0;
  				LOC56 = gensectionstart_532015_2760143328(i_564401_839829468);
  				add_180482_2381377266(&prc0, LOC56);
  				add_180482_2381377266(&prc0, (*m0).s[(i_564401_839829468)- 0]);
  				LOC57 = (Ropeobj180006*)0;
  				LOC57 = gensectionend_532050_2760143328(i_564401_839829468);
  				add_180482_2381377266(&prc0, LOC57);
  				res_564482_839829468 += ((NI) 1);
  			} LA55: ;
  		}
  	}
  	memset((void*)LOC58, 0, sizeof(LOC58));
  	addf_181205_2381377266(&prc0, ((NimStringDesc*) &T839829468_683), LOC58, 0);
  	add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 11))- 0], prc0);
  	{
  		NIM_CHAR i_564442_839829468;
  		Ropeobj180006* el_564443_839829468;
  		TY531136 HEX3Atmp_564487_839829468;
  		NIM_CHAR i_564490_839829468;
  		i_564442_839829468 = (NIM_CHAR)0;
  		el_564443_839829468 = (Ropeobj180006*)0;
  		memset((void*)HEX3Atmp_564487_839829468, 0, sizeof(HEX3Atmp_564487_839829468));
  		memcpy((void*)HEX3Atmp_564487_839829468, (NIM_CONST void*)(*m0).extensionloaders, sizeof(HEX3Atmp_564487_839829468));
  		i_564490_839829468 = 48;
  		{
  			if (!((NU8)(((NIM_CHAR) (((NU8)(i_564490_839829468))))) <= (NU8)(57))) goto LA62;
  			{
  				while (1) {
  					i_564442_839829468 = i_564490_839829468;
  					el_564443_839829468 = HEX3Atmp_564487_839829468[(((NU8)(i_564490_839829468)))- 48];
  					{
  						Ropeobj180006* ex0;
  						TY534811 LOC70;
  						if (!!((el_564443_839829468 == NIM_NIL))) goto LA68;
  						memset((void*)LOC70, 0, sizeof(LOC70));
  						LOC70[0] = rope_180401_2381377266(((NI64) ((NI)(((NI) (((NU8)(i_564442_839829468)))) - ((NI) 48)))));
  						LOC70[1] = el_564443_839829468;
  						ex0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_684), LOC70, 2);
  						add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 11))- 0], ex0);
  					}
  					LA68: ;
  					{
  						if (!((NU8)(57) <= (NU8)(((NIM_CHAR) (((NU8)(i_564490_839829468))))))) goto LA73;
  						goto LA64;
  					}
  					LA73: ;
  					i_564490_839829468 += ((NI) 1);
  				}
  			} LA64: ;
  		}
  		LA62: ;
  	}
  }
  
  N_NIMCALL(void, finishtypedescriptions_537842_839829468)(Tcgen531027* m0) {
  	NI i0;
  	i0 = ((NI) 0);
  	{
  		while (1) {
  			Ropeobj180006* LOC3;
  			if (!(i0 < ((*m0).typestack ? (*m0).typestack->Sup.len : 0))) goto LA2;
  			LOC3 = (Ropeobj180006*)0;
  			LOC3 = gettypedesc_537671_839829468(m0, (*m0).typestack->data[i0]);
  			i0 += ((NI) 1);
  		} LA2: ;
  	}
  }
  
  N_NIMCALL(Ropeobj180006*, getcopyright_563665_839829468)(NimStringDesc* cfile0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	{
  		TY180507 LOC5;
  		if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 4))&63U)))!=0)) goto LA3;
  		memset((void*)LOC5, 0, sizeof(LOC5));
  		LOC5[0] = rope_180277_2381377266(((NimStringDesc*) &T839829468_686));
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_685), LOC5, 1);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		TY538475 LOC7;
  		NimStringDesc* LOC8;
  		memset((void*)LOC7, 0, sizeof(LOC7));
  		LOC7[0] = rope_180277_2381377266(((NimStringDesc*) &T839829468_686));
  		LOC7[1] = rope_180277_2381377266(Os_178068_4151366050[(targetos_178629_4151366050)- 1].Field0);
  		LOC7[2] = rope_180277_2381377266(Cpu_178496_4151366050[(targetcpu_178627_4151366050)- 1].Field0);
  		LOC7[3] = rope_180277_2381377266(Cc_275413_2528170400[(ccompiler_275431_2528170400)- 1].Field0);
  		LOC8 = (NimStringDesc*)0;
  		LOC8 = getcompilecfilecmd_276284_2528170400(cfile0, NIM_FALSE);
  		LOC7[4] = rope_180277_2381377266(LOC8);
  		result0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_687), LOC7, 5);
  	}
  	LA1: ;
  	return result0;
  }
  
  static N_INLINE(void, addinttypes_563659_839829468)(Ropeobj180006** result0) {
  	NimStringDesc* LOC1;
  	TY180507 LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = rawNewString(tnl_178644_4151366050->Sup.len + 22);
  appendString(LOC1, ((NimStringDesc*) &T839829468_688));
  appendString(LOC1, tnl_178644_4151366050);
  	memset((void*)LOC2, 0, sizeof(LOC2));
  	LOC2[0] = rope_180401_2381377266(((NI64) (Cpu_178496_4151366050[(targetcpu_178627_4151366050)- 1].Field1)));
  	addf_181205_2381377266(result0, LOC1, LOC2, 1);
  }
  
  N_NIMCALL(Ropeobj180006*, getfileheader_563683_839829468)(NimStringDesc* cfile0) {
  	Ropeobj180006* result0;
  	result0 = (Ropeobj180006*)0;
  	result0 = getcopyright_563665_839829468(cfile0);
  	addinttypes_563659_839829468(&result0);
  	return result0;
  }
  
  N_NIMCALL(void, generatethreadlocalstorage_540717_839829468)(Tcgen531027* m0) {
  	{
  		NIM_BOOL LOC3;
  		NIM_BOOL LOC5;
  		TY180507 LOC13;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !((nimtv_540656_839829468 == NIM_NIL));
  		if (!(LOC3)) goto LA4;
  		LOC5 = (NIM_BOOL)0;
  		LOC5 = (((*m0).flags &(1U<<((NU)(((Codegenflag531025) 1))&7U)))!=0);
  		if (LOC5) goto LA6;
  		LOC5 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0);
  		LA6: ;
  		LOC3 = LOC5;
  		LA4: ;
  		if (!LOC3) goto LA7;
  		{
  			Ttype294840* t_540761_839829468;
  			NI i_540768_839829468;
  			NI L_540770_839829468;
  			t_540761_839829468 = (Ttype294840*)0;
  			i_540768_839829468 = ((NI) 0);
  			L_540770_839829468 = (nimtvdeps_540674_839829468 ? nimtvdeps_540674_839829468->Sup.len : 0);
  			{
  				while (1) {
  					Ropeobj180006* LOC12;
  					if (!(i_540768_839829468 < L_540770_839829468)) goto LA11;
  					t_540761_839829468 = nimtvdeps_540674_839829468->data[i_540768_839829468];
  					LOC12 = (Ropeobj180006*)0;
  					LOC12 = gettypedesc_537671_839829468(m0, t_540761_839829468);
  					i_540768_839829468 += ((NI) 1);
  				} LA11: ;
  			}
  		}
  		memset((void*)LOC13, 0, sizeof(LOC13));
  		LOC13[0] = nimtv_540656_839829468;
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 4))- 0], ((NimStringDesc*) &T839829468_689), LOC13, 1);
  	}
  	LA7: ;
  }
  
  N_NIMCALL(void, generateheaders_562104_839829468)(Tcgen531027* m0) {
  	NimStringDesc* LOC1;
  	Tstrentry148009* it0;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = rawNewString(tnl_178644_4151366050->Sup.len + tnl_178644_4151366050->Sup.len + 20);
  appendString(LOC1, tnl_178644_4151366050);
  appendString(LOC1, ((NimStringDesc*) &T839829468_690));
  appendString(LOC1, tnl_178644_4151366050);
  	add_180487_2381377266(&(*m0).s[(((Tcfilesection531005) 1))- 0], LOC1);
  	it0 = ((Tstrentry148009*) ((*m0).headerfiles.head));
  	{
  		while (1) {
  			if (!!((it0 == NIM_NIL))) goto LA3;
  			{
  				NimStringDesc* LOC8;
  				NimStringDesc* LOC9;
  				Ropeobj180006* LOC10;
  				if (!((NU8)((*it0).data->data[((NI) 0)]) == (NU8)(35))) goto LA6;
  				LOC8 = (NimStringDesc*)0;
  				LOC9 = (NimStringDesc*)0;
  				LOC9 = nsuReplaceChar((*it0).data, 96, 34);
  				LOC8 = rawNewString(LOC9->Sup.len + tnl_178644_4151366050->Sup.len + 0);
  appendString(LOC8, LOC9);
  appendString(LOC8, tnl_178644_4151366050);
  				LOC10 = (Ropeobj180006*)0;
  				LOC10 = rope_180277_2381377266(LOC8);
  				add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 1))- 0], LOC10);
  			}
  			goto LA4;
  			LA6: ;
  			{
  				TY180507 LOC14;
  				if (!!((((NU8)((*it0).data->data[((NI) 0)])) == ((NU8)(34)) || ((NU8)((*it0).data->data[((NI) 0)])) == ((NU8)(60))))) goto LA12;
  				memset((void*)LOC14, 0, sizeof(LOC14));
  				LOC14[0] = rope_180277_2381377266((*it0).data);
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 1))- 0], ((NimStringDesc*) &T839829468_691), LOC14, 1);
  			}
  			goto LA4;
  			LA12: ;
  			{
  				TY180507 LOC16;
  				memset((void*)LOC16, 0, sizeof(LOC16));
  				LOC16[0] = rope_180277_2381377266((*it0).data);
  				addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 1))- 0], ((NimStringDesc*) &T839829468_692), LOC16, 1);
  			}
  			LA4: ;
  			it0 = ((Tstrentry148009*) ((*it0).Sup.next));
  		} LA3: ;
  	}
  }
  
  N_NIMCALL(Ropeobj180006*, genmodule_564491_839829468)(Tcgen531027* m0, NimStringDesc* cfile0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* LOC1;
  	result0 = (Ropeobj180006*)0;
  	result0 = getfileheader_563683_839829468(cfile0);
  	LOC1 = (Ropeobj180006*)0;
  	LOC1 = genmergeinfo_532203_2760143328(m0);
  	add_180482_2381377266(&result0, LOC1);
  	generatethreadlocalstorage_540717_839829468(m0);
  	generateheaders_562104_839829468(m0);
  	{
  		Tcfilesection531005 i_564614_839829468;
  		NI res_564622_839829468;
  		i_564614_839829468 = (Tcfilesection531005)0;
  		res_564622_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Ropeobj180006* LOC5;
  				Ropeobj180006* LOC6;
  				if (!(res_564622_839829468 <= ((NI) 10))) goto LA4;
  				i_564614_839829468 = ((Tcfilesection531005) (res_564622_839829468));
  				LOC5 = (Ropeobj180006*)0;
  				LOC5 = gensectionstart_532015_2760143328(i_564614_839829468);
  				add_180482_2381377266(&result0, LOC5);
  				add_180482_2381377266(&result0, (*m0).s[(i_564614_839829468)- 0]);
  				LOC6 = (Ropeobj180006*)0;
  				LOC6 = gensectionend_532050_2760143328(i_564614_839829468);
  				add_180482_2381377266(&result0, LOC6);
  				res_564622_839829468 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	add_180482_2381377266(&result0, (*m0).s[(((Tcfilesection531005) 11))- 0]);
  	return result0;
  }
  
  N_NIMCALL(void, updatecachedmodule_565813_839829468)(Tcgen531027* m0) {
  	NimStringDesc* cfile0;
  	NimStringDesc* cfilenoext0;
  	cfile0 = getcfile_565204_839829468(m0);
  	cfilenoext0 = noschangeFileExt(cfile0, ((NimStringDesc*) &T839829468_490));
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006* code0;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = mergerequired_532832_2760143328(m0);
  		if (!(LOC3)) goto LA4;
  		LOC3 = !((((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		mergefiles_533241_2760143328(cfile0, m0);
  		geninitcode_564286_839829468(m0);
  		finishtypedescriptions_537842_839829468(m0);
  		code0 = genmodule_564491_839829468(m0, cfile0);
  		writerope_180836_2381377266(code0, cfile0, NIM_FALSE);
  		addfiletocompile_275863_2528170400(cfile0);
  	}
  	LA5: ;
  	addfiletolink_275872_2528170400(cfilenoext0);
  }
  
  N_NIMCALL(void, generatethreadvarssize_540771_839829468)(Tcgen531027* m0) {
  	{
  		NimStringDesc* externc0;
  		TY180507 LOC12;
  		if (!!((nimtv_540656_839829468 == NIM_NIL))) goto LA3;
  		{
  			NIM_BOOL LOC7;
  			LOC7 = (NIM_BOOL)0;
  			LOC7 = !((gcmd_171132_2607990831 == ((Tcommands171076) 2)));
  			if (!(LOC7)) goto LA8;
  			LOC7 = (((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 27))&31U)))!=0);
  			LA8: ;
  			if (!LOC7) goto LA9;
  			externc0 = copyString(((NimStringDesc*) &T839829468_693));
  		}
  		goto LA5;
  		LA9: ;
  		{
  			externc0 = copyString(((NimStringDesc*) &T839829468_490));
  		}
  		LA5: ;
  		memset((void*)LOC12, 0, sizeof(LOC12));
  		LOC12[0] = rope_180277_2381377266(externc0);
  		addf_181205_2381377266(&(*m0).s[(((Tcfilesection531005) 10))- 0], ((NimStringDesc*) &T839829468_694), LOC12, 1);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(NIM_BOOL, shouldrecompile_565621_839829468)(Ropeobj180006* code0, NimStringDesc* cfile0) {
  	NIM_BOOL result0;
  {	result0 = (NIM_BOOL)0;
  	result0 = NIM_TRUE;
  	{
  		NimStringDesc* objfile0;
  		if (!!(((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 1))&63U)))!=0))) goto LA3;
  		objfile0 = toobjfile_275859_2528170400(cfile0);
  		{
  			NIM_BOOL LOC7;
  			LOC7 = (NIM_BOOL)0;
  			LOC7 = writeropeifnotequal_181511_2381377266(code0, cfile0);
  			if (!LOC7) goto LA8;
  			goto BeforeRet;
  		}
  		LA8: ;
  		{
  			NIM_BOOL LOC12;
  			LOC12 = (NIM_BOOL)0;
  			LOC12 = nosexistsFile(objfile0);
  			if (!(LOC12)) goto LA13;
  			LOC12 = nosfileNewer(objfile0, cfile0);
  			LA13: ;
  			if (!LOC12) goto LA14;
  			result0 = NIM_FALSE;
  		}
  		LA14: ;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		writerope_180836_2381377266(code0, cfile0, NIM_FALSE);
  	}
  	LA1: ;
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(void, writemodule_565637_839829468)(Tcgen531027* m0, NIM_BOOL pending0) {
  	NimStringDesc* cfile0;
  	NimStringDesc* cfilenoext0;
  	cfile0 = getcfile_565204_839829468(m0);
  	cfilenoext0 = noschangeFileExt(cfile0, ((NimStringDesc*) &T839829468_490));
  	{
  		NIM_BOOL LOC3;
  		Ropeobj180006* code0;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = !((*m0).Sup.fromcache);
  		if (LOC3) goto LA4;
  		LOC3 = ((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 1))&63U)))!=0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		geninitcode_564286_839829468(m0);
  		finishtypedescriptions_537842_839829468(m0);
  		{
  			if (!(((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0)) goto LA9;
  			add_180482_2381377266(&(*m0).s[(((Tcfilesection531005) 7))- 0], mainmodprocs_531148_3723162438);
  			generatethreadvarssize_540771_839829468(m0);
  		}
  		LA9: ;
  		code0 = genmodule_564491_839829468(m0, cfile0);
  		{
  			NIM_BOOL LOC13;
  			LOC13 = (NIM_BOOL)0;
  			LOC13 = shouldrecompile_565621_839829468(code0, cfile0);
  			if (!LOC13) goto LA14;
  			addfiletocompile_275863_2528170400(cfile0);
  		}
  		LA14: ;
  	}
  	goto LA1;
  	LA5: ;
  	{
  		NIM_BOOL LOC17;
  		NIM_BOOL LOC18;
  		Ropeobj180006* code0;
  		LOC17 = (NIM_BOOL)0;
  		LOC18 = (NIM_BOOL)0;
  		LOC18 = pending0;
  		if (!(LOC18)) goto LA19;
  		LOC18 = mergerequired_532832_2760143328(m0);
  		LA19: ;
  		LOC17 = LOC18;
  		if (!(LOC17)) goto LA20;
  		LOC17 = !((((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 12))&31U)))!=0));
  		LA20: ;
  		if (!LOC17) goto LA21;
  		mergefiles_533241_2760143328(cfile0, m0);
  		geninitcode_564286_839829468(m0);
  		finishtypedescriptions_537842_839829468(m0);
  		code0 = genmodule_564491_839829468(m0, cfile0);
  		writerope_180836_2381377266(code0, cfile0, NIM_FALSE);
  		addfiletocompile_275863_2528170400(cfile0);
  	}
  	goto LA1;
  	LA21: ;
  	{
  		NimStringDesc* LOC24;
  		NIM_BOOL LOC25;
  		LOC24 = (NimStringDesc*)0;
  		LOC24 = toobjfile_275859_2528170400(cfilenoext0);
  		LOC25 = (NIM_BOOL)0;
  		LOC25 = nosexistsFile(LOC24);
  		if (!!(LOC25)) goto LA26;
  		addfiletocompile_275863_2528170400(cfile0);
  	}
  	goto LA1;
  	LA26: ;
  	LA1: ;
  	addfiletolink_275872_2528170400(cfilenoext0);
  }
  
  N_NIMCALL(void, writeheader_565152_839829468)(Tcgen531027* m0) {
  	Ropeobj180006* result0;
  	Ropeobj180006* guard0;
  	TY180507 LOC1;
  	TY129506 LOC2;
  	TY180507 LOC3;
  	TY535289 LOC13;
  	TY180507 LOC14;
  	result0 = getcopyright_563665_839829468((*m0).filename);
  	memset((void*)LOC1, 0, sizeof(LOC1));
  	memset((void*)(&LOC2), 0, sizeof(LOC2));
  	nossplitFile((*m0).filename, (&LOC2));
  	LOC1[0] = rope_180277_2381377266(LOC2.Field1);
  	guard0 = HEX25_180905_2381377266(((NimStringDesc*) &T839829468_695), LOC1, 1);
  	memset((void*)LOC3, 0, sizeof(LOC3));
  	LOC3[0] = guard0;
  	addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_696), LOC3, 1);
  	addinttypes_563659_839829468(&result0);
  	generateheaders_562104_839829468(m0);
  	generatethreadlocalstorage_540717_839829468(m0);
  	{
  		Tcfilesection531005 i_565174_839829468;
  		NI res_565200_839829468;
  		i_565174_839829468 = (Tcfilesection531005)0;
  		res_565200_839829468 = ((NI) 1);
  		{
  			while (1) {
  				Ropeobj180006* LOC7;
  				Ropeobj180006* LOC8;
  				if (!(res_565200_839829468 <= ((NI) 10))) goto LA6;
  				i_565174_839829468 = ((Tcfilesection531005) (res_565200_839829468));
  				LOC7 = (Ropeobj180006*)0;
  				LOC7 = gensectionstart_532015_2760143328(i_565174_839829468);
  				add_180482_2381377266(&result0, LOC7);
  				add_180482_2381377266(&result0, (*m0).s[(i_565174_839829468)- 0]);
  				LOC8 = (Ropeobj180006*)0;
  				LOC8 = gensectionend_532050_2760143328(i_565174_839829468);
  				add_180482_2381377266(&result0, LOC8);
  				res_565200_839829468 += ((NI) 1);
  			} LA6: ;
  		}
  	}
  	add_180482_2381377266(&result0, (*m0).s[(((Tcfilesection531005) 11))- 0]);
  	{
  		if (!((gglobaloptions_171130_2607990831 &((NU64)1<<((NU)(((Tglobaloption171013) 8))&63U)))!=0)) goto LA11;
  		add_180487_2381377266(&result0, ((NimStringDesc*) &T839829468_22));
  	}
  	LA11: ;
  	memset((void*)LOC13, 0, sizeof(LOC13));
  	addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_697), LOC13, 0);
  	memset((void*)LOC14, 0, sizeof(LOC14));
  	LOC14[0] = guard0;
  	addf_181205_2381377266(&result0, ((NimStringDesc*) &T839829468_698), LOC14, 1);
  	writerope_180836_2381377266(result0, (*m0).filename, NIM_FALSE);
  }
  
  N_NIMCALL(void, cgenwritemodules_565902_839829468)(void) {
  	{
  		if (!!((generatedheader_534201_839829468 == NIM_NIL))) goto LA3;
  		finishmodule_565420_839829468(generatedheader_534201_839829468);
  	}
  	LA3: ;
  	{
  		while (1) {
  			if (!(((NI) 0) < gforwardedprocscounter_531171_3723162438)) goto LA6;
  			{
  				Tcgen531027* m_565916_839829468;
  				m_565916_839829468 = (Tcgen531027*)0;
  				{
  					NI i_565935_839829468;
  					NI HEX3Atmp_565937_839829468;
  					NI res_565939_839829468;
  					i_565935_839829468 = (NI)0;
  					HEX3Atmp_565937_839829468 = (NI)0;
  					HEX3Atmp_565937_839829468 = (gmodules_531170_3723162438 ? (gmodules_531170_3723162438->Sup.len-1) : -1);
  					res_565939_839829468 = ((NI) 0);
  					{
  						while (1) {
  							if (!(res_565939_839829468 <= HEX3Atmp_565937_839829468)) goto LA10;
  							i_565935_839829468 = res_565939_839829468;
  							{
  								if (!!((gmodules_531170_3723162438->data[i_565935_839829468] == NIM_NIL))) goto LA13;
  								m_565916_839829468 = gmodules_531170_3723162438->data[i_565935_839829468];
  								{
  									if (!!((*m_565916_839829468).Sup.fromcache)) goto LA17;
  									finishmodule_565420_839829468(m_565916_839829468);
  								}
  								LA17: ;
  							}
  							LA13: ;
  							res_565939_839829468 += ((NI) 1);
  						} LA10: ;
  					}
  				}
  			}
  		} LA6: ;
  	}
  	{
  		Tcgen531027* m_565917_839829468;
  		m_565917_839829468 = (Tcgen531027*)0;
  		{
  			NI i_565946_839829468;
  			NI HEX3Atmp_565948_839829468;
  			NI res_565950_839829468;
  			i_565946_839829468 = (NI)0;
  			HEX3Atmp_565948_839829468 = (NI)0;
  			HEX3Atmp_565948_839829468 = (gmodules_531170_3723162438 ? (gmodules_531170_3723162438->Sup.len-1) : -1);
  			res_565950_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_565950_839829468 <= HEX3Atmp_565948_839829468)) goto LA22;
  					i_565946_839829468 = res_565950_839829468;
  					{
  						if (!!((gmodules_531170_3723162438->data[i_565946_839829468] == NIM_NIL))) goto LA25;
  						m_565917_839829468 = gmodules_531170_3723162438->data[i_565946_839829468];
  						{
  							if (!(*m_565917_839829468).Sup.fromcache) goto LA29;
  							updatecachedmodule_565813_839829468(m_565917_839829468);
  						}
  						goto LA27;
  						LA29: ;
  						{
  							writemodule_565637_839829468(m_565917_839829468, NIM_TRUE);
  						}
  						LA27: ;
  					}
  					LA25: ;
  					res_565950_839829468 += ((NI) 1);
  				} LA22: ;
  			}
  		}
  	}
  	writemapping_276789_2528170400(gmapping_531152_3723162438);
  	{
  		if (!!((generatedheader_534201_839829468 == NIM_NIL))) goto LA34;
  		writeheader_565152_839829468(generatedheader_534201_839829468);
  	}
  	LA34: ;
  }
  
  N_NIMCALL(void, nullify_564833_839829468)(Ropeobj180006** arr0) {
  	{
  		Tcfilesection531005 i_564848_839829468;
  		NI res_564853_839829468;
  		i_564848_839829468 = (Tcfilesection531005)0;
  		res_564853_839829468 = ((NI) 0);
  		{
  			while (1) {
  				if (!(res_564853_839829468 <= ((NI) 17))) goto LA3;
  				i_564848_839829468 = ((Tcfilesection531005) (res_564853_839829468));
  				unsureAsgnRef((void**) (&arr0[(i_564848_839829468)- 0]), NIM_NIL);
  				res_564853_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  }
  
  N_NIMCALL(void, nullify_564858_839829468)(Ropeobj180006** arr0) {
  	{
  		NIM_CHAR i_565014_839829468;
  		NI res_565019_839829468;
  		i_565014_839829468 = (NIM_CHAR)0;
  		res_565019_839829468 = ((NI) 48);
  		{
  			while (1) {
  				if (!(res_565019_839829468 <= ((NI) 57))) goto LA3;
  				i_565014_839829468 = ((NIM_CHAR) (res_565019_839829468));
  				unsureAsgnRef((void**) (&arr0[(((NU8)(i_565014_839829468)))- 48]), NIM_NIL);
  				res_565019_839829468 += ((NI) 1);
  			} LA3: ;
  		}
  	}
  }
  
  N_NIMCALL(void, resetmodule_564763_839829468)(Tcgen531027* m0) {
  	initlinkedlist_148031_3771138726((&(*m0).headerfiles));
  	initintset_270885_2627731572((&(*m0).declaredprotos));
  	initidtable_298019_850551059((&(*m0).forwtypecache));
  	asgnRef((void**) (&(*m0).initproc), newproc_531206_3723162438(NIM_NIL, m0));
  	(*(*m0).initproc).options = initprocoptions_564635_839829468(m0);
  	asgnRef((void**) (&(*m0).preinitproc), newpreinitproc_564625_839829468(m0));
  	asgnRef((void**) (&(*m0).postinitproc), newpostinitproc_564630_839829468(m0));
  	initnodetable_298085_850551059((&(*m0).datacache));
  	if ((*m0).typestack) nimGCunrefNoCycle((*m0).typestack);
  	(*m0).typestack = (Ttypeseq294836*) newSeqRC1((&NTI294836), 0);
  	if ((*m0).forwardedprocs) nimGCunrefNoCycle((*m0).forwardedprocs);
  	(*m0).forwardedprocs = (Tsymseq294804*) newSeqRC1((&NTI294804), 0);
  	asgnRefNoCycle((void**) (&(*m0).typenodesname), gettempname_535596_839829468(m0));
  	asgnRefNoCycle((void**) (&(*m0).nimtypesname), gettempname_535596_839829468(m0));
  	{
  		if (!(((*(*m0).module).flags &(1U<<((NU)(((Tsymflag294184) 13))&31U)))!=0)) goto LA3;
  		(*m0).flags |= ((NU8)1)<<((((Codegenflag531025) 0))%(sizeof(NU8)*8));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		(*m0).flags &= ~(((NU8)1) << ((((Codegenflag531025) 0)) % (sizeof(NU8)*8)));
  	}
  	LA1: ;
  	nullify_564833_839829468((*m0).s);
  	(*m0).typenodes = ((NI) 0);
  	(*m0).nimtypes = ((NI) 0);
  	nullify_564858_839829468((*m0).extensionloaders);
  	(*m0).Sup.fromcache = NIM_TRUE;
  }
  
  N_NIMCALL(void, resetcgenmodules_565024_839829468)(void) {
  	{
  		Tcgen531027* m_565026_839829468;
  		m_565026_839829468 = (Tcgen531027*)0;
  		{
  			NI i_565031_839829468;
  			NI HEX3Atmp_565033_839829468;
  			NI res_565035_839829468;
  			i_565031_839829468 = (NI)0;
  			HEX3Atmp_565033_839829468 = (NI)0;
  			HEX3Atmp_565033_839829468 = (gmodules_531170_3723162438 ? (gmodules_531170_3723162438->Sup.len-1) : -1);
  			res_565035_839829468 = ((NI) 0);
  			{
  				while (1) {
  					if (!(res_565035_839829468 <= HEX3Atmp_565033_839829468)) goto LA4;
  					i_565031_839829468 = res_565035_839829468;
  					{
  						if (!!((gmodules_531170_3723162438->data[i_565031_839829468] == NIM_NIL))) goto LA7;
  						m_565026_839829468 = gmodules_531170_3723162438->data[i_565031_839829468];
  						resetmodule_564763_839829468(m_565026_839829468);
  					}
  					LA7: ;
  					res_565035_839829468 += ((NI) 1);
  				} LA4: ;
  			}
  		}
  	}
  }
  NIM_EXTERNC N_NOINLINE(void, compiler_cgenInit000)(void) {
  nimRegisterGlobalMarker(T839829468_2);
  nimRegisterGlobalMarker(T839829468_3);
  nimRegisterGlobalMarker(T839829468_5);
  nimRegisterGlobalMarker(T839829468_6);
  nimRegisterGlobalMarker(T839829468_7);
  nimRegisterGlobalMarker(T839829468_8);
  	asgnRefNoCycle((void**) (&indent_534655_839829468), rope_180277_2381377266(((NimStringDesc*) &T839829468_4)));
  	if (nimtvdeps_540674_839829468) nimGCunrefNoCycle(nimtvdeps_540674_839829468);
  	nimtvdeps_540674_839829468 = (Ttypeseq294836*) newSeqRC1((&NTI294836), 0);
  	chckNil((void*)(&nimtvdeclared_540675_839829468));
  	genericReset((void*)(&nimtvdeclared_540675_839829468), (&NTI270030));
  	initintset_270885_2627731572((&nimtvdeclared_540675_839829468));
  	breakpointid_550860_839829468 = ((NI) 0);
  }
  
  NIM_EXTERNC N_NOINLINE(void, compiler_cgenDatInit000)(void) {
  }
  
  