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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tySequence_9bAGqSvkAaFL9bWjsEPslrFA tySequence_9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ;
typedef struct tySequence_RsxI3z4wK8jTuZiO0576gQ tySequence_RsxI3z4wK8jTuZiO0576gQ;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
typedef struct tySequence_JokFGfUW6i9b6aeU7xu6xBw tySequence_JokFGfUW6i9b6aeU7xu6xBw;
typedef struct tyTuple_SlmU1Ju0WFHUWkihyHMVYg tyTuple_SlmU1Ju0WFHUWkihyHMVYg;
typedef struct tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ;
typedef struct tySequence_qwqHTkRvwhrRyENtudHQ7g tySequence_qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyTuple_UCrBsiykDha2x4hr9aWPwKA tyTuple_UCrBsiykDha2x4hr9aWPwKA;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence_7lEisrXlQEzwtUKW5pzRCw tySequence_7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ tySequence_Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence_4eRCaZmrYLLw2k30GPTiMw tySequence_4eRCaZmrYLLw2k30GPTiMw;
typedef struct tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* dup;
};
struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} S1;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
} S2;
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
} S4;
} _Ukind;
tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} S1;
struct {NF floatVal;
} S2;
struct {NimStringDesc* strVal;
} S3;
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
} S4;
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
} S5;
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} _Ukind;
NimStringDesc* comment;
};
struct tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NU8 tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ;
typedef NU8 tySet_tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw {
  tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w Sup;
tySequence_9bAGqSvkAaFL9bWjsEPslrFA* code;
tySequence_PJMRIt5QxCm6bRaVyQ5CGA* debug;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* globals;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constants;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* types;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* prc;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* callsite;
tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ mode;
tySet_tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
tySequence_RsxI3z4wK8jTuZiO0576gQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
NI oldErrorCount;
};
typedef NU8 tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ;
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* tyArray_AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ;
struct tyTuple_SlmU1Ju0WFHUWkihyHMVYg {
NIM_BOOL Field0;
tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ Field1;
};
typedef tyTuple_SlmU1Ju0WFHUWkihyHMVYg tyArray_ORKcvNw6ApGJhbot1dJ6oA[256];
struct tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ {
tySequence_JokFGfUW6i9b6aeU7xu6xBw* blocks;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray_ORKcvNw6ApGJhbot1dJ6oA slots;
NI maxSlots;
};
struct tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ {
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* label;
tySequence_qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* destructor;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* deepCopy;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* assignment;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sink;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
};
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ;
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ;
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc_S09bPfanQx9bEvdh4862x8zw;
struct tyTuple_UCrBsiykDha2x4hr9aWPwKA {
NimStringDesc* Field0;
tyProc_S09bPfanQx9bEvdh4862x8zw Field1;
};
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw;
typedef NimStringDesc* tyArray_24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NU8 tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg {
  RootObj Sup;
NI colonstate_;
tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n2;
};
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence_PJMRIt5QxCm6bRaVyQ5CGA* msgContext;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence_Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw;
typedef NU8 tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg {
tySequence_4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc_QYEVXrYc9beQ379crS3rzqRA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA;
typedef NU8 tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity_x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc_22mgIiTBBoqNe1T0FSw9ahQ;
struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw {
tyObject_Target_9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw selectedGC;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature_01UoAKYz1MxZiuG1X2VhNQ features;
NimStringDesc* arguments;
NIM_BOOL helpWritten;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg enableNotes;
tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg disableNotes;
tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg foreignPackageNotes;
tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg notes;
tySet_tyEnum_TMsgKind_vuCAakv8v9aIe9a44eiR1GOg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NI32 projectMainIdx;
NimStringDesc* command;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NIM_BOOL keepComments;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* ccompilerpath;
tySequence_pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc_QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc_Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
tyProc_22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (NI ival, void* ClE_0);
void* ClE_0;
} tyProc_QZ4giON8BOPRx8CufO2W6Q;
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_53) (NI ival);
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_54) (NI ival);
typedef N_CLOSURE_PTR(NI, TM_24XApAWKNvaMkcyklm8bNA_55) (NI ival);
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyObject_VmArgs_0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
void* slots;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyfile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
struct tySequence_9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence_JokFGfUW6i9b6aeU7xu6xBw {
  TGenericSeq Sup;
  tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE];
};
struct tySequence_RsxI3z4wK8jTuZiO0576gQ {
  TGenericSeq Sup;
  tyTuple_UCrBsiykDha2x4hr9aWPwKA data[SEQ_DECL_SIZE];
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newTree_4bkTFXme4frVOAuq2YEc4g)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntNode_v2VGJAZNfKPVngZCqEXQtA)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp_LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx_aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams_Unaf3DZLxXwqe70dj3rMHA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* params);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams_vASajwqkUjdiFGC5iKyxaw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen_M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen_6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval_Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy_347XxVgSsabWElLnf9aLZMw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, globalError_NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, importcSym_tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add_gCCf68XrWL79bKes6htzFjQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getNullValue_MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_fzmWyera9aMY9cWza4CIFH6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_qPWPHw7WgJeEVYUdcaRIig)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_esDJA7239bJDiq4UrX9aHCjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeI_I7fH85CUcZMasoPRKxPsPg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, addSon_gCCf68XrWL79bKes6htzFjQ_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI64, lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_SWFNCiWYB89bTUPh5KptkvA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp_LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil_7vZ9a9bub9bucX5E73hsr9cjvg_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind_JO7ElyFoEqj9c8rKb9ch9cncg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, bestEffort_ksz51PgYe1p3kSHo9bYSWlw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(NI, genx_CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC_NbczSk6ZhWrJiOrEQnCsfQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp_NkN9ayM3wfuFmqkNDjCySLA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister_OlAwVLOzsikarBC2aqdk8w)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot_wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, internalError_5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__E5ya0OOlyISUCw4ENFn9bLA)(tyTuple_kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback_JY3vcBwTxEVaD9cCUYy8jfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_DNyphyeXZzYq1E2koHkmSA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence_sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, genLit_AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral_PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_hVdlR9a2kD2smX3eFLy9c9akw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canonValue_kPhV2XlI349c9bDKTfBE4Bpw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNode_IgnRxkID5wXTWvTZf9ct0rA)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic_5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr_blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, patch_Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, gABI_u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit_LFLaqthKyetOmkMUTXjz5g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow_fmIjfukTSo9aNQnYJr7iD1A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
static N_INLINE(void, unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex_DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, genField_9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNew_Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch_LFLaqthKyetOmkMUTXjz5g_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genType_H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType_3isNyHKb0U1OCnClmflXSg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType_gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard_AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU_fmIjfukTSo9aNQnYJr7iD1A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genConv_3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange_ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ kind);
N_LIB_PRIVATE N_NIMCALL(void, gen_KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerSwap_T5SG2LMxpDuzIR4uljA0pw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_6rsSLwtlU9c53a6w69be5JlQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym_AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**, X5BX5D__YLEY3nLpUU2onE02S2OSlgast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genCall_AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, len_SWFNCiWYB89bTUPh5KptkvA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_slP08oRO7mZMbr9brMeWb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(void, clearDest_runukDxAwbxjel2eQG9aJNgvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit_LFLaqthKyetOmkMUTXjz5g_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp_gEbQtLj9bwLCOro9ayBul9bJw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref_6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection_LFLaqthKyetOmkMUTXjz5g_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr_6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canElimAddr_kPhV2XlI349c9bDKTfBE4Bpw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_lz8T1F9c0YwEOpUnrAUYgjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal_LFLaqthKyetOmkMUTXjz5g_5)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf_AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr_LFLaqthKyetOmkMUTXjz5g_6)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase_AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile_Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel_zuqGtZBPLOoAJeBtKlTOOg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue_LFLaqthKyetOmkMUTXjz5g_7)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack_fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock_NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock_AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn_Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise_Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak_Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry_AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection_Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking_8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getOwner_OnV9cd9ci9cyY9ci9cyWn1URCCg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode_Yg9bTbISZAVy15KGRJO1Z3g)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNode_UWZXukHA5As9aCftRHbafBg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genIntCast_AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef_tODktKbr2w0ijH9avseOrXA)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_CLOSURE(NI, mkIntLit_hDP0jgwejST6KBSJKiSeZg)(NI ival, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode_IoblBePQdnK3IoXX7b1EDg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps_c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof_OYm9bfQSqoS0XSVKCTuQUQw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c);
extern TNimType NTI_9bAGqSvkAaFL9bWjsEPslrFA_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_PJMRIt5QxCm6bRaVyQ5CGA_;
extern TNimType NTI_FM7mzTFsA8pyUhXVKKO6Gw_;
extern TNimType NTI_JokFGfUW6i9b6aeU7xu6xBw_;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
extern TNimType NTI_Ef05srmQTDulnBdXR4Ja6Q_;
extern TNimType NTI_shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI_qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_ceWLrGjAgZxILXtfRu8UFg_;
extern TNimType NTI_xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTI_FD9cVFUpCDGxUmwW7TEZIFQ_;
extern TNimType NTI_fKfcLzXYiz5jNu3NH3Tv8Q_;
TNimType NTI_tODktKbr2w0ijH9avseOrXA_;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_2, "VM: immediate value does not fit into an int16", 46);
NIM_CONST tyTuple_SlmU1Ju0WFHUWkihyHMVYg TM_24XApAWKNvaMkcyklm8bNA_3 = {NIM_TRUE,
((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 1)}
;
NIM_CONST tyTuple_SlmU1Ju0WFHUWkihyHMVYg TM_24XApAWKNvaMkcyklm8bNA_4 = {NIM_TRUE,
((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2)}
;
NIM_CONST tyTuple_SlmU1Ju0WFHUWkihyHMVYg TM_24XApAWKNvaMkcyklm8bNA_5 = {NIM_TRUE,
((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2)}
;
NIM_CONST tyTuple_SlmU1Ju0WFHUWkihyHMVYg TM_24XApAWKNvaMkcyklm8bNA_6 = {NIM_TRUE,
((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_7, "cannot evaluate at compile time: ", 33);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_8, "cannot \'importc\' variable at compile time", 41);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_9, "cannot create null element for: ", 32);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_10, "VM problem: too many registers required", 39);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_11, "cannot generate code; too many registers required", 49);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_13, "vmgen.nim", 9);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_12 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 1525),
((NI) 22)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_14, "*", 1);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_15, "/home/travis/build/nim-lang/nightlies/nim/b6d96cafc8bcad1f3d32f"
"2910b25cd11a93f7751/compiler/vmgen.nim(1804, 16) `s.offset == -1"
"` ", 129);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_16 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 383),
((NI) 17)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_17, "cannot generate code for: ", 26);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_18 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 164),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_19, "VM: immediate value does not fit into an int8", 45);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_20, "not unused", 10);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_21, "no field symbol", 15);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_22, "too large offset! cannot generate code for: ", 44);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_23 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 456),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_24, "cannot run in the VM: ", 22);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_25, "getType", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_26, "typeKind", 8);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_27, "getTypeInst", 11);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_28, "invalid bindSym usage", 21);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_29, "getFile", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_30, "getLine", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_31, "getColumn", 9);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_32, "copyLineInfo", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_33 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 1193),
((NI) 21)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_34 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 1196),
((NI) 25)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_35 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 530),
((NI) 21)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_36, "expandToAst requires 1 argument", 31);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_37, "expandToAst requires a call expression", 38);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_38, "cannot call method ", 19);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_39, " at compile time", 16);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_41, "stdlib", 6);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_42, "marshal", 7);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_43, "to", 2);
NIM_CONST tyArray_24KAM9afIUgUaqBaEBB6r9bg TM_24XApAWKNvaMkcyklm8bNA_40 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_41),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_42),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_43)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_45, "$$", 2);
NIM_CONST tyArray_24KAM9afIUgUaqBaEBB6r9bg TM_24XApAWKNvaMkcyklm8bNA_44 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_41),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_42),
((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_45)}
;
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_46 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 1449),
((NI) 21)}
;
NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM_24XApAWKNvaMkcyklm8bNA_48 = {{0, 0 | NIM_STRLIT_FLAG}};
NIM_CONST tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ TM_24XApAWKNvaMkcyklm8bNA_47 = {NIM_NIL, ((tySequence_qwqHTkRvwhrRyENtudHQ7g*)&TM_24XApAWKNvaMkcyklm8bNA_48)};
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_49 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 156),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_50, "VM problem: cannot find \'break\' target", 38);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_51, "invalid object constructor", 26);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_56, "VM is only allowed to \'cast\' between integers of same size", 58);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_57, "cannot generate VM code for ", 28);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_24XApAWKNvaMkcyklm8bNA_58 = {((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_13),
((NI) 1999),
((NI) 16)}
;
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_59, "VM problem: dest register is not set", 36);
STRING_LITERAL(TM_24XApAWKNvaMkcyklm8bNA_60, "VM problem: dest register is set", 32);

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
		if (!!((src == NIM_NIL))) goto LA3_;
		c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		(*c).refcount += ((NI) 8);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c_2;
		if (!!(((*dest) == NIM_NIL))) goto LA7_;
		c_2 = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		{
			(*c_2).refcount -= ((NI) 8);
			if (!((NU32)((*c_2).refcount) < (NU32)(((NI) 8)))) goto LA11_;
			rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c_2);
		}
		LA11_: ;
	}
	LA7_: ;
	(*dest) = src;
}

static N_INLINE(void, nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}

static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem_2Mfumf6CnyNlShDWdIgobwsystem(p, ((int) 0), size);
}

N_LIB_PRIVATE N_NIMCALL(void, gABx_aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx) {
	{
		NIM_BOOL T3_;
		NU32 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32768) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 32767));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) ((NI)(bx + ((NI) 32768))))) << (NU32)(((NU32) 16))));
		asgnRefNoCycle((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRefNoCycle((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_2));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, xjmp_LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, a, ((NI) 0));
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
	c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._Ukind.S6.sons ? (*n)._Ukind.S6.sons->Sup.len : 0);
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genParams_Unaf3DZLxXwqe70dj3rMHA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* params) {
	NI T4_;
	(*(*c).prc).slots[(((NI) 0))- 0] = TM_24XApAWKNvaMkcyklm8bNA_3;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				(*(*c).prc).slots[(i)- 0] = TM_24XApAWKNvaMkcyklm8bNA_4;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(params);
	(*(*c).prc).maxSlots = ((T4_ >= ((NI) 1)) ? T4_ : ((NI) 1));
}

N_LIB_PRIVATE N_NIMCALL(void, genGenericParams_vASajwqkUjdiFGC5iKyxaw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* gp) {
	NI base;
	NI T4_;
	base = (*(*c).prc).maxSlots;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				param = (*(*gp)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
				(*param).position = (NI)(base + i);
				(*(*c).prc).slots[((NI)(base + i))- 0] = TM_24XApAWKNvaMkcyklm8bNA_5;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(gp);
	(*(*c).prc).maxSlots = (NI)(base + T4_);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy_347XxVgSsabWElLnf9aLZMw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* b) {
	NIM_BOOL result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}

static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NOINLINE(void, cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 33);
appendString(T1_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_7));
appendString(T1_, T2_);
	globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T1_);
}

N_LIB_PRIVATE N_NIMCALL(void, checkCanEval_Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
{	s = (*n)._Ukind.S4.sym;
	{
		if (!((16777224 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T11_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((2856 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T9_)) goto LA10_;
		T11_ = (NIM_BOOL)0;
		T11_ = isOwnedBy_347XxVgSsabWElLnf9aLZMw(s, (*(*c).prc).sym);
		T9_ = !(T11_);
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA12_;
		T8_ = !(((*s).owner == (*c).module));
		LA12_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA13_;
		T7_ = !(((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0)));
		LA13_: ;
		if (!T7_) goto LA14_;
		cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA5_;
	LA14_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((126976 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T17_)) goto LA18_;
		T17_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA18_: ;
		if (!T17_) goto LA19_;
		cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA5_;
	LA19_: ;
	LA5_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, importcSym_tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	localError_NF6kBGchnhQYPbCedyefVA((*c).config, info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_8));
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_fzmWyera9aMY9cWza4CIFH6g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI T3_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (NI)0;
			T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(obj);
			colontmp_ = (NI)(T3_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*obj)._Ukind.S6.sons->data[i], result, conf);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*obj)._Ukind.S6.sons->data[((NI) 0)], result, conf);
		{
			NI i_2;
			NI colontmp__2;
			NI T8_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T8_ = (NI)0;
			T8_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(obj);
			colontmp__2 = (NI)(T8_ - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(res_2 <= colontmp__2)) goto LA10;
					i_2 = res_2;
					T11_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = lastSon_esDJA7239bJDiq4UrX9aHCjg((*obj)._Ukind.S6.sons->data[i_2]);
					getNullValueAux_fzmWyera9aMY9cWza4CIFH6g(T11_, result, conf);
					res_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* field;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T13_;
		field = newNodeI_I7fH85CUcZMasoPRKxPsPg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34), (*result).info);
		add_gCCf68XrWL79bKes6htzFjQ(field, obj);
		T13_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*(*obj)._Ukind.S4.sym).typ, (*result).info, conf);
		add_gCCf68XrWL79bKes6htzFjQ(field, T13_);
		addSon_gCCf68XrWL79bKes6htzFjQ_2(result, field);
	}
	break;
	default:
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		T15_ = (NimStringDesc*)0;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T15_ = rawNewString((T16_ ? T16_->Sup.len : 0) + 32);
appendString(T15_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_9));
appendString(T15_, T16_);
		globalError_NF6kBGchnhQYPbCedyefVA_2(conf, (*result).info, T15_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, getNullValue_MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(1189020670371080208));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), info, t);
		asgnRefNoCycle((void**) (&(*result)._Ukind.S3.strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA9_;
			result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T13_;
			result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
			T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add_gCCf68XrWL79bKes6htzFjQ(result, T12_);
			T13_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add_gCCf68XrWL79bKes6htzFjQ(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38), info, t);
		T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1), info, t);
		add_gCCf68XrWL79bKes6htzFjQ(result, T15_);
		base = (*t).sons->data[((NI) 0)];
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
				if (!!((base == NIM_NIL))) goto LA17;
				T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T18_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(base, IL64(36239903266179344));
				getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*T18_).n, result, conf);
				base = (*base).sons->data[((NI) 0)];
			} LA17: ;
		}
		getNullValueAux_fzmWyera9aMY9cWza4CIFH6g((*t).n, result, conf);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			NI64 T21_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T21_ = (NI64)0;
			T21_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2(conf, t);
			colontmp_ = (NI)(((NI) (T21_)) - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T25_;
					if (!(res <= colontmp_)) goto LA23;
					i = res;
					T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T24_ = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(t);
					T25_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T25_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA(T24_, info, conf);
					addSon_gCCf68XrWL79bKes6htzFjQ_2(result, T25_);
					res += ((NI) 1);
				} LA23: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
		{
			NI i_2;
			NI colontmp__2;
			NI T28_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T28_ = (NI)0;
			T28_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(t);
			colontmp__2 = (NI)(T28_ - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T31_;
					if (!(res_2 <= colontmp__2)) goto LA30;
					i_2 = res_2;
					T31_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T31_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*t).sons->data[i_2], info, conf);
					addSon_gCCf68XrWL79bKes6htzFjQ_2(result, T31_);
					res_2 += ((NI) 1);
				} LA30: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = newNodeIT_XPsPiaJWaj9b3UEC2OCu8Ug(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T36_;
		T36_ = (NimStringDesc*)0;
		T36_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T36_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_9));
appendString(T36_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2(conf, info, T36_);
		result = newNodeI_I7fH85CUcZMasoPRKxPsPg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind_JO7ElyFoEqj9c8rKb9ch9cncg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165764233232));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, bestEffort_ksz51PgYe1p3kSHo9bYSWlw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q));
	{
		if (!((*c).prc == NIM_NIL)) goto LA3_;
		result = (*(*c).module).info;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (*(*(*c).prc).sym).info;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, getTemp_LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt) {
	NI result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c;
	tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ k;
{	result = (NI)0;
	typ = skipTypesOrNil_7vZ9a9bub9bucX5E73hsr9cjvg_2(tt, IL64(1152921504606846976));
	c = (*cc).prc;
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind_JO7ElyFoEqj9c8rKb9ch9cncg(typ);
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((*c).maxSlots - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = ((*c).slots[(i)- 0].Field1 == k);
					if (!(T11_)) goto LA12_;
					T11_ = !((*c).slots[(i)- 0].Field0);
					LA12_: ;
					if (!T11_) goto LA13_;
					(*c).slots[(i)- 0].Field0 = NIM_TRUE;
					result = ((NI) (i));
					goto BeforeRet_;
				}
				LA13_: ;
				res += ((NI) 1);
			} LA8: ;
		}
	}
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = (((NI) 40) <= (*c).maxSlots);
		if (!(T17_)) goto LA18_;
		T17_ = NIM_FALSE;
		LA18_: ;
		if (!T17_) goto LA19_;
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)((*c).maxSlots - ((NI) 1));
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA23;
					i_2 = res_2;
					{
						if (!!((*c).slots[(i_2)- 0].Field0)) goto LA26_;
						(*c).slots[(i_2)- 0].Field0 = NIM_TRUE;
						(*c).slots[(i_2)- 0].Field1 = k;
						result = ((NI) (i_2));
						goto BeforeRet_;
					}
					LA26_: ;
					res_2 += ((NI) 1);
				} LA23: ;
			}
		}
	}
	LA19_: ;
	{
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T32_;
		if (!(((NI) 255) <= (*c).maxSlots)) goto LA30_;
		T32_ = bestEffort_ksz51PgYe1p3kSHo9bYSWlw(cc);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*cc).config, T32_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	}
	LA30_: ;
	result = ((NI) ((*c).maxSlots));
	(*c).slots[((*c).maxSlots)- 0].Field0 = NIM_TRUE;
	(*c).slots[((*c).maxSlots)- 0].Field1 = k;
	(*c).maxSlots += ((NI) 1);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genx_CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		result = ((NI) (tmp));
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gABC_NbczSk6ZhWrJiOrEQnCsfQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c) {
	NU32 ins;
	NI T1_;
	NI T2_;
	ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32) (c))) << (NU32)(((NU32) 24))));
	asgnRefNoCycle((void**) (&(*ctx).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3(&((*ctx).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
	T1_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T1_] = ins;
	asgnRefNoCycle((void**) (&(*ctx).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3(&((*ctx).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
	T2_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T2_] = (*n).info;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233232));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 7);
	}
	break;
	default:
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 8);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, freeTemp_NkN9ayM3wfuFmqkNDjCySLA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI r) {
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &(1U<<((NU)((*c_2).slots[(r)- 0].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).slots[(r)- 0].Field0 = NIM_FALSE;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	NI cc;
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T1_;
	cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
	T1_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw(n);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, T1_, cc, value, ((NI) 0));
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, dest, idx, cc);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
}

N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI dest;
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*n).info, (*c).config);
	add_gCCf68XrWL79bKes6htzFjQ((*c).globals, T1_);
	(*s).position = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*c).globals);
	dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*s).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 161), dest, (*s).position);
	{
		NI tmp;
		if (!!(((*s).ast == NIM_NIL))) goto LA4_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*s).ast, 0);
		genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest, ((NI) 0), tmp);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister_OlAwVLOzsikarBC2aqdk8w)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36099165763184656));
	result = ((*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*T1_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*T1_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, setSlot_wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v) {
	{
		if (!((*v).position == ((NI) 0))) goto LA3_;
		{
			if (!((*(*c).prc).maxSlots == ((NI) 0))) goto LA7_;
			(*(*c).prc).maxSlots = ((NI) 1);
		}
		LA7_: ;
		{
			if (!(((NI) 255) <= (*(*c).prc).maxSlots)) goto LA11_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*v).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_11));
		}
		LA11_: ;
		(*v).position = (*(*c).prc).maxSlots;
		(*(*c).prc).slots[((*v).position)- 0].Field0 = NIM_TRUE;
		{
			if (!((*v).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9))) goto LA15_;
			(*(*c).prc).slots[((*v).position)- 0].Field1 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 2);
		}
		goto LA13_;
		LA15_: ;
		{
			(*(*c).prc).slots[((*v).position)- 0].Field1 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 1);
		}
		LA13_: ;
		(*(*c).prc).maxSlots += ((NI) 1);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	NI tmp;
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T1_;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
	T1_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw(ri);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, ri, T1_, ((NI) (dest)), tmp, ((NI) ((NI)(((NI) 1) - requiresCopy))));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	s = (*n)._Ukind.S4.sym;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0);
			if (T9_) goto LA10_;
			T9_ = ((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA10_: ;
			if (!T9_) goto LA11_;
		}
		goto LA7_;
		LA11_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA14_;
			cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		goto LA7_;
		LA14_: ;
		LA7_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA18_;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA22_;
				importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA20_;
			LA22_: ;
			{
				genGlobalInit_3QrY9bRL3HpccYFScnTUsdQ(c, n, s);
			}
			LA20_: ;
		}
		LA18_: ;
		{
			NI T29_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA27_;
			T29_ = (NI)0;
			T29_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T29_));
		}
		LA27_: ;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ) 1))&7U)))!=0)) goto LA32_;
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 162), ((NI) ((*dest))), (*s).position);
		}
		goto LA30_;
		LA32_: ;
		{
			NIM_BOOL T35_;
			NI cc;
			T35_ = (NIM_BOOL)0;
			T35_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*s).typ);
			if (!(T35_)) goto LA36_;
			T35_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ) 0))&7U)))!=0));
			LA36_: ;
			if (!T35_) goto LA37_;
			cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 161), cc, (*s).position);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), cc, ((NI) 0));
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
		}
		goto LA30_;
		LA37_: ;
		{
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) ((*dest))), (*s).position);
		}
		LA30_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NIM_BOOL T43_;
			T43_ = (NIM_BOOL)0;
			T43_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21));
			if (!(T43_)) goto LA44_;
			T43_ = ((*c).mode == ((tyEnum_TEvalMode_UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA44_: ;
			if (!T43_) goto LA45_;
			setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
		}
		LA45_: ;
		{
			NIM_BOOL T49_;
			NIM_BOOL T51_;
			T49_ = (NIM_BOOL)0;
			T49_ = (((NI) 0) < (*s).position);
			if (T49_) goto LA50_;
			T51_ = (NIM_BOOL)0;
			T51_ = ((*s).position == ((NI) 0));
			if (!(T51_)) goto LA52_;
			T51_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA52_: ;
			T49_ = T51_;
			LA50_: ;
			if (!T49_) goto LA53_;
			{
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA57_;
				(*dest) = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3)))));
				{
					NimStringDesc* T63_;
					if (!!(((*(*c).prc).slots[((*dest))- 0].Field1 < ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3)))) goto LA61_;
					T63_ = (NimStringDesc*)0;
					T63_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_12);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T63_);
				}
				LA61_: ;
			}
			goto LA55_;
			LA57_: ;
			{
				genAsgn_9c4eyEUpcv8lGnjrHcs6fgw(c, (*dest), n, (((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[((*dest))- 0].Field1));
			}
			LA55_: ;
		}
		goto LA47_;
		LA53_: ;
		{
			cannotEval_L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA47_: ;
	}
	LA1_: ;
}

static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}

static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_DNyphyeXZzYq1E2koHkmSA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x) {
	NIM_BOOL result;
	tySequence_sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
	NI T1_;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	T1_ = (y ? y->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	{
		while (1) {
			if (!(((NI) 0) <= L)) goto LA3;
			{
				NIM_BOOL T6_;
				NIM_BOOL T8_;
				NI T9_;
				T6_ = (NIM_BOOL)0;
				T6_ = (s_2 == NIM_NIL);
				if (T6_) goto LA7_;
				T8_ = (NIM_BOOL)0;
				T9_ = (NI)0;
				T9_ = nsuCmpIgnoreStyle(y->data[L], (*(*s_2).name).s);
				T8_ = !((T9_ == ((NI) 0)));
				if (!(T8_)) goto LA10_;
				T8_ = !(eqStrings(y->data[L], ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_14)));
				LA10_: ;
				T6_ = T8_;
				LA7_: ;
				if (!T6_) goto LA11_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA11_: ;
			s_2 = (*s_2).owner;
			L -= ((NI) 1);
		} LA3: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback_JY3vcBwTxEVaD9cCUYy8jfA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc* key;
		tyProc_S09bPfanQx9bEvdh4862x8zw value;
		tySequence_RsxI3z4wK8jTuZiO0576gQ* colontmp_;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc*)0;
		nimZeroMem((void*)(&value), sizeof(tyProc_S09bPfanQx9bEvdh4862x8zw));
		colontmp_ = (tySequence_RsxI3z4wK8jTuZiO0576gQ*)0;
		colontmp_ = (*c).callbacks;
		i_2 = ((NI) 0);
		T6_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA8;
				key = colontmp_->data[i_2].Field0;
				value.ClE_0 = colontmp_->data[i_2].Field1.ClE_0;
				value.ClP_0 = colontmp_->data[i_2].Field1.ClP_0;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches_DNyphyeXZzYq1E2koHkmSA(s, key);
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_15));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				i -= ((NI) 1);
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_hVdlR9a2kD2smX3eFLy9c9akw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == NIM_NIL));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			result = ((*a)._Ukind.S4.sym == (*b)._Ukind.S4.sym);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			result = ((*(*a)._Ukind.S5.ident).Sup.id == (*(*b)._Ukind.S5.ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			result = ((*a)._Ukind.S1.intVal == (*b)._Ukind.S1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			result = ((*a)._Ukind.S2.floatVal == (*b)._Ukind.S2.floatVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			result = eqStrings((*a)._Ukind.S3.strVal, (*b)._Ukind.S3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4):
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T22_;
				NI T23_;
				T22_ = (NI)0;
				T22_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(a);
				T23_ = (NI)0;
				T23_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
				if (!(T22_ == T23_)) goto LA24_;
				{
					NI i;
					NI colontmp_;
					NI T27_;
					NI res;
					i = (NI)0;
					colontmp_ = (NI)0;
					T27_ = (NI)0;
					T27_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(a);
					colontmp_ = (NI)(T27_ - ((NI) 1));
					res = ((NI) 0);
					{
						while (1) {
							if (!(res <= colontmp_)) goto LA29;
							i = res;
							{
								NIM_BOOL T32_;
								T32_ = (NIM_BOOL)0;
								T32_ = sameConstant_hVdlR9a2kD2smX3eFLy9c9akw((*a)._Ukind.S6.sons->data[i], (*b)._Ukind.S6.sons->data[i]);
								if (!!(T32_)) goto LA33_;
								goto BeforeRet_;
							}
							LA33_: ;
							res += ((NI) 1);
						} LA29: ;
					}
				}
				result = NIM_TRUE;
			}
			LA24_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canonValue_kPhV2XlI349c9bDKTfBE4Bpw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (NI)0;
	result = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))%(sizeof(NU32)*8));
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = canonValue_kPhV2XlI349c9bDKTfBE4Bpw(n);
	add_gCCf68XrWL79bKes6htzFjQ((*c).constants, T1_);
	{
		NimStringDesc* T6_;
		if (!!((result < ((NI) 32767)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_16);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T6_);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genLiteral_PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant_hVdlR9a2kD2smX3eFLy9c9akw((*(*c).constants)._Ukind.S6.sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2(c, n);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genLit_AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, n);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), ((NI) ((*dest))), lit);
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	n = newNode_IgnRxkID5wXTWvTZf9ct0rA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4));
	asgnRefNoCycle((void**) (&(*n).typ), t);
	genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, patch_Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI p) {
	NI p_2;
	NI diff;
	NI T1_;
	NU32 oldInstr;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	diff = (NI)(T1_ - p_2);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_18);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	oldInstr = (*c).code->data[p_2];
	(*c).code->data[p_2] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32) ((NI)(diff + ((NI) 32768))))) << (NU32)(((NU32) 16))));
}

N_LIB_PRIVATE N_NIMCALL(void, genAndOr_blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI* dest) {
	NI L1;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, 0);
	L1 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, opc, ((NI) ((*dest))));
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 2)], dest, 0);
	patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L1);
}

N_LIB_PRIVATE N_NIMCALL(void, gABI_u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm) {
	{
		NIM_BOOL T3_;
		NU32 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32) ((NI64)(imm + IL64(128))))) << (NU32)(((NU32) 24))));
		asgnRefNoCycle((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRefNoCycle((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_19));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit_LFLaqthKyetOmkMUTXjz5g)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-128) <= (*n)._Ukind.S1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._Ukind.S1.intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
}

N_LIB_PRIVATE N_NIMCALL(void, genNarrow_fmIjfukTSo9aNQnYJr7iD1A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928592));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34));
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T12_)) goto LA13_;
		T12_ = ((*t).size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 87), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit_LFLaqthKyetOmkMUTXjz5g((*n)._Ukind.S6.sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)(opc + ((NI) 1)), ((NI) ((*dest))), tmp, (*(*n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S1.intVal);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow_fmIjfukTSo9aNQnYJr7iD1A(c, n, (*dest));
}

static N_INLINE(void, unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI x) {
	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_20));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, genIndex_DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		NI64 x;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(arr, IL64(36099165763184912));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*c).config, arr);
		T3_ = !((x == IL64(0)));
		LA5_: ;
		if (!T3_) goto LA6_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
		result = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 23), result, tmp, ((NI64) (((NI) (x)))));
	}
	goto LA1_;
	LA6_: ;
	{
		result = genx_CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genField_9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_21));
	}
	LA5_: ;
	s = (*n)._Ukind.S4.sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 255) < (*s).position)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_22));
appendString(T11_, (*(*s).name).s);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T11_);
	}
	LA9_: ;
	result = ((NI) ((*s).position));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, NI value) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le)._Ukind.S6.sons->data[((NI) 0)], 1);
		idx = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*le)._Ukind.S6.sons->data[((NI) 1)], (*(*le)._Ukind.S6.sons->data[((NI) 0)]).typ);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 11), dest, idx, value);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* left;
		NI dest_2;
		NI idx_2;
		{
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA5_;
			left = le;
		}
		goto LA3_;
		LA5_: ;
		{
			left = (*le)._Ukind.S6.sons->data[((NI) 0)];
		}
		LA3_: ;
		dest_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*left)._Ukind.S6.sons->data[((NI) 0)], 1);
		idx_2 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*left)._Ukind.S6.sons->data[((NI) 1)]);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, left, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), dest_2, idx_2, value);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		dest_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le)._Ukind.S6.sons->data[((NI) 0)], 1);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest_3, ((NI) 0), value);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T12_;
			NI dest_4;
			T12_ = (NIM_BOOL)0;
			T12_ = (((*(*le)._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T12_)) goto LA13_;
			T12_ = !(((*(*le)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
			LA13_: ;
			if (!T12_) goto LA14_;
			dest_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest_4, ((NI) 0), value);
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest_4);
		}
		LA14_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch_LFLaqthKyetOmkMUTXjz5g_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = (((*(*n)._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	T5_ = !(((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genType_H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI result;
	NI T10_;
	NI T11_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tySequence_Ef05srmQTDulnBdXR4Ja6Q* colontmp_;
		NI i_2;
		i = (NI)0;
		t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		colontmp_ = (tySequence_Ef05srmQTDulnBdXR4Ja6Q*)0;
		colontmp_ = (*c).types;
		i_2 = ((NI) 0);
		{
			while (1) {
				NI T4_;
				T4_ = (colontmp_ ? colontmp_->Sup.len : 0);
				if (!(i_2 < T4_)) goto LA3;
				i = i_2;
				t = colontmp_->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType_3isNyHKb0U1OCnClmflXSg(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	T10_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T10_;
	asgnRefNoCycle((void**) (&(*c).types), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3(&((*c).types)->Sup, (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
	T11_ = (*c).types->Sup.len++;
	asgnRefNoCycle((void**) (&(*c).types->data[T11_]), typ);
	{
		NimStringDesc* T16_;
		if (!!((result <= ((NI) 32767)))) goto LA14_;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_23);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T16_);
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genNew_Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch_LFLaqthKyetOmkMUTXjz5g_2((*n)._Ukind.S6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928592));
	T8_ = (NI)0;
	T8_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*T7_).sons->data[((NI) 0)]);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), dest, T8_);
	genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI dest;
	NI tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	t = (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch_LFLaqthKyetOmkMUTXjz5g_2((*n)._Ukind.S6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36239903259928592));
	T8_ = (NI)0;
	T8_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T7_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), dest, T8_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI tmp;
	NI T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	NI T3_;
	t = (*n).typ;
	tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
	T1_ = (NI)0;
	T1_ = genType_H4AMs0GuxljbeG3aMubkXA(c, t);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), T1_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), tmp, ((NI) 0));
	T2_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36239903259928592));
	T3_ = (NI)0;
	T3_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T2_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) ((*dest))), T3_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm) {
	NI tmp;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, opc, ((NI) ((*dest))), tmp, imm);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genSetType_gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184656));
	{
		NI T5_;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = (NI)0;
		T5_ = genType_H4AMs0GuxljbeG3aMubkXA(c, t);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 166), dest, T5_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCard_AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], tmp);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 29), ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrow_fmIjfukTSo9aNQnYJr7iD1A(c, n, (*dest));
}

N_LIB_PRIVATE N_NIMCALL(void, genNarrowU_fmIjfukTSo9aNQnYJr7iD1A_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928592));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88), ((NI) (dest)), ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrowU_fmIjfukTSo9aNQnYJr7iD1A_2(c, n, (*dest));
}

N_LIB_PRIVATE N_NIMCALL(void, genConv_3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	NI T13_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	NI T15_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n).typ).kind == (*(*arg).typ).kind);
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, arg, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, arg, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(1152921504606846976));
	T13_ = (NI)0;
	T13_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T12_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T13_);
	T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*arg).typ, IL64(1152921504606846976));
	T15_ = (NI)0;
	T15_ = genType_H4AMs0GuxljbeG3aMubkXA(c, T14_);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T15_);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], tmp);
	genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n)._Ukind.S6.sons->data[((NI) 2)], tmp2);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
}

N_LIB_PRIVATE N_NIMCALL(NI, getTempRange_ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ kind) {
	NI result;
	tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* c;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 40) <= (*c).maxSlots);
		if (T3_) goto LA4_;
		T3_ = (((NI) 255) <= (NI)((*c).maxSlots + n));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)((*c).maxSlots - n);
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					{
						if (!!((*c).slots[(i)- 0].Field0)) goto LA12_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								colontmp__2 = (NI)(i + ((NI) 1));
								colontmp__3 = (NI)((NI)(i + n) - ((NI) 1));
								res_2 = colontmp__2;
								{
									while (1) {
										if (!(res_2 <= colontmp__3)) goto LA17;
										j = res_2;
										{
											if (!(*c).slots[(j)- 0].Field0) goto LA20_;
											goto LA14;
										}
										LA20_: ;
										res_2 += ((NI) 1);
									} LA17: ;
								}
							}
							result = ((NI) (i));
							{
								NI k;
								NI colontmp__4;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								colontmp__4 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
								res_3 = ((NI) (result));
								{
									while (1) {
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA24;
										k = ((NI) (res_3));
										(*c).slots[(k)- 0].Field0 = NIM_TRUE;
										(*c).slots[(k)- 0].Field1 = kind;
										res_3 += ((NI) 1);
									} LA24: ;
								}
							}
							goto BeforeRet_;
						} LA14: ;
					}
					LA12_: ;
					res += ((NI) 1);
				} LA9: ;
			}
		}
	}
	LA5_: ;
	{
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T29_;
		if (!(((NI) 255) <= (NI)((*c).maxSlots + n))) goto LA27_;
		T29_ = bestEffort_ksz51PgYe1p3kSHo9bYSWlw(cc);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*cc).config, T29_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_10));
	}
	LA27_: ;
	result = ((NI) ((*c).maxSlots));
	(*c).maxSlots += n;
	{
		NI k_2;
		NI colontmp__5;
		NI res_4;
		k_2 = (NI)0;
		colontmp__5 = (NI)0;
		colontmp__5 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
		res_4 = ((NI) (result));
		{
			while (1) {
				if (!(res_4 <= ((NI) (colontmp__5)))) goto LA32;
				k_2 = ((NI) (res_4));
				(*c).slots[(k_2)- 0].Field0 = NIM_TRUE;
				(*c).slots[(k_2)- 0].Field1 = kind;
				res_4 += ((NI) 1);
			} LA32: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, gen_KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI d;
	d = ((NI) (dest));
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), flags);
}

N_LIB_PRIVATE N_NIMCALL(void, freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n) {
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = ((NI) ((NI)((NI)(((NI) (start)) + n) - ((NI) 1))));
		res = ((NI) (start));
		{
			while (1) {
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				i = ((NI) (res));
				freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, i);
				res += ((NI) 1);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI x;
	NI T6_;
	NI T11_;
	NI T12_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, (NI)(T6_ - ((NI) 1)), ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 6));
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		colontmp_ = (NI)(T8_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				NI r;
				if (!(res <= colontmp_)) goto LA10;
				i = res;
				r = ((NI) ((NI)((NI)(((NI) (x)) + i) - ((NI) 1))));
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n)._Ukind.S6.sons->data[i], r, 0);
				res += ((NI) 1);
			} LA10: ;
		}
	}
	T11_ = (NI)0;
	T11_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), x, ((NI) ((NI)(T11_ - ((NI) 1)))));
	T12_ = (NI)0;
	T12_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ(c, x, T12_);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	NI dest;
	NI tmp;
	x = (*n)._Ukind.S6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		x = (*x)._Ukind.S6.sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI tmp;
	NI tmp2;
	NI tmp3;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	tmp3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp3);
}

N_LIB_PRIVATE N_NIMCALL(void, genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opcode) {
	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, dest);
	tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	tmp3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 3)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp1);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp3);
}

N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	NI dest;
	NI tmp;
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

static N_INLINE(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**, X5BX5D__YLEY3nLpUU2onE02S2OSlgast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
	result = &s[(NI)(sLen_0 - i)];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBindSym_AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (!((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
			idx = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, (*n)._Ukind.S6.sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 164), ((NI) ((*dest))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_28));
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** T28_;
		NI tmp2;
		NI T29_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** T30_;
		NI T31_;
		NI T32_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T22_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
		tmp0 = ((NI) (x));
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*n)._Ukind.S6.sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			colontmp_ = (NI)(T24_ - ((NI) 2));
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					r = ((NI) ((NI)(((NI) (x)) + i)));
					gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n)._Ukind.S6.sons->data[i], r, 0);
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		tmp1 = ((NI) ((NI)((NI)(((NI) (x)) + T27_) - ((NI) 2))));
		T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
		T28_ = X5BX5D__YLEY3nLpUU2onE02S2OSlgast((*n)._Ukind.S6.sons->data, ((*n)._Ukind.S6.sons ? (*n)._Ukind.S6.sons->Sup.len : 0), ((NI) 2));
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*T28_), (&tmp1));
		T29_ = (NI)0;
		T29_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		tmp2 = ((NI) ((NI)((NI)(((NI) (x)) + T29_) - ((NI) 1))));
		T30_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw**)0;
		T30_ = X5BX5D__YLEY3nLpUU2onE02S2OSlgast((*n)._Ukind.S6.sons->data, ((*n)._Ukind.S6.sons ? (*n)._Ukind.S6.sons->Sup.len : 0), ((NI) 1));
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, (*T30_), (&tmp2));
		T31_ = (NI)0;
		T31_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 165), ((NI) ((*dest))), x, ((NI) (T31_)));
		T32_ = (NI)0;
		T32_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ(c, x, T32_);
	}
	LA1_: ;
}

static N_INLINE(NIM_BOOL, isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCall_AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI x;
	NI T9_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fntyp;
	NI T31_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	T9_ = (NI)0;
	T9_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T9_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
	fntyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				if (!(i_2 < colontmp_)) goto LA12;
				i = i_2;
				r = ((NI) ((NI)(((NI) (x)) + i)));
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n)._Ukind.S6.sons->data[i], r, 0);
				{
					NI T15_;
					NI T23_;
					T15_ = (NI)0;
					T15_ = len_SWFNCiWYB89bTUPh5KptkvA_2(fntyp);
					if (!(T15_ <= i)) goto LA16_;
					{
						NimStringDesc* T22_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA20_;
						T22_ = (NimStringDesc*)0;
						T22_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_35);
						internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T22_);
					}
					LA20_: ;
					T23_ = (NI)0;
					T23_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._Ukind.S6.sons->data[i]).typ);
					gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 166), r, T23_);
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA12: ;
		}
	}
	{
		NI T28_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA26_;
		T28_ = (NI)0;
		T28_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 139), ((NI) 0), x, ((NI) (T28_)));
	}
	goto LA24_;
	LA26_: ;
	{
		NI T30_;
		T30_ = (NI)0;
		T30_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 140), ((NI) ((*dest))), x, ((NI) (T30_)));
	}
	LA24_: ;
	T31_ = (NI)0;
	T31_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ(c, x, T31_);
}

N_LIB_PRIVATE N_NIMCALL(void, genMagic_5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	switch (m) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	{
		genAndOr_blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147), dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		genAndOr_blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146), dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		NI tmp;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NI T8_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA6_;
			T8_ = (NI)0;
			T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T8_));
		}
		LA6_: ;
		gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 23), ((NI) ((*dest))), tmp, IL64(1));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 53):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 48):
	{
		genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 22));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 47):
	{
		genAddSubInt_ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 20));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc;
		NI d;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28))) goto LA14_;
			opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 20);
		}
		goto LA12_;
		LA14_: ;
		{
			opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 22);
		}
		LA12_: ;
		d = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = isInt8Lit_LFLaqthKyetOmkMUTXjz5g((*n)._Ukind.S6.sons->data[((NI) 2)]);
			if (!T19_) goto LA20_;
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)(opc + ((NI) 1)), d, d, (*(*n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S1.intVal);
		}
		goto LA17_;
		LA20_: ;
		{
			NI tmp_2;
			tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, d, d, tmp_2);
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
		}
		LA17_: ;
		genNarrow_fmIjfukTSo9aNQnYJr7iD1A(c, (*n)._Ukind.S6.sons->data[((NI) 1)], ((NI) (d)));
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], d);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNew_Y59crI4YgTHHCWclw3gn72A_2(c, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNewSeq_Y59crI4YgTHHCWclw3gn72A_3(c, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	{
		genNewSeqOfCap_AcnszMkIUvrpRfWF4iqy5g_2(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 145));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 165):
	{
		NI T29_;
		NI tmp_3;
		T29_ = (NI)0;
		T29_ = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, T29_);
		tmp_3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), tmp_3, ((NI) 0));
		{
			NI T34_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA32_;
			T34_ = (NI)0;
			T34_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T34_));
		}
		LA32_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 145), ((NI) ((*dest))), tmp_3, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 24), IL64(0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 25), IL64(0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	{
		NI d_2;
		NI tmp_4;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T38_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		d_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		genSetType_gvhAyRL9bUcZODometR9bicw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], d_2);
		T38_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41))) goto LA41_;
			T38_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 26);
		}
		goto LA39_;
		LA41_: ;
		{
			T38_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 28);
		}
		LA39_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, T38_, d_2, tmp_4, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, d_2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_4);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	{
		genCard_AcnszMkIUvrpRfWF4iqy5g_3(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 49):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 30));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 50):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 31));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 51):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 32));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 54):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 33));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 55):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 34));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 56):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 35));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 57):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 36));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		NI tmp_5;
		NI tmp2;
		t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928592));
		tmp_5 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			if (!((*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*t).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32) && (*t).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34))) goto LA55_;
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88), tmp_5, ((NI) ((NI64)((*t).size * IL64(8)))), ((NI) 0));
		}
		LA55_: ;
		tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			T61_ = (NI)0;
			T61_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 37), ((NI) ((*dest))), tmp_5, tmp2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_5);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 59):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 38));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 60):
	{
		genBinaryABCnarrow_ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 39));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 61):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 40));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 62):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 41));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 63):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 42));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 68):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 43));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 69):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 44));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 70):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 45));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 71):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 46));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 72):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 47));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 86):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 48));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 90):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 49));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 91):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 50));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 76):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 51));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 77):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 52));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 78):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 53));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 81):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 54));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 82):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 55));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 93):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 56));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96):
	{
		genBinaryABCnarrowU_ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 59));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 60));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 100):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 61));
		genNarrow_fmIjfukTSo9aNQnYJr7iD1A(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 106):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 62));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 105):
	{
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 63));
		genNarrowU_fmIjfukTSo9aNQnYJr7iD1A_2(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 118):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 119):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 84));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 108):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 109):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 111):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 112):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 113):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		NI tmp_6;
		t_2 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928592));
		tmp_6 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88), tmp_6, ((NI) ((NI64)((*t_2).size * IL64(8)))), ((NI) 0));
		{
			NI T93_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA91_;
			T93_ = (NI)0;
			T93_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T93_));
		}
		LA91_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp_6, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_6);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 114):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 115):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 116):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_3;
		NI tmp_7;
		t_3 = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928592));
		tmp_7 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NI T99_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA97_;
			T99_ = (NI)0;
			T99_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T99_));
		}
		LA97_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 170), ((NI) ((*dest))), tmp_7, ((NI) ((NI64)((*t_3).size * IL64(8)))));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_7);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 97):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 64));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 65));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 66));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 67));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 68));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 69));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 70));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 71));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 72));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 73));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	{
		genVarargsABC_ZyWouE89b9cXkDK7i39aj0dwg_7(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 74));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		genBinarySet_ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 75));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 152):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 76));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
	{
		NI tmp_8;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		tmp_8 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 86), tmp_8, ((NI) 0), ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_8);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	{
		NI d_3;
		NI tmp_9;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T115_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		d_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp_9 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		T115_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154))) goto LA118_;
			T115_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 77);
		}
		goto LA116_;
		LA118_: ;
		{
			T115_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 78);
		}
		LA116_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, T115_, d_3, tmp_9, ((NI) 0));
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], d_3);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 159):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T122_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T128_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		T122_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			if (!((*c).prc == NIM_NIL)) goto LA125_;
			T122_ = (*c).module;
		}
		goto LA123_;
		LA125_: ;
		{
			T122_ = (*(*c).prc).sym;
		}
		LA123_: ;
		T128_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T128_ = lowerSwap_T5SG2LMxpDuzIR4uljA0pw((*c).graph, n, T122_);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, T128_, 0);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 79));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	{
		NI tmp1;
		NI tmp2_2;
		NI tmp3;
		{
			NI T135_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA133_;
			T135_ = (NI)0;
			T135_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T135_));
		}
		LA133_: ;
		tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp2_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		tmp3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 25), tmp3, tmp1, ((NI) 0));
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 82), ((NI) ((*dest))), tmp1, tmp2_2);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 82), tmp3, ((NI) 0), ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp1);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2_2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp3);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	{
		NI tmp1_2;
		NI tmp2_3;
		NI tmp3_2;
		{
			NI T141_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA139_;
			T141_ = (NI)0;
			T141_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T141_));
		}
		LA139_: ;
		tmp1_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp2_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		tmp3_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 3)], 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 82), ((NI) ((*dest))), tmp1_2, tmp2_3);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 82), tmp3_2, ((NI) 0), ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp1_2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2_3);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp3_2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 166):
	{
		NI d2;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* d2AsNode;
		NI tmp1_3;
		NI tmp3_3;
		{
			NI T147_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA145_;
			T147_ = (NI)0;
			T147_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T147_));
		}
		LA145_: ;
		d2 = (NI)0;
		d2AsNode = (*(*n)._Ukind.S6.sons->data[((NI) 2)])._Ukind.S6.sons->data[((NI) 0)];
		{
			NIM_BOOL T150_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T153_;
			T150_ = (NIM_BOOL)0;
			T150_ = needsAsgnPatch_LFLaqthKyetOmkMUTXjz5g_2(d2AsNode);
			if (!T150_) goto LA151_;
			T153_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T153_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36));
			d2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, T153_);
		}
		goto LA148_;
		LA151_: ;
		{
			d2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, d2AsNode, 0);
		}
		LA148_: ;
		tmp1_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp3_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 3)], 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 83), ((NI) ((*dest))), tmp1_3, d2);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 83), tmp3_3, ((NI) 0), ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp1_3);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp3_3);
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, d2AsNode, d2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, d2);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 169):
	{
		NI d_4;
		NI T156_;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		d_4 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		T156_ = (NI)0;
		T156_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), d_4, T156_);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), d_4, ((NI) (d_4)));
		genAsgnPatch_j7RN6Eyu9arvNrSkBc4hNHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], d_4);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 11):
	{
		NI tmp_10;
		NI idx;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T163_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		NI T168_;
		tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T169_;
		{
			NI T162_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA160_;
			T162_ = (NI)0;
			T162_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T162_));
		}
		LA160_: ;
		tmp_10 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		T163_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T163_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		idx = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, T163_);
		typ = (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12))) goto LA166_;
			typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36239903266220304));
		}
		LA166_: ;
		T168_ = (NI)0;
		T168_ = genType_H4AMs0GuxljbeG3aMubkXA(c, typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), idx, T168_);
		T169_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12))) goto LA172_;
			T169_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 80);
		}
		goto LA170_;
		LA172_: ;
		{
			T169_ = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 81);
		}
		LA170_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, T169_, ((NI) ((*dest))), tmp_10, idx);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_10);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, idx);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	{
		NimStringDesc* T176_;
		NimStringDesc* T177_;
		T176_ = (NimStringDesc*)0;
		T177_ = (NimStringDesc*)0;
		T177_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		T176_ = rawNewString((T177_ ? T177_->Sup.len : 0) + 22);
appendString(T176_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_24));
appendString(T176_, T177_);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T176_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	{
		NI tmp_11;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T184_;
		{
			NI T183_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA181_;
			T183_ = (NI)0;
			T183_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T183_));
		}
		LA181_: ;
		tmp_11 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		T184_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T184_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928592));
		switch ((*T184_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 25), ((NI) ((*dest))), tmp_11, IL64(1));
		}
		break;
		default:
		{
			gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 24), ((NI) ((*dest))), tmp_11, IL64(1));
		}
		break;
		}
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_11);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 18):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		n_2 = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*n)._Ukind.S6.sons->data[((NI) 1)]);
		{
			NI x;
			NI T192_;
			NI T196_;
			NI T197_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA190_;
			T192_ = (NI)0;
			T192_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n_2);
			x = getTempRange_ok9afQwIXe7dJAeeWPGODEA(c, T192_, ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						if (!(i_2 < colontmp_)) goto LA195;
						i = i_2;
						r = ((NI) ((NI)(((NI) (x)) + i)));
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n_2)._Ukind.S6.sons->data[i], r, 0);
						i_2 += ((NI) 1);
					} LA195: ;
				}
			}
			T196_ = (NI)0;
			T196_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n_2);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n_2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 138), x, ((NI) (T196_)), ((NI) 0));
			T197_ = (NI)0;
			T197_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n_2);
			freeTempRange_j8RNzfXSeb6WD2DY89aS59bQ(c, x, T197_);
		}
		LA190_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 147):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 89));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 90));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 149):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar_K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 91));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 23):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 127));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 24):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 128));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 10):
	{
		NI tmp_12;
		NI T209_;
		tmp_12 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NI T208_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA206_;
			T208_ = (NI)0;
			T208_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T208_));
		}
		LA206_: ;
		T209_ = (NI)0;
		T209_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 166), tmp_12, T209_);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 167), ((NI) ((*dest))), tmp_12, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_12);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 20):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 125));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 21):
	{
		genBinaryABCD_ZyWouE89b9cXkDK7i39aj0dwg_8(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 126));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 231):
	{
		genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 24), IL64(16));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 273):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 137));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 286):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 171));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 232):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 142));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 233):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 143));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 236):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 112));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 234):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 93));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 235):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 94));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 237):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 95));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 238):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 96));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 239):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 114));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 240):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 115));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 241):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 116));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 242):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 117));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 243):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 118));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 244):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 119));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 245):
	{
		genVoidABC_bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 120));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 246):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 121));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 247):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 122));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 248):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 123));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 249):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 124));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 250):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 97));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 251):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 98));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 252):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 99));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 253):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 100));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 254):
	{
		NI tmp_13;
		NI rc;
		tmp_13 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		{
			NI T242_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA240_;
			T242_ = (NI)0;
			T242_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T242_));
		}
		LA240_: ;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_25))) goto LA243_;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_26))) goto LA244_;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_27))) goto LA245_;
		goto LA246_;
		LA243_: ;
		{
			rc = ((NI) 0);
		}
		goto LA247_;
		LA244_: ;
		{
			rc = ((NI) 1);
		}
		goto LA247_;
		LA245_: ;
		{
			rc = ((NI) 2);
		}
		goto LA247_;
		LA246_: ;
		{
			rc = ((NI) 3);
		}
		LA247_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 101), ((NI) ((*dest))), tmp_13, ((NI) (rc)));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_13);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 255):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 102));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 256):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 103));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 257):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 104));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 258):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 105));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 259):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 106));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 260):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 107));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 261):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 108));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 263):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 109));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 264):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 110));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 265):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 111));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 267):
	{
		genBindSym_AcnszMkIUvrpRfWF4iqy5g_4(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 266):
	{
		genUnaryABC_ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 136));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 270):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 135));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 271):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 57));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 272):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 58));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 262):
	{
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_29))) goto LA268_;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_30))) goto LA269_;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_31))) goto LA270_;
		if (eqStrings((*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_32))) goto LA271_;
		goto LA272_;
		LA268_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 133), IL64(0));
		}
		goto LA273_;
		LA269_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 133), IL64(1));
		}
		goto LA273_;
		LA270_: ;
		{
			genUnaryABI_lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 133), IL64(2));
		}
		goto LA273_;
		LA271_: ;
		{
			{
				NI T280_;
				NimStringDesc* T283_;
				T280_ = (NI)0;
				T280_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
				if (!!((T280_ == ((NI) 3)))) goto LA281_;
				T283_ = (NimStringDesc*)0;
				T283_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_33);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T283_);
			}
			LA281_: ;
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 134));
		}
		goto LA273_;
		LA272_: ;
		{
			{
				NimStringDesc* T289_;
				if (!NIM_TRUE) goto LA287_;
				T289_ = (NimStringDesc*)0;
				T289_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_34);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T289_);
			}
			LA287_: ;
		}
		LA273_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 275):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 132));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 276):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 131));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 277):
	{
		{
			NI T295_;
			T295_ = (NI)0;
			T295_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!(T295_ <= ((NI) 1))) goto LA296_;
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 129), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
		}
		goto LA293_;
		LA296_: ;
		{
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt_K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 130));
		}
		LA293_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 269):
	{
		{
			NI T304_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA302_;
			T304_ = (NI)0;
			T304_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T304_));
		}
		LA302_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 144), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 274):
	{
		genBinaryABC_ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 113));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 64):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 65):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 107):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 66):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 67):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 25):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
		{
			NI T310_;
			T310_ = (NI)0;
			T310_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			if (!!((T310_ == ((NI) 2)))) goto LA311_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_36));
		}
		LA311_: ;
		arg = (*n)._Ukind.S6.sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA315_;
			{
				NI T321_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA319_;
				T321_ = (NI)0;
				T321_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T321_));
			}
			LA319_: ;
			genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, arg, dest);
		}
		goto LA313_;
		LA315_: ;
		{
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_37));
		}
		LA313_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 283):
	{
	}
	break;
	default:
	{
		NimStringDesc* T325_;
		T325_ = (NimStringDesc*)0;
		T325_ = rawNewString((reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 26);
appendString(T325_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_17));
appendString(T325_, reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T325_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches_slP08oRO7mZMbr9brMeWb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0) {
	NIM_BOOL result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
{	result = (NIM_BOOL)0;
	s_2 = s;
	L = (NI)(yLen_0 - ((NI) 1));
	{
		while (1) {
			if (!(((NI) 0) <= L)) goto LA2;
			{
				NIM_BOOL T5_;
				NIM_BOOL T7_;
				NI T8_;
				T5_ = (NIM_BOOL)0;
				T5_ = (s_2 == NIM_NIL);
				if (T5_) goto LA6_;
				T7_ = (NIM_BOOL)0;
				T8_ = (NI)0;
				T8_ = nsuCmpIgnoreStyle(y[L], (*(*s_2).name).s);
				T7_ = !((T8_ == ((NI) 0)));
				if (!(T7_)) goto LA9_;
				T7_ = !(eqStrings(y[L], ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_14)));
				LA9_: ;
				T5_ = T7_;
				LA6_: ;
				if (!T5_) goto LA10_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA10_: ;
			{
				if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0)) goto LA14_;
				s_2 = (*(*s_2).owner).owner;
			}
			goto LA12_;
			LA14_: ;
			{
				s_2 = (*s_2).owner;
			}
			LA12_: ;
			L -= ((NI) 1);
		} LA2: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 168), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 168), ((NI) 0), T6_);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 169), ((NI) 0), T6_);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
}

static N_INLINE(void, clearDest_runukDxAwbxjel2eQG9aJNgvmgen)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, ((NI) ((*dest))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit_LFLaqthKyetOmkMUTXjz5g_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-32768) <= (*n)._Ukind.S1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._Ukind.S1.intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp_gEbQtLj9bwLCOro9ayBul9bJw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	T1_ = (((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(dest)- 0].Field1);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isTemp_gEbQtLj9bwLCOro9ayBul9bJw(c, ((NI) (dest)));
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*n).typ);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, n, opc, dest, idx, value);
	}
	goto LA1_;
	LA7_: ;
	{
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, dest, idx, value);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		NI tmp;
		dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le)._Ukind.S6.sons->data[((NI) 0)], 1);
		idx = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*le)._Ukind.S6.sons->data[((NI) 1)], (*(*le)._Ukind.S6.sons->data[((NI) 0)]).typ);
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*le)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772621840));
			if (!((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29))) goto LA5_;
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 18), dest, idx, tmp);
		}
		goto LA2_;
		LA5_: ;
		{
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 11), dest, idx, tmp);
		}
		LA2_: ;
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* left;
		NI dest_2;
		NI idx_2;
		NI tmp_2;
		{
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA11_;
			left = le;
		}
		goto LA9_;
		LA11_: ;
		{
			left = (*le)._Ukind.S6.sons->data[((NI) 0)];
		}
		LA9_: ;
		dest_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*left)._Ukind.S6.sons->data[((NI) 0)], 1);
		idx_2 = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*left)._Ukind.S6.sons->data[((NI) 1)]);
		tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, left, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13), dest_2, idx_2, tmp_2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		NI tmp_3;
		dest_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*le)._Ukind.S6.sons->data[((NI) 0)], 1);
		tmp_3 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), dest_3, ((NI) 0), tmp_3);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_3);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*le)._Ukind.S4.sym;
		checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, le);
		{
			NIM_BOOL T18_;
			NI tmp_4;
			NI val;
			T18_ = (NIM_BOOL)0;
			T18_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T18_)) goto LA19_;
			T18_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
			LA19_: ;
			if (!T18_) goto LA20_;
			tmp_4 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
			gen_KQ9csS06JMUvwHLxUYEy8rA(c, le, tmp_4, 2);
			val = genx_CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
			preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), tmp_4, ((NI) 0), val);
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, val);
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_4);
		}
		goto LA16_;
		LA20_: ;
		{
			NI dest_4;
			{
				if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21))) goto LA25_;
				setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
			}
			LA25_: ;
			{
				NIM_BOOL T29_;
				NIM_BOOL T31_;
				NimStringDesc* T35_;
				T29_ = (NIM_BOOL)0;
				T29_ = (((NI) 0) < (*s).position);
				if (T29_) goto LA30_;
				T31_ = (NIM_BOOL)0;
				T31_ = ((*s).position == ((NI) 0));
				if (!(T31_)) goto LA32_;
				T31_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA32_: ;
				T29_ = T31_;
				LA30_: ;
				if (!!(T29_)) goto LA33_;
				T35_ = (NimStringDesc*)0;
				T35_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_46);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T35_);
			}
			LA33_: ;
			dest_4 = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3)))));
			{
				NIM_BOOL T38_;
				NIM_BOOL T39_;
				NIM_BOOL T40_;
				NIM_BOOL T42_;
				NI cc;
				tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T46_;
				T38_ = (NIM_BOOL)0;
				T39_ = (NIM_BOOL)0;
				T40_ = (NIM_BOOL)0;
				T40_ = isTemp_gEbQtLj9bwLCOro9ayBul9bJw(c, ((NI) (dest_4)));
				T39_ = !(T40_);
				if (!(T39_)) goto LA41_;
				T42_ = (NIM_BOOL)0;
				T42_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*le).typ);
				T39_ = !(T42_);
				LA41_: ;
				T38_ = T39_;
				if (!(T38_)) goto LA43_;
				T38_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA43_: ;
				if (!T38_) goto LA44_;
				cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, ri, cc, 0);
				T46_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
				T46_ = whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw(le);
				gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, le, T46_, dest_4, cc, ((NI) 1));
				freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
			}
			goto LA36_;
			LA44_: ;
			{
				gen_KQ9csS06JMUvwHLxUYEy8rA(c, ri, dest_4, 0);
			}
			LA36_: ;
		}
		LA16_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
		genAsgn_9c4eyEUpcv8lGnjrHcs6fgw(c, ((NI) (dest_5)), ri, requiresCopy);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], flags);
	b = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*n)._Ukind.S6.sons->data[((NI) 1)]);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 12), cc, a, b);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 12), ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, a);
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_3(c, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, flags);
}

N_LIB_PRIVATE N_NIMCALL(void, genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI a;
	NI b;
	a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], flags);
	b = genIndex_DPfOz7YYSBixDRy9cYPeZIA(c, (*n)._Ukind.S6.sons->data[((NI) 1)], (*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, cc, a, b);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, opc, ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, a);
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, b);
}

N_LIB_PRIVATE N_NIMCALL(void, genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag arrayType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772621840));
	arrayType = (*T1_).kind;
	{
		if (!(arrayType == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28) || arrayType == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29))) goto LA4_;
		genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 19), 0);
	}
	goto LA2_;
	LA4_: ;
	{
		if (!(arrayType == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA7_;
		genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	goto LA2_;
	LA7_: ;
	{
		genArrAccess2_zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 10), flags);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection_LFLaqthKyetOmkMUTXjz5g_4)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165763184656));
	result = ((*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genDeref_6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection_LFLaqthKyetOmkMUTXjz5g_4((*n)._Ukind.S6.sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 16), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((3 & flags) == 0);
			if (!(T20_)) goto LA21_;
			T20_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*n).typ);
			LA21_: ;
			if (!T20_) goto LA22_;
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 9), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA22_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, canElimAddr_kPhV2XlI349c9bDKTfBE4Bpw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
		m = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA4_;
			result = copyNode_lz8T1F9c0YwEOpUnrAUYgjg((*n)._Ukind.S6.sons->data[((NI) 0)]);
			add_gCCf68XrWL79bKes6htzFjQ(result, (*m)._Ukind.S6.sons->data[((NI) 0)]);
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m_2;
		m_2 = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA9_;
			result = copyNode_lz8T1F9c0YwEOpUnrAUYgjg((*n)._Ukind.S6.sons->data[((NI) 0)]);
			add_gCCf68XrWL79bKes6htzFjQ(result, (*m_2)._Ukind.S6.sons->data[((NI) 0)]);
		}
		LA9_: ;
	}
	break;
	default:
	{
		{
			if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA14_;
			result = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)];
		}
		LA14_: ;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal_LFLaqthKyetOmkMUTXjz5g_5)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*(*n)._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = !(((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddr_6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ af;
	tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ newflags;
{	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
		m = canElimAddr_kPhV2XlI349c9bDKTfBE4Bpw_2(n);
		if (!!((m == NIM_NIL))) goto LA3_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		af = 1;
	}
	goto LA5_;
	LA7_: ;
	{
		af = 2;
	}
	LA5_: ;
	newflags = ((flags & ~ 3) | af);
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = isGlobal_LFLaqthKyetOmkMUTXjz5g_5((*n)._Ukind.S6.sons->data[((NI) 0)]);
		if (!T12_) goto LA13_;
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, (flags | af));
	}
	goto LA10_;
	LA13_: ;
	{
		NI tmp;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], newflags);
		{
			NI T20_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA18_;
			T20_ = (NI)0;
			T20_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T20_));
		}
		LA18_: ;
		{
			if (!(((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(tmp)- 0].Field1)) goto LA23_;
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 15), ((NI) ((*dest))), tmp, ((NI) 0));
			(*(*c).prc).slots[(tmp)- 0].Field1 = ((tyEnum_TSlotKind_QOyrDzzey9cf6gDtSRPuZMQ) 8);
		}
		goto LA21_;
		LA23_: ;
		{
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 14), ((NI) ((*dest))), tmp, ((NI) 0));
		}
		LA21_: ;
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	LA10_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr_LFLaqthKyetOmkMUTXjz5g_6)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	T2_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102));
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genIf_AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T10_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T10_ = (NI)0;
		T10_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		colontmp_ = (NI)(T10_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA12;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI T15_;
					NI tmp;
					NI elsePos;
					T15_ = (NI)0;
					T15_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T15_ == ((NI) 2))) goto LA16_;
					tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*it)._Ukind.S6.sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T20_;
						T20_ = (NIM_BOOL)0;
						T20_ = isNotOpr_LFLaqthKyetOmkMUTXjz5g_6((*it)._Ukind.S6.sons->data[((NI) 0)]);
						if (!T20_) goto LA21_;
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)], tmp, 0);
						elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146), tmp);
					}
					goto LA18_;
					LA21_: ;
					{
						gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*it)._Ukind.S6.sons->data[((NI) 0)], tmp, 0);
						elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*it)._Ukind.S6.sons->data[((NI) 0)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147), tmp);
					}
					LA18_: ;
					freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
					clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it)._Ukind.S6.sons->data[((NI) 1)], dest, 0);
					{
						NI T26_;
						NI T29_;
						NI T30_;
						T26_ = (NI)0;
						T26_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
						if (!(i < (NI)(T26_ - ((NI) 1)))) goto LA27_;
						T29_ = (NI)0;
						T29_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, (*it)._Ukind.S6.sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3(&(endings)->Sup, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA27_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				goto LA13_;
				LA16_: ;
				{
					clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it)._Ukind.S6.sons->data[((NI) 0)], dest, 0);
				}
				LA13_: ;
				res += ((NI) 1);
			} LA12: ;
		}
	}
	{
		NI endPos;
		NI i_2;
		NI L;
		NI T33_;
		endPos = (NI)0;
		i_2 = ((NI) 0);
		T33_ = (endings ? endings->Sup.len : 0);
		L = T33_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA35;
				endPos = endings->data[i_2];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				i_2 += ((NI) 1);
			} LA35: ;
		}
	}
	clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genCase_AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ);
	gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*n)._Ukind.S6.sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*it)._Ukind.S6.sons->data[((NI) 0)], dest, 0);
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T21_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T22_;
					b = rawGenLiteral_PEuKCZcy9a56kIfBOLoHU5Q_2(c, it);
					gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 150), tmp, b);
					T21_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
					elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, T21_, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147), tmp);
					T22_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, T22_, dest, 0);
					{
						NI T25_;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T28_;
						NI T29_;
						NI T30_;
						T25_ = (NI)0;
						T25_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
						if (!(i < (NI)(T25_ - ((NI) 1)))) goto LA26_;
						T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T28_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
						T29_ = (NI)0;
						T29_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, T28_, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3(&(endings)->Sup, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA26_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				LA15_: ;
				clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
				i_2 += ((NI) 1);
			} LA14: ;
		}
	}
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA34;
				endPos = endings->data[i_3];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				i_3 += ((NI) 1);
			} LA34: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, genLabel_zuqGtZBPLOoAJeBtKlTOOg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue_LFLaqthKyetOmkMUTXjz5g_7)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = !(((*(*n)._Ukind.S4.sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	T7_ = !(((*n)._Ukind.S1.intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, jmpBack_fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI p) {
	NI dist;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	dist = (NI)(p - T1_);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_49);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 149), ((NI) 0), dist);
}

N_LIB_PRIVATE N_NIMCALL(void, popBlock_NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen) {
	{
		NI f;
		tySequence_qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI)0;
		colontmp_ = (tySequence_qwqHTkRvwhrRyENtudHQ7g*)0;
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				f = colontmp_->data[i];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, f);
				i += ((NI) 1);
			} LA4: ;
		}
	}
	asgnRefNoCycle((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) setLengthSeqV2(&((*(*c).prc).blocks)->Sup, (&NTI_JokFGfUW6i9b6aeU7xu6xBw_), ((NI) (oldLen))));
}

N_LIB_PRIVATE N_NIMCALL(void, genWhile_Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI L1;
	NI oldLen;
	NI T1_;
	NI T2_;
	L1 = genLabel_zuqGtZBPLOoAJeBtKlTOOg(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRefNoCycle((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3(&((*(*c).prc).blocks)->Sup, (&NTI_JokFGfUW6i9b6aeU7xu6xBw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRefNoCycle((void**) (&(*(*c).prc).blocks->data[T2_].label), TM_24XApAWKNvaMkcyklm8bNA_47.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM_24XApAWKNvaMkcyklm8bNA_47.fixups, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue_LFLaqthKyetOmkMUTXjz5g_7((*n)._Ukind.S6.sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI L2;
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr_LFLaqthKyetOmkMUTXjz5g_6((*n)._Ukind.S6.sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)], 0);
		L2 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146), tmp);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI L2_2;
		tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], 0);
		L2_2 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147), tmp_2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		jmpBack_fa43TdCtd4zzHAl8LQTOIA(c, n, L1);
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, L2_2);
	}
	LA3_: ;
	popBlock_NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
}

N_LIB_PRIVATE N_NIMCALL(void, genBlock_AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI oldLen;
	NI T1_;
	tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ T2_;
	NI T3_;
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock_2tJGcW69ahqq39a9bVJC1sqGQ));
	T2_.label = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
	T2_.fixups = NIM_NIL;
	asgnRefNoCycle((void**) (&(*(*c).prc).blocks), (tySequence_JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3(&((*(*c).prc).blocks)->Sup, (&NTI_JokFGfUW6i9b6aeU7xu6xBw_)));
	T3_ = (*(*c).prc).blocks->Sup.len++;
	asgnRefNoCycle((void**) (&(*(*c).prc).blocks->data[T3_].label), T2_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T3_].fixups), T2_.fixups, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, 0);
	popBlock_NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
	clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genReturn_Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genRaise_Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI dest;
	dest = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 141), dest, ((NI) 0), ((NI) 0));
	freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, dest);
}

N_LIB_PRIVATE N_NIMCALL(void, genBreak_Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI L1;
{	L1 = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0));
	{
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			colontmp_ = (NI)(T6_ - ((NI) 1));
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if (!((*(*c).prc).blocks->data[i].label == (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym)) goto LA11_;
						asgnRefNoCycle((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3(&((*(*c).prc).blocks->data[i].fixups)->Sup, (&NTI_qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = L1;
						goto BeforeRet_;
					}
					LA11_: ;
					res -= ((NI) 1);
				} LA8: ;
			}
		}
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_50));
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		asgnRefNoCycle((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3(&((*(*c).prc).blocks->data[T15_].fixups)->Sup, (&NTI_qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = L1;
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTry_AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tySequence_qwqHTkRvwhrRyENtudHQ7g* endings;
	NI elsePos;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	elsePos = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 151), ((NI) 0));
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, 0);
	clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
	patch_Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI blen;
					NI endExcept;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T24_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA14_;
					blen = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(it);
					endExcept = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 152), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI res;
						j = (NI)0;
						colontmp__2 = (NI)0;
						colontmp__2 = (NI)(blen - ((NI) 2));
						res = ((NI) 0);
						{
							while (1) {
								tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
								NI T19_;
								if (!(res <= colontmp__2)) goto LA18;
								j = res;
								typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*it)._Ukind.S6.sons->data[j]).typ, IL64(36239903266220048));
								T19_ = (NI)0;
								T19_ = genType_H4AMs0GuxljbeG3aMubkXA(c, typ);
								gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 152), ((NI) 0), T19_);
								res += ((NI) 1);
							} LA18: ;
						}
					}
					{
						if (!(blen == ((NI) 1))) goto LA22_;
						gABx_aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 152), ((NI) 0), ((NI) 0));
					}
					LA22_: ;
					T24_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T24_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
					gen_6vrKVoM8aZ4Rjealu5DZbw(c, T24_, dest, 0);
					clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
					{
						NI T27_;
						NI T30_;
						NI T31_;
						T27_ = (NI)0;
						T27_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
						if (!(i < (NI)(T27_ - ((NI) 1)))) goto LA28_;
						T30_ = (NI)0;
						T30_ = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0));
						endings = (tySequence_qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3(&(endings)->Sup, (&NTI_qwqHTkRvwhrRyENtudHQ7g_));
						T31_ = endings->Sup.len++;
						endings->data[T31_] = T30_;
					}
					LA28_: ;
					patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endExcept);
				}
				LA14_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T33_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T33_ = (endings ? endings->Sup.len : 0);
		L = T33_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA35;
				endPos = endings->data[i_3];
				patch_Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				i_3 += ((NI) 1);
			} LA35: ;
		}
	}
	fin = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 153), ((NI) 0), ((NI) 0));
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA38_;
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*fin)._Ukind.S6.sons->data[((NI) 0)], 0);
		clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
	}
	LA38_: ;
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 154), ((NI) 0), ((NI) 0));
}

static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getOwner_OnV9cd9ci9cyY9ci9cyWn1URCCg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* result;
	result = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode_Yg9bTbISZAVy15KGRJO1Z3g)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w(t);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 158);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarSection_Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._Ukind.S6.sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T28_;
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T29_;
							if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI res;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(a);
								colontmp__2 = (NI)(T15_ - ((NI) 3));
								res = ((NI) 0);
								{
									while (1) {
										if (!(res <= colontmp__2)) goto LA17;
										i_3 = res;
										{
											if (!((*(*a)._Ukind.S6.sons->data[i_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												T24_ = (((*(*(*a)._Ukind.S6.sons->data[i_3])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												T24_ = !(((*(*(*a)._Ukind.S6.sons->data[i_3])._Ukind.S4.sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												setSlot_wdPbhGpyRtpS49bqSwMfggA(c, (*(*a)._Ukind.S6.sons->data[i_3])._Ukind.S4.sym);
											}
											LA26_: ;
											checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, (*a)._Ukind.S6.sons->data[i_3]);
										}
										LA20_: ;
										res += ((NI) 1);
									} LA17: ;
								}
							}
							T28_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
							T28_ = getOwner_OnV9cd9ci9cyY9ci9cyWn1URCCg(c);
							T29_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T29_ = lowerTupleUnpacking_8A4G64HByteFanrMUexmNw((*c).graph, a, T28_);
							gen_M9cKwar4hMj62R1lH9bydpDQ(c, T29_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
							if (!((*(*a)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA31_;
							s = (*(*a)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
							checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, (*a)._Ukind.S6.sons->data[((NI) 0)]);
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
								if (!(T35_)) goto LA36_;
								T35_ = !(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21)));
								LA36_: ;
								if (!T35_) goto LA37_;
								{
									if (!((*s).position == ((NI) 0))) goto LA41_;
									{
										if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA45_;
										importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*a).info, s);
									}
									goto LA43_;
									LA45_: ;
									{
										tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* sa;
										sa = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*a).info, (*c).config);
										add_gCCf68XrWL79bKes6htzFjQ((*c).globals, sa);
										(*s).position = len_CdME9baJhvveuPEDZE9bXoxAsigmatch((*c).globals);
									}
									LA43_: ;
								}
								LA41_: ;
								{
									NI tmp;
									NI val;
									if (!!(((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA50_;
									tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a)._Ukind.S6.sons->data[((NI) 0)], 2);
									val = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a)._Ukind.S6.sons->data[((NI) 2)], 0);
									genAdditionalCopy_yPz2tNhzBdEEj9c49aHO2Gzw(c, (*a)._Ukind.S6.sons->data[((NI) 2)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 17), tmp, ((NI) 0), val);
									freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, val);
									freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
								}
								LA50_: ;
							}
							goto LA33_;
							LA37_: ;
							{
								setSlot_wdPbhGpyRtpS49bqSwMfggA(c, s);
								{
									tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T57_;
									NI T58_;
									if (!((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA55_;
									T57_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
									T57_ = ldNullOpcode_Yg9bTbISZAVy15KGRJO1Z3g((*s).typ);
									T58_ = (NI)0;
									T58_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
									gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T57_, ((NI) ((*s).position)), T58_);
								}
								goto LA53_;
								LA55_: ;
								{
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
									{
										NIM_BOOL T62_;
										tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T65_;
										NI T66_;
										T62_ = (NIM_BOOL)0;
										T62_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*s).typ);
										if (!!(T62_)) goto LA63_;
										T65_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
										T65_ = ldNullOpcode_Yg9bTbISZAVy15KGRJO1Z3g((*s).typ);
										T66_ = (NI)0;
										T66_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
										gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T65_, ((NI) ((*s).position)), T66_);
									}
									LA63_: ;
									le = (*a)._Ukind.S6.sons->data[((NI) 0)];
									{
										NIM_BOOL T69_;
										NIM_BOOL T70_;
										NI cc;
										tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T74_;
										T69_ = (NIM_BOOL)0;
										T70_ = (NIM_BOOL)0;
										T70_ = fitsRegister_OlAwVLOzsikarBC2aqdk8w((*le).typ);
										T69_ = !(T70_);
										if (!(T69_)) goto LA71_;
										T69_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
										LA71_: ;
										if (!T69_) goto LA72_;
										cc = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
										gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*a)._Ukind.S6.sons->data[((NI) 2)], cc, 0);
										T74_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
										T74_ = whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw(le);
										gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, le, T74_, ((NI) ((*s).position)), cc, ((NI) 1));
										freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, cc);
									}
									goto LA67_;
									LA72_: ;
									{
										gen_KQ9csS06JMUvwHLxUYEy8rA(c, (*a)._Ukind.S6.sons->data[((NI) 2)], ((NI) ((*s).position)), 0);
									}
									LA67_: ;
								}
								LA53_: ;
							}
							LA33_: ;
						}
						goto LA10_;
						LA31_: ;
						{
							{
								NI tmp_2;
								tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T81_;
								NI T82_;
								if (!((*(*a)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA79_;
								tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*a)._Ukind.S6.sons->data[((NI) 0)], 0);
								T81_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
								T81_ = ldNullOpcode_Yg9bTbISZAVy15KGRJO1Z3g((*(*a)._Ukind.S6.sons->data[((NI) 0)]).typ);
								T82_ = (NI)0;
								T82_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*(*a)._Ukind.S6.sons->data[((NI) 0)]).typ);
								gABx_aNIPMIOfai9c7QJx79aStfDw(c, a, T81_, tmp_2, T82_);
								freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
							}
							goto LA77_;
							LA79_: ;
							{
								genAsgn_441oTPupNGUtbMyisB9aUyA(c, (*a)._Ukind.S6.sons->data[((NI) 0)], (*a)._Ukind.S6.sons->data[((NI) 2)], NIM_TRUE);
							}
							LA77_: ;
						}
						LA10_: ;
					} LA5: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc) {
	tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
	result = opc;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), T6_);
	intType = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	seqType = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903259928592));
	{
		NI tmp;
		NI T11_;
		NI T12_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA9_;
		tmp = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T11_ = (NI)0;
		T11_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), tmp, T11_);
		T12_ = (NI)0;
		T12_ = genType_H4AMs0GuxljbeG3aMubkXA(c, seqType);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), ((NI) ((*dest))), T12_);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 156), tmp, ((NI) 0));
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
	}
	LA9_: ;
	{
		NI T15_;
		NI tmp_2;
		NI T18_;
		T15_ = (NI)0;
		T15_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(((NI) 0) < T15_)) goto LA16_;
		tmp_2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T18_ = (NI)0;
		T18_ = genType_H4AMs0GuxljbeG3aMubkXA(c, intType);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 158), tmp_2, T18_);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T23_;
						if (!(i_2 < colontmp_)) goto LA22;
						i = i_2;
						x = (*n)._Ukind.S6.sons->data[i];
						a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						T23_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
						T23_ = whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw(x, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 11));
						preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, n, T23_, ((NI) ((*dest))), tmp_2, a);
						gABI_u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 21), tmp_2, tmp_2, IL64(1));
						freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, a);
						i_2 += ((NI) 1);
					} LA22: ;
				}
			}
		}
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
	}
	LA16_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), T6_);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					x = (*n)._Ukind.S6.sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA13_;
						a = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*x)._Ukind.S6.sons->data[((NI) 0)], 0);
						b = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*x)._Ukind.S6.sons->data[((NI) 1)], 0);
						gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 27), ((NI) ((*dest))), a, b);
						freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, b);
						freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, a);
					}
					goto LA11_;
					LA13_: ;
					{
						NI a_2;
						a_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 26), ((NI) ((*dest))), a_2, ((NI) 0));
						freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, a_2);
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165764233232));
	{
		NI T10_;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
		T10_ = (NI)0;
		T10_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*t).sons->data[((NI) 0)]);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 155), ((NI) ((*dest))), T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), T12_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NIM_BOOL T18_;
					NI idx;
					NI tmp;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T22_;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T18_)) goto LA19_;
					T18_ = ((*(*it)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA19_: ;
					if (!T18_) goto LA20_;
					idx = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*it)._Ukind.S6.sons->data[((NI) 0)]);
					tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*it)._Ukind.S6.sons->data[((NI) 1)], 0);
					T22_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T22_ = whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw((*it)._Ukind.S6.sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it)._Ukind.S6.sons->data[((NI) 1)], T22_, ((NI) ((*dest))), idx, tmp);
					freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
				}
				goto LA16_;
				LA20_: ;
				{
					globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_51));
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA15: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType_H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) ((*dest))), T6_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI idx;
					NI tmp;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T14_;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
					idx = genField_9a15qaQFBwMjo9b9byRZNZAHw(c, (*it)._Ukind.S6.sons->data[((NI) 0)]);
					tmp = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*it)._Ukind.S6.sons->data[((NI) 1)], 0);
					T14_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T14_ = whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw((*it)._Ukind.S6.sons->data[((NI) 1)], ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it)._Ukind.S6.sons->data[((NI) 1)], T14_, ((NI) ((*dest))), idx, tmp);
					freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp);
				}
				goto LA10_;
				LA12_: ;
				{
					NI tmp_2;
					tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T16_;
					tmp_2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, it, 0);
					T16_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
					T16_ = whichAsgnOpc_VdUuIa1Y0BWUTY37EyTvTw(it, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 13));
					preventFalseAlias_yPz2tNhzBdEEj9c49aHO2Gzw_2(c, it, T16_, ((NI) ((*dest))), ((NI) (i)), tmp_2);
					freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp_2);
				}
				LA10_: ;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
}
static N_NIMCALL(void, Marker_tyRef_tODktKbr2w0ijH9avseOrXA)(void* p, NI op) {
	tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg* a;
	a = (tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg*)p;
	nimGCvisit((void*)(*a).c1, op);
	nimGCvisit((void*)(*a).n2, op);
}

static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_CLOSURE(NI, mkIntLit_hDP0jgwejST6KBSJKiSeZg)(NI ival, void* ClE_0) {
	NI result;
	tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg* colonenvP_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (NI)0;
	colonenvP_ = (tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg*) ClE_0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*colonenvP_).c1).graph, (*(*colonenvP_).n2).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	T2_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newIntTypeNode_IoblBePQdnK3IoXX7b1EDg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (ival)), T1_);
	result = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q((*colonenvP_).c1, T2_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genIntCast_AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {
	tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg* colonenv_;
	tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag signedIntegers;
	tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag unsignedIntegers;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst;
	NI64 src_size;
	colonenv_ = (tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg*)0;
	colonenv_ = (tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg*) newObj((&NTI_tODktKbr2w0ijH9avseOrXA_), sizeof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg));
	(*colonenv_).Sup.m_type = (&NTI_ceWLrGjAgZxILXtfRu8UFg_);
	asgnRef((void**) (&(*colonenv_).c1), c);
	asgnRefNoCycle((void**) (&(*colonenv_).n2), n);
	signedIntegers = IL64(30064771072);
	unsignedIntegers = IL64(15393162788868);
	src = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
	dst = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165764233488));
	src_size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*colonenv_).c1).config, src);
	{
		if (!((*(*(*colonenv_).c1).config).target.intSize < ((NI) 8))) goto LA3_;
		signedIntegers |= ((NU64)1)<<((((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31))%(sizeof(NU64)*8));
		unsignedIntegers |= ((NU64)1)<<((((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40))%(sizeof(NU64)*8));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NI64 T9_;
		NI tmp;
		NI tmp2;
		NI tmp3;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NI64)0;
		T9_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*colonenv_).c1).config, dst);
		T8_ = (src_size == T9_);
		if (!(T8_)) goto LA10_;
		T8_ = ((*src).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*src).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*src).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*src).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*src).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2));
		LA10_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA11_;
		T7_ = ((*dst).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*dst).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*dst).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*dst).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*dst).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2));
		LA11_: ;
		if (!T7_) goto LA12_;
		tmp = genx_CcIHODsUfIZ32Dw7elmEjQ((*colonenv_).c1, (*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp2 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 1)]).typ);
		tmp3 = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 1)]).typ);
		{
			NI T18_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA16_;
			T18_ = (NI)0;
			T18_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw((*colonenv_).c1, (*(*(*colonenv_).n2)._Ukind.S6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T18_));
		}
		LA16_: ;
		{
			NIM_BOOL T21_;
			NI offset;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T25_;
			NI T26_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((unsignedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
			if (!(T21_)) goto LA22_;
			T21_ = ((signedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
			LA22_: ;
			if (!T21_) goto LA23_;
			offset = (NI)((NU64)(((NI) 1)) << (NU64)((NI64)((NI64)(src_size * IL64(8)) - IL64(1))));
			nimZeroMem((void*)(&T25_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T25_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T25_.ClE_0 = colonenv_;
			T26_ = (NI)0;
			T26_ = T25_.ClE_0? T25_.ClP_0(offset, T25_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_53)(T25_.ClP_0))(offset);
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), tmp2, T26_);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 42), tmp3, tmp, tmp2);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 22), ((NI) ((*dest))), tmp3, tmp2);
		}
		goto LA19_;
		LA23_: ;
		{
			NIM_BOOL T28_;
			NI offset_2;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T32_;
			NI T33_;
			tyProc_QZ4giON8BOPRx8CufO2W6Q T34_;
			NI T35_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((signedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = ((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
			LA29_: ;
			if (!T28_) goto LA30_;
			offset_2 = (NI)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(src_size * IL64(8)))) - ((NI) 1));
			nimZeroMem((void*)(&T32_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T32_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T32_.ClE_0 = colonenv_;
			T33_ = (NI)0;
			T33_ = T32_.ClE_0? T32_.ClP_0(offset_2, T32_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_54)(T32_.ClP_0))(offset_2);
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), tmp2, T33_);
			nimZeroMem((void*)(&T34_), sizeof(tyProc_QZ4giON8BOPRx8CufO2W6Q));
			T34_.ClP_0 = mkIntLit_hDP0jgwejST6KBSJKiSeZg; T34_.ClE_0 = colonenv_;
			T35_ = (NI)0;
			T35_ = T34_.ClE_0? T34_.ClP_0((NI)(offset_2 + ((NI) 1)), T34_.ClE_0):((TM_24XApAWKNvaMkcyklm8bNA_55)(T34_.ClP_0))((NI)(offset_2 + ((NI) 1)));
			gABx_aNIPMIOfai9c7QJx79aStfDw((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), ((NI) ((*dest))), T35_);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 43), tmp3, tmp, ((NI) ((*dest))));
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 88), tmp3, ((NI) ((NI64)(src_size * IL64(8)))), ((NI) 0));
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 40), ((NI) ((*dest))), tmp3, tmp2);
		}
		goto LA19_;
		LA30_: ;
		{
			gABC_NbczSk6ZhWrJiOrEQnCsfQ((*colonenv_).c1, (*colonenv_).n2, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		}
		LA19_: ;
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA((*colonenv_).c1, tmp);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA((*colonenv_).c1, tmp2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA((*colonenv_).c1, tmp3);
	}
	goto LA5_;
	LA12_: ;
	{
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*colonenv_).c1).config, (*(*colonenv_).n2).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_56));
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, gen_6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*n)._Ukind.S4.sym;
		checkCanEval_Y59crI4YgTHHCWclw3gn72A(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		{
			genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 18):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = procIsCallback_JY3vcBwTxEVaD9cCUYy8jfA(c, s);
				if (!T6_) goto LA7_;
			}
			goto LA4_;
			LA7_: ;
			{
				if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA10_;
				importcSym_tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA4_;
			LA10_: ;
			LA4_: ;
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* constVal;
			{
				if (!!(((*s).ast == NIM_NIL))) goto LA15_;
				constVal = (*s).ast;
			}
			goto LA13_;
			LA15_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA13_: ;
			gen_6vrKVoM8aZ4Rjealu5DZbw(c, constVal, dest, 0);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				NI T23_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA21_;
				T23_ = (NI)0;
				T23_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T23_));
			}
			LA21_: ;
			{
				NIM_BOOL T26_;
				T26_ = (NIM_BOOL)0;
				T26_ = (((NI) -32768) <= (*s).position);
				if (!(T26_)) goto LA27_;
				T26_ = ((*s).position <= ((NI) 32767));
				LA27_: ;
				if (!T26_) goto LA28_;
				gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), ((NI) ((*dest))), (*s).position);
			}
			goto LA24_;
			LA28_: ;
			{
				NI lit;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T31_;
				T31_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T31_ = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*s).position)));
				lit = genLiteral_PEuKCZcy9a56kIfBOLoHU5Q(c, T31_);
				gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 159), ((NI) ((*dest))), lit);
			}
			LA24_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				NIM_BOOL T36_;
				T36_ = (NIM_BOOL)0;
				T36_ = !(((*(*c).prc).sym == NIM_NIL));
				if (!(T36_)) goto LA37_;
				T36_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17));
				LA37_: ;
				if (!T36_) goto LA38_;
				genRdVar_6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
			}
			goto LA34_;
			LA38_: ;
			{
				NimStringDesc* T41_;
				T41_ = (NimStringDesc*)0;
				T41_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T41_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_17));
appendString(T41_, (*(*s).name).s);
				globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T41_);
			}
			LA34_: ;
		}
		break;
		default:
		{
			NimStringDesc* T43_;
			T43_ = (NimStringDesc*)0;
			T43_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T43_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_17));
appendString(T43_, (*(*s).name).s);
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T43_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
			if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA47_;
			s_2 = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA51_;
				genMagic_5VcHfJsVaWxnq3vvengJ7Q(c, n, dest, (*s_2).magic);
			}
			goto LA49_;
			LA51_: ;
			{
				NimStringDesc* T56_;
				if (!((*s_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14))) goto LA54_;
				T56_ = (NimStringDesc*)0;
				T56_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T56_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_38));
appendString(T56_, (*(*s_2).name).s);
appendString(T56_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_39));
				localError_NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, T56_);
			}
			goto LA49_;
			LA54_: ;
			{
				NIM_BOOL T58_;
				T58_ = (NIM_BOOL)0;
				T58_ = matches_slP08oRO7mZMbr9brMeWb8Q(s_2, TM_24XApAWKNvaMkcyklm8bNA_40, 3);
				if (!T58_) goto LA59_;
				genMarshalLoad_AcnszMkIUvrpRfWF4iqy5g_6(c, n, dest);
			}
			goto LA49_;
			LA59_: ;
			{
				NIM_BOOL T62_;
				T62_ = (NIM_BOOL)0;
				T62_ = matches_slP08oRO7mZMbr9brMeWb8Q(s_2, TM_24XApAWKNvaMkcyklm8bNA_44, 3);
				if (!T62_) goto LA63_;
				genMarshalStore_AcnszMkIUvrpRfWF4iqy5g_7(c, n, dest);
			}
			goto LA49_;
			LA63_: ;
			{
				genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
				clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
			}
			LA49_: ;
		}
		goto LA45_;
		LA47_: ;
		{
			genCall_AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
			clearDest_runukDxAwbxjel2eQG9aJNgvmgen(c, n, dest);
		}
		LA45_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			NIM_BOOL T70_;
			T70_ = (NIM_BOOL)0;
			T70_ = isInt16Lit_LFLaqthKyetOmkMUTXjz5g_3(n);
			if (!T70_) goto LA71_;
			{
				NI T77_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA75_;
				T77_ = (NI)0;
				T77_ = getTemp_LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T77_));
			}
			LA75_: ;
			gABx_aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 163), ((NI) ((*dest))), ((NI) ((*n)._Ukind.S1.intVal)));
		}
		goto LA68_;
		LA71_: ;
		{
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		LA68_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T83_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T86_;
			T83_ = (NIM_BOOL)0;
			T83_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
			if (!!(T83_)) goto LA84_;
			T86_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T86_ = getNullValue_MirnaGAtIj7Yo4Gl5MzUxA((*n).typ, (*n).info, (*c).config);
			genLit_AcnszMkIUvrpRfWF4iqy5g(c, T86_, dest);
		}
		goto LA81_;
		LA84_: ;
		{
			unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		}
		LA81_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genAsgn_441oTPupNGUtbMyisB9aUyA(c, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genObjAccess_6vrKVoM8aZ4Rjealu5DZbw_3(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedObjAccess_6vrKVoM8aZ4Rjealu5DZbw_4(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrAccess_6vrKVoM8aZ4Rjealu5DZbw_5(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_6vrKVoM8aZ4Rjealu5DZbw_6(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr_6vrKVoM8aZ4Rjealu5DZbw_7(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf_AcnszMkIUvrpRfWF4iqy5g_8(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase_AcnszMkIUvrpRfWF4iqy5g_9(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genWhile_Y59crI4YgTHHCWclw3gn72A_4(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock_AcnszMkIUvrpRfWF4iqy5g_10(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genReturn_Y59crI4YgTHHCWclw3gn72A_5(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise_Y59crI4YgTHHCWclw3gn72A_6(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBreak_Y59crI4YgTHHCWclw3gn72A_7(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		genTry_AcnszMkIUvrpRfWF4iqy5g_11(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_CdME9baJhvveuPEDZE9bXoxArenderer(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA107;
						i = i_2;
						x = (*n)._Ukind.S6.sons->data[i];
						gen_M9cKwar4hMj62R1lH9bydpDQ(c, x, 0);
						i_2 += ((NI) 1);
					} LA107: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI L;
		NI T109_;
		T109_ = (NI)0;
		T109_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		L = (NI)(T109_ - ((NI) 1));
		{
			NI i_3;
			NI i_4;
			i_3 = (NI)0;
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < L)) goto LA112;
					i_3 = i_4;
					gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[i_3], 0);
					i_4 += ((NI) 1);
				} LA112: ;
			}
		}
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[L], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T114_;
		T114_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T114_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, T114_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 84));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 84));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genVarSection_Y59crI4YgTHHCWclw3gn72A_8(c, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T121_;
		T121_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T121_ = newSymNode_UWZXukHA5As9aCftRHbafBg((*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym);
		genLit_AcnszMkIUvrpRfWF4iqy5g(c, T121_, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		tmp0 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 0)], 0);
		tmp1 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 1)], 0);
		tmp2 = genx_CcIHODsUfIZ32Dw7elmEjQ(c, (*n)._Ukind.S6.sons->data[((NI) 2)], 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 92), tmp0, tmp1, tmp2);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp1);
		freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp2);
		{
			tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ T127_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA125_;
			T127_ = (tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ)0;
			T127_ = whichAsgnOpc_vqmp6ZPOslBtWn9afHH2NIw(n);
			gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, T127_, ((NI) ((*dest))), tmp0, ((NI) 1));
			freeTemp_NkN9ayM3wfuFmqkNDjCySLA(c, tmp0);
		}
		goto LA123_;
		LA125_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA123_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		unused_YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		gen_6vrKVoM8aZ4Rjealu5DZbw(c, (*n)._Ukind.S6.sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr_AcnszMkIUvrpRfWF4iqy5g_12(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr_AcnszMkIUvrpRfWF4iqy5g_13(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_AcnszMkIUvrpRfWF4iqy5g_14(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr_AcnszMkIUvrpRfWF4iqy5g_15(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			if (!(((*c).features &(1U<<((NU)(((tyEnum_TSandboxFlag_JyPEhkAmDAldmLHNNrLR0A) 0))&7U)))!=0)) goto LA138_;
			genConv_3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n)._Ukind.S6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 85));
		}
		goto LA136_;
		LA138_: ;
		{
			genIntCast_AcnszMkIUvrpRfWF4iqy5g_16(c, n, dest);
		}
		LA136_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		genTypeLit_9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		NimStringDesc* T144_;
		NimStringDesc* T145_;
		T144_ = (NimStringDesc*)0;
		T145_ = (NimStringDesc*)0;
		T145_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(n);
		T144_ = rawNewString((T145_ ? T145_->Sup.len : 0) + 28);
appendString(T144_, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_57));
appendString(T144_, T145_);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T144_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, gen_M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag_dpr9bkeHD0U9bDk615O0L1FQ flags) {
	NI tmp;
	tmp = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
}

N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff) {
	NU32 oldInstr;
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32767) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 32767));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_24XApAWKNvaMkcyklm8bNA_58);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T7_);
	}
	LA5_: ;
	oldInstr = (*c).code->data[pc];
	(*c).code->data[pc] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32) ((NI)(diff + ((NI) 32768))))) << (NU32)(((NU32) 16))));
}

N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps_c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, NI start) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ opc;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				opc = ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[i] & ((NU32) 255))));
				switch (opc) {
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146):
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147):
				{
					NI reg;
					NI d;
					reg = ((NI) ((NU32)((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 8))) & ((NU32) 255))));
					d = (NI)(i + (NI)(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								switch (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[d] & ((NU32) 255))))) {
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148):
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 149):
								{
									d = (NI)(d + (NI)(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
								}
								break;
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 146):
								case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 147):
								{
									{
										if (!!((((NI) (((NI) ((NU32)((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 8))) & ((NU32) 255)))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										if (!(((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[d] & ((NU32) 255)))) == opc)) goto LA17_;
										d = (NI)(d + (NI)(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
									}
									goto LA15_;
									LA17_: ;
									{
										d = (NI)(d + ((NI) 1));
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								res -= ((NI) 1);
							} LA8: ;
						}
					} LA6: ;
					{
						if (!!((d == (NI)(i + (NI)(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)))))) goto LA23_;
						finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(d - i));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148):
				case ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 149):
				{
					NI d_2;
					NI iters_2;
					d_2 = (NI)(i + (NI)(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T28_;
							T28_ = (NIM_BOOL)0;
							T28_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[d_2] & ((NU32) 255)))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148));
							if (!(T28_)) goto LA29_;
							T28_ = (((NI) 0) < iters_2);
							LA29_: ;
							if (!T28_) goto LA27;
							d_2 = (NI)(d_2 + (NI)(((NI) ((NU32)((NU32)((*c).code->data[d_2]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)));
							iters_2 -= ((NI) 1);
						} LA27: ;
					}
					{
						if (!(((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[d_2] & ((NU32) 255)))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1))) goto LA32_;
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA30_;
					LA32_: ;
					{
						if (!!((d_2 == (NI)(i + (NI)(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))) - ((NI) 32768)))))) goto LA35_;
						finalJumpTarget_itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(d_2 - i));
					}
					goto LA30_;
					LA35_: ;
					LA30_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, genProc_82SK3f7Ee6e9aktSfHKYXUw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NI result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	x = (*(*s).ast)._Ukind.S6.sons->data[((NI) 5)];
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NU32 eofInstr;
		NI T14_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* body;
		NI procStart;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* p;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* T21_;
		tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ* oldPrc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T3_) goto LA4_;
		T3_ = ((*(*x)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		last = (NI)(T7_ - ((NI) 1));
		eofInstr = (NU32)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			T10_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[last] & ((NU32) 255)))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			eofInstr = (*c).code->data[last];
			asgnRefNoCycle((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_), ((NI) (last))));
			asgnRefNoCycle((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		result = (NI)(T14_ + ((NI) 1));
		{
			tyArray_AB6yfoUgfWM2NtGe9bzkCmw T19_;
			if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray_AB6yfoUgfWM2NtGe9bzkCmw));
			T19_[0] = newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result)));
			T19_[1] = x;
			x = newTree_4bkTFXme4frVOAuq2YEc4g(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			asgnRefNoCycle((void**) (&(*x)._Ukind.S6.sons->data[((NI) 0)]), newIntNode_v2VGJAZNfKPVngZCqEXQtA(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result))));
		}
		LA15_: ;
		asgnRefNoCycle((void**) (&(*(*s).ast)._Ukind.S6.sons->data[((NI) 5)]), x);
		body = (*(*s).ast)._Ukind.S6.sons->data[((NI) 6)];
		procStart = xjmp_LLVWVnfPUz40PkTu6VMsfA(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0));
		T21_ = (tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ*)0;
		T21_ = (tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ*) newObj((&NTI_FM7mzTFsA8pyUhXVKKO6Gw_), sizeof(tyObject_PProccolonObjectType__VFEBuxrDHC6kHPzc1TWaRQ));
		if ((*T21_).blocks) { nimGCunrefNoCycle((*T21_).blocks); (*T21_).blocks = NIM_NIL; }
		asgnRefNoCycle((void**) (&(*T21_).sym), s);
		p = T21_;
		oldPrc = (*c).prc;
		asgnRefNoCycle((void**) (&(*c).prc), p);
		genParams_Unaf3DZLxXwqe70dj3rMHA(c, (*(*s).typ).n);
		{
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 17));
			if (!(T25_)) goto LA26_;
			T25_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0));
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA27_;
			T24_ = !(((*(*(*s).ast)._Ukind.S6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA27_: ;
			if (!T24_) goto LA28_;
			genGenericParams_vASajwqkUjdiFGC5iKyxaw(c, (*(*s).ast)._Ukind.S6.sons->data[((NI) 2)]);
		}
		LA28_: ;
		{
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0)) goto LA32_;
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0] = TM_24XApAWKNvaMkcyklm8bNA_6;
			(*(*c).prc).maxSlots += ((NI) 1);
		}
		LA32_: ;
		gen_M9cKwar4hMj62R1lH9bydpDQ(c, body, 0);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch_Ej9bBLeYWuXsMMig9c4loqzw(c, procStart);
		gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, body, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) ((NU32)((NU32)((NU32)(eofInstr) >> (NU32)(((NU32) 8))) & ((NU32) 255)))), ((NI) 0), ((NI) 0));
		optimizeJumps_c4Ny4S2QTBXPlybhF7naeg(c, result);
		(*s).offset = (*(*c).prc).maxSlots;
		asgnRefNoCycle((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		(*(*c).prc).maxSlots = (*s).offset;
		result = ((NI) ((*(*x)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S1.intVal));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, removeLastEof_OYm9bfQSqoS0XSVKCTuQUQw)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c) {
	NI last;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	last = (NI)(T1_ - ((NI) 1));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		T4_ = (((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) ((NU32)((*c).code->data[last] & ((NU32) 255)))) == ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		asgnRefNoCycle((void**) (&(*c).code), (tySequence_9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI_9bAGqSvkAaFL9bWjsEPslrFA_), ((NI) (last))));
		asgnRefNoCycle((void**) (&(*c).debug), (tySequence_PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI_PJMRIt5QxCm6bRaVyQ5CGA_), ((NI) (last))));
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(NI, genExpr_iSa9ao3PEkzo8fCmeMa1Kvg)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresValue) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof_OYm9bfQSqoS0XSVKCTuQUQw(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_59));
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) (d)), ((NI) 0), ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, genStmt_PEuKCZcy9a56kIfBOLoHU5Q_3)(tyObject_TCtx_S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof_OYm9bfQSqoS0XSVKCTuQUQw(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen_6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	gABC_NbczSk6ZhWrJiOrEQnCsfQ(c, n, ((tyEnum_TOpcode_AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM_24XApAWKNvaMkcyklm8bNA_60));
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_vmgenInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_vmgenDatInit000)(void) {
static TNimNode* TM_24XApAWKNvaMkcyklm8bNA_52[3];
static TNimNode TM_24XApAWKNvaMkcyklm8bNA_0[4];
NTI_ceWLrGjAgZxILXtfRu8UFg_.size = sizeof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg);
NTI_ceWLrGjAgZxILXtfRu8UFg_.kind = 17;
NTI_ceWLrGjAgZxILXtfRu8UFg_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_24XApAWKNvaMkcyklm8bNA_52[0] = &TM_24XApAWKNvaMkcyklm8bNA_0[1];
TM_24XApAWKNvaMkcyklm8bNA_0[1].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[1].offset = offsetof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg, colonstate_);
TM_24XApAWKNvaMkcyklm8bNA_0[1].typ = (&NTI_xHTZrq9aYs6boc9bCba0JbpQ_);
TM_24XApAWKNvaMkcyklm8bNA_0[1].name = ":state";
TM_24XApAWKNvaMkcyklm8bNA_52[1] = &TM_24XApAWKNvaMkcyklm8bNA_0[2];
TM_24XApAWKNvaMkcyklm8bNA_0[2].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[2].offset = offsetof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg, c1);
TM_24XApAWKNvaMkcyklm8bNA_0[2].typ = (&NTI_FD9cVFUpCDGxUmwW7TEZIFQ_);
TM_24XApAWKNvaMkcyklm8bNA_0[2].name = "c1";
TM_24XApAWKNvaMkcyklm8bNA_52[2] = &TM_24XApAWKNvaMkcyklm8bNA_0[3];
TM_24XApAWKNvaMkcyklm8bNA_0[3].kind = 1;
TM_24XApAWKNvaMkcyklm8bNA_0[3].offset = offsetof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg, n2);
TM_24XApAWKNvaMkcyklm8bNA_0[3].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_24XApAWKNvaMkcyklm8bNA_0[3].name = "n2";
TM_24XApAWKNvaMkcyklm8bNA_0[0].len = 3; TM_24XApAWKNvaMkcyklm8bNA_0[0].kind = 2; TM_24XApAWKNvaMkcyklm8bNA_0[0].sons = &TM_24XApAWKNvaMkcyklm8bNA_52[0];
NTI_ceWLrGjAgZxILXtfRu8UFg_.node = &TM_24XApAWKNvaMkcyklm8bNA_0[0];
NTI_tODktKbr2w0ijH9avseOrXA_.size = sizeof(tyObject_Env_vmgendotnim__ceWLrGjAgZxILXtfRu8UFg*);
NTI_tODktKbr2w0ijH9avseOrXA_.kind = 22;
NTI_tODktKbr2w0ijH9avseOrXA_.base = (&NTI_ceWLrGjAgZxILXtfRu8UFg_);
NTI_tODktKbr2w0ijH9avseOrXA_.marker = Marker_tyRef_tODktKbr2w0ijH9avseOrXA;
}

