/* 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_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
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_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
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 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 tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence_9brg1xNurxcus33lU4IE1Dw tySequence_9brg1xNurxcus33lU4IE1Dw;
typedef struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence_kxu4GK0onha2t9bo86mdVAg tySequence_kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence_48JTohSgTy339bRxHzUD8KA tySequence_48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ tySequence_bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence_23SMqauuRsbDANhthj9bWlA tySequence_23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table_NttoEzoiq5CiphZe81oadg tyObject_Table_NttoEzoiq5CiphZe81oadg;
typedef struct tySequence_squ9b9bUH4OLHf6cEMrt6hVA tySequence_squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table_nagDFX4QHx0s6Fvma9blmSg tyObject_Table_nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence_pHNq3oXj9av2sEUdqaqeZjw tySequence_pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence_PzqTLBFNawCGiqTk0UORYw tySequence_PzqTLBFNawCGiqTk0UORYw;
typedef struct tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag;
typedef struct tySequence_AoW0ogAFeynDk5PueecbTw tySequence_AoW0ogAFeynDk5PueecbTw;
typedef struct tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA tySequence_PJMRIt5QxCm6bRaVyQ5CGA;
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_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q;
typedef struct tySequence_8fytVdU59b5aj319cog2ztLw tySequence_8fytVdU59b5aj319cog2ztLw;
typedef struct tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA;
typedef struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg tyTuple_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple_quA39a2QdEQU9cSEIUSibApQ tyTuple_quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple_F3gkSrMB1qp2Tvf9bixVXwg tyTuple_F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple_wcNatyuf8WOqAhGLhSvgiw tyTuple_wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple_euPCXX9bc3XzndEhYlqNS7g tyTuple_euPCXX9bc3XzndEhYlqNS7g;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
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_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
};
struct tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw {
  tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w Sup;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ sigConflicts;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
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;
};
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 NI tyArray_emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg {
NI elems;
NI counter;
NI max;
tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* head;
tySequence_9brg1xNurxcus33lU4IE1Dw* data;
tyArray_emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc_xdLb0cyzx3FuM6Q4NnRTpQ;
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_OLX364rHC66WkzRbMp49aQg[64];
typedef tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray_6GDJmNRiFxkWAAdMgUie8g[70];
struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA {
char dummy;
};
typedef N_NIMCALL_PTR(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, tyProc_c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, tyProc_d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(void, tyProc_sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
struct tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence_23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table_NttoEzoiq5CiphZe81oadg {
tySequence_squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table_nagDFX4QHx0s6Fvma9blmSg {
tySequence_pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg deps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence_48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc_xdLb0cyzx3FuM6Q4NnRTpQ doStopCompile;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* usageSym;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* owners;
tySequence_bWZXqEvLFwhLvAqSRoFNgQ* methods;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* systemModule;
tyArray_OLX364rHC66WkzRbMp49aQg sysTypes;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA exposed;
tyArray_6GDJmNRiFxkWAAdMgUie8g intTypeCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA incr;
tyProc_c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc_d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc_sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table_NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table_nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence_PzqTLBFNawCGiqTk0UORYw* passes;
};
struct tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typeInfo;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* constants;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* forwarded;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg generatedSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg typeInfoGenerated;
tySequence_AoW0ogAFeynDk5PueecbTw* classes;
NI unique;
};
struct tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA {
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field0;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field1;
};
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
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 NU32 tySet_tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw;
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_TProc_AFoo8FBR6Z1RtIhjuHkU2Q {
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* procDef;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* globals;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* locals;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* body;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* module;
tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* g;
NIM_BOOL beforeRetNeeded;
NI unique;
tySequence_8fytVdU59b5aj319cog2ztLw* blocks;
NI extraIndent;
tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* up;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredGlobals;
};
struct tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg {
NI id;
NIM_BOOL isLoop;
};
typedef NU8 tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_mrugoXXRZUEeG9bEXo9auBKw[2];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_qTjAvTvKF9anytN1At69aJMQ[1];
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
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;
};
typedef NU8 tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg;
typedef NU8 tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA;
struct tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w {
tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg kind;
tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA typ;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* address;
};
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
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 tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_JiWwrsTRC6xqNlGcBthSVA[1];
typedef NU8 tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
typedef NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_wqYjTJU9ab2ZgEFMaQc3vNA[3];
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_wm6rkCVggH4IozhLUEP19bg[8];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_YcHYlgE5mhtkt9a3rnoucVg[7];
typedef NU8 tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_duFhZXIIlrbrM62cWjNekg[5];
typedef NU8 tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_f7nG5LD47BH5K9c6mASit3g[4];
typedef NU8 tySet_tyEnum_TTypeCmpFlag_72pgRXSg7774cr9aCWVPORw;
typedef NU8 tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA;
typedef NimStringDesc* tyArray_sMpvt1sOxOJ3LFGulnbeMQ[4];
typedef tyArray_sMpvt1sOxOJ3LFGulnbeMQ tyArray_SnJ8qBCXax66Mg9bLrFahqQ[81];
struct tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA {
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a;
tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b;
};
typedef NU8 tySet_tyChar_nmiMWKVIe46vacnhAFrQvw[32];
typedef NU16 tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw;
struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple_quA39a2QdEQU9cSEIUSibApQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple_F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType__dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple_wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree_VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w*, tyProc_8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module);
typedef N_NIMCALL_PTR(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, tyProc_A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, tyProc_EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple_euPCXX9bc3XzndEhYlqNS7g {
tyProc_8ooe5vdoqmvpHnfXV29bP3w Field0;
tyProc_A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc_EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
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 tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tySequence_AoW0ogAFeynDk5PueecbTw {
  TGenericSeq Sup;
  tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_8fytVdU59b5aj319cog2ztLw {
  TGenericSeq Sup;
  tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple_quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence_23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple_2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence_squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple_F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence_pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple_wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence_PzqTLBFNawCGiqTk0UORYw {
  TGenericSeq Sup;
  tyTuple_euPCXX9bc3XzndEhYlqNS7g data[SEQ_DECL_SIZE];
};
struct tySequence_PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q 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_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*, newModule_RGudyQruKRVONDQv8A9a0sA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef_O09bHTFgtn9cJLLJxiNhuKUA)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
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(void, initCountTable_l0wwSfs7C3wjWsJaXnDAUA)(NI initialSize, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*, newGlobals_Oh7K84Q1LTu4ROS8vzXUmQ)(void);
static N_NIMCALL(void, Marker_tySequence_AoW0ogAFeynDk5PueecbTw)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef_Q8XTeJJ39cPFyNvJXj9bmcMQ)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, initIntSet_a9a80eJplB17xrdZJ41Baww)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* Result);
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);
static N_INLINE(NIM_BOOL, skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, internalError_yTu5SGHF0j0P9cQrqN7YylA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*, newProc_DZOGOvkWRt8L5GOYwFoPQw)(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* globals, tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* module, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* procDef, tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options);
static N_NIMCALL(void, Marker_tySequence_8fytVdU59b5aj319cog2ztLw)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef_OFWibP8T8afo89apFNGZiwA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genModule_AQaGEWMAoGSH1pqI9bePiww)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, add_iMTw0CDaruwETLGb9bhpBLg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, frameCreate_5xQGffjrmjbHfz64yWZ49bw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_jQGcsbXjMm82EQo5Ohqg0w)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, prepend_iMTw0CDaruwETLGb9bhpBLg_2)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_yShmEg9cffWxI7s5XzEKBow)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9bvKdnhoYI2ta9agQNm3orMA)(NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_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_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw)(NimStringDesc* s, NIM_BOOL escapeNonAscii);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, escapeJSString_znmOm8IkVBpkbkTBTlt6tA)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
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_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, genStmt_AQaGEWMAoGSH1pqI9bePiww_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, gen_Bp5hmw3gImpkyC9cflWESLg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, genSym_Bp5hmw3gImpkyC9cflWESLg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA, mapType_3VaqeosYFyERT8Ar50lWVA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA, mapType_W2TONft1TRaion9bBXzQqWw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
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_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon_ab52xel9cFebv9am0xV04xXA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__Z7W1o5nPSc3ExfO5f7j1Gg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, genConstant_bgFYJWdvtLmrkmlW3jRA4A)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, genVarInit_iVEhpHbcyNY9aOzPqLze8xw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_VbRtGjpKYj6Wtc1GdNdKhg)(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, validJsName_1q5NBWQEByhSRjyQwfuEBA)(NimStringDesc* name);
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_NIMCALL(NI, hashString)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangle_0ctHksTXSPyaxjBOgK4TiA)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, idOrSig_m9ce9cPk9cZQsWLc0DxveJj0g)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* currentModule, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* sigCollisions);
N_LIB_PRIVATE N_NIMCALL(void, add_yG4AKzsBRS1W4MANDlXQeg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_KOisMGxcPhz6CcSmxgwEQQ)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__4KNdcWAONkpTKQgUR8XiZQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, createVar_K9ag9aJJIngrApxv9aEbfdhIQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NIM_BOOL indirect);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, putToSeq_iEKLYo8HXYG9auKlJ6tkKKw)(NimStringDesc* s, NIM_BOOL indirect);
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(NimStringDesc*, arrayTypeForElemType_3lXJ2v6tm2SJD3LYfBVjTw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, useMagic_4MoUWv1cpa6oOBwwpQ0wfA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
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(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProc_VRfKzQHOMcRGtJXZSJxFtg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* oldProc, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, generateHeader_jZNTi9aEbLMAMESBZ7a9cl7A)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_qPWPHw7WgJeEVYUdcaRIig)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, optionaLine_VuwqVIjxPGcoTVF06Jgl6w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcBody_ByRZ0N9c4W9b5ThEZxre89cFg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasFrameInfo_X4QGocgN4K1dMViygAn1Sw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, frameDestroy_XP5ZeYFuxYow89aSkFgfWeg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, globalError_NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, rawMessage_h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, addf_ocEHZ9cujtqicXvDuJUm5pg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** c, NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_EoO5XDgy69ax76bvbHbf27w)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_EoO5XDgy69ax76bvbHbf27w_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
static N_INLINE(NIM_BOOL, objHasTypeField_pWmuM79aUy3GaCZ9bBUyJyJgjsgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI64, getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_esDJA7239bJDiq4UrX9aHCjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_EoO5XDgy69ax76bvbHbf27w_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTupleFields_jZNTi9aEbLMAMESBZ7a9cl7A_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI, len_SWFNCiWYB89bTUPh5KptkvA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_SWFNCiWYB89bTUPh5KptkvA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(void, createObjInitList_lQPYSYugh4oxbm9bTJCSJoA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* excludedFieldIDs, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** output);
N_LIB_PRIVATE N_NIMCALL(NI, len_9bnJ6v2DTn9bxH3beTpErsUg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a);
N_LIB_PRIVATE N_NIMCALL(void, createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* rec, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* excludedFieldIDs, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** output);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_sYBLNwnPJlAFi0nfWU79awg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsNoCopy_jpd9cnGMvMNWjXepTXEORHg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTemp_EG8bDinaW3fVLpok9a4s5cA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, NIM_BOOL defineInLocals);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, genProcForSymIfNeeded_9aGDirKbsf9cN1iAWvMcXOKg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, attachProc_C5SA4Y9bPAMaecsSyvetPTg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* content, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, thisParam_Cm4fViX7gmuXxOINvxCDkw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, 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);
static N_INLINE(NIM_BOOL, isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA, classify_rfodLs2J9b87EDgWnWZoObA)(NF x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw)(NF f, NimStringDesc* literalPostfix);
N_LIB_PRIVATE N_NIMCALL(void, genLineDir_AQaGEWMAoGSH1pqI9bePiww_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genMagic_Bp5hmw3gImpkyC9cflWESLg_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genOr_mpXN9cOaEmJkFGz77KKnHeQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen_CdME9baJhvveuPEDZE9bXoxArenderer)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAsigmatch)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isAtom_NyXYMHACmbtWJZnWqE9cJCAparampatterns)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen)(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a);
N_LIB_PRIVATE N_NIMCALL(void, genAnd_mpXN9cOaEmJkFGz77KKnHeQ_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, arith_3Dxk7XsMQw9b52OHOhMc7Fg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, binaryUintExpr_sQyrw0bSZ1SBjflZPB313g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* op, NIM_BOOL reassign);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ)(NI64 size);
N_LIB_PRIVATE N_NIMCALL(void, arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, genRepr_Bp5hmw3gImpkyC9cflWESLg_4)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typ);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, genSwap_AQaGEWMAoGSH1pqI9bePiww_4)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, NimStringDesc* frmt);
N_LIB_PRIVATE N_NIMCALL(void, genConStrStr_Bp5hmw3gImpkyC9cflWESLg_5)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genNew_AQaGEWMAoGSH1pqI9bePiww_5)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genOrd_Bp5hmw3gImpkyC9cflWESLg_6)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
static N_INLINE(NIM_BOOL, contains_Q79akNsDbJpCYo4tQzRSE2Qsem)(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag value);
static N_INLINE(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA, dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_AQaGEWMAoGSH1pqI9bePiww_6)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genOf_Bp5hmw3gImpkyC9cflWESLg_7)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genReset_AQaGEWMAoGSH1pqI9bePiww_7)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genEcho_Bp5hmw3gImpkyC9cflWESLg_8)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_6rsSLwtlU9c53a6w69be5JlQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genArgNoParam_Bp5hmw3gImpkyC9cflWESLg_9)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, genCall_Bp5hmw3gImpkyC9cflWESLg_10)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_Bp5hmw3gImpkyC9cflWESLg_11)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_m1TSS3QwQPclQATuiRuVZg)(NimStringDesc* s, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(void, genPatternCall_4TT1TPwHmxERu3KEGU1QFw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genOtherArg_9aqB67Rnkf1OHu3XOk89bdcg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI* generated, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, genArg_RI5RyHREFNXox9cpkCYH50g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NI* emitted);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_TWXUwbnq0SWWvDLfr8LXYw)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(void, genArgs_1PNPBjb9aOT7yB9avaRcGbbQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NI start);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_Bp5hmw3gImpkyC9cflWESLg_12)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__mFDAEkd1kysB0V9aBd20A9aA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_Bp5hmw3gImpkyC9cflWESLg_13)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_Bp5hmw3gImpkyC9cflWESLg_14)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_Bp5hmw3gImpkyC9cflWESLg_15)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, incl_iUpE9bYmIR0fROyJskQwN8g)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, genConv_Bp5hmw3gImpkyC9cflWESLg_16)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genAddr_Bp5hmw3gImpkyC9cflWESLg_17)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedFieldAddr_Bp5hmw3gImpkyC9cflWESLg_18)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genFieldAddr_Bp5hmw3gImpkyC9cflWESLg_19)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NI, getFieldPosition_DLbHFD2eUjMEos1A21BcJw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* f);
N_LIB_PRIVATE N_NIMCALL(void, genFieldAccess_Bp5hmw3gImpkyC9cflWESLg_20)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genArrayAddr_Bp5hmw3gImpkyC9cflWESLg_21)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, genDeref_Bp5hmw3gImpkyC9cflWESLg_22)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genArrayAccess_Bp5hmw3gImpkyC9cflWESLg_23)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedFieldAccess_Bp5hmw3gImpkyC9cflWESLg_24)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, upConv_Bp5hmw3gImpkyC9cflWESLg_25)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genCast_Bp5hmw3gImpkyC9cflWESLg_26)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_hP2w9bfjeb9a8Gw7OVBCznWw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic);
N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_Bp5hmw3gImpkyC9cflWESLg_27)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_Bp5hmw3gImpkyC9cflWESLg_28)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genBlock_Bp5hmw3gImpkyC9cflWESLg_29)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, genIf_Bp5hmw3gImpkyC9cflWESLg_30)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* src, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w dest);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_AQaGEWMAoGSH1pqI9bePiww_8)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_AQaGEWMAoGSH1pqI9bePiww_9)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, 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(void, genCaseJS_Bp5hmw3gImpkyC9cflWESLg_31)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_lz8T1F9c0YwEOpUnrAUYgjg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_AQaGEWMAoGSH1pqI9bePiww_10)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_AQaGEWMAoGSH1pqI9bePiww_11)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_AQaGEWMAoGSH1pqI9bePiww_12)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnAux_FTHts0vUatiTmPKVGzyMKA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, NIM_BOOL noCopyNeeded);
N_LIB_PRIVATE N_NIMCALL(void, genFastAsgn_AQaGEWMAoGSH1pqI9bePiww_13)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsmOrEmitStmt_AQaGEWMAoGSH1pqI9bePiww_14)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry_Bp5hmw3gImpkyC9cflWESLg_32)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r);
N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_AQaGEWMAoGSH1pqI9bePiww_15)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genPragma_AQaGEWMAoGSH1pqI9bePiww_16)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw, whichPragma_tadMdqrtQd2cek9aFwyE1XQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myProcess_PZ51a8H3AQu4zYP9cwHpJag)(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, wholeCode_0JkORKxMs17USnUxSKLA9cw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m);
N_LIB_PRIVATE N_NIMCALL(void, attachProc_9aGDirKbsf9cN1iAWvMcXOKg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
static N_INLINE(NIM_BOOL, isEmpty_7L4uOoWU31Tlt0n9avaqQAQoptions)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash__lXoMhn1ZYc9cAJa9bfA61msg)(NimStringDesc* head, NimStringDesc* tail);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(void, splitFile_R3dPKp0IXOiTZhAeiTEnrA)(NimStringDesc* x, tyTuple_7q7q3E6Oj24ZNVJb9aonhAg* Result);
static N_INLINE(NIM_BOOL, isEmpty_gby4ylPSwvUIi9aD9ctLpVIQoptions)(NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(void, noscreateDir)(NimStringDesc* dir);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRopeIfNotEqual_EnPyko9cdia3BJbBC9ao9a60A_2)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genHeader_Jh8YZW9c6mmqtRqmZvtYISg)(void);
N_LIB_PRIVATE N_NIMCALL(void, genClass_U4iU8S6rMkN6tzWoLM5IEw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* content, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClassName_M7eOsU9a45xJ1jjNZbYZG1w)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__4cYKitaHx6RQ9azRtQsZp6w)(NimStringDesc* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
extern TNimType NTI_Hb6rFM0ecvtlLf2kv9aU75w_;
TNimType NTI_qij68Ti2EwJQHH6sSdkSdw_;
extern TNimType NTI_K9bspPztfoWajecnwjyHuYQ_;
extern TNimType NTI_KfdHSsl8vyUCSI9b3inBcww_;
extern TNimType NTI_a8lycfSA25OQltN3OMeBsA_;
extern TNimType NTI_tUMxxU9cRgLolsrW9b7IBGsQ_;
TNimType NTI_O09bHTFgtn9cJLLJxiNhuKUA_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_nWsHZg3qCUsABoCNYLliag_;
extern TNimType NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_;
extern TNimType NTI_DfgJFJEYoj4YBAHLZPl5lQ_;
extern TNimType NTI_PQrmFm4BXFkFSVOUl1ojSg_;
TNimType NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_;
extern TNimType NTI_AgIT5feFR9a9aoVjv9cx2rOtg_;
TNimType NTI_AoW0ogAFeynDk5PueecbTw_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
TNimType NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_;
TNimType NTI_AFoo8FBR6Z1RtIhjuHkU2Q_;
extern TNimType NTI_fKfcLzXYiz5jNu3NH3Tv8Q_;
extern TNimType NTI_7MnKRybmCNh5j9bDRLMkxLw_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI_46cd0Xw9aDJ1QWTE8nV4mLg_;
TNimType NTI_8fytVdU59b5aj319cog2ztLw_;
TNimType NTI_OFWibP8T8afo89apFNGZiwA_;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
extern TNimType NTI_G4E4Gxe7oI2Cm03rkiOzQw_;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_5, "myProcess", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_8, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_9, "\011", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_10, "framePtr = F;$n", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_11, "\"", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_12, "\\n", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_13, "\\r", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_14, "\\t", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_15, "\\b", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_16, "\\a", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_17, "\\e", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_18, "\\v", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_19, "\\\\", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_20, "\\\"", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_21, "module ", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_22, "\?\?\?", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_23, "symbol has no generated name: ", 30);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_24, "/home/travis/build/nim-lang/nightlies/nim/b6d96cafc8bcad1f3d32f"
"2910b25cd11a93f7751/compiler/jsgen.nim(198, 36) `false` mapType", 126);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_25, "$1[0]", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_26, "$1[1]", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_27, "_Idx", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_28, "abstract", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_29, "await", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_30, "boolean", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_31, "break", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_32, "byte", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_33, "case", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_34, "catch", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_35, "char", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_36, "class", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_37, "const", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_38, "continue", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_39, "debugger", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_40, "default", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_41, "delete", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_42, "do", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_43, "double", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_44, "else", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_45, "enum", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_46, "export", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_47, "extends", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_48, "false", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_49, "final", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_50, "finally", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_51, "float", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_52, "for", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_53, "function", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_54, "goto", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_55, "if", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_56, "implements", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_57, "import", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_58, "in", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_59, "instanceof", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_60, "int", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_61, "interface", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_62, "let", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_63, "long", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_64, "native", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_65, "new", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_66, "null", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_67, "package", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_68, "private", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_69, "protected", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_70, "public", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_71, "return", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_72, "short", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_73, "static", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_74, "super", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_75, "switch", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_76, "synchronized", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_77, "this", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_78, "throw", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_79, "throws", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_80, "transient", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_81, "true", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_82, "try", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_83, "typeof", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_84, "var", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_85, "void", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_86, "volatile", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_87, "while", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_88, "with", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_89, "yield", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_90, "HEX", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_91, "_", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_92, "var $1;$n", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_93, "if ($1 === undefined) {$n", 25);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_94, "var $2", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_95, " = $3;$n", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_96, "[$1]", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_97, "0", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_98, "0.0", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_99, "{}", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_100, "Int32Array", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_101, "Int16Array", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_102, "Int8Array", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_103, "Uint32Array", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_104, "Uint16Array", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_105, "Uint8Array", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_106, "Float32Array", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_107, "Float64Array", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_108, "new $1($2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_110, "jsgen.nim", 9);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_109 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 291),
((NI) 19)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_111, ", ", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_112, "var $# = $#;$n", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_113, "var $#_Idx = 0;$n", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_114, "return [$#, $#];$n", 18);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_115, "return $#;$n", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_116, " {$n$#$#$#$#$#", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_117, "\012", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_118, "BeforeRet: do {$n", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_119, "} while (false);$n", 18);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_120, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_121, "framePtr = F.prev;\012", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_122, "IMLP", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_123, "function $#() { return $#.apply(this, arguments); }$n", 53);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_124, "function $#($#) {$n$#$#$#$#$#", 29);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_125, "}$n", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_126, "system module needs: ", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_127, "arrayConstr", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_128, "nimCopy", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_129, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_130, "NTI$1", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_131, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_132, "$1.base = $2;$n", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_133, "genEnumInfo", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_134, ", \012", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_135, "\"$1\": {kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: nu"
"ll}", 66);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_136, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: {$3}};$n", 79);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_137, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_138, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_139, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_140, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_141, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_142, "genObjectFields", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_143, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_144, "[$1, $2]", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_145, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_146, "[setConstr($1), $2]", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_147, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_148, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_149, "genTypeInfo(", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_150, "[", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_151, "]", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_152, "{", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_153, "Field$1: $2", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_154, "}", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_155, "m_type: $1", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_156, "$#: ", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_157, "createRecordVarAux", 18);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_158, "{$1}", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_159, "[null, 0]", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_160, "createVar: ", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_161, "var $1_Idx = 0;$n", 17);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_BxLwT0mhrtgTPodf1v3xjg_162 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_163, "nimCopy(null, $1, $2)", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_164, " = $3, $2_Idx = $4;$n", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_165, " = [$3, $4];$n", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_166, "Tmp$1", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_167, "var $1 = $2, $3 = $1[0], $3_Idx = $1[1];$n", 42);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_168, " = [$3];$n", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_169, "false", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_170, "true", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_171, "null", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_172, "0", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_173, "makeNimstrLit", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_174, "makeNimstrLit($1)", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_175, "[]", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_176, "NaN", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_177, "-0.0", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_178, "0.0", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_179, "Infinity", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_180, "-Infinity", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_181, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_182, "endb", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_183, "endb($1);$n", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_184, "F.line = $1;$n", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_185, "($1 || $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_186, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_187, "$2 = $1;", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_188, "($1 && $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_189, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_190, "& 0xff", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_191, "& 0xffff", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_192, ">>> 0", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_193, "$1 = (($1 $2 $3) $4)", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_194, "(($1 $2 $3) $4)", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_195, "+", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_196, "-", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_197, "*", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_198, "/", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_199, "addInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_200, "addInt($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_201, "($1 + $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_202, "subInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_203, "subInt($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_204, "($1 - $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_205, "mulInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_206, "mulInt($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_207, "($1 * $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_208, "divInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_209, "divInt($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_210, "Math.trunc($1 / $2)", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_211, "modInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_212, "modInt($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_213, "Math.trunc($1 % $2)", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_214, "($1 / $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_215, "($1 << $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_216, "($1 >> $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_217, "($1 & $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_218, "($1 | $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_219, "($1 ^ $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_220, "nimMin", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_221, "nimMin($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_222, "nimMax", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_223, "nimMax($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_224, "($1 % $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_225, "($1 == $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_226, "($1 <= $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_227, "($1 < $2)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_228, "($1 != $2)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_229, "negInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_230, "negInt($1)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_231, "-($1)", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_232, "negInt64", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_233, "negInt64($1)", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_234, "absInt", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_235, "absInt($1)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_236, "Math.abs($1)", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_237, "!($1)", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_238, "+($1)", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_239, "~($1)", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_240, "Ze8ToI", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_241, "Ze8ToI($1)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_242, "Ze8ToI64", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_243, "Ze8ToI64($1)", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_244, "Ze16ToI", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_245, "Ze16ToI($1)", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_246, "Ze16ToI64", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_247, "Ze16ToI64($1)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_248, "Ze32ToI64", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_249, "Ze32ToI64($1)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_250, "ZeIToI64", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_251, "ZeIToI64($1)", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_252, "toU8", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_253, "toU8($1)", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_254, "toU16", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_255, "toU16($1)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_256, "toU32", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_257, "toU32($1)", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_258, "$1", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_259, "Math.trunc($1)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_260, "nimCharToStr", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_261, "nimCharToStr($1)", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_262, "nimBoolToStr", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_263, "nimBoolToStr($1)", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_264, "cstrToNimstr", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_265, "cstrToNimstr(($1)+\"\")", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_266, "cstrToNimstr($1)", 16);
NIM_CONST tyArray_SnJ8qBCXax66Mg9bLrFahqQ jsOps_Ln4w3ESMRki4xJyv49ctagw = {{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_199),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_200),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_201)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_202),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_203),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_204)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_205),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_206),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_207)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_208),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_209),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_210)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_211),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_212),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_213)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_199),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_200),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_201)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_202),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_203),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_204)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_201),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_201)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_204),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_204)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_207),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_207)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_214),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_214)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_215),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_215)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_216),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_216)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_217),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_217)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_218),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_218)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_219),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_219)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_220),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_220),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_221),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_221)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_222),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_222),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_223),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_223)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_220),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_220),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_221),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_221)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_222),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_222),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_223),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_223)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_224),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_224)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_226)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_227)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_228),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_228)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_225)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_229),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_230),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_231)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_232),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_233),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_231)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_234),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_235),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_236)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_237),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_237)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_238),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_238)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_239),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_239)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_238),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_238)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_231),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_231)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_236),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_236)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_240),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_240),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_241),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_241)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_242),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_242),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_243),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_243)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_244),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_244),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_245),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_245)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_246),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_246),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_247),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_247)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_248),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_248),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_249),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_249)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_250),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_250),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_251),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_251)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_252),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_252),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_253),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_253)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_254),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_254),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_255),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_255)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_256),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_256),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_257),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_257)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_259),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_259)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_259),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_259)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_260),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_260),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_261),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_261)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_262),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_262),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_263),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_263)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_265)}
,
{((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_266),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_266)}
,
{((NimStringDesc*) NIM_NIL),
((NimStringDesc*) NIM_NIL),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258),
((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_258)}
}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_267, "(($1 $2) >>> $3)", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_268, "(", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_269, "reprAny", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_270, ", null", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_271, "$1, $2", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_272, ")", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_273, "reprInt", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_274, "reprChar", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_275, "reprBool", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_276, "reprFloat", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_277, "reprStr", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_278, "reprEnum", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_279, "reprSet", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_280, "\'repr\' doesn\'t support \'void\' type", 34);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_281, "reprPointer", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_282, "reprJSONStringify", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_283, "genSwap", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_284, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_285, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_286, "$1 - 1", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_287, "subInt($1, 1)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_288, "addChar", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_289, "if ($1 != null) { addChar($1, $2); } else { $1 = [$2]; }", 56);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_290, "if ($1 != null) { $1 += $2; } else { $1 = $2$3; }", 49);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_291, ".slice()", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_292, "if ($1 != null) { $1 = ($1).concat($2); } else { $1 = $2$3; }", 61);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_293, "if ($1 != null) { $1.push($2); } else { $1 = [$2]; }", 52);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_294, "var $1 = nimCopy(null, $2, $3);$n", 33);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_295, "[$1].concat(", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_296, "($1).concat(", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_297, "[$1],", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_298, "$1,", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_299, "[$1])", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_300, "$1)", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_301, "eqStrings", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_302, "eqStrings($1, $2)", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_303, "cmpStrings", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_304, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_305, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_306, "($1 === null)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_307, "$1 = $2;$n", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_308, "($1 \? 1:0)", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_309, "genOrd", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_310, "($1 != null \? $1.length : 0)", 28);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_311, "$1.length", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_312, "($1 != null \? ($1.length-1) : -1)", 33);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_313, "$1 += $2", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_314, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_315, "$1 -= $2", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_316, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_317, "$1.length = $2", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_318, "if ($1.length < $2) { for (var i=$1.length;i<$2;++i) $1.push($3"
"); }\012               else { $1.length = $2; }", 107);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_319, "SetCard", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_320, "SetCard($1)", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_321, "SetLt", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_322, "SetLt($1, $2)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_323, "SetLe", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_324, "SetLe($1, $2)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_325, "SetEq", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_326, "SetEq($1, $2)", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_327, "SetMul", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_328, "SetMul($1, $2)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_329, "SetPlus", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_330, "SetPlus($1, $2)", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_331, "SetMinus", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_332, "SetMinus($1, $2)", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_333, "$1[$2] = true", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_334, "delete $1[$2]", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_335, "($1[$2] != undefined)", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_336, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_337, "[]", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_338, "($1.m_type == $2)", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_339, "isObj", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_340, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_341, "genericReset", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_342, "$1 = genericReset($1, $2);$n", 28);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_343 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 1309),
((NI) 17)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_344, "toJSStr", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_345, "rawEcho", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_346, "rawEcho(", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_347, "\'$1\' can only be used in compile-time context", 45);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_348, "($1.slice($2))", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_349, "mnewString", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_350, "mnewString($1)", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_351, "mnewString(0)", 13);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_352 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 1280),
((NI) 19)}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_BxLwT0mhrtgTPodf1v3xjg_353 = {
0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_354, "wrong importcpp pattern; expected parameter at position ", 56);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_355, " but got only: ", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_356, "$1[$2]", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_357, "($1 = $2, $1[0]), $1[1]", 23);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_358, "#", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_359, "@", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_360, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_361, ".", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_362, "nimParseBiggestFloat", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_363, "setConstr", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_364, "setConstr(", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_365, "ConstSet", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_366, "var $1 = $2;$n", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_367, "Field$#: $#", 11);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_368 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 1819),
((NI) 19)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_369, "$#: $#", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_370, "(!!($1))", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_371, "(($1)|0)", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_372, "genAddr: 3", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_373, "[0]", 3);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_374, "genAddr: 2", 10);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_375 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 965),
((NI) 17)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_376, "Field", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_377, "genFieldPosition", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_378, "genFieldAddr", 12);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_379 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 943),
((NI) 17)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_380, "$1.Field$2", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_381, "genFieldAccess", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_382, "$1.$2", 5);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_383 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 979),
((NI) 17)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_384, "chckIndx", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_385, "chckIndx($1, $2, $3.length+$2-1)-$2", 35);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_386, "($1)-$2", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_387, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_388, "genAddr: ", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_389, "($1 = $2, $1[0])[$1[1]]", 23);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_390, "genDeref", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_391, "genArrayAccess", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_392, "$1.charCodeAt($2)", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_393, "($1 $2)", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_394, "($1|0)", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_395, "0xfe", 4);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_396, "0xfffe", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_397, "0xfffffffe", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_398, "($1 - ($2 $3))", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_399, "chckRange", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_400, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_401, "chckRangeF", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_402, "chckRange64", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_403, "convStrToCStr", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_404, "toJSStr($1)", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_405, "convCStrToStr", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_406, "genBlock", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_407, "L$1: do {$n", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_408, "} while(false);$n", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_409, "else {$n", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_410, "if ($1) {$n", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_411, "$1;$n", 5);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_BxLwT0mhrtgTPodf1v3xjg_412 = {((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_110),
((NI) 550),
((NI) 17)}
;
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_413, "L$1: while (true) {$n", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_414, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_415, "for statement not eliminated", 28);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_416, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_417, "switch ($1) {$n", 15);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_418, "case $1:$n", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_419, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_420, "break;$n", 8);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_421, "default: $n", 11);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_422, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_423, "genReturnStmt", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_424, "break BeforeRet;$n", 18);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_425, "no loop to break", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_426, "break L$1;$n", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_427, "$1[0][$1[1]]", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_428, "$1 = nimCopy(null, $2, $3);$n", 29);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_429, "nimCopy($1, $2, $3);$n", 22);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_430, "var $1 = $4; $2 = $1[0]; $3 = $1[1];$n", 38);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_431, "$# = $#;$n", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_432, "genAsgn", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_433, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_434, "++excHandler;\012", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_435, "F", 1);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_436, " = framePtr;\012", 13);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_437, "try {$n", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_438, "--excHandler;$n} catch (EXC) {$n var prevJSError = lastJSError;"
"$n lastJSError = EXC;$n --excHandler;$n", 102);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_439, "framePtr = $1;$n", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_440, "genTryStmt", 10);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_441, "||", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_442, "isObj($2lastJSError.m_type, $1)", 31);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_443, "else ", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_444, "if ($1lastJSError && ($2)) {$n", 30);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_445, "reraiseException", 16);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_446, "else {\012", 7);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_447, "\011reraiseException();\012", 21);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_448, "}\012", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_449, "$1lastJSError = $1prevJSError;$n", 32);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_450, "} finally {\012", 12);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_451, "raiseException", 14);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_452, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_453, "reraiseException();\012", 20);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_454, "first class iterators not implemented", 37);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_455, "gen: unknown node type: ", 24);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_456, "$#;$n", 5);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_457, "js", 2);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_458, "nimsystem", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_459, "/* Generated by the Nim Compiler v$1 */$n/*   (c) 2018 Andreas "
"Rumpf */$n$nvar framePtr = null;$nvar excHandler = 0;$nvar lastJ"
"SError = null;$nif (typeof Int8Array === \'undefined\') Int8Array "
"= Array;$nif (typeof Int16Array === \'undefined\') Int16Array = Ar"
"ray;$nif (typeof Int32Array === \'undefined\') Int32Array = Array;"
"$nif (typeof Uint8Array === \'undefined\') Uint8Array = Array;$nif"
" (typeof Uint16Array === \'undefined\') Uint16Array = Array;$nif ("
"typeof Uint32Array === \'undefined\') Uint32Array = Array;$nif (ty"
"peof Float32Array === \'undefined\') Float32Array = Array;$nif (ty"
"peof Float64Array === \'undefined\') Float64Array = Array;$n", 633);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_460, "0.19.4", 6);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_461, "/home/travis/build/nim-lang/nightlies/nim/b6d96cafc8bcad1f3d32f"
"2910b25cd11a93f7751/compiler/jsgen.nim(2249, 13) `false` cannot "
"retrieve class name", 146);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_462, " extends ", 9);
STRING_LITERAL(TM_BxLwT0mhrtgTPodf1v3xjg_463, "<\?php$n/* Generated by the Nim Compiler v$# */$n/*   (c) 2018 A"
"ndreas Rumpf */$n$nrequire_once \"nimsystem.php\";$nclass $#$# {$n"
"$#$n}$n", 134);
static N_NIMCALL(void, Marker_tyRef_O09bHTFgtn9cJLLJxiNhuKUA)(void* p, NI op) {
	tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* a;
	a = (tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*)p;
	nimGCvisit((void*)(*a).module, op);
	nimGCvisit((void*)(*a).graph, op);
	nimGCvisit((void*)(*a).config, op);
	nimGCvisit((void*)(*a).sigConflicts.data, op);
}

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_NIMCALL(void, Marker_tySequence_AoW0ogAFeynDk5PueecbTw)(void* p, NI op) {
	tySequence_AoW0ogAFeynDk5PueecbTw* a;
	NI T1_;
	a = (tySequence_AoW0ogAFeynDk5PueecbTw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tyRef_Q8XTeJJ39cPFyNvJXj9bmcMQ)(void* p, NI op) {
	tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* a;
	NI T1_;
	NI T2_;
	a = (tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*)p;
	nimGCvisit((void*)(*a).typeInfo, op);
	nimGCvisit((void*)(*a).constants, op);
	nimGCvisit((void*)(*a).code, op);
	nimGCvisit((void*)(*a).forwarded, op);
	nimGCvisit((void*)(*a).generatedSyms.head, op);
	nimGCvisit((void*)(*a).generatedSyms.data, op);
	T1_ = (NI)0;
	nimGCvisit((void*)(*a).typeInfoGenerated.head, op);
	nimGCvisit((void*)(*a).typeInfoGenerated.data, op);
	T2_ = (NI)0;
	nimGCvisit((void*)(*a).classes, op);
}

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_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*, newGlobals_Oh7K84Q1LTu4ROS8vzXUmQ)(void) {
	tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* result;
	result = (tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*)0;
	result = (tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*) newObj((&NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_), sizeof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag));
	(*result).Sup.m_type = (&NTI_nWsHZg3qCUsABoCNYLliag_);
	if ((*result).forwarded) { nimGCunrefNoCycle((*result).forwarded); (*result).forwarded = NIM_NIL; }
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).generatedSyms));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&(*result).typeInfoGenerated));
	if ((*result).classes) { nimGCunrefNoCycle((*result).classes); (*result).classes = NIM_NIL; }
	return result;
}

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_NIMCALL(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*, newModule_RGudyQruKRVONDQv8A9a0sA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* result;
	result = (tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*)0;
	result = (tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*) newObj((&NTI_O09bHTFgtn9cJLLJxiNhuKUA_), sizeof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw));
	(*result).Sup.Sup.m_type = (&NTI_qij68Ti2EwJQHH6sSdkSdw_);
	asgnRefNoCycle((void**) (&(*result).module), module);
	initCountTable_l0wwSfs7C3wjWsJaXnDAUA(((NI) 64), (&(*result).sigConflicts));
	{
		tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* T5_;
		if (!((*g).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*)0;
		T5_ = newGlobals_Oh7K84Q1LTu4ROS8vzXUmQ();
		asgnRef((void**) (&(*g).backend), &T5_->Sup);
	}
	LA3_: ;
	asgnRef((void**) (&(*result).graph), g);
	asgnRef((void**) (&(*result).config), (*g).config);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w*, myOpen_ZwVi29aNA4xrtIvM18o8c9cQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* result;
	tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* T1_;
	result = (tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w*)0;
	T1_ = (tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*)0;
	T1_ = newModule_RGudyQruKRVONDQv8A9a0sA(graph, s);
	result = &T1_->Sup;
	return result;
}

static N_INLINE(NIM_BOOL, skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((NI) 0) < (*config).errorCounter);
	return result;
}
static N_NIMCALL(void, Marker_tySequence_8fytVdU59b5aj319cog2ztLw)(void* p, NI op) {
	tySequence_8fytVdU59b5aj319cog2ztLw* a;
	NI T1_;
	a = (tySequence_8fytVdU59b5aj319cog2ztLw*)p;
	T1_ = (NI)0;
}
static N_NIMCALL(void, Marker_tyRef_OFWibP8T8afo89apFNGZiwA)(void* p, NI op) {
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* a;
	NI T1_;
	a = (tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*)p;
	nimGCvisit((void*)(*a).procDef, op);
	nimGCvisit((void*)(*a).prc, op);
	nimGCvisit((void*)(*a).globals, op);
	nimGCvisit((void*)(*a).locals, op);
	nimGCvisit((void*)(*a).body, op);
	nimGCvisit((void*)(*a).module, op);
	nimGCvisit((void*)(*a).g, op);
	nimGCvisit((void*)(*a).blocks, op);
	nimGCvisit((void*)(*a).up, op);
	nimGCvisit((void*)(*a).declaredGlobals.head, op);
	nimGCvisit((void*)(*a).declaredGlobals.data, op);
	T1_ = (NI)0;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*, newProc_DZOGOvkWRt8L5GOYwFoPQw)(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* globals, tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* module, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* procDef, tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options) {
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* result;
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* T1_;
	result = (tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*)0;
	T1_ = (tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*)0;
	T1_ = (tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*) newObj((&NTI_OFWibP8T8afo89apFNGZiwA_), sizeof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q));
	if ((*T1_).blocks) { nimGCunrefNoCycle((*T1_).blocks); (*T1_).blocks = NIM_NIL; }
	(*T1_).options = options;
	asgnRef((void**) (&(*T1_).module), module);
	asgnRefNoCycle((void**) (&(*T1_).procDef), procDef);
	asgnRef((void**) (&(*T1_).g), globals);
	(*T1_).extraIndent = ((NI) (!((procDef == NIM_NIL))));
	result = T1_;
	{
		if (!!((procDef == NIM_NIL))) goto LA4_;
		asgnRefNoCycle((void**) (&(*result).prc), (*(*procDef)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_jQGcsbXjMm82EQo5Ohqg0w)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p_2;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = r;
	p_2 = p;
	{
		while (1) {
			{
				NI i;
				NI colontmp_;
				NI T4_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T4_ = ((*p_2).blocks ? (*p_2).blocks->Sup.len : 0);
				colontmp_ = (NI)((NI)(T4_ - ((NI) 1)) + (*p_2).extraIndent);
				res = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
						if (!(res <= colontmp_)) goto LA6;
						i = res;
						T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T7_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_9));
						prepend_iMTw0CDaruwETLGb9bhpBLg_2(&result, T7_);
						res += ((NI) 1);
					} LA6: ;
				}
			}
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = ((*p_2).up == NIM_NIL);
				if (T10_) goto LA11_;
				T10_ = !(((*(*p_2).up).prc == (*(*p_2).prc).owner));
				LA11_: ;
				if (!T10_) goto LA12_;
				goto LA1;
			}
			LA12_: ;
			p_2 = (*p_2).up;
		}
	} LA1: ;
	return result;
}

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(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, frameCreate_5xQGffjrmjbHfz64yWZ49bw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* frameFmt;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	frameFmt = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_8));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = procname;
	T1_[1] = filename;
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__9bvKdnhoYI2ta9agQNm3orMA(frameFmt, T1_, 2);
	result = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T2_);
	nimZeroMem((void*)T3_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_10), T3_, 0);
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T4_);
	add_iMTw0CDaruwETLGb9bhpBLg(&result, T5_);
	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_NIMCALL(NimStringDesc*, escapeJSString_znmOm8IkVBpkbkTBTlt6tA)(NimStringDesc* s) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = rawNewString(((NI) ((NI)((s ? s->Sup.len : 0) + (NI)((NU32)((s ? s->Sup.len : 0)) >> (NU32)(((NI) 2)))))));
	result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_11));
	{
		NIM_CHAR c;
		NI i;
		NI L;
		c = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (s ? s->Sup.len : 0);
		{
			while (1) {
				if (!(i < L)) goto LA3;
				c = s->data[i];
				switch (((NU8)(c))) {
				case 10:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_12));
				}
				break;
				case 13:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_13));
				}
				break;
				case 9:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_14));
				}
				break;
				case 8:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_15));
				}
				break;
				case 7:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_16));
				}
				break;
				case 27:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_17));
				}
				break;
				case 11:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_18));
				}
				break;
				case 92:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_19));
				}
				break;
				case 34:
				{
					result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_20));
				}
				break;
				default:
				{
					result = addChar(result, c);
				}
				break;
				}
				i += ((NI) 1);
			} LA3: ;
		}
	}
	result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_11));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw)(NimStringDesc* s, NIM_BOOL escapeNonAscii) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* T5_;
		if (!escapeNonAscii) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = nsuEscape(s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_11), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_11));
		result = rope_yShmEg9cffWxI7s5XzEKBow(T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T7_;
		T7_ = (NimStringDesc*)0;
		T7_ = escapeJSString_znmOm8IkVBpkbkTBTlt6tA(s);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA, mapType_W2TONft1TRaion9bBXzQqWw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
			T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T5_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T4_, IL64(36099165763184912));
			if (!((*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA6_;
			result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8);
		}
		goto LA2_;
		LA6_: ;
		{
			result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 50):
	{
		result = mapType_W2TONft1TRaion9bBXzQqWw((*t).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 5);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 3);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 6);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 4);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 10):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 9):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 0):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 61):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 30):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 51):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 54):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 56):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 57):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 58):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 59):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
		T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T20_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		result = mapType_W2TONft1TRaion9bBXzQqWw(T20_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
			if (!!(((*t).n == NIM_NIL))) goto LA24_;
			T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T26_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			result = mapType_W2TONft1TRaion9bBXzQqWw(T26_);
		}
		goto LA22_;
		LA24_: ;
		{
			result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
		}
		LA22_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 7);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		{
			if (!NIM_TRUE) goto LA33_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_24));
		}
		LA33_: ;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA, mapType_3VaqeosYFyERT8Ar50lWVA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA result;
	result = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
	result = mapType_W2TONft1TRaion9bBXzQqWw(typ);
	return result;
}

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, validJsName_1q5NBWQEByhSRjyQwfuEBA)(NimStringDesc* name) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	switch (hashString(name) & 63) {
	case 2: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_48))) goto LA1_;
break;
	case 5: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_73))) goto LA1_;
break;
	case 6: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_89))) goto LA1_;
break;
	case 7: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_55))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_64))) goto LA1_;
break;
	case 8: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_43))) goto LA1_;
break;
	case 10: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_62))) goto LA1_;
break;
	case 11: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_58))) goto LA1_;
break;
	case 12: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_61))) goto LA1_;
break;
	case 13: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_46))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_65))) goto LA1_;
break;
	case 14: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_47))) goto LA1_;
break;
	case 15: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_31))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_77))) goto LA1_;
break;
	case 19: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_39))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_52))) goto LA1_;
break;
	case 20: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_68))) goto LA1_;
break;
	case 21: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_40))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_44))) goto LA1_;
break;
	case 23: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_66))) goto LA1_;
break;
	case 25: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_32))) goto LA1_;
break;
	case 26: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_37))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_49))) goto LA1_;
break;
	case 28: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_41))) goto LA1_;
break;
	case 29: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_28))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_36))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_38))) goto LA1_;
break;
	case 30: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_88))) goto LA1_;
break;
	case 32: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_59))) goto LA1_;
break;
	case 34: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_53))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_60))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_76))) goto LA1_;
break;
	case 36: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_42))) goto LA1_;
break;
	case 37: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_81))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_85))) goto LA1_;
break;
	case 38: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_33))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_80))) goto LA1_;
break;
	case 40: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_30))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_72))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_83))) goto LA1_;
break;
	case 41: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_51))) goto LA1_;
break;
	case 44: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_45))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_63))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_70))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_84))) goto LA1_;
break;
	case 45: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_54))) goto LA1_;
break;
	case 47: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_56))) goto LA1_;
break;
	case 49: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_78))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_86))) goto LA1_;
break;
	case 52: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_69))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_74))) goto LA1_;
break;
	case 55: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_57))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_67))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_71))) goto LA1_;
break;
	case 56: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_50))) goto LA1_;
break;
	case 57: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_87))) goto LA1_;
break;
	case 59: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_35))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_75))) goto LA1_;
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_82))) goto LA1_;
break;
	case 61: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_29))) goto LA1_;
break;
	case 62: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_34))) goto LA1_;
break;
	case 63: 
if (eqStrings(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_79))) goto LA1_;
break;
	}
	goto LA2_;
	LA1_: ;
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA3_;
	LA2_: ;
	{
	}
	LA3_: ;
	{
		if (!(((NU8)(name->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(name->data[((NI) 0)])) <= ((NU8)(57)))) goto LA8_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NIM_CHAR chr;
		NI i;
		NI L;
		chr = (NIM_CHAR)0;
		i = ((NI) 0);
		L = (name ? name->Sup.len : 0);
		{
			while (1) {
				if (!(i < L)) goto LA12;
				chr = name->data[i];
				{
					if (!!((((NU8)(chr)) >= ((NU8)(65)) && ((NU8)(chr)) <= ((NU8)(90)) || ((NU8)(chr)) >= ((NU8)(97)) && ((NU8)(chr)) <= ((NU8)(122)) || ((NU8)(chr)) == ((NU8)(95)) || ((NU8)(chr)) == ((NU8)(36)) || ((NU8)(chr)) >= ((NU8)(48)) && ((NU8)(chr)) <= ((NU8)(57))))) goto LA15_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA15_: ;
				i += ((NI) 1);
			} LA12: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_VbRtGjpKYj6Wtc1GdNdKhg)(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		if (!(result == NIM_NIL)) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19));
			if (!(T7_)) goto LA8_;
			T7_ = validJsName_1q5NBWQEByhSRjyQwfuEBA((*(*s).name).s);
			LA8_: ;
			if (!T7_) goto LA9_;
			result = rope_yShmEg9cffWxI7s5XzEKBow((*(*s).name).s);
		}
		goto LA5_;
		LA9_: ;
		{
			NimStringDesc* T14_;
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5))) goto LA12_;
			T14_ = (NimStringDesc*)0;
			T14_ = mangle_0ctHksTXSPyaxjBOgK4TiA((*(*s).name).s);
			result = rope_yShmEg9cffWxI7s5XzEKBow(T14_);
		}
		goto LA5_;
		LA12_: ;
		{
			NimStringDesc* x;
			NI i;
			x = rawNewString(((NI) (((*(*s).name).s ? (*(*s).name).s->Sup.len : 0))));
			i = ((NI) 0);
			{
				while (1) {
					NIM_CHAR c;
					if (!(i < ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0))) goto LA17;
					c = (*(*s).name).s->data[i];
					switch (((NU8)(c))) {
					case 65 ... 90:
					{
						{
							NIM_BOOL T21_;
							T21_ = (NIM_BOOL)0;
							T21_ = (((NI) 0) < i);
							if (!(T21_)) goto LA22_;
							T21_ = (((NU8)((*(*s).name).s->data[(NI)(i - ((NI) 1))])) >= ((NU8)(97)) && ((NU8)((*(*s).name).s->data[(NI)(i - ((NI) 1))])) <= ((NU8)(122)));
							LA22_: ;
							if (!T21_) goto LA23_;
							x = addChar(x, 95);
						}
						LA23_: ;
						x = addChar(x, ((NIM_CHAR) (((NI) ((NI)((NI)(((NU8)(c)) - ((NI) 65)) + ((NI) 97)))))));
					}
					break;
					case 97 ... 122:
					case 95:
					case 48 ... 57:
					{
						x = addChar(x, c);
					}
					break;
					default:
					{
						NimStringDesc* T27_;
						NimStringDesc* T28_;
						T27_ = (NimStringDesc*)0;
						T28_ = (NimStringDesc*)0;
						T28_ = nsuToHex(((NI64) (((NU8)(c)))), ((NI) 2));
						T27_ = rawNewString((T28_ ? T28_->Sup.len : 0) + 3);
appendString(T27_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_90));
appendString(T27_, T28_);
						x = resizeString(x, (T27_ ? T27_->Sup.len : 0) + 0);
appendString(x, T27_);
					}
					break;
					}
					i += ((NI) 1);
				} LA17: ;
			}
			result = rope_yShmEg9cffWxI7s5XzEKBow(x);
		}
		LA5_: ;
		{
			if (!!(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA31_;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
				if (!(((*(*m).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 24))&31U)))!=0)) goto LA35_;
				T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = idOrSig_m9ce9cPk9cZQsWLc0DxveJj0g(s, (*(*(*m).module).name).s, (&(*m).sigConflicts));
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T37_);
			}
			goto LA33_;
			LA35_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
				add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_91));
				T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T39_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*s).Sup.id)));
				add_iMTw0CDaruwETLGb9bhpBLg(&result, T39_);
			}
			LA33_: ;
		}
		LA31_: ;
		asgnRefNoCycle((void**) (&(*s).loc.r), result);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, putToSeq_iEKLYo8HXYG9auKlJ6tkKKw)(NimStringDesc* s, NIM_BOOL indirect) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rope_yShmEg9cffWxI7s5XzEKBow(s);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!indirect) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_96), T5_, 1);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, arrayTypeForElemType_3lXJ2v6tm2SJD3LYfBVjTw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_100));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 33):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_101));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 32):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_102));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_103));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 42):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_104));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_105));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 37):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_106));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 38):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36):
	{
		result = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_107));
	}
	break;
	default:
	{
		result = ((NimStringDesc*) NIM_NIL);
	}
	break;
	}
	return result;
}

static N_INLINE(NIM_BOOL, isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, generateHeader_jZNTi9aEbLMAMESBZ7a9cl7A)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*typ).n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
					param = (*(*(*typ).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
					{
						NIM_BOOL T8_;
						T8_ = (NIM_BOOL)0;
						T8_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*param).typ);
						if (!T8_) goto LA9_;
						goto LA5;
					}
					LA9_: ;
					{
						if (!!((result == NIM_NIL))) goto LA13_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
					}
					LA13_: ;
					name = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, param);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, name);
					{
						tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T17_;
						T17_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
						T17_ = mapType_W2TONft1TRaion9bBXzQqWw((*param).typ);
						if (!(T17_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA18_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
						add_iMTw0CDaruwETLGb9bhpBLg(&result, name);
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_27));
					}
					LA18_: ;
				} LA5: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, optionaLine_VuwqVIjxPGcoTVF06Jgl6w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(p == NIM_NIL)) goto LA3_;
		result = NIM_NIL;
		goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_117));
		goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasFrameInfo_X4QGocgN4K1dMViygAn1Sw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((196608 & (*p).options) == 196608);
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*p).prc == NIM_NIL);
	if (T3_) goto LA4_;
	T3_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

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

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, frameDestroy_XP5ZeYFuxYow89aSkFgfWeg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_121));
	result = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcBody_ByRZ0N9c4W9b5ThEZxre89cFg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		NimStringDesc* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasFrameInfo_X4QGocgN4K1dMViygAn1Sw(p);
		if (!T3_) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString(((*(*(*prc).owner).name).s ? (*(*(*prc).owner).name).s->Sup.len : 0) + ((*(*prc).name).s ? (*(*prc).name).s->Sup.len : 0) + 1);
appendString(T6_, (*(*(*prc).owner).name).s);
appendChar(T6_, 46);
appendString(T6_, (*(*prc).name).s);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T6_, NIM_TRUE);
		T8_ = (NimStringDesc*)0;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*prc).info.fileIndex < ((NI32) 0));
			if (T11_) goto LA12_;
			T11_ = ((*(*p).module).config == NIM_NIL);
			LA12_: ;
			if (!T11_) goto LA13_;
			T8_ = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_22));
		}
		goto LA9_;
		LA13_: ;
		{
			T8_ = copyString((*(*(*p).module).config).m.fileInfos->data[(*prc).info.fileIndex].projPath);
		}
		LA9_: ;
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T8_, NIM_TRUE);
		result = frameCreate_5xQGffjrmjbHfz64yWZ49bw(p, T7_, T16_);
	}
	goto LA1_;
	LA4_: ;
	{
		result = NIM_NIL;
	}
	LA1_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		if (!(*p).beforeRetNeeded) goto LA20_;
		nimZeroMem((void*)T22_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_118), T22_, 0);
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T23_);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T24_);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, (*p).body);
		nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_119), T25_, 0);
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T26_);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T27_);
	}
	goto LA18_;
	LA20_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&result, (*p).body);
	}
	LA18_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T33_;
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 4))) goto LA31_;
		nimZeroMem((void*)T33_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T33_[0] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_120), T33_, 1);
	}
	LA31_: ;
	{
		NIM_BOOL T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		T36_ = (NIM_BOOL)0;
		T36_ = hasFrameInfo_X4QGocgN4K1dMViygAn1Sw(p);
		if (!T36_) goto LA37_;
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = frameDestroy_XP5ZeYFuxYow89aSkFgfWeg(p);
		add_iMTw0CDaruwETLGb9bhpBLg(&result, T39_);
	}
	LA37_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProc_VRfKzQHOMcRGtJXZSJxFtg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* oldProc, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* resultSym;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* returnStmt;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* resultAsgn;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* def;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T52_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	resultSym = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	p = newProc_DZOGOvkWRt8L5GOYwFoPQw((*oldProc).g, (*oldProc).module, (*prc).ast, (*prc).options);
	asgnRef((void**) (&(*p).up), oldProc);
	returnStmt = NIM_NIL;
	resultAsgn = NIM_NIL;
	name = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, prc);
	header = generateHeader_jZNTi9aEbLMAMESBZ7a9cl7A(p, (*prc).typ);
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mname;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* resVar;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		resultSym = (*(*(*prc).ast)._Ukind.S6.sons->data[((NI) 7)])._Ukind.S4.sym;
		mname = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, resultSym);
		v = resultSym;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = !(((32776 & (*v).flags) == 0));
		if (!(T8_)) goto LA9_;
		T8_ = ((224 & (*v).flags) == 0);
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		T7_ = !(((128544 &(1U<<((NU)((*v).kind)&31U)))!=0));
		LA10_: ;
		resVar = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, (*resultSym).typ, T7_);
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = mname;
		T11_[1] = resVar;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_112), T11_, 2);
		resultAsgn = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T12_);
		{
			NIM_BOOL T15_;
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T17_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*(*resultSym).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*resultSym).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*(*resultSym).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*(*resultSym).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T15_)) goto LA16_;
			T17_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T17_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*resultSym).typ);
			T15_ = (T17_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9));
			LA16_: ;
			if (!T15_) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T20_[0] = mname;
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_113), T20_, 1);
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T21_);
			add_iMTw0CDaruwETLGb9bhpBLg(&resultAsgn, T22_);
		}
		LA18_: ;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 7)], (&a));
		{
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T25_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T28_;
			T25_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T25_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*resultSym).typ);
			if (!(T25_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA26_;
			nimZeroMem((void*)T28_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T28_[0] = a.address;
			T28_[1] = a.res;
			returnStmt = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_114), T28_, 2);
		}
		goto LA23_;
		LA26_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T30_;
			nimZeroMem((void*)T30_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T30_[0] = a.res;
			returnStmt = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_115), T30_, 1);
		}
		LA23_: ;
	}
	LA5_: ;
	(*p).extraIndent += ((NI) 1);
	genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, (*(*prc).ast)._Ukind.S6.sons->data[((NI) 6)]);
	(*p).extraIndent -= ((NI) 1);
	def = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* T35_;
		tyArray_wm6rkCVggH4IozhLUEP19bg T36_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		if (!!(((*prc).constraint == 0))) goto LA33_;
		T35_ = (NimStringDesc*)0;
		T35_ = rawNewString(((*(*prc).constraint)._Ukind.S3.strVal ? (*(*prc).constraint)._Ukind.S3.strVal->Sup.len : 0) + 14);
appendString(T35_, (*(*prc).constraint)._Ukind.S3.strVal);
appendString(T35_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_116));
		nimZeroMem((void*)T36_, sizeof(tyArray_wm6rkCVggH4IozhLUEP19bg));
		nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T36_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T37_, 0);
		T36_[1] = name;
		T36_[2] = header;
		T36_[3] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w((*p).globals);
		T36_[4] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w((*p).locals);
		T36_[5] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(resultAsgn);
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = genProcBody_ByRZ0N9c4W9b5ThEZxre89cFg(p, prc);
		T36_[6] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(T38_);
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, returnStmt);
		T36_[7] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(T39_);
		def = percent__9bvKdnhoYI2ta9agQNm3orMA(T35_, T36_, 8);
	}
	goto LA31_;
	LA33_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
		tyArray_YcHYlgE5mhtkt9a3rnoucVg T48_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
		nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_117), T41_, 0);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* thunkName;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			if (!(((*(*(*p).module).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 24))&31U)))!=0)) goto LA44_;
			thunkName = name;
			name = amp__Z7W1o5nPSc3ExfO5f7j1Gg(name, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_122));
			nimZeroMem((void*)T46_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T46_[0] = thunkName;
			T46_[1] = name;
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_123), T46_, 2);
			add_iMTw0CDaruwETLGb9bhpBLg(&result, T47_);
		}
		LA44_: ;
		nimZeroMem((void*)T48_, sizeof(tyArray_YcHYlgE5mhtkt9a3rnoucVg));
		T48_[0] = name;
		T48_[1] = header;
		T48_[2] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w((*p).globals);
		T48_[3] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w((*p).locals);
		T48_[4] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(resultAsgn);
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = genProcBody_ByRZ0N9c4W9b5ThEZxre89cFg(p, prc);
		T48_[5] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(T49_);
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, returnStmt);
		T48_[6] = optionaLine_VuwqVIjxPGcoTVF06Jgl6w(T50_);
		def = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_124), T48_, 7);
	}
	LA31_: ;
	(*p).extraIndent -= ((NI) 1);
	T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T51_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, def);
	add_iMTw0CDaruwETLGb9bhpBLg(&result, T51_);
	nimZeroMem((void*)T52_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T53_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T52_, 0);
	T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T54_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T53_);
	add_iMTw0CDaruwETLGb9bhpBLg(&result, T54_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, useMagic_4MoUWv1cpa6oOBwwpQ0wfA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, NimStringDesc* name) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
{	{
		if (!((name ? name->Sup.len : 0) == ((NI) 0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	s = getCompilerProc_Z9bI8j6Vv57IyOO09a8fpp3g((*(*p).module).graph, name);
	{
		if (!!((s == NIM_NIL))) goto LA7_;
		{
			NimStringDesc* T13_;
			if (!!(((94208 &(1U<<((NU)((*s).kind)&31U)))!=0))) goto LA11_;
			T13_ = (NimStringDesc*)0;
			T13_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_109);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T13_);
		}
		LA11_: ;
		{
			NIM_BOOL T16_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code;
			T16_ = (NIM_BOOL)0;
			T16_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).g).generatedSyms), (*s).Sup.id);
			if (!!(T16_)) goto LA17_;
			code = genProc_VRfKzQHOMcRGtJXZSJxFtg(p, s);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).constants, code);
		}
		LA17_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		{
			NimStringDesc* T24_;
			if (!!(((*p).prc == NIM_NIL))) goto LA22_;
			T24_ = (NimStringDesc*)0;
			T24_ = rawNewString((name ? name->Sup.len : 0) + 21);
appendString(T24_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_126));
appendString(T24_, name);
			globalError_NF6kBGchnhQYPbCedyefVA_2((*(*p).module).config, (*(*p).prc).info, T24_);
		}
		goto LA20_;
		LA22_: ;
		{
			NimStringDesc* T26_;
			T26_ = (NimStringDesc*)0;
			T26_ = rawNewString((name ? name->Sup.len : 0) + 21);
appendString(T26_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_126));
appendString(T26_, name);
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*p).module).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), T26_);
		}
		LA20_: ;
	}
	LA5_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_EoO5XDgy69ax76bvbHbf27w)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	NI length;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* n;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T18_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T19_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*typ).n);
	s = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(length - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
				NimStringDesc* extName;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					if (!!(((*(*(*typ).n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA6_;
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*(*typ).n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_133));
				}
				LA6_: ;
				field = (*(*(*typ).n)._Ukind.S6.sons->data[i])._Ukind.S4.sym;
				{
					if (!(((NI) 0) < i)) goto LA10_;
					add_yG4AKzsBRS1W4MANDlXQeg(&s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_134));
				}
				LA10_: ;
				{
					if (!((*field).ast == NIM_NIL)) goto LA14_;
					extName = (*(*field).name).s;
				}
				goto LA12_;
				LA14_: ;
				{
					extName = (*(*field).ast)._Ukind.S3.strVal;
				}
				LA12_: ;
				nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T17_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*field).position)));
				T17_[1] = name;
				T17_[2] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(extName, NIM_TRUE);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_135), T17_, 3);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	nimZeroMem((void*)T18_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T18_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	T18_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T18_[2] = s;
	n = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_136), T18_, 3);
	nimZeroMem((void*)T19_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T19_[0] = name;
	T19_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).kind)));
	s = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_137), T19_, 2);
	prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).typeInfo, n);
	nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T20_[0] = name;
	T20_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_138), T20_, 2);
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA23_;
		nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T25_[0] = name;
		T25_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*typ).sons->data[((NI) 0)]);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_132), T25_, 2);
	}
	LA23_: ;
}

static N_INLINE(NIM_BOOL, objHasTypeField_pWmuM79aUy3GaCZ9bBUyJyJgjsgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 3))&63U)))!=0);
	if (T1_) goto LA2_;
	T1_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* u;
	NI length;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	s = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	u = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	length = (NI)0;
	field = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	b = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		{
			if (!(length == ((NI) 1))) goto LA4_;
			result = genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g(p, typ, (*n)._Ukind.S6.sons->data[((NI) 0)]);
		}
		goto LA2_;
		LA4_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T15_;
			s = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = (NI)(length - ((NI) 1));
				res = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
						if (!(res <= colontmp_)) goto LA9;
						i = res;
						{
							if (!(((NI) 0) < i)) goto LA12_;
							add_yG4AKzsBRS1W4MANDlXQeg(&s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_134));
						}
						LA12_: ;
						T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T14_ = genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g(p, typ, (*n)._Ukind.S6.sons->data[i]);
						add_iMTw0CDaruwETLGb9bhpBLg(&s, T14_);
						res += ((NI) 1);
					} LA9: ;
				}
			}
			nimZeroMem((void*)T15_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T15_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
			T15_[1] = s;
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_140), T15_, 2);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
		field = (*n)._Ukind.S4.sym;
		s = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*field).typ);
		nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T17_[0] = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, field);
		T17_[1] = s;
		T17_[2] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*(*field).name).s, NIM_TRUE);
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_141), T17_, 3);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T59_;
		NI64 T60_;
		length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA21_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_142));
		}
		LA21_: ;
		field = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		s = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*field).typ);
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)(length - ((NI) 1));
			res_2 = ((NI) 1);
			{
				while (1) {
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T57_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T58_;
					if (!(res_2 <= colontmp__2)) goto LA25;
					i_2 = res_2;
					b = (*n)._Ukind.S6.sons->data[i_2];
					u = NIM_NIL;
					switch ((*b).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						{
							NI T29_;
							T29_ = (NI)0;
							T29_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							if (!(T29_ < ((NI) 2))) goto LA30_;
							internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*b).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_143));
						}
						LA30_: ;
						{
							NI j;
							NI colontmp__3;
							NI T33_;
							NI res_3;
							j = (NI)0;
							colontmp__3 = (NI)0;
							T33_ = (NI)0;
							T33_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(b);
							colontmp__3 = (NI)(T33_ - ((NI) 2));
							res_3 = ((NI) 0);
							{
								while (1) {
									if (!(res_3 <= colontmp__3)) goto LA35;
									j = res_3;
									{
										if (!!((u == NIM_NIL))) goto LA38_;
										add_yG4AKzsBRS1W4MANDlXQeg(&u, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
									}
									LA38_: ;
									{
										tyArray_mrugoXXRZUEeG9bEXo9auBKw T44_;
										NI64 T45_;
										NI64 T46_;
										if (!((*(*b)._Ukind.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA42_;
										nimZeroMem((void*)T44_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
										T45_ = (NI64)0;
										T45_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*(*b)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 0)]);
										T44_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(T45_);
										T46_ = (NI64)0;
										T46_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*(*b)._Ukind.S6.sons->data[j])._Ukind.S6.sons->data[((NI) 1)]);
										T44_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T46_);
										addf_ocEHZ9cujtqicXvDuJUm5pg(&u, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_144), T44_, 2);
									}
									goto LA40_;
									LA42_: ;
									{
										NI64 T48_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
										T48_ = (NI64)0;
										T48_ = getOrdValue_k4X4XP9cdVXYioHD9akA9bVbQ((*b)._Ukind.S6.sons->data[j]);
										T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T49_ = rope_KOisMGxcPhz6CcSmxgwEQQ(T48_);
										add_iMTw0CDaruwETLGb9bhpBLg(&u, T49_);
									}
									LA40_: ;
									res_3 += ((NI) 1);
								} LA35: ;
							}
						}
					}
					break;
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						NI64 T51_;
						T51_ = (NI64)0;
						T51_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*p).module).config, (*field).typ);
						u = rope_KOisMGxcPhz6CcSmxgwEQQ(T51_);
					}
					break;
					default:
					{
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_145));
					}
					break;
					}
					{
						if (!!((result == NIM_NIL))) goto LA55_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_134));
					}
					LA55_: ;
					nimZeroMem((void*)T57_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T57_[0] = u;
					T58_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T58_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(b);
					T57_[1] = genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g(p, typ, T58_);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_146), T57_, 2);
					res_2 += ((NI) 1);
				} LA25: ;
			}
		}
		nimZeroMem((void*)T59_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T59_[0] = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, field);
		T59_[1] = s;
		T60_ = (NI64)0;
		T60_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*p).module).config, (*field).typ);
		T59_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(T60_);
		T59_[3] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*(*field).name).s, NIM_TRUE);
		T59_[4] = result;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_147), T59_, 5);
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_142));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_EoO5XDgy69ax76bvbHbf27w_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = objHasTypeField_pWmuM79aUy3GaCZ9bBUyJyJgjsgen(typ);
		if (!T3_) goto LA4_;
		kind = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17);
	}
	goto LA1_;
	LA4_: ;
	{
		kind = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18);
	}
	LA1_: ;
	nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T7_[0] = name;
	T7_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (kind)));
	s = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_137), T7_, 2);
	prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s);
	nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T8_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	T8_[1] = genObjectFields_9cYkCneeT9aY9avg49aE6JtN6g(p, typ, (*typ).n);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_139), T8_, 2);
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T9_[0] = name;
	T9_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_138), T9_, 2);
	{
		NIM_BOOL T12_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
		if (!(T12_)) goto LA13_;
		T12_ = !(((*typ).sons->data[((NI) 0)] == NIM_NIL));
		LA13_: ;
		if (!T12_) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = name;
		T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*typ).sons->data[((NI) 0)], IL64(36239903266179344));
		T16_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, T17_);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_132), T16_, 2);
	}
	LA14_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTupleFields_jZNTi9aEbLMAMESBZ7a9cl7A_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
	NI T10_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	s = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_SWFNCiWYB89bTUPh5KptkvA_2(typ);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					if (!(((NI) 0) < i)) goto LA6_;
					add_yG4AKzsBRS1W4MANDlXQeg(&s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_134));
				}
				LA6_: ;
				nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T8_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				T8_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*typ).sons->data[i]);
				addf_ocEHZ9cujtqicXvDuJUm5pg(&s, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_148), T8_, 2);
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T10_ = (NI)0;
	T10_ = len_SWFNCiWYB89bTUPh5KptkvA_2(typ);
	T9_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T10_)));
	T9_[1] = s;
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_140), T9_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_EoO5XDgy69ax76bvbHbf27w_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T2_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T3_;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = name;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).kind)));
	s = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_137), T1_, 2);
	prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s);
	nimZeroMem((void*)T2_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	T2_[1] = genTupleFields_jZNTi9aEbLMAMESBZ7a9cl7A_3(p, typ);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_139), T2_, 2);
	nimZeroMem((void*)T3_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T3_[0] = name;
	T3_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*typ).Sup.id)));
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_138), T3_, 2);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(70368744187920));
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*t).Sup.id)));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_130), T1_, 1);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).g).typeInfoGenerated), (*t).Sup.id);
		if (!T4_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	{
		result = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*t).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = result;
		T9_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*t).kind)));
		s = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_131), T9_, 2);
		prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s_2;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = result;
		T11_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*t).kind)));
		s_2 = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_131), T11_, 2);
		prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s_2);
		nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = result;
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
		T12_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, T13_);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_132), T12_, 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s_3;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T15_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
		nimZeroMem((void*)T15_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T15_[0] = result;
		T15_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*t).kind)));
		s_3 = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_131), T15_, 2);
		prepend_iMTw0CDaruwETLGb9bhpBLg_2(&(*(*p).g).typeInfo, s_3);
		nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = result;
		T16_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*t).sons->data[((NI) 1)]);
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).typeInfo, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_132), T16_, 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		genEnumInfo_EoO5XDgy69ax76bvbHbf27w(p, t, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		genObjectInfo_EoO5XDgy69ax76bvbHbf27w_2(p, t, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleInfo_EoO5XDgy69ax76bvbHbf27w_3(p, t, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
			if (!!(((*t).n == NIM_NIL))) goto LA23_;
			T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T25_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			result = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, T25_);
		}
		goto LA21_;
		LA23_: ;
		{
			NimStringDesc* T27_;
			T27_ = (NimStringDesc*)0;
			T27_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T27_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_149));
appendString(T27_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T27_, 41);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T27_);
		}
		LA21_: ;
	}
	break;
	default:
	{
		NimStringDesc* T29_;
		T29_ = (NimStringDesc*)0;
		T29_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T29_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_149));
appendString(T29_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T29_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T29_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* rec, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* excludedFieldIDs, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** output) {
	switch ((*rec).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(rec);
			colontmp_ = (NI)(T3_ - ((NI) 1));
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					i = res;
					createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA(p, (*rec)._Ukind.S6.sons->data[i], excludedFieldIDs, output);
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA(p, (*rec)._Ukind.S6.sons->data[((NI) 0)], excludedFieldIDs, output);
		{
			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(rec);
			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((*rec)._Ukind.S6.sons->data[i_2]);
					createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA(p, T11_, excludedFieldIDs, output);
					res_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T15_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
			T15_ = (NIM_BOOL)0;
			T15_ = contains_sYBLNwnPJlAFi0nfWU79awg(excludedFieldIDs, (*(*rec)._Ukind.S4.sym).Sup.id);
			if (!!(T15_)) goto LA16_;
			{
				NI T20_;
				T20_ = (NI)0;
				T20_ = len_9bnJ6v2DTn9bxH3beTpErsUg((*output));
				if (!(((NI) 0) < T20_)) goto LA21_;
				add_yG4AKzsBRS1W4MANDlXQeg(output, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
			}
			LA21_: ;
			nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T23_[0] = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, (*rec)._Ukind.S4.sym);
			addf_ocEHZ9cujtqicXvDuJUm5pg(output, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_156), T23_, 1);
			T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, (*(*rec)._Ukind.S4.sym).typ, NIM_FALSE);
			add_iMTw0CDaruwETLGb9bhpBLg(output, T24_);
		}
		LA16_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*rec).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_157));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, createObjInitList_lQPYSYugh4oxbm9bTJCSJoA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* excludedFieldIDs, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** output) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = typ;
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
		T3_ = (NIM_BOOL)0;
		T3_ = objHasTypeField_pWmuM79aUy3GaCZ9bBUyJyJgjsgen(t);
		if (!T3_) goto LA4_;
		{
			NI T8_;
			T8_ = (NI)0;
			T8_ = len_9bnJ6v2DTn9bxH3beTpErsUg((*output));
			if (!(((NI) 0) < T8_)) goto LA9_;
			add_yG4AKzsBRS1W4MANDlXQeg(output, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
		}
		LA9_: ;
		nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		addf_ocEHZ9cujtqicXvDuJUm5pg(output, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_155), T11_, 1);
	}
	LA4_: ;
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA13;
			t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36239903266179344));
			createRecordVarAux_yyLC0N4Jogp3ojVKBnvQXA(p, (*t).n, excludedFieldIDs, output);
			t = (*t).sons->data[((NI) 0)];
		} LA13: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, createVar_K9ag9aJJIngrApxv9aEbfdhIQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NIM_BOOL indirect) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(typ, IL64(36099165763184912));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_97), indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_98), indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = lastSon_ab52xel9cFebv9am0xV04xXA(typ);
		result = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, T4_, indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_99), indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_48), indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI length;
		NI64 T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* e;
		NimStringDesc* jsTyp;
		T8_ = (NI64)0;
		T8_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*p).module).config, t);
		length = ((NI) (T8_));
		e = elemType_BFFuB9cFDZ89c6QWZqEFAtdA_2(t);
		jsTyp = arrayTypeForElemType_3lXJ2v6tm2SJD3LYfBVjTw(e);
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
			if (!(((NI) 0) < (jsTyp ? jsTyp->Sup.len : 0))) goto LA11_;
			nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T13_[0] = rope_yShmEg9cffWxI7s5XzEKBow(jsTyp);
			T13_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_108), T13_, 2);
		}
		goto LA9_;
		LA11_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
			if (!(((NI) 32) < length)) goto LA15_;
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_127));
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
			nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T17_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
			T17_[1] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, e, NIM_FALSE);
			T17_[2] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, e);
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_129), T17_, 3);
		}
		goto LA9_;
		LA15_: ;
		{
			NI i;
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_150));
			i = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
					if (!(i < length)) goto LA20;
					{
						if (!(((NI) 0) < i)) goto LA23_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
					}
					LA23_: ;
					T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T25_ = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, e, NIM_FALSE);
					add_iMTw0CDaruwETLGb9bhpBLg(&result, T25_);
					i += ((NI) 1);
				} LA20: ;
			}
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_151));
		}
		LA9_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T30_;
			if (!indirect) goto LA28_;
			nimZeroMem((void*)T30_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T30_[0] = result;
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_96), T30_, 1);
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_152));
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(t);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T39_;
					if (!(i_3 < colontmp_)) goto LA34;
					i_2 = i_3;
					{
						if (!(((NI) 0) < i_2)) goto LA37_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
					}
					LA37_: ;
					nimZeroMem((void*)T39_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T39_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_2)));
					T39_[1] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, (*t).sons->data[i_2], NIM_FALSE);
					addf_ocEHZ9cujtqicXvDuJUm5pg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_153), T39_, 2);
					i_3 += ((NI) 1);
				} LA34: ;
			}
		}
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_154));
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T44_;
			if (!indirect) goto LA42_;
			nimZeroMem((void*)T44_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T44_[0] = result;
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_96), T44_, 1);
		}
		LA42_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initList;
		tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg T46_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T47_;
		initList = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		nimZeroMem((void*)(&T46_), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
		initIntSet_a9a80eJplB17xrdZJ41Baww((&T46_));
		createObjInitList_lQPYSYugh4oxbm9bTJCSJoA(p, t, (&T46_), &initList);
		nimZeroMem((void*)T47_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T47_[0] = initList;
		result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_158), T47_, 1);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T52_;
			if (!indirect) goto LA50_;
			nimZeroMem((void*)T52_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T52_[0] = result;
			result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_96), T52_, 1);
		}
		LA50_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		{
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T56_;
			T56_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T56_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, t);
			if (!(T56_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA57_;
			result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_159), indirect);
		}
		goto LA54_;
		LA57_: ;
		{
			result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_66), indirect);
		}
		LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		result = putToSeq_iEKLYo8HXYG9auKlJ6tkKKw(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_66), indirect);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T66_;
			if (!!(((*t).n == NIM_NIL))) goto LA64_;
			T66_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T66_ = lastSon_ab52xel9cFebv9am0xV04xXA(t);
			result = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, T66_, indirect);
		}
		goto LA62_;
		LA64_: ;
		{
			NimStringDesc* T68_;
			T68_ = (NimStringDesc*)0;
			T68_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 11);
appendString(T68_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_160));
appendString(T68_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T68_);
			result = NIM_NIL;
		}
		LA62_: ;
	}
	break;
	default:
	{
		NimStringDesc* T70_;
		T70_ = (NimStringDesc*)0;
		T70_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 11);
appendString(T70_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_160));
appendString(T70_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T70_);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsNoCopy_jpd9cnGMvMNWjXepTXEORHg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((TM_BxLwT0mhrtgTPodf1v3xjg_162[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0);
	if (T1_) goto LA2_;
	T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*y).typ, IL64(36099165763184912));
	T1_ = ((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTemp_EG8bDinaW3fVLpok9a4s5cA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, NIM_BOOL defineInLocals) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	(*p).unique += ((NI) 1);
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).unique)));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_166), T1_, 1);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!defineInLocals) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = result;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_92), T6_, 1);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T7_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).locals, T8_);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarInit_iVEhpHbcyNY9aOzPqLze8xw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	NimStringDesc* varCode;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* varName;
	NIM_BOOL useReloadingGuard;
	NIM_BOOL T1_;
{	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	s = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	varCode = (NimStringDesc*)0;
	varName = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, v);
	T1_ = (NIM_BOOL)0;
	T1_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*(*p).module).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 24))&31U)))!=0);
	LA2_: ;
	useReloadingGuard = T1_;
	{
		if (!((*v).constraint == 0)) goto LA5_;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
			if (!useReloadingGuard) goto LA9_;
			nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T11_[0] = varName;
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_92), T11_, 1);
			T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T13_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T12_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T13_);
			nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T14_[0] = varName;
			T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_93), T14_, 1);
			T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T16_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T15_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T16_);
			varCode = dollar__4KNdcWAONkpTKQgUR8XiZQ(varName);
		}
		goto LA7_;
		LA9_: ;
		{
			varCode = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_94));
		}
		LA7_: ;
	}
	goto LA3_;
	LA5_: ;
	{
		varCode = copyString((*(*v).constraint)._Ukind.S3.strVal);
	}
	LA3_: ;
	{
		NimStringDesc* T23_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T24_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v_2;
		NIM_BOOL T26_;
		NIM_BOOL T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA21_;
		T23_ = (NimStringDesc*)0;
		T23_ = rawNewString((varCode ? varCode->Sup.len : 0) + 8);
appendString(T23_, varCode);
appendString(T23_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_95));
		nimZeroMem((void*)T24_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T24_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T25_, 0);
		T24_[1] = varName;
		v_2 = v;
		T26_ = (NIM_BOOL)0;
		T27_ = (NIM_BOOL)0;
		T27_ = !(((32776 & (*v_2).flags) == 0));
		if (!(T27_)) goto LA28_;
		T27_ = ((224 & (*v_2).flags) == 0);
		LA28_: ;
		T26_ = T27_;
		if (!(T26_)) goto LA29_;
		T26_ = !(((128544 &(1U<<((NU)((*v_2).kind)&31U)))!=0));
		LA29_: ;
		T24_[2] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, (*v).typ, T26_);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T23_, T24_, 3);
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T30_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T31_);
		{
			NIM_BOOL T34_;
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T36_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T39_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			T34_ = (NIM_BOOL)0;
			T34_ = ((*(*v).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*v).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*(*v).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*(*v).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
			if (!(T34_)) goto LA35_;
			T36_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T36_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*v).typ);
			T34_ = (T36_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9));
			LA35_: ;
			if (!T34_) goto LA37_;
			nimZeroMem((void*)T39_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T39_[0] = varName;
			T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_161), T39_, 1);
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T40_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T41_);
		}
		LA37_: ;
	}
	goto LA19_;
	LA21_: ;
	{
		tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T43_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, n, (&a));
		T43_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
		T43_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*v).typ);
		switch (T43_) {
		case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8):
		case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 4):
		{
			{
				NIM_BOOL T47_;
				T47_ = (NIM_BOOL)0;
				T47_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, n);
				if (!T47_) goto LA48_;
				s = a.res;
			}
			goto LA45_;
			LA48_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T51_;
				useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
				nimZeroMem((void*)T51_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T51_[0] = a.res;
				T51_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*n).typ);
				s = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_163), T51_, 2);
			}
			LA45_: ;
		}
		break;
		case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9):
		{
			NIM_BOOL targetBaseIndex;
			targetBaseIndex = ((32776 & (*v).flags) == 0);
			{
				if (!(a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA55_;
				{
					NimStringDesc* T61_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T62_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T63_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
					if (!targetBaseIndex) goto LA59_;
					T61_ = (NimStringDesc*)0;
					T61_ = rawNewString((varCode ? varCode->Sup.len : 0) + 21);
appendString(T61_, varCode);
appendString(T61_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_164));
					nimZeroMem((void*)T62_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					nimZeroMem((void*)T63_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T62_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T63_, 0);
					T62_[1] = (*v).loc.r;
					T62_[2] = a.address;
					T62_[3] = a.res;
					T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T64_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T61_, T62_, 4);
					T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T65_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T64_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T65_);
				}
				goto LA57_;
				LA59_: ;
				{
					NimStringDesc* T67_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T68_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T69_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
					T67_ = (NimStringDesc*)0;
					T67_ = rawNewString((varCode ? varCode->Sup.len : 0) + 14);
appendString(T67_, varCode);
appendString(T67_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_165));
					nimZeroMem((void*)T68_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					nimZeroMem((void*)T69_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T68_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T69_, 0);
					T68_[1] = (*v).loc.r;
					T68_[2] = a.address;
					T68_[3] = a.res;
					T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T70_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T67_, T68_, 4);
					T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T71_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T70_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T71_);
				}
				LA57_: ;
			}
			goto LA53_;
			LA55_: ;
			{
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T77_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
					if (!targetBaseIndex) goto LA75_;
					tmp = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE);
					nimZeroMem((void*)T77_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					T77_[0] = tmp;
					T77_[1] = a.res;
					T77_[2] = (*v).loc.r;
					T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T78_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_167), T77_, 3);
					T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T79_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T78_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T79_);
				}
				goto LA73_;
				LA75_: ;
				{
					NimStringDesc* T81_;
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T82_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T83_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
					T81_ = (NimStringDesc*)0;
					T81_ = rawNewString((varCode ? varCode->Sup.len : 0) + 8);
appendString(T81_, varCode);
appendString(T81_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_95));
					nimZeroMem((void*)T82_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					nimZeroMem((void*)T83_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T82_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T83_, 0);
					T82_[1] = (*v).loc.r;
					T82_[2] = a.res;
					T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T84_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T81_, T82_, 3);
					T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T85_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T84_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T85_);
				}
				LA73_: ;
			}
			LA53_: ;
			goto BeforeRet_;
		}
		break;
		default:
		{
			s = a.res;
		}
		break;
		}
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v_3;
			NIM_BOOL T89_;
			NIM_BOOL T90_;
			NimStringDesc* T95_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T96_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T97_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
			v_3 = v;
			T89_ = (NIM_BOOL)0;
			T90_ = (NIM_BOOL)0;
			T90_ = !(((32776 & (*v_3).flags) == 0));
			if (!(T90_)) goto LA91_;
			T90_ = ((224 & (*v_3).flags) == 0);
			LA91_: ;
			T89_ = T90_;
			if (!(T89_)) goto LA92_;
			T89_ = !(((128544 &(1U<<((NU)((*v_3).kind)&31U)))!=0));
			LA92_: ;
			if (!T89_) goto LA93_;
			T95_ = (NimStringDesc*)0;
			T95_ = rawNewString((varCode ? varCode->Sup.len : 0) + 10);
appendString(T95_, varCode);
appendString(T95_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_168));
			nimZeroMem((void*)T96_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			nimZeroMem((void*)T97_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T96_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T97_, 0);
			T96_[1] = (*v).loc.r;
			T96_[2] = s;
			T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T98_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T95_, T96_, 3);
			T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T99_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T98_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T99_);
		}
		goto LA87_;
		LA93_: ;
		{
			NimStringDesc* T101_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T102_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T103_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
			T101_ = (NimStringDesc*)0;
			T101_ = rawNewString((varCode ? varCode->Sup.len : 0) + 8);
appendString(T101_, varCode);
appendString(T101_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_95));
			nimZeroMem((void*)T102_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			nimZeroMem((void*)T103_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T102_[0] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) NIM_NIL), T103_, 0);
			T102_[1] = (*v).loc.r;
			T102_[2] = s;
			T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = percent__9bvKdnhoYI2ta9agQNm3orMA(T101_, T102_, 3);
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T104_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T105_);
		}
		LA87_: ;
	}
	LA19_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T110_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T111_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
		if (!useReloadingGuard) goto LA108_;
		nimZeroMem((void*)T110_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T111_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T111_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T110_, 0);
		T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T112_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T111_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T112_);
	}
	LA108_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genConstant_bgFYJWdvtLmrkmlW3jRA4A)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* c) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldBody;
		T3_ = (NIM_BOOL)0;
		T3_ = !((((*c).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).g).generatedSyms), (*c).Sup.id);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		oldBody = (*p).body;
		asgnRefNoCycle((void**) (&(*p).body), NIM_NIL);
		genVarInit_iVEhpHbcyNY9aOzPqLze8xw(p, c, (*c).ast);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).constants, (*p).body);
		asgnRefNoCycle((void**) (&(*p).body), oldBody);
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, thisParam_Cm4fViX7gmuXxOINvxCDkw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, attachProc_C5SA4Y9bPAMaecsSyvetPTg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* content, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* otyp;
{	otyp = thisParam_Cm4fViX7gmuXxOINvxCDkw(p, (*s).typ);
	{
		tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA T14_;
		NI T15_;
		if (!!((otyp == NIM_NIL))) goto LA3_;
		{
			NI i;
			tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA cls;
			tySequence_AoW0ogAFeynDk5PueecbTw* colontmp_;
			NI i_2;
			i = (NI)0;
			nimZeroMem((void*)(&cls), sizeof(tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA));
			colontmp_ = (tySequence_AoW0ogAFeynDk5PueecbTw*)0;
			colontmp_ = (*(*p).g).classes;
			i_2 = ((NI) 0);
			{
				while (1) {
					NI T8_;
					T8_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!(i_2 < T8_)) goto LA7;
					i = i_2;
					cls.Field0 = colontmp_->data[i_2].Field0;
					cls.Field1 = colontmp_->data[i_2].Field1;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = sameType_3isNyHKb0U1OCnClmflXSg(cls.Field0, otyp, 0);
						if (!T11_) goto LA12_;
						add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).classes->data[i].Field1, content);
						goto BeforeRet_;
					}
					LA12_: ;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
		nimZeroMem((void*)(&T14_), sizeof(tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA));
		T14_.Field0 = otyp;
		T14_.Field1 = content;
		asgnRefNoCycle((void**) (&(*(*p).g).classes), (tySequence_AoW0ogAFeynDk5PueecbTw*) incrSeqV3(&((*(*p).g).classes)->Sup, (&NTI_AoW0ogAFeynDk5PueecbTw_)));
		T15_ = (*(*p).g).classes->Sup.len++;
		asgnRefNoCycle((void**) (&(*(*p).g).classes->data[T15_].Field0), T14_.Field0);
		asgnRefNoCycle((void**) (&(*(*p).g).classes->data[T15_].Field1), T14_.Field1);
	}
	goto LA1_;
	LA3_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).code, content);
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcForSymIfNeeded_9aGDirKbsf9cN1iAWvMcXOKg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* newp;
		tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* owner;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).g).generatedSyms), (*s).Sup.id);
		if (!!(T3_)) goto LA4_;
		newp = genProc_VRfKzQHOMcRGtJXZSJxFtg(p, s);
		owner = p;
		{
			while (1) {
				NIM_BOOL T8_;
				T8_ = (NIM_BOOL)0;
				T8_ = !((owner == NIM_NIL));
				if (!(T8_)) goto LA9_;
				T8_ = !(((*owner).prc == (*s).owner));
				LA9_: ;
				if (!T8_) goto LA7;
				owner = (*owner).up;
			} LA7: ;
		}
		{
			if (!!((owner == NIM_NIL))) goto LA12_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*owner).locals, newp);
		}
		goto LA10_;
		LA12_: ;
		{
			attachProc_C5SA4Y9bPAMaecsSyvetPTg(p, newp, s);
		}
		LA10_: ;
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSym_Bp5hmw3gImpkyC9cflWESLg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	s = (*n)._Ukind.S4.sym;
	switch ((*s).kind) {
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21):
	{
		tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA k;
		{
			NimStringDesc* T6_;
			if (!((*s).loc.r == NIM_NIL)) goto LA4_;
			T6_ = (NimStringDesc*)0;
			T6_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 30);
appendString(T6_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_23));
appendString(T6_, (*(*s).name).s);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, T6_);
		}
		LA4_: ;
		k = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*s).typ);
		{
			if (!(k == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA9_;
			(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
			{
				tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T16_;
				if (!!(((32776 & (*s).flags) == 0))) goto LA13_;
				nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T15_[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).address), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_25), T15_, 1));
				nimZeroMem((void*)T16_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T16_[0] = (*s).loc.r;
				unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_26), T16_, 1));
			}
			goto LA11_;
			LA13_: ;
			{
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), amp__Z7W1o5nPSc3ExfO5f7j1Gg((*s).loc.r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_27)));
			}
			LA11_: ;
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
			NIM_BOOL T19_;
			NIM_BOOL T20_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T25_;
			v = s;
			T19_ = (NIM_BOOL)0;
			T20_ = (NIM_BOOL)0;
			T20_ = !(((32776 & (*v).flags) == 0));
			if (!(T20_)) goto LA21_;
			T20_ = ((224 & (*v).flags) == 0);
			LA21_: ;
			T19_ = T20_;
			if (!(T19_)) goto LA22_;
			T19_ = !(((128544 &(1U<<((NU)((*v).kind)&31U)))!=0));
			LA22_: ;
			if (!T19_) goto LA23_;
			nimZeroMem((void*)T25_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T25_[0] = (*s).loc.r;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_25), T25_, 1));
		}
		goto LA7_;
		LA23_: ;
		{
			unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
	{
		genConstant_bgFYJWdvtLmrkmlW3jRA4A(p, s);
		{
			NimStringDesc* T32_;
			if (!((*s).loc.r == NIM_NIL)) goto LA30_;
			T32_ = (NimStringDesc*)0;
			T32_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 30);
appendString(T32_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_23));
appendString(T32_, (*(*s).name).s);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, T32_);
		}
		LA30_: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
	case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, s);
		(void)(T34_);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL T37_;
			NIM_BOOL T38_;
			T37_ = (NIM_BOOL)0;
			T38_ = (NIM_BOOL)0;
			T38_ = (((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
			if (T38_) goto LA39_;
			T38_ = !(((*s).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
			LA39_: ;
			T37_ = T38_;
			if (T37_) goto LA40_;
			T37_ = !(((268435488 & (*s).flags) == 0));
			LA40_: ;
			if (!T37_) goto LA41_;
		}
		goto LA35_;
		LA41_: ;
		{
			NIM_BOOL T44_;
			T44_ = (NIM_BOOL)0;
			T44_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14));
			if (!(T44_)) goto LA45_;
			T44_ = ((*(*(*s).ast)._Ukind.S6.sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA45_: ;
			if (!T44_) goto LA46_;
		}
		goto LA35_;
		LA46_: ;
		{
			NI T51_;
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA49_;
			asgnRefNoCycle((void**) (&(*(*p).g).forwarded), (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3(&((*(*p).g).forwarded)->Sup, (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_)));
			T51_ = (*(*p).g).forwarded->Sup.len++;
			asgnRefNoCycle((void**) (&(*(*p).g).forwarded->data[T51_]), s);
		}
		goto LA35_;
		LA49_: ;
		{
			genProcForSymIfNeeded_9aGDirKbsf9cN1iAWvMcXOKg(p, s);
		}
		LA35_: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* T58_;
			if (!((*s).loc.r == NIM_NIL)) goto LA56_;
			T58_ = (NimStringDesc*)0;
			T58_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 30);
appendString(T58_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_23));
appendString(T58_, (*(*s).name).s);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, T58_);
		}
		LA56_: ;
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
	}
	break;
	}
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
}

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;
}

static N_INLINE(NI, toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = ((NI) (info.line));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genLineDir_AQaGEWMAoGSH1pqI9bePiww_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI line;
	line = toLinenumber_xCTdxEFc5VM0Lp6fDoJKSwastalgo((*n).info);
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		NimStringDesc* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_ = (NimStringDesc*)0;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*n).info.fileIndex < ((NI32) 0));
			if (T9_) goto LA10_;
			T9_ = ((*(*p).module).config == NIM_NIL);
			LA10_: ;
			if (!T9_) goto LA11_;
			T6_ = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_22));
		}
		goto LA7_;
		LA11_: ;
		{
			T6_ = copyString((*(*(*p).module).config).m.fileInfos->data[(*n).info.fileIndex].projPath);
		}
		LA7_: ;
		T5_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T6_);
		T5_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_181), T5_, 2);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T14_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T15_);
	}
	LA3_: ;
	{
		NIM_BOOL T18_;
		NIM_BOOL T20_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		T18_ = (NIM_BOOL)0;
		T18_ = ((327680 & (*p).options) == 327680);
		if (!(T18_)) goto LA19_;
		T20_ = (NIM_BOOL)0;
		T20_ = ((*p).prc == NIM_NIL);
		if (T20_) goto LA21_;
		T20_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA21_: ;
		T18_ = T20_;
		LA19_: ;
		if (!T18_) goto LA22_;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_182));
		nimZeroMem((void*)T24_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T24_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_183), T24_, 1);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T25_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T26_);
	}
	goto LA16_;
	LA22_: ;
	{
		NIM_BOOL T28_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		T28_ = (NIM_BOOL)0;
		T28_ = hasFrameInfo_X4QGocgN4K1dMViygAn1Sw(p);
		if (!T28_) goto LA29_;
		nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T31_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_184), T31_, 1);
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T32_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T33_);
	}
	goto LA16_;
	LA29_: ;
	LA16_: ;
}

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;
}

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;
}

static N_INLINE(NIM_BOOL, isAtom_NyXYMHACmbtWJZnWqE9cJCAparampatterns)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160));
		if (T3_) goto LA4_;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* c;
			c = (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;
						c = (*n)._Ukind.S6.sons->data[i];
						{
							NIM_BOOL T13_;
							T13_ = (NIM_BOOL)0;
							T13_ = isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg(p, c);
							if (!!(T13_)) goto LA14_;
							result = NIM_FALSE;
							goto BeforeRet_;
						}
						LA14_: ;
						i_2 += ((NI) 1);
					} LA10: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = isAtom_NyXYMHACmbtWJZnWqE9cJCAparampatterns(n);
		if (!T17_) goto LA18_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA18_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen)(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = a.res;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOr_mpXN9cOaEmJkFGz77KKnHeQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg(p, a);
		if (!(T3_)) goto LA4_;
		T3_ = isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg(p, b);
		LA4_: ;
		if (!T3_) goto LA5_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, a, (&x));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, b, (&y));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T7_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_185), T7_, 2));
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		unsureAsgnRef((void**) (&(*r).res), getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
		gen_Bp5hmw3gImpkyC9cflWESLg(p, a, (&x));
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T9_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_186), T9_, 2);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T10_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T11_);
		(*p).extraIndent += ((NI) 1);
		gen_Bp5hmw3gImpkyC9cflWESLg(p, b, (&y));
		nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		T12_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_187), T12_, 2);
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T13_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T14_);
		(*p).extraIndent -= ((NI) 1);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_154));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T15_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T16_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genAnd_mpXN9cOaEmJkFGz77KKnHeQ_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg(p, a);
		if (!(T3_)) goto LA4_;
		T3_ = isSimpleExpr_Dy9ccBZ9bgj9a3AzskrJ9cECsg(p, b);
		LA4_: ;
		if (!T3_) goto LA5_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, a, (&x));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, b, (&y));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T7_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_188), T7_, 2));
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		unsureAsgnRef((void**) (&(*r).res), getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
		gen_Bp5hmw3gImpkyC9cflWESLg(p, a, (&x));
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T9_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_189), T9_, 2);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T10_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T11_);
		(*p).extraIndent += ((NI) 1);
		gen_Bp5hmw3gImpkyC9cflWESLg(p, b, (&y));
		nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		T12_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_187), T12_, 2);
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T13_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T14_);
		(*p).extraIndent -= ((NI) 1);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_154));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T15_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T16_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ)(NI64 size) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch (size) {
	case ((NI) 1):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_190));
	}
	break;
	case ((NI) 2):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_191));
	}
	break;
	case ((NI) 4):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_192));
	}
	break;
	default:
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, binaryUintExpr_sQyrw0bSZ1SBjflZPB313g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* op, NIM_BOOL reassign) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* trimmer;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
	trimmer = unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ((*T1_).size);
	{
		tyArray_f7nG5LD47BH5K9c6mASit3g T6_;
		if (!reassign) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T6_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T6_[1] = rope_yShmEg9cffWxI7s5XzEKBow(op);
		T6_[2] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		T6_[3] = trimmer;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_193), T6_, 4));
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_f7nG5LD47BH5K9c6mASit3g T8_;
		nimZeroMem((void*)T8_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T8_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T8_[1] = rope_yShmEg9cffWxI7s5XzEKBow(op);
		T8_[2] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		T8_[3] = trimmer;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_194), T8_, 4));
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	NI i;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	i = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0));
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, jsOps_Ln4w3ESMRki4xJyv49ctagw[(op)- 47][(i)- 0]);
	{
		NI T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		T3_ = (NI)0;
		T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		if (!(((NI) 2) < T3_)) goto LA4_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T6_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(jsOps_Ln4w3ESMRki4xJyv49ctagw[(op)- 47][((NI)(i + ((NI) 2)))- 0], T6_, 2));
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
		nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T8_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(jsOps_Ln4w3ESMRki4xJyv49ctagw[(op)- 47][((NI)(i + ((NI) 2)))- 0], T8_, 1));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, arith_3Dxk7XsMQw9b52OHOhMc7Fg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 68):
	{
		binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_195), NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 69):
	{
		binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_196), NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 70):
	{
		binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_197), NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 71):
	{
		binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_198), NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 50):
	{
		arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2(p, n, r, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 51):
	{
		arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2(p, n, r, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* trimmer;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T9_;
		nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
		T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
		trimmer = unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ((*T8_).size);
		nimZeroMem((void*)T9_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T9_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
		T9_[1] = trimmer;
		T9_[2] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_267), T9_, 3));
	}
	break;
	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):
	{
		arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2(p, n, r, op);
	}
	break;
	default:
	{
		arithAux_3Dxk7XsMQw9b52OHOhMc7Fg_2(p, n, r, op);
	}
	break;
	}
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typ) {
	NimStringDesc* T1_;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, magic);
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString((magic ? magic->Sup.len : 0) + 1);
appendString(T1_, magic);
appendString(T1_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_268));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, T1_);
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	{
		if (!eqStrings(magic, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_269))) goto LA4_;
		{
			if (!(a.address == 0)) goto LA8_;
			add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
			add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_270));
		}
		goto LA6_;
		LA8_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T11_[0] = a.address;
			T11_[1] = a.res;
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_271), T11_, 2);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T12_);
		}
		LA6_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
	}
	LA2_: ;
	{
		if (!!((typ == 0))) goto LA16_;
		add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, typ);
	}
	LA16_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_272));
}

N_LIB_PRIVATE N_NIMCALL(void, genRepr_Bp5hmw3gImpkyC9cflWESLg_4)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_273), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_274), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_275), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_276), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_277), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_278), T7_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_279), T9_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_280));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_281), NIM_NIL);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_282), NIM_NIL);
	}
	break;
	default:
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		genReprAux_VVJu9bCqc9ae8WmH3h7jRteQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_269), T14_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genSwap_AQaGEWMAoGSH1pqI9bePiww_4)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w b;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T16_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&b), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&b));
	tmp = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_FALSE);
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T4_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
		T4_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
		T4_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, T3_);
		if (!(T4_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA5_;
		tmp2 = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_FALSE);
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = !((a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
			if (T9_) goto LA10_;
			T9_ = !((b.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
			LA10_: ;
			if (!T9_) goto LA11_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_283));
		}
		LA11_: ;
		nimZeroMem((void*)T13_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T13_[0] = tmp;
		T13_[1] = a.address;
		T13_[2] = b.address;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_284), T13_, 3);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T14_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T15_);
		tmp = tmp2;
	}
	LA5_: ;
	nimZeroMem((void*)T16_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T16_[0] = tmp;
	T16_[1] = a.res;
	T16_[2] = b.res;
	T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_285), T16_, 3);
	T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T17_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T18_);
}

N_LIB_PRIVATE N_NIMCALL(void, unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, magic);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*r));
	unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(frmt, T1_, 1));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, magic);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
	T1_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
	unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(frmt, T1_, 2));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genConStrStr_Bp5hmw3gImpkyC9cflWESLg_5)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	NI T25_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
		if (!((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = a.res;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_295), T6_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T7_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = a.res;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_296), T9_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T10_);
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI T12_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T12_ = (NI)0;
		T12_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T12_ - ((NI) 2));
		res = ((NI) 2);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA14;
				i = res;
				gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[i], (&a));
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
					T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T17_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[i]).typ, IL64(36099165772622096));
					if (!((*T17_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA18_;
					nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T20_[0] = a.res;
					T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T21_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_297), T20_, 1);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T21_);
				}
				goto LA15_;
				LA18_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
					nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T23_[0] = a.res;
					T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T24_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_298), T23_, 1);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T24_);
				}
				LA15_: ;
				res += ((NI) 1);
			} LA14: ;
		}
	}
	T25_ = (NI)0;
	T25_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[(NI)(T25_ - ((NI) 1))], (&a));
	{
		NI T28_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T29_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		T28_ = (NI)0;
		T28_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		T29_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T29_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[(NI)(T28_ - ((NI) 1))]).typ, IL64(36099165772622096));
		if (!((*T29_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA30_;
		nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T32_[0] = a.res;
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_299), T32_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T33_);
	}
	goto LA26_;
	LA30_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		nimZeroMem((void*)T35_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T35_[0] = a.res;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_300), T35_, 1);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T36_);
	}
	LA26_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNew_AQaGEWMAoGSH1pqI9bePiww_5)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	t = (*T1_).sons->data[((NI) 0)];
	nimZeroMem((void*)T2_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_[0] = a.res;
	T2_[1] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, t, NIM_FALSE);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_307), T2_, 2);
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T3_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T4_);
}

N_LIB_PRIVATE N_NIMCALL(void, genOrd_Bp5hmw3gImpkyC9cflWESLg_6)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_308));
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_309));
	}
	break;
	}
}

static N_INLINE(NIM_BOOL, contains_Q79akNsDbJpCYo4tQzRSE2Qsem)(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA s, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag value) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (s.a <= value);
	if (!(T1_)) goto LA2_;
	T1_ = (value <= s.b);
	LA2_: ;
	result = T1_;
	return result;
}

static N_INLINE(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA, dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag a, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag b) {
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA));
	result.a = a;
	result.b = b;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_AQaGEWMAoGSH1pqI9bePiww_6)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
	t = (*T1_).sons->data[((NI) 0)];
	nimZeroMem((void*)T2_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T2_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
	T2_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
	T2_[2] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, t, NIM_FALSE);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_336), T2_, 3);
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T3_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T4_);
}

N_LIB_PRIVATE N_NIMCALL(void, genOf_Bp5hmw3gImpkyC9cflWESLg_7)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ, IL64(36239903267268880));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = x.res;
		T5_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_338), T5_, 2));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_339));
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = x.res;
		T7_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, t);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_340), T7_, 2));
	}
	LA1_: ;
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genReset_AQaGEWMAoGSH1pqI9bePiww_7)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_341));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = x.res;
	T1_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
	addf_ocEHZ9cujtqicXvDuJUm5pg(&(*p).body, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_342), T1_, 2);
}

N_LIB_PRIVATE N_NIMCALL(void, genArgNoParam_Bp5hmw3gImpkyC9cflWESLg_9)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, n, (&a));
	{
		if (!(a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA3_;
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.address);
		add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
	}
	goto LA1_;
	LA3_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genEcho_Bp5hmw3gImpkyC9cflWESLg_8)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
	n_2 = skipConv_6rsSLwtlU9c53a6w69be5JlQ((*n)._Ukind.S6.sons->data[((NI) 1)]);
	{
		NimStringDesc* T5_;
		if (!!(((*n_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_343);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T5_);
	}
	LA3_: ;
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_344));
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_345));
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_346));
	{
		NI i;
		NI colontmp_;
		NI T7_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T7_ = (NI)0;
		T7_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n_2);
		colontmp_ = (NI)(T7_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA9;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					it = (*n_2)._Ukind.S6.sons->data[i];
					{
						NIM_BOOL T13_;
						T13_ = (NIM_BOOL)0;
						T13_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*it).typ);
						if (!T13_) goto LA14_;
						goto LA10;
					}
					LA14_: ;
					{
						if (!(((NI) 0) < i)) goto LA18_;
						add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
					}
					LA18_: ;
					genArgNoParam_Bp5hmw3gImpkyC9cflWESLg_9(p, it, r);
				} LA10: ;
				res += ((NI) 1);
			} LA9: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_272));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genArg_RI5RyHREFNXox9cpkCYH50g)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NI* emitted) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, n, (&a));
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*param).typ, IL64(36239903259928848));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48));
		if (!(T3_)) goto LA5_;
		T3_ = (a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9));
		LA5_: ;
		if (!T3_) goto LA6_;
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = a.address;
		T8_[1] = a.res;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_356), T8_, 2);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T9_);
	}
	goto LA1_;
	LA6_: ;
	{
		if (!(a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA11_;
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.address);
		add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
		{
			if (!!((emitted == NIM_NIL))) goto LA15_;
			(*emitted) += ((NI) 1);
		}
		LA15_: ;
	}
	goto LA1_;
	LA11_: ;
	{
		NIM_BOOL T18_;
		NIM_BOOL T19_;
		tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		T18_ = (NIM_BOOL)0;
		T19_ = (NIM_BOOL)0;
		T19_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47));
		if (!(T19_)) goto LA20_;
		T19_ = ((*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));
		LA20_: ;
		T18_ = T19_;
		if (!(T18_)) goto LA21_;
		T22_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
		T22_ = mapType_W2TONft1TRaion9bBXzQqWw((*param).typ);
		T18_ = (T22_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9));
		LA21_: ;
		if (!T18_) goto LA23_;
		tmp = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE);
		nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T25_[0] = tmp;
		T25_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_357), T25_, 2);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, T26_);
		{
			if (!!((emitted == NIM_NIL))) goto LA29_;
			(*emitted) += ((NI) 1);
		}
		LA29_: ;
	}
	goto LA1_;
	LA23_: ;
	{
		add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genOtherArg_9aqB67Rnkf1OHu3XOk89bdcg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI* generated, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
{	{
		NI T3_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		NI T8_;
		NimStringDesc* T9_;
		T3_ = (NI)0;
		T3_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!(T3_ <= i)) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = nimIntToStr(i);
		T8_ = (NI)0;
		T8_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		T9_ = (NimStringDesc*)0;
		T9_ = nimIntToStr((NI)(T8_ - ((NI) 1)));
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + 71);
appendString(T6_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_354));
appendString(T6_, T7_);
appendString(T6_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_355));
appendString(T6_, T9_);
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*p).module).config, (*n).info, T6_);
	}
	LA4_: ;
	it = (*n)._Ukind.S6.sons->data[i];
	paramType = NIM_NIL;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
		if (!(i < T12_)) goto LA13_;
		paramType = (*(*typ).n)._Ukind.S6.sons->data[i];
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*paramType).typ);
			if (!T17_) goto LA18_;
			goto BeforeRet_;
		}
		LA18_: ;
	}
	LA13_: ;
	{
		if (!(paramType == 0)) goto LA22_;
		genArgNoParam_Bp5hmw3gImpkyC9cflWESLg_9(p, it, r);
	}
	goto LA20_;
	LA22_: ;
	{
		genArg_RI5RyHREFNXox9cpkCYH50g(p, it, (*paramType)._Ukind.S4.sym, r, NIM_NIL);
	}
	LA20_: ;
	(*generated) += ((NI) 1);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genPatternCall_4TT1TPwHmxERu3KEGU1QFw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	NI i;
	NI j;
	i = ((NI) 0);
	j = ((NI) 1);
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	{
		while (1) {
			if (!(i < (pat ? pat->Sup.len : 0))) goto LA2;
			switch (((NU8)(pat->data[i]))) {
			case 64:
			{
				NI generated;
				generated = ((NI) 0);
				{
					NI k;
					NI colontmp_;
					NI i_2;
					k = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
					i_2 = j;
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA6;
							k = i_2;
							{
								if (!(((NI) 0) < generated)) goto LA9_;
								add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
							}
							LA9_: ;
							genOtherArg_9aqB67Rnkf1OHu3XOk89bdcg(p, n, k, typ, (&generated), r);
							i_2 += ((NI) 1);
						} LA6: ;
					}
				}
				i += ((NI) 1);
			}
			break;
			case 35:
			{
				NI generated_2;
				generated_2 = ((NI) 0);
				genOtherArg_9aqB67Rnkf1OHu3XOk89bdcg(p, n, j, typ, (&generated_2), r);
				j += ((NI) 1);
				i += ((NI) 1);
			}
			break;
			case 31:
			{
				add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_358));
				i += ((NI) 1);
			}
			break;
			case 29:
			{
				add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_359));
				i += ((NI) 1);
			}
			break;
			default:
			{
				NI start;
				start = i;
				{
					while (1) {
						if (!(i < (pat ? pat->Sup.len : 0))) goto LA16;
						{
							if (!!((((NU8)(pat->data[i])) == ((NU8)(64)) || ((NU8)(pat->data[i])) == ((NU8)(35)) || ((NU8)(pat->data[i])) == ((NU8)(31)) || ((NU8)(pat->data[i])) == ((NU8)(29))))) goto LA19_;
							i += ((NI) 1);
						}
						goto LA17_;
						LA19_: ;
						{
							goto LA15;
						}
						LA17_: ;
					} LA16: ;
				} LA15: ;
				{
					NimStringDesc* T26_;
					if (!(start <= (NI)(i - ((NI) 1)))) goto LA24_;
					T26_ = (NimStringDesc*)0;
					T26_ = substr_TWXUwbnq0SWWvDLfr8LXYw(pat, start, (NI)(i - ((NI) 1)));
					add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, T26_);
				}
				LA24_: ;
			}
			break;
			}
		} LA2: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genArgs_1PNPBjb9aOT7yB9avaRcGbbQ)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NI start) {
	NIM_BOOL hasArgs;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI emitted;
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_268));
	hasArgs = NIM_FALSE;
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	emitted = (NI)(start - ((NI) 1));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					it = (*n)._Ukind.S6.sons->data[i];
					paramType = NIM_NIL;
					{
						NI T8_;
						T8_ = (NI)0;
						T8_ = sonsLen_SWFNCiWYB89bTUPh5KptkvA(typ);
						if (!(i < T8_)) goto LA9_;
						paramType = (*(*typ).n)._Ukind.S6.sons->data[i];
						{
							NIM_BOOL T13_;
							T13_ = (NIM_BOOL)0;
							T13_ = isCompileTimeOnly_xUyAbEic5Yj9bmdDArJbHkQcgen((*paramType).typ);
							if (!T13_) goto LA14_;
							goto LA5;
						}
						LA14_: ;
					}
					LA9_: ;
					{
						if (!hasArgs) goto LA18_;
						add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
					}
					LA18_: ;
					{
						if (!(paramType == 0)) goto LA22_;
						genArgNoParam_Bp5hmw3gImpkyC9cflWESLg_9(p, it, r);
					}
					goto LA20_;
					LA22_: ;
					{
						genArg_RI5RyHREFNXox9cpkCYH50g(p, it, (*paramType)._Ukind.S4.sym, r, (&emitted));
					}
					LA20_: ;
					emitted += ((NI) 1);
					hasArgs = NIM_TRUE;
				} LA5: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_272));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_Bp5hmw3gImpkyC9cflWESLg_11)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w op;
{	f = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
	{
		if (!((*f).loc.r == NIM_NIL)) goto LA3_;
		asgnRefNoCycle((void**) (&(*f).loc.r), mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, f));
	}
	LA3_: ;
	{
		NimStringDesc* pat;
		if (!(((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0)) goto LA7_;
		pat = (*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).loc.r).data;
		{
			NimStringDesc* T13_;
			if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA11_;
			T13_ = (NimStringDesc*)0;
			T13_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_352);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T13_);
		}
		LA11_: ;
		{
			NIM_BOOL T16_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
			T16_ = (NIM_BOOL)0;
			T16_ = contains_m1TSS3QwQPclQATuiRuVZg(pat, TM_BxLwT0mhrtgTPodf1v3xjg_353);
			if (!T16_) goto LA17_;
			typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
			genPatternCall_4TT1TPwHmxERu3KEGU1QFw(p, n, pat, typ, r);
			goto BeforeRet_;
		}
		LA17_: ;
	}
	LA7_: ;
	{
		NI T21_;
		T21_ = (NI)0;
		T21_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
		if (!!((T21_ == ((NI) 1)))) goto LA22_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
			if (!((*r).typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA26_;
			{
				if (!((*r).address == NIM_NIL)) goto LA30_;
				globalError_NF6kBGchnhQYPbCedyefVA_2((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_360));
			}
			LA30_: ;
			nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T32_[0] = (*r).address;
			T32_[1] = (*r).res;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_356), T32_, 2));
			unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
			(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
		}
		LA26_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_361));
	}
	LA22_: ;
	nimZeroMem((void*)(&op), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&op));
	add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, op.res);
	genArgs_1PNPBjb9aOT7yB9avaRcGbbQ(p, n, r, ((NI) 2));
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCall_Bp5hmw3gImpkyC9cflWESLg_10)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
{	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = thisParam_Cm4fViX7gmuXxOINvxCDkw(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ);
		T3_ = !((T5_ == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA6_;
		genInfixCall_Bp5hmw3gImpkyC9cflWESLg_11(p, n, r);
		goto BeforeRet_;
	}
	LA6_: ;
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	genArgs_1PNPBjb9aOT7yB9avaRcGbbQ(p, n, r, ((NI) 1));
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genMagic_Bp5hmw3gImpkyC9cflWESLg_3)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* line;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filen;
	tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	line = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	filen = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	op = (*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).magic;
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		genOr_mpXN9cOaEmJkFGz77KKnHeQ(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (*n)._Ukind.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	{
		genAnd_mpXN9cOaEmJkFGz77KKnHeQ_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (*n)._Ukind.S6.sons->data[((NI) 2)], r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 47) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	{
		arith_3Dxk7XsMQw9b52OHOhMc7Fg(p, n, r, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 152):
	{
		genRepr_Bp5hmw3gImpkyC9cflWESLg_4(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 159):
	{
		genSwap_AQaGEWMAoGSH1pqI9bePiww_4(p, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 27):
	{
		{
			if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA9_;
			unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_286));
		}
		goto LA7_;
		LA9_: ;
		{
			unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_202), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_287));
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 147):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_288), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_289));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 148):
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w lhs;
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w rhs;
		NIM_BOOL rhsIsLit;
		nimZeroMem((void*)(&lhs), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		nimZeroMem((void*)(&rhs), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&lhs));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&rhs));
		rhsIsLit = ((*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n)._Ukind.S6.sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T19_;
			T16_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
			if (!((*T16_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T19_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(lhs);
			T19_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(rhs);
			{
				if (!rhsIsLit) goto LA22_;
				T19_[2] = NIM_NIL;
			}
			goto LA20_;
			LA22_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
				nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T19_[2] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_291), T25_, 0);
			}
			LA20_: ;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_290), T19_, 3));
		}
		goto LA14_;
		LA17_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T27_;
			nimZeroMem((void*)T27_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T27_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(lhs);
			T27_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(rhs);
			{
				if (!rhsIsLit) goto LA30_;
				T27_[2] = NIM_NIL;
			}
			goto LA28_;
			LA30_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T33_;
				nimZeroMem((void*)T33_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T27_[2] = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_291), T33_, 0);
			}
			LA28_: ;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_292), T27_, 3));
		}
		LA14_: ;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 149):
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x;
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y;
		nimZeroMem((void*)(&x), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		nimZeroMem((void*)(&y), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y));
		{
			NIM_BOOL T37_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
			T37_ = (NIM_BOOL)0;
			T37_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, (*n)._Ukind.S6.sons->data[((NI) 2)]);
			if (!T37_) goto LA38_;
			nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T40_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
			T40_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_293), T40_, 2));
		}
		goto LA35_;
		LA38_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* c;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T45_;
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
			c = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_FALSE);
			nimZeroMem((void*)T42_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T42_[0] = c;
			T42_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y);
			T42_[2] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*(*n)._Ukind.S6.sons->data[((NI) 2)]).typ);
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_294), T42_, 3);
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T43_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T44_);
			nimZeroMem((void*)T45_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T45_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x);
			T45_[1] = c;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_293), T45_, 2));
		}
		LA35_: ;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	{
		genConStrStr_Bp5hmw3gImpkyC9cflWESLg_5(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_301), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_302));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_303), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_304));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_303), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_305));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_306));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		genRepr_Bp5hmw3gImpkyC9cflWESLg_4(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	{
		genNew_AQaGEWMAoGSH1pqI9bePiww_5(p, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	{
		NI64 T54_;
		T54_ = (NI64)0;
		T54_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*p).module).config, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ);
		unsureAsgnRef((void**) (&(*r).res), rope_KOisMGxcPhz6CcSmxgwEQQ(T54_));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	{
		genOrd_Bp5hmw3gImpkyC9cflWESLg_6(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_310));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_311));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_312));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28):
	{
		{
			tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T63_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T64_;
			NIM_BOOL T65_;
			T63_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44));
			T64_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T64_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
			T65_ = (NIM_BOOL)0;
			T65_ = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T63_, (*T64_).kind);
			if (!T65_) goto LA66_;
			binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_195), NIM_TRUE);
		}
		goto LA61_;
		LA66_: ;
		{
			{
				if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA71_;
				binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_313));
			}
			goto LA69_;
			LA71_: ;
			{
				binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_199), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_314));
			}
			LA69_: ;
		}
		LA61_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		{
			tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T77_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T78_;
			NIM_BOOL T79_;
			T77_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44));
			T78_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T78_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165764233488));
			T79_ = (NIM_BOOL)0;
			T79_ = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T77_, (*T78_).kind);
			if (!T79_) goto LA80_;
			binaryUintExpr_sQyrw0bSZ1SBjflZPB313g(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_196), NIM_TRUE);
		}
		goto LA75_;
		LA80_: ;
		{
			{
				if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA85_;
				binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_315));
			}
			goto LA83_;
			LA85_: ;
			{
				binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_202), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_316));
			}
			LA83_: ;
		}
		LA75_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_317));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w x_2;
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w y_2;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T90_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T91_;
		nimZeroMem((void*)(&x_2), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		nimZeroMem((void*)(&y_2), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&x_2));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&y_2));
		T90_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T90_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36239903259928848));
		t = (*T90_).sons->data[((NI) 0)];
		nimZeroMem((void*)T91_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T91_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(x_2);
		T91_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(y_2);
		T91_[2] = createVar_K9ag9aJJIngrApxv9aEbfdhIQ(p, t, NIM_FALSE);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_318), T91_, 3));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_319), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_320));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_321), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_322));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_323), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_324));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_325), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_326));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_327), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_328));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_329), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_330));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_331), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_332));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_333));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_334));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_335));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genNewSeq_AQaGEWMAoGSH1pqI9bePiww_6(p, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_337));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 12):
	{
		genOf_Bp5hmw3gImpkyC9cflWESLg_7(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 169):
	{
		genReset_AQaGEWMAoGSH1pqI9bePiww_7(p, n);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 18):
	{
		genEcho_Bp5hmw3gImpkyC9cflWESLg_8(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 231) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 277):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 20):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 21):
	{
		NimStringDesc* T108_;
		T108_ = (NimStringDesc*)0;
		T108_ = nsuFormatSingleElem(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_347), (*(*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).name).s);
		localError_NF6kBGchnhQYPbCedyefVA((*(*p).module).config, (*n).info, T108_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	{
		binaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ_2(p, n, r, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_348));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_349), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_350));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 165):
	{
		unaryExpr_RNwtrUk8AvWU9b1AvR6S2DQ(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_349), ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_351));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genProcForSymIfNeeded_9aGDirKbsf9cN1iAWvMcXOKg(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym);
		genCall_Bp5hmw3gImpkyC9cflWESLg_10(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 166):
	{
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_362));
		genCall_Bp5hmw3gImpkyC9cflWESLg_10(p, n, r);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 170):
	{
		genCall_Bp5hmw3gImpkyC9cflWESLg_10(p, n, r);
	}
	break;
	default:
	{
		genCall_Bp5hmw3gImpkyC9cflWESLg_10(p, n, r);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_Bp5hmw3gImpkyC9cflWESLg_12)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&b), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_363));
	unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_364)));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!(((NI) 0) < i)) goto LA7_;
					add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
				}
				LA7_: ;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA11_;
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&a));
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&b));
					nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T13_[0] = a.res;
					T13_[1] = b.res;
					addf_ocEHZ9cujtqicXvDuJUm5pg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_144), T13_, 2);
				}
				goto LA9_;
				LA11_: ;
				{
					gen_Bp5hmw3gImpkyC9cflWESLg(p, it, (&a));
					add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_272));
	{
		NIM_BOOL T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T22_;
		T17_ = (NIM_BOOL)0;
		T17_ = isDeepConstExpr_FTbvAnf1y9b9c3Krp9bsHDTiw_2(n);
		if (!T17_) goto LA18_;
		(*(*p).g).unique += ((NI) 1);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_365));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).g).unique)));
		tmp = amp__mFDAEkd1kysB0V9aBd20A9aA(T20_, T21_);
		nimZeroMem((void*)T22_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T22_[0] = tmp;
		T22_[1] = (*r).res;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*(*p).g).constants, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_366), T22_, 2);
		unsureAsgnRef((void**) (&(*r).res), tmp);
	}
	LA18_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_Bp5hmw3gImpkyC9cflWESLg_13)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_150)));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!(((NI) 0) < i)) goto LA7_;
					add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
				}
				LA7_: ;
				gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[i], (&a));
				add_iMTw0CDaruwETLGb9bhpBLg(&(*r).res, a.res);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_151));
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_Bp5hmw3gImpkyC9cflWESLg_14)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_152)));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!(((NI) 0) < i)) goto LA7_;
					add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
				}
				LA7_: ;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA11_;
					it = (*it)._Ukind.S6.sons->data[((NI) 1)];
				}
				LA11_: ;
				gen_Bp5hmw3gImpkyC9cflWESLg(p, it, (&a));
				nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T13_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				T13_[1] = a.res;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_367), T13_, 2);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*r).res, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_154));
}

N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_Bp5hmw3gImpkyC9cflWESLg_15)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initList;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg fieldIDs;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T30_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	initList = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&fieldIDs), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_a9a80eJplB17xrdZJ41Baww((&fieldIDs));
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T29_;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if (!(((NI) 1) < i)) goto LA7_;
					add_yG4AKzsBRS1W4MANDlXQeg(&initList, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_111));
				}
				LA7_: ;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NimStringDesc* T13_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34)))) goto LA11_;
					T13_ = (NimStringDesc*)0;
					T13_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_368);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T13_);
				}
				LA11_: ;
				val = (*it)._Ukind.S6.sons->data[((NI) 1)];
				gen_Bp5hmw3gImpkyC9cflWESLg(p, val, (&a));
				f = (*(*it)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
				{
					if (!((*f).loc.r == NIM_NIL)) goto LA16_;
					asgnRefNoCycle((void**) (&(*f).loc.r), mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, f));
				}
				LA16_: ;
				incl_iUpE9bYmIR0fROyJskQwN8g((&fieldIDs), (*f).Sup.id);
				typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*val).typ, IL64(36099165763184912));
				{
					NIM_BOOL T20_;
					NIM_BOOL T21_;
					tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T23_;
					T20_ = (NIM_BOOL)0;
					T21_ = (NIM_BOOL)0;
					T21_ = ((*typ).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1) && (*typ).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*typ).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) && (*typ).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29) || (*typ).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*typ).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44));
					if (!(T21_)) goto LA22_;
					T23_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
					T23_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, typ);
					T21_ = !((T23_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
					LA22_: ;
					T20_ = T21_;
					if (T20_) goto LA24_;
					T20_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, (*it)._Ukind.S6.sons->data[((NI) 1)]);
					LA24_: ;
					if (!T20_) goto LA25_;
				}
				goto LA18_;
				LA25_: ;
				{
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T28_;
					useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
					nimZeroMem((void*)T28_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T28_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
					T28_[1] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, typ);
					a.res = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_163), T28_, 2);
				}
				LA18_: ;
				nimZeroMem((void*)T29_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T29_[0] = (*f).loc.r;
				T29_[1] = a.res;
				addf_ocEHZ9cujtqicXvDuJUm5pg(&initList, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_369), T29_, 2);
				res += ((NI) 1);
			} LA4: ;
		}
	}
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36239903266220304));
	createObjInitList_lQPYSYugh4oxbm9bTJCSJoA(p, t, (&fieldIDs), &initList);
	nimZeroMem((void*)T30_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T30_[0] = initList;
	unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_158), T30_, 1));
}

N_LIB_PRIVATE N_NIMCALL(void, genConv_Bp5hmw3gImpkyC9cflWESLg_16)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
{	dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
	src = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	{
		if (!((*dest).kind == (*src).kind)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*dest).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_370), T6_, 1));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
		nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T8_[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_371), T8_, 1));
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedFieldAddr_Bp5hmw3gImpkyC9cflWESLg_18)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		m = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		m = n;
	}
	LA1_: ;
	{
		NimStringDesc* T10_;
		if (!!(((*m).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46)))) goto LA8_;
		T10_ = (NimStringDesc*)0;
		T10_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_375);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T10_);
	}
	LA8_: ;
	genAddr_Bp5hmw3gImpkyC9cflWESLg_17(p, m, r);
}

N_LIB_PRIVATE N_NIMCALL(NI, getFieldPosition_DLbHFD2eUjMEos1A21BcJw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* f) {
	NI result;
	result = (NI)0;
	switch ((*f).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		result = ((NI) ((*f)._Ukind.S1.intVal));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (*(*f)._Ukind.S4.sym).position;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*f).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_377));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genFieldAddr_Bp5hmw3gImpkyC9cflWESLg_19)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		b = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		b = n;
	}
	LA1_: ;
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*b)._Ukind.S6.sons->data[((NI) 0)], (&a));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		NimStringDesc* T11_;
		NI T12_;
		NimStringDesc* T13_;
		T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*b)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
		if (!((*T8_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T12_ = (NI)0;
		T12_ = getFieldPosition_DLbHFD2eUjMEos1A21BcJw(p, (*b)._Ukind.S6.sons->data[((NI) 1)]);
		T13_ = (NimStringDesc*)0;
		T13_ = nimIntToStr(T12_);
		T11_ = rawNewString((T13_ ? T13_->Sup.len : 0) + 5);
appendString(T11_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_376));
appendString(T11_, T13_);
		unsureAsgnRef((void**) (&(*r).res), makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T11_, NIM_TRUE));
	}
	goto LA6_;
	LA9_: ;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
		NimStringDesc* T23_;
		{
			if (!!(((*(*b)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA17_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*(*b)._Ukind.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_378));
		}
		LA17_: ;
		f = (*(*b)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA21_;
			asgnRefNoCycle((void**) (&(*f).loc.r), mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, f));
		}
		LA21_: ;
		T23_ = (NimStringDesc*)0;
		T23_ = dollar__4KNdcWAONkpTKQgUR8XiZQ((*f).loc.r);
		unsureAsgnRef((void**) (&(*r).res), makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T23_, NIM_TRUE));
	}
	LA6_: ;
	{
		NimStringDesc* T28_;
		if (!!(!((a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))))) goto LA26_;
		T28_ = (NimStringDesc*)0;
		T28_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_379);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T28_);
	}
	LA26_: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genFieldAccess_Bp5hmw3gImpkyC9cflWESLg_20)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* otyp;
	(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	otyp = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		NI T6_;
		if (!((*otyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = (*r).res;
		T6_ = (NI)0;
		T6_ = getFieldPosition_DLbHFD2eUjMEos1A21BcJw(p, (*n)._Ukind.S6.sons->data[((NI) 1)]);
		T5_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T6_)));
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_380), T5_, 2));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*(*n)._Ukind.S6.sons->data[((NI) 1)]).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_381));
		}
		LA10_: ;
		f = (*(*n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S4.sym;
		{
			if (!((*f).loc.r == NIM_NIL)) goto LA14_;
			asgnRefNoCycle((void**) (&(*f).loc.r), mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, f));
		}
		LA14_: ;
		nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = (*r).res;
		T16_[1] = (*f).loc.r;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_382), T16_, 2));
	}
	LA1_: ;
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayAddr_Bp5hmw3gImpkyC9cflWESLg_21)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w b;
	NI64 first;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* m;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&b), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	first = (NI64)0;
	(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		m = (*n)._Ukind.S6.sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		m = n;
	}
	LA1_: ;
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*m)._Ukind.S6.sons->data[((NI) 0)], (&a));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*m)._Ukind.S6.sons->data[((NI) 1)], (&b));
	{
		NIM_BOOL T8_;
		NimStringDesc* T12_;
		T8_ = (NIM_BOOL)0;
		T8_ = !((a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
		if (!(T8_)) goto LA9_;
		T8_ = !((b.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
		LA9_: ;
		if (!!(T8_)) goto LA10_;
		T12_ = (NimStringDesc*)0;
		T12_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_383);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T12_);
	}
	LA10_: ;
	unsureAsgnRef((void**) (&(*r).address), a.res);
	typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*m)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36239903266220304));
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA15_;
		first = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*p).module).config, (*typ).sons->data[((NI) 0)]);
	}
	goto LA13_;
	LA15_: ;
	{
		first = IL64(0);
	}
	LA13_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T22_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA20_;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_384));
		nimZeroMem((void*)T22_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T22_[0] = b.res;
		T22_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(first);
		T22_[2] = a.res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_385), T22_, 3));
	}
	goto LA18_;
	LA20_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T26_;
		if (!!((first == IL64(0)))) goto LA24_;
		nimZeroMem((void*)T26_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T26_[0] = b.res;
		T26_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(first);
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_386), T26_, 2));
	}
	goto LA18_;
	LA24_: ;
	{
		unsureAsgnRef((void**) (&(*r).res), b.res);
	}
	LA18_: ;
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genAddr_Bp5hmw3gImpkyC9cflWESLg_17)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	switch ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		s = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			if (!((*s).loc.r == NIM_NIL)) goto LA4_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_372));
		}
		LA4_: ;
		switch ((*s).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		{
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA jsType;
			(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
			jsType = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*n).typ);
			{
				if (!(jsType == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8))) goto LA9_;
				(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
					NIM_BOOL T13_;
					NIM_BOOL T14_;
					v = s;
					T13_ = (NIM_BOOL)0;
					T14_ = (NIM_BOOL)0;
					T14_ = !(((32776 & (*v).flags) == 0));
					if (!(T14_)) goto LA15_;
					T14_ = ((224 & (*v).flags) == 0);
					LA15_: ;
					T13_ = T14_;
					if (!(T13_)) goto LA16_;
					T13_ = !(((128544 &(1U<<((NU)((*v).kind)&31U)))!=0));
					LA16_: ;
					if (!T13_) goto LA17_;
					unsureAsgnRef((void**) (&(*r).res), amp__Z7W1o5nPSc3ExfO5f7j1Gg((*s).loc.r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_373)));
				}
				goto LA11_;
				LA17_: ;
				{
					unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
				}
				LA11_: ;
				unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
			}
			goto LA7_;
			LA9_: ;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = !(((32776 & (*s).flags) == 0));
				if (T21_) goto LA22_;
				T21_ = (jsType == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9));
				LA22_: ;
				if (!T21_) goto LA23_;
				(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
				unsureAsgnRef((void**) (&(*r).address), (*s).loc.r);
				unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_97)));
			}
			goto LA7_;
			LA23_: ;
			{
				gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
			}
			LA7_: ;
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_374));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedFieldAddr_Bp5hmw3gImpkyC9cflWESLg_18(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		{
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T31_;
			T31_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T31_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*n).typ);
			if (!(T31_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA32_;
			genFieldAddr_Bp5hmw3gImpkyC9cflWESLg_19(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		}
		goto LA29_;
		LA32_: ;
		{
			genFieldAccess_Bp5hmw3gImpkyC9cflWESLg_20(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		}
		LA29_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
		{
			if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA38_;
			gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		}
		goto LA36_;
		LA38_: ;
		{
			tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kindOfIndexedExpr;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
			T41_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T41_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
			kindOfIndexedExpr = (*T41_).kind;
			switch (kindOfIndexedExpr) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
			{
				genArrayAddr_Bp5hmw3gImpkyC9cflWESLg_21(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
			{
				genFieldAddr_Bp5hmw3gImpkyC9cflWESLg_19(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
			}
			break;
			default:
			{
				NimStringDesc* T45_;
				T45_ = (NimStringDesc*)0;
				T45_ = rawNewString((reprEnum((NI)kindOfIndexedExpr, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)kindOfIndexedExpr, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 21);
appendString(T45_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_387));
appendString(T45_, reprEnum((NI)kindOfIndexedExpr, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T45_, 41);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*(*n)._Ukind.S6.sons->data[((NI) 0)]).info, T45_);
			}
			break;
			}
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)], r);
	}
	break;
	default:
	{
		NimStringDesc* T49_;
		T49_ = (NimStringDesc*)0;
		T49_ = rawNewString((reprEnum((NI)(*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 9);
appendString(T49_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_388));
appendString(T49_, reprEnum((NI)(*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*(*n)._Ukind.S6.sons->data[((NI) 0)]).info, T49_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genDeref_Bp5hmw3gImpkyC9cflWESLg_22)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
	tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA t;
	it = (*n)._Ukind.S6.sons->data[((NI) 0)];
	t = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*it).typ);
	{
		if (!(t == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8))) goto LA3_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, it, r);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
		nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, it, (&a));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
			if (!(a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA8_;
			nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T10_[0] = a.address;
			T10_[1] = a.res;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_356), T10_, 2));
		}
		goto LA6_;
		LA8_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T14_;
			if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27))) goto LA12_;
			tmp = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE);
			nimZeroMem((void*)T14_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T14_[0] = tmp;
			T14_[1] = a.res;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_389), T14_, 2));
		}
		goto LA6_;
		LA12_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
			if (!(t == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA16_;
			nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T18_[0] = a.res;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_25), T18_, 1));
		}
		goto LA6_;
		LA16_: ;
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_390));
		}
		LA6_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayAccess_Bp5hmw3gImpkyC9cflWESLg_23)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165772622096));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA3_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = lastSon_ab52xel9cFebv9am0xV04xXA(ty);
		ty = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(T5_, IL64(36099165772622096));
	}
	LA3_: ;
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		genArrayAddr_Bp5hmw3gImpkyC9cflWESLg_21(p, n, r);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genFieldAddr_Bp5hmw3gImpkyC9cflWESLg_19(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* T9_;
		T9_ = (NimStringDesc*)0;
		T9_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 21);
appendString(T9_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_387));
appendString(T9_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T9_, 41);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, T9_);
	}
	break;
	}
	(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
	{
		if (!((*r).res == NIM_NIL)) goto LA12_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_391));
	}
	LA12_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T18_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29))) goto LA16_;
		nimZeroMem((void*)T18_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T18_[0] = (*r).address;
		T18_[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_392), T18_, 2));
	}
	goto LA14_;
	LA16_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
		nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T20_[0] = (*r).address;
		T20_[1] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_356), T20_, 2));
	}
	LA14_: ;
	unsureAsgnRef((void**) (&(*r).address), NIM_NIL);
	(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedFieldAccess_Bp5hmw3gImpkyC9cflWESLg_24)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	genFieldAccess_Bp5hmw3gImpkyC9cflWESLg_20(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
}

N_LIB_PRIVATE N_NIMCALL(void, upConv_Bp5hmw3gImpkyC9cflWESLg_25)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
}

N_LIB_PRIVATE N_NIMCALL(void, genCast_Bp5hmw3gImpkyC9cflWESLg_26)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	NIM_BOOL toInt_1;
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T5_;
	NIM_BOOL toUint;
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T6_;
	NIM_BOOL fromInt;
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T7_;
	NIM_BOOL fromUint;
	tyObject_HSlice_HjDAjiFsTWGmlZ9cd8nEusA T8_;
{	dest = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
	src = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 1)]).typ, IL64(36099165772622096));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	{
		if (!((*dest).kind == (*src).kind)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34));
	toInt_1 = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T5_, (*dest).kind);
	T6_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43));
	toUint = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T6_, (*dest).kind);
	T7_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 34));
	fromInt = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T7_, (*src).kind);
	T8_ = dotdot__2BOQQTJSgRdTj69bMDpS1Zwsem(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40), ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43));
	fromUint = contains_Q79akNsDbJpCYo4tQzRSE2Qsem(T8_, (*src).kind);
	{
		NIM_BOOL T11_;
		NIM_BOOL T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* trimmer;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T17_;
		T11_ = (NIM_BOOL)0;
		T11_ = toUint;
		if (!(T11_)) goto LA12_;
		T13_ = (NIM_BOOL)0;
		T13_ = fromInt;
		if (T13_) goto LA14_;
		T13_ = fromUint;
		LA14_: ;
		T11_ = T13_;
		LA12_: ;
		if (!T11_) goto LA15_;
		trimmer = unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ((*dest).size);
		nimZeroMem((void*)T17_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T17_[0] = (*r).res;
		T17_[1] = trimmer;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_393), T17_, 2));
	}
	goto LA9_;
	LA15_: ;
	{
		if (!toInt_1) goto LA19_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* trimmer_2;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
			if (!fromInt) goto LA23_;
			trimmer_2 = unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ((*dest).size);
			nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T25_[0] = (*r).res;
			T25_[1] = trimmer_2;
			unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_393), T25_, 2));
		}
		goto LA21_;
		LA23_: ;
		{
			if (!fromUint) goto LA27_;
			{
				NIM_BOOL T31_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T35_;
				T31_ = (NIM_BOOL)0;
				T31_ = ((*src).size == IL64(4));
				if (!(T31_)) goto LA32_;
				T31_ = ((*dest).size == IL64(4));
				LA32_: ;
				if (!T31_) goto LA33_;
				nimZeroMem((void*)T35_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T35_[0] = (*r).res;
				unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_394), T35_, 1));
			}
			goto LA29_;
			LA33_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* trimmer_3;
				NimStringDesc* minuend;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T41_;
				trimmer_3 = unsignedTrimmerJS_Z9b4MKfBgROPw39c1OtIrpwQ((*dest).size);
				switch ((*dest).size) {
				case ((NI) 1):
				{
					minuend = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_395));
				}
				break;
				case ((NI) 2):
				{
					minuend = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_396));
				}
				break;
				case ((NI) 4):
				{
					minuend = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_397));
				}
				break;
				default:
				{
					minuend = ((NimStringDesc*) NIM_NIL);
				}
				break;
				}
				nimZeroMem((void*)T41_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T41_[0] = rope_yShmEg9cffWxI7s5XzEKBow(minuend);
				T41_[1] = (*r).res;
				T41_[2] = trimmer_3;
				unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_398), T41_, 3));
			}
			LA29_: ;
		}
		goto LA21_;
		LA27_: ;
		LA21_: ;
	}
	goto LA9_;
	LA19_: ;
	LA9_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_hP2w9bfjeb9a8Gw7OVBCznWw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r, NimStringDesc* magic) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&b), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T5_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 3))&31U)))!=0)) goto LA3_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], (&a));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 2)], (&b));
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_399));
		nimZeroMem((void*)T5_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T5_[0] = (*r).res;
		T5_[1] = a.res;
		T5_[2] = b.res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_400), T5_, 3));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_Bp5hmw3gImpkyC9cflWESLg_27)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	{
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72))) goto LA3_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)], r);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_403));
		}
		LA8_: ;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_344));
		nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T10_[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_404), T10_, 1));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_Bp5hmw3gImpkyC9cflWESLg_28)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	{
		if (!((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S6.sons->data[((NI) 0)], r);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		{
			if (!((*r).res == NIM_NIL)) goto LA8_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_405));
		}
		LA8_: ;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_264));
		nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T10_[0] = (*r).res;
		unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_266), T10_, 1));
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBlock_Bp5hmw3gImpkyC9cflWESLg_29)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	NI idx;
	NI T1_;
	NI labl;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
	(*p).unique += ((NI) 1);
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	idx = T1_;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA4_;
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA8_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_406));
		}
		LA8_: ;
		sym = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		(*sym).loc.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10);
		(*sym).position = (NI)(idx + ((NI) 1));
	}
	LA4_: ;
	labl = (*p).unique;
	nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T10_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (labl)));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_407), T10_, 1);
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T11_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T12_);
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_8fytVdU59b5aj319cog2ztLw*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_8fytVdU59b5aj319cog2ztLw_), ((NI) ((NI)(idx + ((NI) 1))))));
	(*p).blocks->data[idx].id = ((NI32)-((*p).unique));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 1)], r);
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_8fytVdU59b5aj319cog2ztLw*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_8fytVdU59b5aj319cog2ztLw_), ((NI) (idx))));
	nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T13_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (labl)));
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_408), T13_, 1);
	T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T14_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T15_);
}

N_LIB_PRIVATE N_NIMCALL(void, moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* src, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w dest) {
	{
		if (!!(((*src).kind == ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 0)))) goto LA3_;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
			if (!!((dest.kind == ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 0)))) goto LA7_;
			nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T9_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(dest);
			T9_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*src));
			T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_307), T9_, 2);
			T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T10_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T11_);
		}
		goto LA5_;
		LA7_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
			nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T13_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen((*src));
			T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T14_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_411), T13_, 1);
			T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T14_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T15_);
		}
		LA5_: ;
		(*src).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 0);
		unsureAsgnRef((void**) (&(*src).res), NIM_NIL);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genIf_Bp5hmw3gImpkyC9cflWESLg_30)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w cond;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w stmt;
	NI toClose;
	NimStringDesc* T32_;
	NimStringDesc* T33_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
	nimZeroMem((void*)(&cond), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&stmt), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	toClose = ((NI) 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		if (!!(T3_)) goto LA4_;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
		unsureAsgnRef((void**) (&(*r).res), getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE));
	}
	LA4_: ;
	{
		NI i;
		NI colontmp_;
		NI T7_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T7_ = (NI)0;
		T7_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T7_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T29_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
				if (!(res <= colontmp_)) goto LA9;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				{
					NI T12_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T22_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
					T12_ = (NI)0;
					T12_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(it);
					if (!!((T12_ == ((NI) 1)))) goto LA13_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
						if (!(((NI) 0) < i)) goto LA17_;
						nimZeroMem((void*)T19_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_409), T19_, 0);
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T20_);
						add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T21_);
						toClose += ((NI) 1);
					}
					LA17_: ;
					(*p).extraIndent += ((NI) 1);
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&cond));
					(*p).extraIndent -= ((NI) 1);
					nimZeroMem((void*)T22_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T22_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(cond);
					T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T23_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_410), T22_, 1);
					T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T24_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T23_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T24_);
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 1)], (&stmt));
				}
				goto LA10_;
				LA13_: ;
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
					nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T27_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_409), T26_, 0);
					T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T27_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T28_);
					(*p).extraIndent += ((NI) 1);
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&stmt));
					(*p).extraIndent -= ((NI) 1);
				}
				LA10_: ;
				moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&stmt), (*r));
				nimZeroMem((void*)T29_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T30_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T29_, 0);
				T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T31_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T30_);
				add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T31_);
				res += ((NI) 1);
			} LA9: ;
		}
	}
	T32_ = (NimStringDesc*)0;
	T33_ = (NimStringDesc*)0;
	T33_ = nsuRepeatChar(125, ((NI) (toClose)));
	T32_ = rawNewString((T33_ ? T33_->Sup.len : 0) + 1);
appendString(T32_, T33_);
appendString(T32_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_117));
	T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = rope_yShmEg9cffWxI7s5XzEKBow(T32_);
	T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T35_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T34_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T35_);
}

N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_AQaGEWMAoGSH1pqI9bePiww_8)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w cond;
	NI length;
	NI T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	nimZeroMem((void*)(&cond), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	{
		NIM_BOOL T3_;
		NimStringDesc* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		if (!!(T3_)) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__E5ya0OOlyISUCw4ENFn9bLA(TM_BxLwT0mhrtgTPodf1v3xjg_412);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*p).module).config, T6_);
	}
	LA4_: ;
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	(*p).unique += ((NI) 1);
	T7_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	length = T7_;
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_8fytVdU59b5aj319cog2ztLw*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_8fytVdU59b5aj319cog2ztLw_), ((NI) ((NI)(length + ((NI) 1))))));
	(*p).blocks->data[length].id = ((NI32)-((*p).unique));
	(*p).blocks->data[length].isLoop = NIM_TRUE;
	labl = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).unique)));
	nimZeroMem((void*)T8_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T8_[0] = labl;
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_413), T8_, 1);
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T9_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T10_);
	(*p).extraIndent += ((NI) 1);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&cond));
	(*p).extraIndent -= ((NI) 1);
	nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T11_[0] = cond.res;
	T11_[1] = labl;
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_414), T11_, 2);
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T12_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T13_);
	(*p).extraIndent += ((NI) 1);
	genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, (*n)._Ukind.S6.sons->data[((NI) 1)]);
	(*p).extraIndent -= ((NI) 1);
	nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T14_[0] = labl;
	T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T14_, 1);
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T15_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T16_);
	asgnRefNoCycle((void**) (&(*p).blocks), (tySequence_8fytVdU59b5aj319cog2ztLw*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_8fytVdU59b5aj319cog2ztLw_), ((NI) (length))));
}

N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_AQaGEWMAoGSH1pqI9bePiww_9)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				a = (*n)._Ukind.S6.sons->data[i];
				{
					if (!!(((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA7_;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* unpacked;
						if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA11_;
						unpacked = lowerTupleUnpacking_8A4G64HByteFanrMUexmNw((*(*p).module).graph, a, (*p).prc);
						genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, unpacked);
					}
					goto LA9_;
					LA11_: ;
					{
						tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
						v = (*(*a)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
						{
							NIM_BOOL T16_;
							T16_ = (NIM_BOOL)0;
							T16_ = !((((*v).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
							if (!(T16_)) goto LA17_;
							T16_ = !((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0));
							LA17_: ;
							if (!T16_) goto LA18_;
							genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, a);
							genVarInit_iVEhpHbcyNY9aOzPqLze8xw(p, v, (*a)._Ukind.S6.sons->data[((NI) 2)]);
						}
						LA18_: ;
					}
					LA9_: ;
				}
				LA7_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseJS_Bp5hmw3gImpkyC9cflWESLg_31)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w cond;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w stmt;
	NIM_BOOL stringSwitch;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T62_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
	nimZeroMem((void*)(&cond), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&stmt), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&cond));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36239903259928848));
	stringSwitch = ((*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!stringSwitch) goto LA4_;
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_344));
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(cond);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_416), T6_, 1);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T7_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T8_);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T10_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T10_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(cond);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_417), T10_, 1);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T11_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T12_);
	}
	LA2_: ;
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		if (!!(T15_)) goto LA16_;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
		unsureAsgnRef((void**) (&(*r).res), getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE));
	}
	LA16_: ;
	{
		NI i;
		NI colontmp_;
		NI T19_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T19_ = (NI)0;
		T19_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T19_ - ((NI) 1));
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA21;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T50_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T51_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
					{
						NI j;
						NI colontmp__2;
						NI T24_;
						NI res_2;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T24_ = (NI)0;
						T24_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(it);
						colontmp__2 = (NI)(T24_ - ((NI) 2));
						res_2 = ((NI) 0);
						{
							while (1) {
								tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e;
								if (!(res_2 <= colontmp__2)) goto LA26;
								j = res_2;
								e = (*it)._Ukind.S6.sons->data[j];
								{
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* v;
									if (!((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA29_;
									v = copyNode_lz8T1F9c0YwEOpUnrAUYgjg((*e)._Ukind.S6.sons->data[((NI) 0)]);
									{
										while (1) {
											tyArray_JiWwrsTRC6xqNlGcBthSVA T33_;
											tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
											tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
											if (!((*v)._Ukind.S1.intVal <= (*(*e)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S1.intVal)) goto LA32;
											gen_Bp5hmw3gImpkyC9cflWESLg(p, v, (&cond));
											nimZeroMem((void*)T33_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
											T33_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(cond);
											T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
											T34_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_418), T33_, 1);
											T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
											T35_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T34_);
											add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T35_);
											(*v)._Ukind.S1.intVal += ((NI) 1);
										} LA32: ;
									}
								}
								goto LA27_;
								LA29_: ;
								{
									{
										if (!stringSwitch) goto LA39_;
										switch ((*e).kind) {
										case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
										{
											tyArray_JiWwrsTRC6xqNlGcBthSVA T42_;
											tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
											tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
											nimZeroMem((void*)T42_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
											T42_[0] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*e)._Ukind.S3.strVal, NIM_FALSE);
											T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
											T43_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_418), T42_, 1);
											T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
											T44_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T43_);
											add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T44_);
										}
										break;
										default:
										{
											internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*e).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_419));
										}
										break;
										}
									}
									goto LA37_;
									LA39_: ;
									{
										tyArray_JiWwrsTRC6xqNlGcBthSVA T47_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
										gen_Bp5hmw3gImpkyC9cflWESLg(p, e, (&cond));
										nimZeroMem((void*)T47_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
										T47_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(cond);
										T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T48_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_418), T47_, 1);
										T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T49_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T48_);
										add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T49_);
									}
									LA37_: ;
								}
								LA27_: ;
								res_2 += ((NI) 1);
							} LA26: ;
						}
					}
					(*p).extraIndent += ((NI) 1);
					T50_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T50_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(it);
					gen_Bp5hmw3gImpkyC9cflWESLg(p, T50_, (&stmt));
					moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&stmt), (*r));
					nimZeroMem((void*)T51_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T52_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_420), T51_, 0);
					T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T53_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T52_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T53_);
					(*p).extraIndent -= ((NI) 1);
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T55_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T58_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
					nimZeroMem((void*)T55_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T56_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_421), T55_, 0);
					T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T57_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T56_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T57_);
					(*p).extraIndent += ((NI) 1);
					gen_Bp5hmw3gImpkyC9cflWESLg(p, (*it)._Ukind.S6.sons->data[((NI) 0)], (&stmt));
					moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&stmt), (*r));
					nimZeroMem((void*)T58_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T59_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_420), T58_, 0);
					T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T60_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T59_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T60_);
					(*p).extraIndent -= ((NI) 1);
				}
				break;
				default:
				{
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*it).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_422));
				}
				break;
				}
				res += ((NI) 1);
			} LA21: ;
		}
	}
	nimZeroMem((void*)T62_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T63_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T62_, 0);
	T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T64_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T63_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T64_);
}

N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_AQaGEWMAoGSH1pqI9bePiww_10)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	{
		if (!((*p).procDef == NIM_NIL)) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_423));
	}
	LA3_: ;
	(*p).beforeRetNeeded = NIM_TRUE;
	{
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA7_;
		genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)]);
	}
	goto LA5_;
	LA7_: ;
	{
		genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	}
	LA5_: ;
	nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_424), T10_, 0);
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T11_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T12_);
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_AQaGEWMAoGSH1pqI9bePiww_11)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI idx;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T17_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
	idx = (NI)0;
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		sym = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		idx = (NI)((*sym).position - ((NI) 1));
	}
	goto LA1_;
	LA3_: ;
	{
		NI T6_;
		T6_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
		idx = (NI)(T6_ - ((NI) 1));
		{
			while (1) {
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = (((NI) 0) <= idx);
				if (!(T9_)) goto LA10_;
				T9_ = !((*p).blocks->data[idx].isLoop);
				LA10_: ;
				if (!T9_) goto LA8;
				idx -= ((NI) 1);
			} LA8: ;
		}
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = (idx < ((NI) 0));
			if (T13_) goto LA14_;
			T13_ = !((*p).blocks->data[idx].isLoop);
			LA14_: ;
			if (!T13_) goto LA15_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_425));
		}
		LA15_: ;
	}
	LA1_: ;
	(*p).blocks->data[idx].id = ((*p).blocks->data[idx].id > 0? ((*p).blocks->data[idx].id) : -((*p).blocks->data[idx].id));
	nimZeroMem((void*)T17_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T17_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).blocks->data[idx].id)));
	T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_426), T17_, 1);
	T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T18_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T19_);
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgnAux_FTHts0vUatiTmPKVGzyMKA)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, NIM_BOOL noCopyNeeded) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w b;
	tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA xtyp;
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	nimZeroMem((void*)(&b), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	xtyp = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*x).typ);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T12_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*x)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = !((xtyp == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8)));
		LA6_: ;
		if (!T3_) goto LA7_;
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*x)._Ukind.S6.sons->data[((NI) 0)], (&a));
		tmp = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_FALSE);
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T9_[0] = tmp;
		T9_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_366), T9_, 2);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T10_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T11_);
		nimZeroMem((void*)T12_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T12_[0] = tmp;
		a.res = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_427), T12_, 1);
	}
	goto LA1_;
	LA7_: ;
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, x, (&a));
	}
	LA1_: ;
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, y);
	gen_Bp5hmw3gImpkyC9cflWESLg(p, y, (&b));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
		T16_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T16_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*x).typ, IL64(36099165763184912));
		if (!((*T16_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*T16_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62) || (*T16_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA17_;
		xtyp = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 4);
	}
	LA17_: ;
	switch (xtyp) {
	case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 4):
	{
		{
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, y);
			if (!(T23_)) goto LA24_;
			T23_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, x);
			LA24_: ;
			T22_ = T23_;
			if (T22_) goto LA25_;
			T22_ = noCopyNeeded;
			LA25_: ;
			if (!T22_) goto LA26_;
			nimZeroMem((void*)T28_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T28_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
			T28_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(b);
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_307), T28_, 2);
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T29_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T30_);
		}
		goto LA20_;
		LA26_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
			nimZeroMem((void*)T32_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T32_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
			T32_[1] = b.res;
			T32_[2] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*y).typ);
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_428), T32_, 3);
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T33_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T34_);
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 8):
	{
		{
			NIM_BOOL T38_;
			NIM_BOOL T39_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
			T38_ = (NIM_BOOL)0;
			T39_ = (NIM_BOOL)0;
			T39_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, y);
			if (!(T39_)) goto LA40_;
			T39_ = needsNoCopy_jpd9cnGMvMNWjXepTXEORHg(p, x);
			LA40_: ;
			T38_ = T39_;
			if (T38_) goto LA41_;
			T38_ = noCopyNeeded;
			LA41_: ;
			if (!T38_) goto LA42_;
			nimZeroMem((void*)T44_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T44_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
			T44_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(b);
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_307), T44_, 2);
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T45_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T46_);
		}
		goto LA36_;
		LA42_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_128));
			nimZeroMem((void*)T48_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T48_[0] = a.res;
			T48_[1] = b.res;
			T48_[2] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*y).typ);
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_429), T48_, 3);
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T49_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T50_);
		}
		LA36_: ;
	}
	break;
	case ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9):
	{
		{
			NIM_BOOL T54_;
			T54_ = (NIM_BOOL)0;
			T54_ = !((a.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
			if (T54_) goto LA55_;
			T54_ = !((b.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9)));
			LA55_: ;
			if (!T54_) goto LA56_;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp_2;
				tyArray_f7nG5LD47BH5K9c6mASit3g T62_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
				if (!((*y).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27))) goto LA60_;
				tmp_2 = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_FALSE);
				nimZeroMem((void*)T62_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T62_[0] = tmp_2;
				T62_[1] = a.address;
				T62_[2] = a.res;
				T62_[3] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(b);
				T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_430), T62_, 4);
				T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T63_);
				add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T64_);
			}
			goto LA58_;
			LA60_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T68_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
				if (!(b.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA66_;
				nimZeroMem((void*)T68_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T68_[0] = a.res;
				T68_[1] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(b);
				T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T69_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_431), T68_, 2);
				T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T69_);
				add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T70_);
			}
			goto LA58_;
			LA66_: ;
			{
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*x).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_432));
			}
			LA58_: ;
		}
		goto LA52_;
		LA56_: ;
		{
			tyArray_f7nG5LD47BH5K9c6mASit3g T73_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			nimZeroMem((void*)T73_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T73_[0] = a.address;
			T73_[1] = b.address;
			T73_[2] = a.res;
			T73_[3] = b.res;
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_433), T73_, 4);
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T74_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T75_);
		}
		LA52_: ;
	}
	break;
	default:
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T77_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
		nimZeroMem((void*)T77_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T77_[0] = a.res;
		T77_[1] = b.res;
		T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T78_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_307), T77_, 2);
		T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T79_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T78_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T79_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_AQaGEWMAoGSH1pqI9bePiww_12)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	genAsgnAux_FTHts0vUatiTmPKVGzyMKA(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], NIM_FALSE);
}

N_LIB_PRIVATE N_NIMCALL(void, genFastAsgn_AQaGEWMAoGSH1pqI9bePiww_13)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL noCopy;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36099165763184912));
	noCopy = ((*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 62) || (*T1_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28));
	genAsgnAux_FTHts0vUatiTmPKVGzyMKA(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (*n)._Ukind.S6.sons->data[((NI) 1)], noCopy);
}

N_LIB_PRIVATE N_NIMCALL(void, genAsmOrEmitStmt_AQaGEWMAoGSH1pqI9bePiww_14)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, NIM_NIL);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T1_);
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
		colontmp_ = (NI)(T3_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				it = (*n)._Ukind.S6.sons->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
				{
					add_yG4AKzsBRS1W4MANDlXQeg(&(*p).body, (*it)._Ukind.S3.strVal);
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
					v = (*it)._Ukind.S4.sym;
					{
						if (!NIM_FALSE) goto LA10_;
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w r;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
						nimZeroMem((void*)(&r), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
						gen_Bp5hmw3gImpkyC9cflWESLg(p, it, (&r));
						{
							if (!((*(*it).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26))) goto LA15_;
							r.res = r.address;
							r.address = NIM_NIL;
						}
						goto LA13_;
						LA15_: ;
						{
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
							if (!(r.typ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA18_;
							nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T20_[0] = r.address;
							T20_[1] = r.res;
							r.res = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_356), T20_, 2);
							r.address = NIM_NIL;
							r.typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
						}
						goto LA13_;
						LA18_: ;
						LA13_: ;
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(r);
						add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T21_);
					}
					LA8_: ;
				}
				break;
				default:
				{
					tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w r_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
					nimZeroMem((void*)(&r_2), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
					gen_Bp5hmw3gImpkyC9cflWESLg(p, it, (&r_2));
					T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T23_ = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(r_2);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T23_);
				}
				break;
				}
				res += ((NI) 1);
			} LA5: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*p).body, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_117));
}

N_LIB_PRIVATE N_NIMCALL(void, genTry_Bp5hmw3gImpkyC9cflWESLg_32)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	NI i;
	NI length;
	NIM_BOOL catchBranchesExist;
	NIM_BOOL T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmpFramePtr;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T18_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
	NIM_BOOL generalCatchBranchExists;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* dollar;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T93_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
	genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		if (!!(T3_)) goto LA4_;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 2);
		unsureAsgnRef((void**) (&(*r).res), getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE));
	}
	LA4_: ;
	(*p).unique += ((NI) 1);
	i = ((NI) 1);
	length = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
	T6_ = (NIM_BOOL)0;
	T6_ = (((NI) 1) < length);
	if (!(T6_)) goto LA7_;
	T6_ = ((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
	LA7_: ;
	catchBranchesExist = T6_;
	{
		if (!catchBranchesExist) goto LA10_;
		add_yG4AKzsBRS1W4MANDlXQeg(&(*p).body, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_434));
	}
	LA10_: ;
	tmpFramePtr = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_435));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0))) goto LA14_;
		tmpFramePtr = getTemp_EG8bDinaW3fVLpok9a4s5cA(p, NIM_TRUE);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(tmpFramePtr, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_436));
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T16_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T17_);
	}
	LA14_: ;
	nimZeroMem((void*)T18_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_437), T18_, 0);
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T19_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T20_);
	nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
	moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&a), (*r));
	generalCatchBranchExists = NIM_FALSE;
	dollar = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T25_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		if (!catchBranchesExist) goto LA23_;
		nimZeroMem((void*)T25_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*p).body, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_438), T25_, 0);
		nimZeroMem((void*)T26_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T26_[0] = tmpFramePtr;
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_439), T26_, 1);
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T27_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T28_);
	}
	LA23_: ;
	{
		while (1) {
			NIM_BOOL T31_;
			NI blen;
			T31_ = (NIM_BOOL)0;
			T31_ = (i < length);
			if (!(T31_)) goto LA32_;
			T31_ = ((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA32_: ;
			if (!T31_) goto LA30;
			blen = sonsLen_qPWPHw7WgJeEVYUdcaRIig((*n)._Ukind.S6.sons->data[i]);
			{
				if (!(blen == ((NI) 1))) goto LA35_;
				generalCatchBranchExists = NIM_TRUE;
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
					if (!(((NI) 1) < i)) goto LA39_;
					nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_409), T41_, 0);
					T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T43_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T42_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T43_);
				}
				LA39_: ;
				gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)], (&a));
				moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&a), (*r));
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T48_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
					if (!(((NI) 1) < i)) goto LA46_;
					nimZeroMem((void*)T48_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T49_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T48_, 0);
					T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T49_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T50_);
				}
				LA46_: ;
			}
			goto LA33_;
			LA35_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T70_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T73_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
				orExpr = NIM_NIL;
				useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_339));
				{
					NI j;
					NI colontmp_;
					NI res;
					j = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = (NI)(blen - ((NI) 2));
					res = ((NI) 0);
					{
						while (1) {
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T63_;
							if (!(res <= colontmp_)) goto LA54;
							j = res;
							{
								if (!!(((*(*(*n)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA57_;
								internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_440));
							}
							LA57_: ;
							{
								if (!!((orExpr == NIM_NIL))) goto LA61_;
								add_yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_441));
							}
							LA61_: ;
							nimZeroMem((void*)T63_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T63_[0] = genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*(*(*n)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[j]).typ);
							T63_[1] = dollar;
							addf_ocEHZ9cujtqicXvDuJUm5pg(&orExpr, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_442), T63_, 2);
							res += ((NI) 1);
						} LA54: ;
					}
				}
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
					if (!(((NI) 1) < i)) goto LA66_;
					T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T68_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_443));
					T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T69_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T68_);
					add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T69_);
				}
				LA66_: ;
				nimZeroMem((void*)T70_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T70_[0] = dollar;
				T70_[1] = orExpr;
				T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_444), T70_, 2);
				T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T72_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T71_);
				add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T72_);
				gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[(NI)(blen - ((NI) 1))], (&a));
				moveInto_rA59a0Z9bTX9aiKkWlHk0Akiw(p, (&a), (*r));
				nimZeroMem((void*)T73_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T74_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_125), T73_, 0);
				T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T75_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T74_);
				add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T75_);
			}
			LA33_: ;
			i += ((NI) 1);
		} LA30: ;
	}
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T90_;
		if (!catchBranchesExist) goto LA78_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
			if (!!(generalCatchBranchExists)) goto LA82_;
			useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_445));
			T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T84_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_446));
			T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T84_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T85_);
			T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_447));
			T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T86_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T87_);
			T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T88_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_448));
			T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T89_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T88_);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T89_);
		}
		LA82_: ;
		nimZeroMem((void*)T90_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T90_[0] = dollar;
		addf_ocEHZ9cujtqicXvDuJUm5pg(&(*p).body, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_449), T90_, 1);
	}
	LA78_: ;
	T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T91_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_450));
	T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T92_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T91_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T92_);
	nimZeroMem((void*)T93_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T93_[0] = tmpFramePtr;
	T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T94_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_439), T93_, 1);
	T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T95_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T94_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T95_);
	{
		NIM_BOOL T98_;
		T98_ = (NIM_BOOL)0;
		T98_ = (i < length);
		if (!(T98_)) goto LA99_;
		T98_ = ((*(*n)._Ukind.S6.sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA99_: ;
		if (!T98_) goto LA100_;
		genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, (*(*n)._Ukind.S6.sons->data[i])._Ukind.S6.sons->data[((NI) 0)]);
	}
	LA100_: ;
	T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T102_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_448));
	T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T103_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T102_);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T103_);
}

N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_AQaGEWMAoGSH1pqI9bePiww_15)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], (&a));
		typ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*(*n)._Ukind.S6.sons->data[((NI) 0)]).typ, IL64(36239903266220304));
		genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_451));
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = rdLoc_SouoBzM9a5IhLcQJmzhKL0Ajsgen(a);
		T5_[1] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*(*(*typ).sym).name).s, NIM_TRUE);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_452), T5_, 2);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T6_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T7_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
		useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_445));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_453));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T9_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T10_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genPragma_AQaGEWMAoGSH1pqI9bePiww_16)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*n)._Ukind.S6.sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T5_;
				if (!(i < L)) goto LA4;
				it = colontmp_->data[i];
				T5_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma_tadMdqrtQd2cek9aFwyE1XQ(it);
				switch (T5_) {
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 193):
				{
					genAsmOrEmitStmt_AQaGEWMAoGSH1pqI9bePiww_14(p, (*it)._Ukind.S6.sons->data[((NI) 1)]);
				}
				break;
				default:
				{
				}
				break;
				}
				i += ((NI) 1);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, gen_Bp5hmw3gImpkyC9cflWESLg)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w* r) {
	(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 0);
	{
		if (!!(((*r).kind == ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 3)))) goto LA3_;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 0);
	}
	LA3_: ;
	unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		genSym_Bp5hmw3gImpkyC9cflWESLg_2(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		{
			if (!((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1))) goto LA9_;
			{
				if (!((*n)._Ukind.S1.intVal == IL64(0))) goto LA13_;
				unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_169)));
			}
			goto LA11_;
			LA13_: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_170)));
			}
			LA11_: ;
		}
		goto LA7_;
		LA9_: ;
		{
			unsureAsgnRef((void**) (&(*r).res), rope_KOisMGxcPhz6CcSmxgwEQQ((*n)._Ukind.S1.intVal));
		}
		LA7_: ;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
			if (!T20_) goto LA21_;
		}
		goto LA18_;
		LA21_: ;
		{
			tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA T24_;
			T24_ = (tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA)0;
			T24_ = mapType_3VaqeosYFyERT8Ar50lWVA(p, (*n).typ);
			if (!(T24_ == ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9))) goto LA25_;
			(*r).typ = ((tyEnum_TJSTypeKind_9aFSCXgaSEq2m81RJRMKDeA) 9);
			unsureAsgnRef((void**) (&(*r).address), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_171)));
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_172)));
			(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
		}
		goto LA18_;
		LA25_: ;
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_171)));
			(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
		}
		LA18_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
			T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T31_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg((*n).typ, IL64(36099165772622096));
			if (!((*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28))) goto LA32_;
			{
				tyArray_JiWwrsTRC6xqNlGcBthSVA T38_;
				if (!!((((*n)._Ukind.S3.strVal ? (*n)._Ukind.S3.strVal->Sup.len : 0) == ((NI) 0)))) goto LA36_;
				useMagic_4MoUWv1cpa6oOBwwpQ0wfA(p, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_173));
				nimZeroMem((void*)T38_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T38_[0] = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*n)._Ukind.S3.strVal, NIM_TRUE);
				unsureAsgnRef((void**) (&(*r).res), percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_174), T38_, 1));
			}
			goto LA34_;
			LA36_: ;
			{
				unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_175)));
			}
			LA34_: ;
		}
		goto LA29_;
		LA32_: ;
		{
			unsureAsgnRef((void**) (&(*r).res), makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw((*n)._Ukind.S3.strVal, NIM_FALSE));
		}
		LA29_: ;
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		NF f;
		tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA T42_;
		f = (*n)._Ukind.S2.floatVal;
		T42_ = (tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA)0;
		T42_ = classify_rfodLs2J9b87EDgWnWZoObA(f);
		switch (T42_) {
		case ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 4):
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_176)));
		}
		break;
		case ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 3):
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_177)));
		}
		break;
		case ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 2):
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_178)));
		}
		break;
		case ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 5):
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_179)));
		}
		break;
		case ((tyEnum_FloatClass_pPga1yW9b8J9cwNnm9b1aPRnA) 6):
		{
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_180)));
		}
		break;
		default:
		{
			NimStringDesc* T49_;
			T49_ = (NimStringDesc*)0;
			T49_ = toStrMaxPrecision_bUxkE4LG1hqvhXMwxWRgAw(f, ((NimStringDesc*) NIM_NIL));
			unsureAsgnRef((void**) (&(*r).res), rope_yShmEg9cffWxI7s5XzEKBow(T49_));
		}
		break;
		}
		(*r).kind = ((tyEnum_TResKind_EoayJcDa8SxU1YPfjU8L9bg) 1);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
			if (!T53_) goto LA54_;
			genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
		}
		LA54_: ;
		{
			NIM_BOOL T58_;
			T58_ = (NIM_BOOL)0;
			T58_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T58_)) goto LA59_;
			T58_ = !(((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
			LA59_: ;
			if (!T58_) goto LA60_;
			genMagic_Bp5hmw3gImpkyC9cflWESLg_3(p, n, r);
		}
		goto LA56_;
		LA60_: ;
		{
			NIM_BOOL T63_;
			NIM_BOOL T64_;
			NI T67_;
			T63_ = (NIM_BOOL)0;
			T64_ = (NIM_BOOL)0;
			T64_ = ((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T64_)) goto LA65_;
			T64_ = (((*(*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA65_: ;
			T63_ = T64_;
			if (!(T63_)) goto LA66_;
			T67_ = (NI)0;
			T67_ = len_CdME9baJhvveuPEDZE9bXoxAsigmatch(n);
			T63_ = (((NI) 1) <= T67_);
			LA66_: ;
			if (!T63_) goto LA68_;
			genInfixCall_Bp5hmw3gImpkyC9cflWESLg_11(p, n, r);
		}
		goto LA56_;
		LA68_: ;
		{
			genCall_Bp5hmw3gImpkyC9cflWESLg_10(p, n, r);
		}
		LA56_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr_Bp5hmw3gImpkyC9cflWESLg_12(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr_Bp5hmw3gImpkyC9cflWESLg_13(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr_Bp5hmw3gImpkyC9cflWESLg_14(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_Bp5hmw3gImpkyC9cflWESLg_15(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv_Bp5hmw3gImpkyC9cflWESLg_16(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr_Bp5hmw3gImpkyC9cflWESLg_17(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_Bp5hmw3gImpkyC9cflWESLg_22(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrayAccess_Bp5hmw3gImpkyC9cflWESLg_23(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genFieldAccess_Bp5hmw3gImpkyC9cflWESLg_20(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedFieldAccess_Bp5hmw3gImpkyC9cflWESLg_24(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		upConv_Bp5hmw3gImpkyC9cflWESLg_25(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		genCast_Bp5hmw3gImpkyC9cflWESLg_26(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	{
		genRangeChck_hP2w9bfjeb9a8Gw7OVBCznWw(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_401));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		genRangeChck_hP2w9bfjeb9a8Gw7OVBCznWw(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_402));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		genRangeChck_hP2w9bfjeb9a8Gw7OVBCznWw(p, n, r, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_399));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	{
		convStrToCStr_Bp5hmw3gImpkyC9cflWESLg_27(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		convCStrToStr_Bp5hmw3gImpkyC9cflWESLg_28(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
		s = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = mangleName_VbRtGjpKYj6Wtc1GdNdKhg((*p).module, s);
		(void)(T92_);
		unsureAsgnRef((void**) (&(*r).res), (*s).loc.r);
		{
			NIM_BOOL T95_;
			T95_ = (NIM_BOOL)0;
			T95_ = (((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
			if (T95_) goto LA96_;
			T95_ = !(((*s).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
			LA96_: ;
			if (!T95_) goto LA97_;
		}
		goto LA93_;
		LA97_: ;
		{
			NIM_BOOL T100_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
			T100_ = (NIM_BOOL)0;
			T100_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*(*p).g).generatedSyms), (*s).Sup.id);
			if (!!(T100_)) goto LA101_;
			T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T103_ = genProc_VRfKzQHOMcRGtJXZSJxFtg(p, s);
			add_iMTw0CDaruwETLGb9bhpBLg(&(*p).locals, T103_);
		}
		goto LA93_;
		LA101_: ;
		LA93_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4):
	{
		unsureAsgnRef((void**) (&(*r).res), genTypeInfo_jZNTi9aEbLMAMESBZ7a9cl7A_2(p, (*n).typ));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NIM_BOOL isExpr;
		NIM_BOOL T106_;
		T106_ = (NIM_BOOL)0;
		T106_ = isEmptyType_9aw9cztYHpNdZjCV1t0mJqwgvmgen((*n).typ);
		isExpr = !(T106_);
		{
			NI i;
			NI colontmp_;
			NI T108_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T108_ = (NI)0;
			T108_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(n);
			colontmp_ = (NI)((NI)(T108_ - ((NI) 1)) - isExpr);
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA110;
					i = res;
					genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, (*n)._Ukind.S6.sons->data[i]);
					res += ((NI) 1);
				} LA110: ;
			}
		}
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T115_;
			if (!isExpr) goto LA113_;
			T115_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T115_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
			gen_Bp5hmw3gImpkyC9cflWESLg(p, T115_, r);
		}
		LA113_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	{
		genBlock_Bp5hmw3gImpkyC9cflWESLg_29(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf_Bp5hmw3gImpkyC9cflWESLg_30(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		gen_Bp5hmw3gImpkyC9cflWESLg(p, (*(*n)._Ukind.S6.sons->data[((NI) 1)])._Ukind.S6.sons->data[((NI) 0)], r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		genWhileStmt_AQaGEWMAoGSH1pqI9bePiww_8(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		genVarStmt_AQaGEWMAoGSH1pqI9bePiww_9(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 94):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_415));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCaseJS_Bp5hmw3gImpkyC9cflWESLg_31(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturnStmt_AQaGEWMAoGSH1pqI9bePiww_10(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreakStmt_AQaGEWMAoGSH1pqI9bePiww_11(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		genAsgn_AQaGEWMAoGSH1pqI9bePiww_12(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		genFastAsgn_AQaGEWMAoGSH1pqI9bePiww_13(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		{
			if (!!(((*(*n)._Ukind.S6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA131_;
			genLineDir_AQaGEWMAoGSH1pqI9bePiww_3(p, n);
			gen_Bp5hmw3gImpkyC9cflWESLg(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
		}
		LA131_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		genAsmOrEmitStmt_AQaGEWMAoGSH1pqI9bePiww_14(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		genTry_Bp5hmw3gImpkyC9cflWESLg_32(p, n, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaiseStmt_AQaGEWMAoGSH1pqI9bePiww_15(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 117):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 118):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 119):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 113):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 90):
	{
		genPragma_AQaGEWMAoGSH1pqI9bePiww_16(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s_2;
		s_2 = (*(*n)._Ukind.S6.sons->data[((NI) 0)])._Ukind.S4.sym;
		{
			if (!((65600 & (*s_2).flags) == 64)) goto LA141_;
			genSym_Bp5hmw3gImpkyC9cflWESLg_2(p, (*n)._Ukind.S6.sons->data[((NI) 0)], r);
			unsureAsgnRef((void**) (&(*r).res), NIM_NIL);
		}
		LA141_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_454));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T145_;
		T145_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T145_ = lastSon_esDJA7239bJDiq4UrX9aHCjg(n);
		gen_Bp5hmw3gImpkyC9cflWESLg(p, T145_, r);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		NimStringDesc* T148_;
		T148_ = (NimStringDesc*)0;
		T148_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 24);
appendString(T148_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_455));
appendString(T148_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*p).module).config, (*n).info, T148_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genStmt_AQaGEWMAoGSH1pqI9bePiww_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w r;
	nimZeroMem((void*)(&r), sizeof(tyObject_TCompRes_ZngkNoeBYb0CyBmkEOJi5w));
	gen_Bp5hmw3gImpkyC9cflWESLg(p, n, (&r));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!!((r.res == NIM_NIL))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = r.res;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_456), T5_, 1);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = indentLine_jQGcsbXjMm82EQo5Ohqg0w(p, T6_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T7_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genModule_AQaGEWMAoGSH1pqI9bePiww)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		NimStringDesc* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = rawNewString(((*(*(*(*p).module).module).name).s ? (*(*(*(*p).module).module).name).s->Sup.len : 0) + 7);
appendString(T5_, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_21));
appendString(T5_, (*(*(*(*p).module).module).name).s);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T5_, NIM_TRUE);
		T7_ = (NimStringDesc*)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = ((*(*(*p).module).module).info.fileIndex < ((NI32) 0));
			if (T10_) goto LA11_;
			T10_ = ((*(*p).module).config == NIM_NIL);
			LA11_: ;
			if (!T10_) goto LA12_;
			T7_ = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_22));
		}
		goto LA8_;
		LA12_: ;
		{
			T7_ = copyString((*(*(*p).module).config).m.fileInfos->data[(*(*(*p).module).module).info.fileIndex].projPath);
		}
		LA8_: ;
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = makeJSString_C2w9bj3qP5A9cVnAUrvoI9aqw(T7_, NIM_TRUE);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = frameCreate_5xQGffjrmjbHfz64yWZ49bw(p, T6_, T15_);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T16_);
	}
	LA3_: ;
	genStmt_AQaGEWMAoGSH1pqI9bePiww_2(p, n);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA19_;
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = frameDestroy_XP5ZeYFuxYow89aSkFgfWeg(p);
		add_iMTw0CDaruwETLGb9bhpBLg(&(*p).body, T21_);
	}
	LA19_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myProcess_PZ51a8H3AQu4zYP9cwHpJag)(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m;
	tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* globals;
	tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	m = ((tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*) (b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen((*m).config, n);
		if (!T3_) goto LA4_;
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		if (!((*m).module == NIM_NIL)) goto LA8_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*m).config, (*n).info, ((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_5));
	}
	LA8_: ;
	globals = ((tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*) ((*(*m).graph).backend));
	p = newProc_DZOGOvkWRt8L5GOYwFoPQw(globals, m, NIM_NIL, (*(*m).module).options);
	(*p).unique = (*globals).unique;
	genModule_AQaGEWMAoGSH1pqI9bePiww(p, n);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).code, (*p).locals);
	add_iMTw0CDaruwETLGb9bhpBLg(&(*(*p).g).code, (*p).body);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, attachProc_9aGDirKbsf9cN1iAWvMcXOKg_2)(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* newp;
	newp = genProc_VRfKzQHOMcRGtJXZSJxFtg(p, s);
	attachProc_C5SA4Y9bPAMaecsSyvetPTg(p, newp, s);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, wholeCode_0JkORKxMs17USnUxSKLA9cw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* globals;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disp;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	globals = ((tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*) ((*graph).backend));
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
		tySequence_DfgJFJEYoj4YBAHLZPl5lQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		prc = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
		colontmp_ = (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*)0;
		colontmp_ = (*globals).forwarded;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				prc = colontmp_->data[i];
				{
					NIM_BOOL T7_;
					tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p;
					T7_ = (NIM_BOOL)0;
					T7_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*globals).generatedSyms), (*prc).Sup.id);
					if (!!(T7_)) goto LA8_;
					p = newProc_DZOGOvkWRt8L5GOYwFoPQw(globals, m, NIM_NIL, (*(*m).module).options);
					attachProc_9aGDirKbsf9cN1iAWvMcXOKg_2(p, prc);
				}
				LA8_: ;
				i += ((NI) 1);
			} LA4: ;
		}
	}
	disp = generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw(graph);
	{
		NI i_2;
		NI colontmp__2;
		NI T11_;
		NI res;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		T11_ = (NI)0;
		T11_ = sonsLen_qPWPHw7WgJeEVYUdcaRIig(disp);
		colontmp__2 = (NI)(T11_ - ((NI) 1));
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc_2;
				if (!(res <= colontmp__2)) goto LA13;
				i_2 = res;
				prc_2 = (*(*disp)._Ukind.S6.sons->data[i_2])._Ukind.S4.sym;
				{
					NIM_BOOL T16_;
					tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q* p_2;
					T16_ = (NIM_BOOL)0;
					T16_ = containsOrIncl_B0EhVMrh5BBBZOOtYjAvVg((&(*globals).generatedSyms), (*prc_2).Sup.id);
					if (!!(T16_)) goto LA17_;
					p_2 = newProc_DZOGOvkWRt8L5GOYwFoPQw(globals, m, NIM_NIL, (*(*m).module).options);
					attachProc_9aGDirKbsf9cN1iAWvMcXOKg_2(p_2, prc_2);
				}
				LA17_: ;
				res += ((NI) 1);
			} LA13: ;
		}
	}
	T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = amp__mFDAEkd1kysB0V9aBd20A9aA((*globals).typeInfo, (*globals).constants);
	result = amp__mFDAEkd1kysB0V9aBd20A9aA(T19_, (*globals).code);
	return result;
}

static N_INLINE(NIM_BOOL, isEmpty_7L4uOoWU31Tlt0n9avaqQAQoptions)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}

static N_INLINE(NIM_BOOL, isEmpty_gby4ylPSwvUIi9aD9ctLpVIQoptions)(NimStringDesc* x) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((x ? x->Sup.len : 0) == ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genHeader_Jh8YZW9c6mmqtRqmZvtYISg)(void) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_460));
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_459), T1_, 1);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClassName_M7eOsU9a45xJ1jjNZbYZG1w)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	s = (*t).sym;
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == 0);
		if (T3_) goto LA4_;
		T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 30))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(t, IL64(36239903266220304));
		s = (*T7_).sym;
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = (s == 0);
		if (T10_) goto LA11_;
		T10_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 30))&63U)))!=0);
		LA11_: ;
		if (!T10_) goto LA12_;
		{
			if (!NIM_TRUE) goto LA16_;
			failedAssertImpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_461));
		}
		LA16_: ;
	}
	LA12_: ;
	{
		if (!!(((*s).loc.r == NIM_NIL))) goto LA20_;
		result = (*s).loc.r;
	}
	goto LA18_;
	LA20_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow((*(*s).name).s);
	}
	LA18_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genClass_U4iU8S6rMkN6tzWoLM5IEw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* content, NimStringDesc* ext) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cls;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* extends;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_f7nG5LD47BH5K9c6mASit3g T9_;
	NimStringDesc* outfile;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	NIM_BOOL T12_;
	cls = getClassName_M7eOsU9a45xJ1jjNZbYZG1w(obj);
	t = skipTypes_7vZ9a9bub9bucX5E73hsr9cjvg(obj, IL64(36239903266220304));
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = getClassName_M7eOsU9a45xJ1jjNZbYZG1w((*t).sons->data[((NI) 0)]);
		extends = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_462), T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		extends = NIM_NIL;
	}
	LA1_: ;
	nimZeroMem((void*)T9_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T9_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_460));
	T9_[1] = cls;
	T9_[2] = extends;
	T9_[3] = content;
	result = percent__9bvKdnhoYI2ta9agQNm3orMA(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_463), T9_, 4);
	T10_ = (NimStringDesc*)0;
	T10_ = dollar__4KNdcWAONkpTKQgUR8XiZQ(cls);
	T11_ = (NimStringDesc*)0;
	T11_ = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ(conf, T10_, NIM_TRUE);
	outfile = noschangeFileExt(T11_, ext);
	T12_ = (NIM_BOOL)0;
	T12_ = writeRopeIfNotEqual_EnPyko9cdia3BJbBC9ao9a60A_2(result, outfile);
	(void)(T12_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myClose_yQE5q7IZnoaww0fGINiRdA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw* m;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = myProcess_PZ51a8H3AQu4zYP9cwHpJag(b, n);
	m = ((tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*) (b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = skipCodegen_A72PL1PX0Fg9cwfX3uIOVUAcgen((*m).config, n);
		if (!T3_) goto LA4_;
		result = n;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag* globals;
		NimStringDesc* ext;
		NimStringDesc* f;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code;
		NimStringDesc* outfile;
		tyTuple_7q7q3E6Oj24ZNVJb9aonhAg T37_;
		NimStringDesc* outDir;
		NimStringDesc* _;
		NimStringDesc* __2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		NIM_BOOL T45_;
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA8_;
		globals = ((tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*) ((*graph).backend));
		ext = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_457));
		{
			NI T12_;
			T12_ = ((*globals).classes ? (*globals).classes->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (((NI32) ((*(*m).module).position)) < ((NI32) 0));
				if (T17_) goto LA18_;
				T17_ = ((*m).config == NIM_NIL);
				LA18_: ;
				if (!T17_) goto LA19_;
				f = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_22));
			}
			goto LA15_;
			LA19_: ;
			{
				f = (*(*m).config).m.fileInfos->data[((NI32) ((*(*m).module).position))].projPath;
			}
			LA15_: ;
		}
		goto LA10_;
		LA13_: ;
		{
			f = copyString(((NimStringDesc*) &TM_BxLwT0mhrtgTPodf1v3xjg_458));
		}
		LA10_: ;
		code = wholeCode_0JkORKxMs17USnUxSKLA9cw(graph, m);
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = isEmpty_7L4uOoWU31Tlt0n9avaqQAQoptions((*(*m).config).outFile);
			if (!!(T25_)) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				T30_ = nosisAbsolute((*(*m).config).outFile);
				if (!T30_) goto LA31_;
				outfile = (*(*m).config).outFile;
			}
			goto LA28_;
			LA31_: ;
			{
				NimStringDesc* T34_;
				T34_ = (NimStringDesc*)0;
				T34_ = nosgetCurrentDir();
				outfile = slash__lXoMhn1ZYc9cAJa9bfA61msg(T34_, (*(*m).config).outFile);
			}
			LA28_: ;
		}
		goto LA23_;
		LA26_: ;
		{
			NimStringDesc* T36_;
			T36_ = (NimStringDesc*)0;
			T36_ = completeCFilePath_nUeinU41FdF8oB8ZXMTOhQ((*m).config, f, NIM_TRUE);
			outfile = noschangeFileExt(T36_, ext);
		}
		LA23_: ;
		nimZeroMem((void*)(&T37_), sizeof(tyTuple_7q7q3E6Oj24ZNVJb9aonhAg));
		splitFile_R3dPKp0IXOiTZhAeiTEnrA(outfile, (&T37_));
		outDir = (NimStringDesc*)0;
		outDir = T37_.Field0;
		_ = (NimStringDesc*)0;
		_ = T37_.Field1;
		__2 = (NimStringDesc*)0;
		__2 = T37_.Field2;
		{
			NIM_BOOL T40_;
			T40_ = (NIM_BOOL)0;
			T40_ = isEmpty_gby4ylPSwvUIi9aD9ctLpVIQoptions(outDir);
			if (!!(T40_)) goto LA41_;
			noscreateDir(outDir);
		}
		LA41_: ;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = genHeader_Jh8YZW9c6mmqtRqmZvtYISg();
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = amp__mFDAEkd1kysB0V9aBd20A9aA(T43_, code);
		T45_ = (NIM_BOOL)0;
		T45_ = writeRopeIfNotEqual_EnPyko9cdia3BJbBC9ao9a60A_2(T44_, outfile);
		(void)(T45_);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* content;
			tySequence_AoW0ogAFeynDk5PueecbTw* colontmp_;
			NI i;
			NI L;
			NI T47_;
			obj = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			content = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			colontmp_ = (tySequence_AoW0ogAFeynDk5PueecbTw*)0;
			colontmp_ = (*globals).classes;
			i = ((NI) 0);
			T47_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T47_;
			{
				while (1) {
					if (!(i < L)) goto LA49;
					obj = colontmp_->data[i].Field0;
					content = colontmp_->data[i].Field1;
					genClass_U4iU8S6rMkN6tzWoLM5IEw((*m).config, obj, content, ext);
					i += ((NI) 1);
				} LA49: ;
			}
		}
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_jsgenInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_jsgenDatInit000)(void) {
static TNimNode* TM_BxLwT0mhrtgTPodf1v3xjg_2[4];
static TNimNode* TM_BxLwT0mhrtgTPodf1v3xjg_3[8];
static TNimNode* TM_BxLwT0mhrtgTPodf1v3xjg_4[2];
static TNimNode* TM_BxLwT0mhrtgTPodf1v3xjg_6[14];
static TNimNode* TM_BxLwT0mhrtgTPodf1v3xjg_7[2];
static TNimNode TM_BxLwT0mhrtgTPodf1v3xjg_0[35];
NTI_qij68Ti2EwJQHH6sSdkSdw_.size = sizeof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw);
NTI_qij68Ti2EwJQHH6sSdkSdw_.kind = 17;
NTI_qij68Ti2EwJQHH6sSdkSdw_.base = (&NTI_Hb6rFM0ecvtlLf2kv9aU75w_);
TM_BxLwT0mhrtgTPodf1v3xjg_2[0] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[1];
TM_BxLwT0mhrtgTPodf1v3xjg_0[1].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[1].offset = offsetof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw, module);
TM_BxLwT0mhrtgTPodf1v3xjg_0[1].typ = (&NTI_K9bspPztfoWajecnwjyHuYQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[1].name = "module";
TM_BxLwT0mhrtgTPodf1v3xjg_2[1] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[2];
TM_BxLwT0mhrtgTPodf1v3xjg_0[2].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[2].offset = offsetof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw, graph);
TM_BxLwT0mhrtgTPodf1v3xjg_0[2].typ = (&NTI_KfdHSsl8vyUCSI9b3inBcww_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[2].name = "graph";
TM_BxLwT0mhrtgTPodf1v3xjg_2[2] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[3];
TM_BxLwT0mhrtgTPodf1v3xjg_0[3].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[3].offset = offsetof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw, config);
TM_BxLwT0mhrtgTPodf1v3xjg_0[3].typ = (&NTI_a8lycfSA25OQltN3OMeBsA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[3].name = "config";
TM_BxLwT0mhrtgTPodf1v3xjg_2[3] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[4];
TM_BxLwT0mhrtgTPodf1v3xjg_0[4].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[4].offset = offsetof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw, sigConflicts);
TM_BxLwT0mhrtgTPodf1v3xjg_0[4].typ = (&NTI_tUMxxU9cRgLolsrW9b7IBGsQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[4].name = "sigConflicts";
TM_BxLwT0mhrtgTPodf1v3xjg_0[0].len = 4; TM_BxLwT0mhrtgTPodf1v3xjg_0[0].kind = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[0].sons = &TM_BxLwT0mhrtgTPodf1v3xjg_2[0];
NTI_qij68Ti2EwJQHH6sSdkSdw_.node = &TM_BxLwT0mhrtgTPodf1v3xjg_0[0];
NTI_O09bHTFgtn9cJLLJxiNhuKUA_.size = sizeof(tyObject_TJSGen_qij68Ti2EwJQHH6sSdkSdw*);
NTI_O09bHTFgtn9cJLLJxiNhuKUA_.kind = 22;
NTI_O09bHTFgtn9cJLLJxiNhuKUA_.base = (&NTI_qij68Ti2EwJQHH6sSdkSdw_);
NTI_O09bHTFgtn9cJLLJxiNhuKUA_.marker = Marker_tyRef_O09bHTFgtn9cJLLJxiNhuKUA;
NTI_nWsHZg3qCUsABoCNYLliag_.size = sizeof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag);
NTI_nWsHZg3qCUsABoCNYLliag_.kind = 17;
NTI_nWsHZg3qCUsABoCNYLliag_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_BxLwT0mhrtgTPodf1v3xjg_3[0] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[6];
TM_BxLwT0mhrtgTPodf1v3xjg_0[6].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[6].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, typeInfo);
TM_BxLwT0mhrtgTPodf1v3xjg_0[6].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[6].name = "typeInfo";
TM_BxLwT0mhrtgTPodf1v3xjg_3[1] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[7];
TM_BxLwT0mhrtgTPodf1v3xjg_0[7].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[7].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, constants);
TM_BxLwT0mhrtgTPodf1v3xjg_0[7].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[7].name = "constants";
TM_BxLwT0mhrtgTPodf1v3xjg_3[2] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[8];
TM_BxLwT0mhrtgTPodf1v3xjg_0[8].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[8].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, code);
TM_BxLwT0mhrtgTPodf1v3xjg_0[8].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[8].name = "code";
TM_BxLwT0mhrtgTPodf1v3xjg_3[3] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[9];
TM_BxLwT0mhrtgTPodf1v3xjg_0[9].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[9].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, forwarded);
TM_BxLwT0mhrtgTPodf1v3xjg_0[9].typ = (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[9].name = "forwarded";
TM_BxLwT0mhrtgTPodf1v3xjg_3[4] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[10];
TM_BxLwT0mhrtgTPodf1v3xjg_0[10].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[10].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, generatedSyms);
TM_BxLwT0mhrtgTPodf1v3xjg_0[10].typ = (&NTI_PQrmFm4BXFkFSVOUl1ojSg_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[10].name = "generatedSyms";
TM_BxLwT0mhrtgTPodf1v3xjg_3[5] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[11];
TM_BxLwT0mhrtgTPodf1v3xjg_0[11].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[11].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, typeInfoGenerated);
TM_BxLwT0mhrtgTPodf1v3xjg_0[11].typ = (&NTI_PQrmFm4BXFkFSVOUl1ojSg_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[11].name = "typeInfoGenerated";
TM_BxLwT0mhrtgTPodf1v3xjg_3[6] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[12];
NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_.size = sizeof(tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA);
NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_.kind = 18;
NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_.base = 0;
NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_.flags = 2;
TM_BxLwT0mhrtgTPodf1v3xjg_4[0] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[14];
TM_BxLwT0mhrtgTPodf1v3xjg_0[14].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[14].offset = offsetof(tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA, Field0);
TM_BxLwT0mhrtgTPodf1v3xjg_0[14].typ = (&NTI_AgIT5feFR9a9aoVjv9cx2rOtg_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[14].name = "Field0";
TM_BxLwT0mhrtgTPodf1v3xjg_4[1] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[15];
TM_BxLwT0mhrtgTPodf1v3xjg_0[15].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[15].offset = offsetof(tyTuple_wzj54Gs9b6e2Yk2WmT9bFAoA, Field1);
TM_BxLwT0mhrtgTPodf1v3xjg_0[15].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[15].name = "Field1";
TM_BxLwT0mhrtgTPodf1v3xjg_0[13].len = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[13].kind = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[13].sons = &TM_BxLwT0mhrtgTPodf1v3xjg_4[0];
NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_.node = &TM_BxLwT0mhrtgTPodf1v3xjg_0[13];
NTI_AoW0ogAFeynDk5PueecbTw_.size = sizeof(tySequence_AoW0ogAFeynDk5PueecbTw*);
NTI_AoW0ogAFeynDk5PueecbTw_.kind = 24;
NTI_AoW0ogAFeynDk5PueecbTw_.base = (&NTI_wzj54Gs9b6e2Yk2WmT9bFAoA_);
NTI_AoW0ogAFeynDk5PueecbTw_.flags = 2;
NTI_AoW0ogAFeynDk5PueecbTw_.marker = Marker_tySequence_AoW0ogAFeynDk5PueecbTw;
TM_BxLwT0mhrtgTPodf1v3xjg_0[12].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[12].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, classes);
TM_BxLwT0mhrtgTPodf1v3xjg_0[12].typ = (&NTI_AoW0ogAFeynDk5PueecbTw_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[12].name = "classes";
TM_BxLwT0mhrtgTPodf1v3xjg_3[7] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[16];
TM_BxLwT0mhrtgTPodf1v3xjg_0[16].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[16].offset = offsetof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag, unique);
TM_BxLwT0mhrtgTPodf1v3xjg_0[16].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[16].name = "unique";
TM_BxLwT0mhrtgTPodf1v3xjg_0[5].len = 8; TM_BxLwT0mhrtgTPodf1v3xjg_0[5].kind = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[5].sons = &TM_BxLwT0mhrtgTPodf1v3xjg_3[0];
NTI_nWsHZg3qCUsABoCNYLliag_.node = &TM_BxLwT0mhrtgTPodf1v3xjg_0[5];
NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_.size = sizeof(tyObject_PGlobalscolonObjectType__nWsHZg3qCUsABoCNYLliag*);
NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_.kind = 22;
NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_.base = (&NTI_nWsHZg3qCUsABoCNYLliag_);
NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_.marker = Marker_tyRef_Q8XTeJJ39cPFyNvJXj9bmcMQ;
NTI_AFoo8FBR6Z1RtIhjuHkU2Q_.size = sizeof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q);
NTI_AFoo8FBR6Z1RtIhjuHkU2Q_.kind = 18;
NTI_AFoo8FBR6Z1RtIhjuHkU2Q_.base = 0;
TM_BxLwT0mhrtgTPodf1v3xjg_6[0] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[18];
TM_BxLwT0mhrtgTPodf1v3xjg_0[18].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[18].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, procDef);
TM_BxLwT0mhrtgTPodf1v3xjg_0[18].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[18].name = "procDef";
TM_BxLwT0mhrtgTPodf1v3xjg_6[1] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[19];
TM_BxLwT0mhrtgTPodf1v3xjg_0[19].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[19].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, prc);
TM_BxLwT0mhrtgTPodf1v3xjg_0[19].typ = (&NTI_K9bspPztfoWajecnwjyHuYQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[19].name = "prc";
TM_BxLwT0mhrtgTPodf1v3xjg_6[2] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[20];
TM_BxLwT0mhrtgTPodf1v3xjg_0[20].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[20].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, globals);
TM_BxLwT0mhrtgTPodf1v3xjg_0[20].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[20].name = "globals";
TM_BxLwT0mhrtgTPodf1v3xjg_6[3] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[21];
TM_BxLwT0mhrtgTPodf1v3xjg_0[21].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[21].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, locals);
TM_BxLwT0mhrtgTPodf1v3xjg_0[21].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[21].name = "locals";
TM_BxLwT0mhrtgTPodf1v3xjg_6[4] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[22];
TM_BxLwT0mhrtgTPodf1v3xjg_0[22].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[22].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, body);
TM_BxLwT0mhrtgTPodf1v3xjg_0[22].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[22].name = "body";
TM_BxLwT0mhrtgTPodf1v3xjg_6[5] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[23];
TM_BxLwT0mhrtgTPodf1v3xjg_0[23].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[23].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, options);
TM_BxLwT0mhrtgTPodf1v3xjg_0[23].typ = (&NTI_7MnKRybmCNh5j9bDRLMkxLw_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[23].name = "options";
TM_BxLwT0mhrtgTPodf1v3xjg_6[6] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[24];
TM_BxLwT0mhrtgTPodf1v3xjg_0[24].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[24].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, module);
TM_BxLwT0mhrtgTPodf1v3xjg_0[24].typ = (&NTI_O09bHTFgtn9cJLLJxiNhuKUA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[24].name = "module";
TM_BxLwT0mhrtgTPodf1v3xjg_6[7] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[25];
TM_BxLwT0mhrtgTPodf1v3xjg_0[25].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[25].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, g);
TM_BxLwT0mhrtgTPodf1v3xjg_0[25].typ = (&NTI_Q8XTeJJ39cPFyNvJXj9bmcMQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[25].name = "g";
TM_BxLwT0mhrtgTPodf1v3xjg_6[8] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[26];
TM_BxLwT0mhrtgTPodf1v3xjg_0[26].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[26].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, beforeRetNeeded);
TM_BxLwT0mhrtgTPodf1v3xjg_0[26].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[26].name = "beforeRetNeeded";
TM_BxLwT0mhrtgTPodf1v3xjg_6[9] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[27];
TM_BxLwT0mhrtgTPodf1v3xjg_0[27].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[27].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, unique);
TM_BxLwT0mhrtgTPodf1v3xjg_0[27].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[27].name = "unique";
TM_BxLwT0mhrtgTPodf1v3xjg_6[10] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[28];
NTI_46cd0Xw9aDJ1QWTE8nV4mLg_.size = sizeof(tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg);
NTI_46cd0Xw9aDJ1QWTE8nV4mLg_.kind = 18;
NTI_46cd0Xw9aDJ1QWTE8nV4mLg_.base = 0;
NTI_46cd0Xw9aDJ1QWTE8nV4mLg_.flags = 3;
TM_BxLwT0mhrtgTPodf1v3xjg_7[0] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[30];
TM_BxLwT0mhrtgTPodf1v3xjg_0[30].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[30].offset = offsetof(tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg, id);
TM_BxLwT0mhrtgTPodf1v3xjg_0[30].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[30].name = "id";
TM_BxLwT0mhrtgTPodf1v3xjg_7[1] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[31];
TM_BxLwT0mhrtgTPodf1v3xjg_0[31].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[31].offset = offsetof(tyObject_TBlock_46cd0Xw9aDJ1QWTE8nV4mLg, isLoop);
TM_BxLwT0mhrtgTPodf1v3xjg_0[31].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[31].name = "isLoop";
TM_BxLwT0mhrtgTPodf1v3xjg_0[29].len = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[29].kind = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[29].sons = &TM_BxLwT0mhrtgTPodf1v3xjg_7[0];
NTI_46cd0Xw9aDJ1QWTE8nV4mLg_.node = &TM_BxLwT0mhrtgTPodf1v3xjg_0[29];
NTI_8fytVdU59b5aj319cog2ztLw_.size = sizeof(tySequence_8fytVdU59b5aj319cog2ztLw*);
NTI_8fytVdU59b5aj319cog2ztLw_.kind = 24;
NTI_8fytVdU59b5aj319cog2ztLw_.base = (&NTI_46cd0Xw9aDJ1QWTE8nV4mLg_);
NTI_8fytVdU59b5aj319cog2ztLw_.flags = 2;
NTI_8fytVdU59b5aj319cog2ztLw_.marker = Marker_tySequence_8fytVdU59b5aj319cog2ztLw;
TM_BxLwT0mhrtgTPodf1v3xjg_0[28].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[28].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, blocks);
TM_BxLwT0mhrtgTPodf1v3xjg_0[28].typ = (&NTI_8fytVdU59b5aj319cog2ztLw_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[28].name = "blocks";
TM_BxLwT0mhrtgTPodf1v3xjg_6[11] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[32];
TM_BxLwT0mhrtgTPodf1v3xjg_0[32].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[32].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, extraIndent);
TM_BxLwT0mhrtgTPodf1v3xjg_0[32].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[32].name = "extraIndent";
TM_BxLwT0mhrtgTPodf1v3xjg_6[12] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[33];
TM_BxLwT0mhrtgTPodf1v3xjg_0[33].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[33].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, up);
TM_BxLwT0mhrtgTPodf1v3xjg_0[33].typ = (&NTI_OFWibP8T8afo89apFNGZiwA_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[33].name = "up";
TM_BxLwT0mhrtgTPodf1v3xjg_6[13] = &TM_BxLwT0mhrtgTPodf1v3xjg_0[34];
TM_BxLwT0mhrtgTPodf1v3xjg_0[34].kind = 1;
TM_BxLwT0mhrtgTPodf1v3xjg_0[34].offset = offsetof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q, declaredGlobals);
TM_BxLwT0mhrtgTPodf1v3xjg_0[34].typ = (&NTI_PQrmFm4BXFkFSVOUl1ojSg_);
TM_BxLwT0mhrtgTPodf1v3xjg_0[34].name = "declaredGlobals";
TM_BxLwT0mhrtgTPodf1v3xjg_0[17].len = 14; TM_BxLwT0mhrtgTPodf1v3xjg_0[17].kind = 2; TM_BxLwT0mhrtgTPodf1v3xjg_0[17].sons = &TM_BxLwT0mhrtgTPodf1v3xjg_6[0];
NTI_AFoo8FBR6Z1RtIhjuHkU2Q_.node = &TM_BxLwT0mhrtgTPodf1v3xjg_0[17];
NTI_OFWibP8T8afo89apFNGZiwA_.size = sizeof(tyObject_TProc_AFoo8FBR6Z1RtIhjuHkU2Q*);
NTI_OFWibP8T8afo89apFNGZiwA_.kind = 22;
NTI_OFWibP8T8afo89apFNGZiwA_.base = (&NTI_AFoo8FBR6Z1RtIhjuHkU2Q_);
NTI_OFWibP8T8afo89apFNGZiwA_.marker = Marker_tyRef_OFWibP8T8afo89apFNGZiwA;
}

