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

#include "nimbase.h"
#include <string.h>
#include <stdio.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
#define nimfr_(x, y)
#define nimln_(x, y)
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 tySequence_DfgJFJEYoj4YBAHLZPl5lQ tySequence_DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA;
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_fdKWDDO1P17zvuQPReVgRA tyObject_Table_fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence_fdmz6VkIf1ewwrssKYqRFg tySequence_fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table_e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence_kxu4GK0onha2t9bo86mdVAg tySequence_kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence_48JTohSgTy339bRxHzUD8KA tySequence_48JTohSgTy339bRxHzUD8KA;
typedef struct RootObj RootObj;
typedef struct tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType__TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ tySequence_bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx_sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table_IioUJGdqPI6xC7S7QF8MBw tyObject_Table_IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence_Qr6E8eH7btq79cFKGaJfGLw tySequence_Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table_G1v8c16HePOldLeucwe05Q tyObject_Table_G1v8c16HePOldLeucwe05Q;
typedef struct tySequence_fIB1rTQ55aFonoft9a9bmljQ tySequence_fIB1rTQ55aFonoft9a9bmljQ;
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_TLineInfo_WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q;
typedef struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA;
typedef struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA;
typedef struct tySequence_SHVxAqOYtIy7teT1q4s0zQ tySequence_SHVxAqOYtIy7teT1q4s0zQ;
typedef struct tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow;
typedef struct tyObject_Table_6nOsw5R7jH72bux7HSST9bg tyObject_Table_6nOsw5R7jH72bux7HSST9bg;
typedef struct tySequence_diqJJ1bWuFP7M6rQDS9cBLQ tySequence_diqJJ1bWuFP7M6rQDS9cBLQ;
typedef struct tySequence_Ef05srmQTDulnBdXR4Ja6Q tySequence_Ef05srmQTDulnBdXR4Ja6Q;
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 NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence_sII3pVVRkIdBZ2HDPdZddA tySequence_sII3pVVRkIdBZ2HDPdZddA;
typedef struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ tySequence_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q;
typedef struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A;
typedef struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q tySequence_vhmj4KkIKPinmRXny9c2Q6Q;
typedef struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ tySequence_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw;
typedef struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA;
typedef struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA tySequence_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence_P9c6Y5h4sjjYLVGti5AELHg tySequence_P9c6Y5h4sjjYLVGti5AELHg;
typedef struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg tySequence_WwUFq9cJ2xKRlsAWVEHyPRg;
typedef struct tySequence_oUyaggHmIX9bpJcMeoG6lpA tySequence_oUyaggHmIX9bpJcMeoG6lpA;
typedef struct tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence_jwzrUFjG9akTIJTBBFvvqxw tySequence_jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw tyObject_Target_9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence_tNFrR3kRuS1FSwuiLGoSSA tySequence_tNFrR3kRuS1FSwuiLGoSSA;
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 tySequence_pK3qSsBZwdXd6qyUMkd5Jw tySequence_pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType__bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA tyObject_TBlock_GFhahvekTq3dDOkWyhchMA;
typedef struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA tyTuple_aTNxDjHI7v9cq37xS7PT7jA;
typedef struct tySequence_MvZmat48bhe9b6x9aUD58D5Q tySequence_MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple_Iz0jrTw3w7v6sMzjrqs0nA tyTuple_Iz0jrTw3w7v6sMzjrqs0nA;
typedef struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg tyTuple_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyTuple_5L3fCt9bX0gyEcO30ervPLw tyTuple_5L3fCt9bX0gyEcO30ervPLw;
typedef struct tyTuple_kN8up2W6YKc5YA9avn5mV5w tyTuple_kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg;
typedef struct tyTuple_u79c2fI4jf7n3cZOvTDviyA tyTuple_u79c2fI4jf7n3cZOvTDviyA;
typedef struct tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg;
typedef struct tySequence_pxbIse2JUQkJU0n9blV9bY5g tySequence_pxbIse2JUQkJU0n9blV9bY5g;
typedef struct tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple_zwpS6d6iewrdlBSTNFoyVA tyTuple_zwpS6d6iewrdlBSTNFoyVA;
typedef struct tySequence_sno9c9bXUVS2CqhtWOJadaCw tySequence_sno9c9bXUVS2CqhtWOJadaCw;
typedef struct tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA;
typedef struct tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA;
typedef struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyTuple_UpiOGlu5Ux6DLM73wSrdpg;
typedef struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ tyTuple_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple_quA39a2QdEQU9cSEIUSibApQ tyTuple_quA39a2QdEQU9cSEIUSibApQ;
typedef struct tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyTuple_OJFzEczluV8Jmo9bRpBfkzw tyTuple_OJFzEczluV8Jmo9bRpBfkzw;
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_4keOEuB8uAwYehpErwqI9ag tyTuple_4keOEuB8uAwYehpErwqI9ag;
typedef struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ tyTuple_wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg;
typedef struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple_XOVT24GHXwqiEj5GCsEGCA tyTuple_XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyTuple_z822nu9bFF1AlQnLrHjdwpA tyTuple_z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw tyTuple_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw tyTuple_QeWl6B6ffS4pU6WWrtcrDw;
struct tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* data;
};
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_fdKWDDO1P17zvuQPReVgRA {
tySequence_fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
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;
};
struct tyObject_Table_IioUJGdqPI6xC7S7QF8MBw {
tySequence_Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
struct tyObject_Table_G1v8c16HePOldLeucwe05Q {
tySequence_fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
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;
};
typedef N_NIMCALL_PTR(void, tyProc_R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
struct tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* modules;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg deps;
tyObject_Table_fdKWDDO1P17zvuQPReVgRA importDeps;
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;
tyObject_Table_IioUJGdqPI6xC7S7QF8MBw canonTypes;
tyObject_Table_G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc_c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
tyProc_d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
tyProc_sP1I7TbCn358eLy9bX4IphA recordStmt;
tyObject_Table_0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table_NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table_nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence_PzqTLBFNawCGiqTk0UORYw* passes;
tyProc_R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
tyProc_R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
tyProc_R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
};
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_Table_6nOsw5R7jH72bux7HSST9bg {
tySequence_diqJJ1bWuFP7M6rQDS9cBLQ* data;
NI counter;
};
struct tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModProcs;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* otherModsInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainDatInit;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mapping;
tySequence_SHVxAqOYtIy7teT1q4s0zQ* modules;
tySequence_SHVxAqOYtIy7teT1q4s0zQ* modules_closed;
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* forwardedProcs;
tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* generatedHeader;
NI breakPointId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* breakpoints;
tyObject_Table_6nOsw5R7jH72bux7HSST9bg typeInfoMarker;
tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph;
NI strVersion;
NI seqVersion;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimtv;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* nimtvDeps;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg nimtvDeclared;
};
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 NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_pujFC2IN5RzE4MXkqaMD9aQ[20];
typedef NU8 tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence_sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
struct tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A {
NI counter;
tySequence_vhmj4KkIKPinmRXny9c2Q6Q* data;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_MxT2Arb3Nlp7V9bRITO3dvg[10];
struct tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw {
NIM_BOOL enabled;
FILE* f;
NimStringDesc* buf;
};
struct tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow {
  tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w Sup;
tyArray_pujFC2IN5RzE4MXkqaMD9aQ s;
tySet_tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q flags;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module;
NimStringDesc* filename;
NimStringDesc* cfilename;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmpBase;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeCache;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA forwTypeCache;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredThings;
tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg declaredProtos;
tySequence_sM4lkSb7zS6F7OVMvW9cffQ* headerFiles;
tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA typeInfoMarker;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* initProc;
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* preInitProc;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* hcrCreateTypeInfosProc;
NIM_BOOL inHcrInitGuard;
tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeStack;
tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A dataCache;
NI typeNodes;
NI nimTypes;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typeNodesName;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nimTypesName;
NI labels;
tyArray_MxT2Arb3Nlp7V9bRITO3dvg extensionLoaders;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* injectStmt;
tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ sigConflicts;
tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw ndi;
};
struct tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
typedef NU8 tyArray_qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw;
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;
};
struct tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence_Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
};
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* transformedBody;
};
struct {tySequence_DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable_f07aOS3dr28kGa5wcE29aFA tab;
};
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
};
};
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_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence_jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q {
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
NIM_BOOL beforeRetNeeded;
NIM_BOOL threadVarAccessed;
NIM_BOOL hasCurFramePointer;
NIM_BOOL noSafePoints;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q currLineInfo;
tySequence_P9c6Y5h4sjjYLVGti5AELHg* nestedTryStmts;
tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* finallySafePoints;
NI labels;
tySequence_oUyaggHmIX9bpJcMeoG6lpA* blocks;
NI breakIdx;
tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg options;
NI maxFrameLen;
tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* module;
NI withinLoop;
NI splitDecls;
NI gcFrameId;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* gcFrameType;
tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg sigConflicts;
};
typedef NU8 tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target_9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU_XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_Table_Ab4q9c36aMR4mtkEOIBzdzA {
tySequence_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig_kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput_fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence_tNFrR3kRuS1FSwuiLGoSSA* 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_Ns87ee9bXonvIM8SMewfbmA;
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_StringTableObj_V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
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;
tyEnum_IdeCmd_1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC_1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA enableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA disableNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA foreignPackageNotes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA notes;
tySet_tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA 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* outDir;
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 NU8 tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q;
typedef NU8 tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw;
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;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_c9b9aKKmyKnqxZD8lAny45jg[3];
struct tyObject_TBlock_GFhahvekTq3dDOkWyhchMA {
NI id;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
tyArray_c9b9aKKmyKnqxZD8lAny45jg sections;
NIM_BOOL isLoop;
NI16 nestedTryStmts;
NI16 nestedExceptStmts;
NI16 frameLen;
};
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_JiWwrsTRC6xqNlGcBthSVA[1];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_qTjAvTvKF9anytN1At69aJMQ[1];
typedef NU8 tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg;
struct tyTuple_aTNxDjHI7v9cq37xS7PT7jA {
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* Field0;
NIM_BOOL Field1;
};
typedef NU8 tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA;
struct tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj_iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU8 tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA;
typedef NU8 tyEnum_TLibKind_9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA {
tyEnum_TLibKind_9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* path;
};
typedef NU8 tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg;
typedef NU64 tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* tyArray_PsPyPA45AAjHu4uDGHNjTg[4];
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;
tyArray_PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence_MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 lockLevel;
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw;
typedef NU8 tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU8 tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w;
typedef NU8 tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_mrugoXXRZUEeG9bEXo9auBKw[2];
typedef N_NIMCALL_PTR(void, tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_duFhZXIIlrbrM62cWjNekg[5];
typedef NimStringDesc* tyArray_t1sx1FVcaX4m77XqENedIQ[10];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_wqYjTJU9ab2ZgEFMaQc3vNA[3];
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_f7nG5LD47BH5K9c6mASit3g[4];
struct tyTuple_Iz0jrTw3w7v6sMzjrqs0nA {
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
typedef NU8 tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg;
struct tyTuple_5L3fCt9bX0gyEcO30ervPLw {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
tySet_tyEnum_TInfoOSProp_thetQwB9agpeQ13qFmAcWhg Field12;
};
typedef tyTuple_5L3fCt9bX0gyEcO30ervPLw tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg[28];
typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
struct tyTuple_kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg {
tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
NimStringDesc* visitorFrmt;
};
typedef NU8 tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw;
typedef NU8 tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
struct tyTuple_u79c2fI4jf7n3cZOvTDviyA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NimStringDesc* Field12;
NimStringDesc* Field13;
NimStringDesc* Field14;
NimStringDesc* Field15;
NimStringDesc* Field16;
NimStringDesc* Field17;
NimStringDesc* Field18;
tySet_tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg Field19;
};
typedef tyTuple_u79c2fI4jf7n3cZOvTDviyA tyArray_HiaU9aN9a9cvYgGY9c20ixGFjA[15];
typedef NU8 tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_dNfZYyzVYdaWfURv4pxodA[6];
typedef NU8 tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg;
typedef tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tyArray_YcHYlgE5mhtkt9a3rnoucVg[7];
typedef NU8 tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg;
typedef NU8 tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w;
struct tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg {
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw a;
tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw b;
};
typedef NimStringDesc* tyArray_Sjq0yxKksnvb1U6tEMqzYg[14];
typedef NU8 tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw;
typedef NU8 tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw;
typedef NU8 tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw;
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 NimStringDesc* tyArray_Gm0NaIqP69aDZ76njaVHflw[4];
typedef NimStringDesc* tyArray_0JAfn8Knf9bolQnS0KarOXA[7];
typedef NimStringDesc* tyArray_8QG8K2QZHzCGCKMf84A8og[2];
typedef tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* tyArray_jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NU8 tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w;
typedef NU8 tySet_tyChar_nmiMWKVIe46vacnhAFrQvw[32];
struct tyTuple_zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
typedef NimStringDesc* tyArray_Rm3qdnjMKv9cj1rqvTZQYTA[6];
typedef NU16 tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw;
struct tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA {
tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA Field0;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field1;
};
struct tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence_48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA {
  RootObj Sup;
NI colonstate_;
tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m1;
};
typedef struct {
N_NIMCALL_PTR(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, ClP_0) (NimStringDesc* handle, NimStringDesc* name, void* ClE_0);
void* ClE_0;
} tyProc_cTGFl1a233rLFzi7BSxmtg;
typedef N_CLOSURE_PTR(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, TM_MQdRN7fpbG7rPm4JpVVAhA_1124) (NimStringDesc* handle, NimStringDesc* name);
typedef N_CLOSURE_PTR(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, TM_MQdRN7fpbG7rPm4JpVVAhA_1128) (NimStringDesc* handle, NimStringDesc* name);
typedef NU8 tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag_Vl9c9ayddDuXiWtnWTsEYGsA flags;
};
typedef NU8 tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg;
struct tyTuple_UpiOGlu5Ux6DLM73wSrdpg {
NimStringDesc* Field0;
NI Field1;
tyEnum_TEndian_bQ3yFYQJojZPNYsZnS7Zjg Field2;
NI Field3;
NI Field4;
};
typedef tyTuple_UpiOGlu5Ux6DLM73wSrdpg tyArray_WxFMsMy3sd8GAYe6uK9bvxw[23];
typedef NimStringDesc* tyArray_sMpvt1sOxOJ3LFGulnbeMQ[4];
typedef NimStringDesc* tyArray_Re75IspeoxXy2oCZHwcRrA[2];
struct tyTuple_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple_quA39a2QdEQU9cSEIUSibApQ {
tySequence_DfgJFJEYoj4YBAHLZPl5lQ* Field0;
tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyTuple_OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field2;
};
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_4keOEuB8uAwYehpErwqI9ag {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple_Iz0jrTw3w7v6sMzjrqs0nA Field2;
};
struct tyTuple_wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* Field2;
};
struct tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg {
NI h;
tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key;
NI val;
};
struct tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyTuple_XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyTuple_z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple_QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
struct tySequence_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence_Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence_SHVxAqOYtIy7teT1q4s0zQ {
  TGenericSeq Sup;
  tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* data[SEQ_DECL_SIZE];
};
struct tySequence_oUyaggHmIX9bpJcMeoG6lpA {
  TGenericSeq Sup;
  tyObject_TBlock_GFhahvekTq3dDOkWyhchMA data[SEQ_DECL_SIZE];
};
struct tySequence_P9c6Y5h4sjjYLVGti5AELHg {
  TGenericSeq Sup;
  tyTuple_aTNxDjHI7v9cq37xS7PT7jA data[SEQ_DECL_SIZE];
};
struct tySequence_WwUFq9cJ2xKRlsAWVEHyPRg {
  TGenericSeq Sup;
  tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
};
struct tySequence_DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence_pxbIse2JUQkJU0n9blV9bY5g {
  TGenericSeq Sup;
  NI8 data[SEQ_DECL_SIZE];
};
struct tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence_MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple_zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence_sno9c9bXUVS2CqhtWOJadaCw {
  TGenericSeq Sup;
  tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA data[SEQ_DECL_SIZE];
};
struct tySequence_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence_fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple_1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence_bWZXqEvLFwhLvAqSRoFNgQ {
  TGenericSeq Sup;
  tyTuple_quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
};
struct tySequence_Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple_EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence_fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple_OJFzEczluV8Jmo9bRpBfkzw 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_diqJJ1bWuFP7M6rQDS9cBLQ {
  TGenericSeq Sup;
  tyTuple_4keOEuB8uAwYehpErwqI9ag data[SEQ_DECL_SIZE];
};
struct tySequence_sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple_wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence_vhmj4KkIKPinmRXny9c2Q6Q {
  TGenericSeq Sup;
  tyObject_TNodePair_EZfI4tFqtDSTQys2UInNjg data[SEQ_DECL_SIZE];
};
struct tySequence_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence_jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple_XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence_tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple_z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence_Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo_GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
};
struct tySequence_4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple_QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence_pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*, newModuleList_pKl1ntXN7hbkEFOmcSlHSg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NIMCALL(void, chckObj)(TNimType* obj, TNimType* subclass);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, newModule_S73dIOk2nN4g6ZKuvNB9ceA)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, rawNewModule_S73dIOk2nN4g6ZKuvNB9ceA_2)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, rawNewModule_a8P0HPhDv3Sesns79bJU0jA)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_yShmEg9cffWxI7s5XzEKBow)(NimStringDesc* s);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__0A9bslyIJ49bWrftLGh13rvg)(tyArray_qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(void, hashOwner_mSn9a9aX0NBzWqerwPW0qRww_4)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, initIntSet_n8oDZMn19bEdodSnrBQB9a1Q)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* Result);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, initTable_PWCx2pXbMQdMiGj5j6BNEQ)(NI initialsize, tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* Result);
N_LIB_PRIVATE N_NIMCALL(void, initCountTable_wWvh9aBvC7U2mbRYPFlmaXA)(NI initialsize, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newProc_r9c9cj4fW68RhY7ht9btSvB8w)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* module);
N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_qttThLa3xHNEeApwU61sZA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_Bb5LmORIEBm1ncSKlFHvVA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, initNodeTable_RsAJjlvhLCgVyd9cZJtMRoQ)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* x);
static N_INLINE(void, nimGCunrefRC1)(void* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTempName_ao6gUnuVfQLtZ89c4kaIKfg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__ShdZ6VrAQkY0nWR9a39b9bGdQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rope_KOisMGxcPhz6CcSmxgwEQQ)(NI64 i);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, completeCFilePath_VmrjcznbGOrooG3SBIdEFQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* cfile, NIM_BOOL createSubDir);
N_LIB_PRIVATE N_NIMCALL(void, open_jmWVcl5Qp9atJWCEkvq1SfA)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, NimStringDesc* filename, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toFullPath_VW1RaR1l9c9bPnJxr1KuvIrg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NI32 fileIdx);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NIM_BOOL, skipCodegen_nwSFZweO0MiC1cK59cLXWvgpasses)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, transformStmt_o9bTtoSsaDmuiyVzV15dOyg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn_a2BRACVCGIuooKjHNmoLsA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn_UhPXgqyDuuU9cKcS8FM883w)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, addHcrInitGuards_fTdzF9aUiQk4rKtSH3doafQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* inInitGuard);
static N_INLINE(NI, safeLen_P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, len_P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
static N_INLINE(NI, subInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, add_IM4kcMNkkOLJtqdEqSxR8A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__KxpxlR6eqq3gRIOYTfR67w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__IFeEbVhQpPGgxkLehuSiBA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__BYiowJAm8zF7RBRISElaLg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, endBlock_12ZfBiPs9cA29axtp2bvV6zg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, blockBody_tMtK9ba4LBR5bZYSR9avbIag)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ZkZcMxwzInnijXy5kz1K3A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_kOyJGmZMM2tMgCKSrvUE3gcgendata)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_5PupwEBrKjp65kTtpnAp9bQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, prepend_IM4kcMNkkOLJtqdEqSxR8A_2)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NI, startBlockInternal_1ygdb876UM9astcNUXtgUBQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, pushInfoContext_uDLK9aoAOWwwFTev4NOwF7Q)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* detail);
N_LIB_PRIVATE N_NIMCALL(void, expr_8mAL9ckajemzgfLPfeZVNoQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, fillLoc_o49bXuxJYpCizOgQ54UViIg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_RaNE9b8A430I9bfpgZmdrC1w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangle_GxzvEIRbrShQbyJNboTw7A)(NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, idOrSig_sKAFwdXn9cKHxc9cdaovk69cA)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* currentModule, tyObject_CountTable_tUMxxU9cRgLolsrW9b7IBGsQ* sigCollisions);
N_LIB_PRIVATE N_NIMCALL(void, doWrite_1nU29cZKUVlth4bckzRe6Tw)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, useHeader_TAVDUakAwQnRHDK9cFe6L7g_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStr_P2DOsHG6Jk4Siab3L2qwUg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, includeHeader_G5jzmdnwglHVk5qfDcXonA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* this_0, NimStringDesc* header);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getModule_xfh8ar7fDxVX2A4OO9b5sqQ)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q)(NimStringDesc** result, NimStringDesc* value);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isReloadable_bilAk8nY4d5fxUpVg9bnphQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ)(NimStringDesc** result, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* value);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, pop_9c4Y4hTtvRqjj2EC8KP9aqDAsystem)(tySequence_WwUFq9cJ2xKRlsAWVEHyPRg** s);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc_jXUNYqSX189axAU8O9bJBgpA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType_IafZhvqpthq9b9c13SFhzAOw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, internalError_5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString_QlvraUan7WbHowhAbvDvdA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(void, hashType_UdooXLclXL8uld7qLI5JRw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_ConsiderFlag_9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypePre_zLenRlTUJy0Mn9b8JKwzEcQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NimStringDesc* literal);
N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion_V25kMWfh1jWVNQQI5BNfLg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(NI64, getInt_9bJVNhKKZVfVNAx9aQOEPuog)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_NIMCALL(NI64, chckRange64)(NI64 i, NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cgsym_arLmPq9aJc9b7GpWTbo6dvHg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, genProc_HbYPOpwLApFuBkISFGrmEQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated_FP3Xc9c0yhzvB6NLyfQJkYw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, addForwardedProc_HbYPOpwLApFuBkISFGrmEQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward_HbYPOpwLApFuBkISFGrmEQ_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, findPendingModule_Dhy9cmzSsJkQqlfDq047WUA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genProcAux_HbYPOpwLApFuBkISFGrmEQ_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcHeader_OWG529cW3RTHLgDJuQoIH8A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL asPtr);
N_LIB_PRIVATE N_NIMCALL(void, add_yG4AKzsBRS1W4MANDlXQeg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNonReloadable_bilAk8nY4d5fxUpVg9bnphQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(void, genProcParams_uApDq1rn2zPxULBMpTSrxQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** rettype, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rettype);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_K9aceyVl15zb9aYN9b6YJ8TnA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize_vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NI64, firstOrd_4cSIntenL9aBXY6LAFsvXdQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(NIM_BOOL, isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPureObject_IVXYI9cxSeivThgKCncHRnA_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__G9aA37gQrW88KHzpCAwhgjQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_zOB1gNtXypybIzLxxB9cyWQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, internalError_yTu5SGHF0j0P9cQrqN7YylA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg);
static N_INLINE(NIM_BOOL, isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__PoDv5ydEvGdd9aiIF9cOiAPw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleParamName_RaNE9b8A430I9bfpgZmdrC1w_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isKeyword_plkNLyLwnwkMYELCfG4Gxw)(tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* w);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_RafAVeUVSno4B47UdPqNlg)(tyObject_HashSet_CD8Dpv0WGmASelVaNSo6zg s, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_lQqiacOo5FnwNzTrDjiPvw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_W9aw79b629bysnh3DDOpE3OTg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType);
N_NIMCALL(NI, mulInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cacheGetType_2wgznvEs9bt7XaKJgVohBCw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getOrDefault_tD8SQMueXhdfvpBnagcsKg)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__Z7W1o5nPSc3ExfO5f7j1Gg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeName_qvCJ9bux56nS82Shxh5hLNg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* val);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType_IafZhvqpthq9b9c13SFhzAOw_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, addForwardStructFormat_pzRGCZRDAEWnDSHC2tztFg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* structOrUnion, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typename_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vzbf0XksfaFTXNoTT6BCwA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__lQVSDPkAFXHNoa1N7jYrNw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, structOrUnion_TLFDupRCidtMx8175pusWQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_55)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc_T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_57)(void);
N_LIB_PRIVATE N_NIMCALL(void, pushType_4q3XOfd3NI3C8cSNkaF9cWA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, X5BX5D__KricVWBSqqSbgxpQ5up3Ig)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar_hiFj6GH2C6Qv8bI0r9caT5A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__6d8an6hdqiIrRjPW1wEh5Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__gMbiWAc0IjihIq46IYhmAw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__uHsu7fLXac4OhMNd79bSJwA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__3WM9b4PeyDKoIDFMvYcQX3w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, amp__4cYKitaHx6RQ9azRtQsZp6w)(NimStringDesc* a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__p4LhaCxKpUERrq9cB9b8Mp9cw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA)(NimStringDesc* frmt, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, transformBody_gFZW9bFffCiuUrdu3Rnih2g)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache, NIM_BOOL noDestructors);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_oKhRC9bEKTxG5epdNiNWZ0w)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, localVarDecl_NYI5fC69aIqZGRakncXv9cNQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(void, shallow_cnzwaZQQIa73ryXE31wijQsystem)(NimStringDesc** s);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault_9bK0jMctS3Kpz9aVaHPQI4gA)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key, NI default_0);
N_LIB_PRIVATE N_NIMCALL(void, inc_cue4X8ebEalt3pWXvkS49cw)(tyObject_CountTable_chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val);
N_LIB_PRIVATE N_NIMCALL(void, initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(void, initLoc_qlujIAW86QclHYUVxlHRiQ)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_xidyzuHqIciXbQyEOKahDg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TbMwXzwNL7txOQADiTjwKA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, assignLocalVar_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, localDebugInfo_9aFEJaMCg37I5D9b15sgctsw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Wnuty4XNM9aTTuuxAY51daQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, makeCString_vQJydtKy4Nf6bXPYtbmjtg)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_BeEYMOjEPJinzbFpsfTaZg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault_qISsmXPGy0MStH2gg2BcOA)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA* Result);
N_LIB_PRIVATE N_NIMCALL(void, declareNimType_w2jZebce9cvMAGUdQoJVOuA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* str, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* ownerModule);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__E0nDsXp7tY4mC1BnrrjWmA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__mbjeaBETPixw9bUvyk31B6g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath_ao6gUnuVfQLtZ89c4kaIKfg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, splitFile_z7B4FbwzX3Y0L1EA2lLGXw)(NimStringDesc* x, tyTuple_7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile_bmANOnd5oQhXRrTCn9a8S4g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, withPackageName_9bhgFqdEZM7DoX7p3U69bQEg_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_NOINLINE(void, raiseIndexError3)(NI i, NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AfR9bXoD9bcehKoM7F8O79bYA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nlZFDYB4M9bmBbYqEropRVw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__e9czpY4GXpbU9cznliOfqQ1Q)(tyObject_Table_6nOsw5R7jH72bux7HSST9bg* t, tyArray_qtqsWM5aXmcpMIVmvq3kAA key, tyTuple_Iz0jrTw3w7v6sMzjrqs0nA val);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__dwsIkeXQe0E8HKrzN9aRE5A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle_IVXYI9cxSeivThgKCncHRnA_3)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__fIR1FG0QPRsKvEYKq4tJUQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDefined_jkXTnxDf8MX1Pmks3s0XxA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* symbol);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__aQsiZUvE4SFfnWyKx1JgKA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jADQs38xm62v1oxF2cSvEw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__DZV83DjWnQ9a19atC2oeswXg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__sfvTjNjtOC86mU9bHczF6ow)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9ab1aKSDn70Vte0NcIItnaQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__r38WafKlW80RkvoZTcia4Q)(tyTuple_kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType_OVHn4Lx3T69a1BHJ0KreWYw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType_SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon_9a8CdZqChTyqzq5bpSL3TzA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createObj_vpIcmDdKH7ed0dcs37b1GQ)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NIM_BOOL final);
N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_DVDUKxJo5CvrWtAaM2iHCw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jadqNPnY9aM3oxYK6jarLrA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, sonsLen_eY4T6kWJb9a9aTWUufrTLjXg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, genTNimNodeArray_8W0lvt5dkO9cVIIfffRji9cQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__LvsIDF8olc08xBiqCYIUog)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__6Tfa1iP1ENVlWbe89cSELSQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hKg2Id9cvzE5Dgl9cU31c4Vw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__H3xXuIFdbz4MNb5T6BSfcQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ELXFo0GedkhGYj9bocTHZAg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9aLrcjgzGJE3f9ab2uR37jog)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__3Q9c5iS9btBDBXZVoQktb1XQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MALQXTKXJv7x9a9c247satLQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProc_6ja22UmHW9bFsLaOtztGpHQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0nBiBCva6YS9a9bSV2Vr7Zxw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yyhPPkMkLJqWG6p8HGn9aoA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__t8gRNGR1flvaCNlBxuLn1A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getTemp_VjOFVqypINqQv5C3ECnxbw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lodeTyp_Zo4XKVi6BmwOZE51Yogqwg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNode_PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc, NIM_BOOL isTemp);
static N_INLINE(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t_XNOXh7uniWNgiq58C9bW49awcgen)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
static N_INLINE(NIM_BOOL, isComplexValueType_Fl17jclCP5VEr9a7Ycym1awcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addrLoc_9b8NbhHc4w1oBKAy127l3xQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInit_pua7psQb9a19bblGZEt9b0ZXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, NIM_BOOL takeAddr);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isException_YPjOkGV9axAnGR3UfLeWZ1g_9)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw, analyseObjectWithTypeField_Pldxz9alDV6810oJzh2Apog)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, localError_NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q, unknownLineInfo_5RSRhtawHi7D6db22wWkzQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__xQaqlAwFuwxqBFixw7ewLg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenExpr_Xfvxpx3W1zkiCqENsur9ckg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__2SWcbuU7RHQR0b8y9aJ9a5VQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenField_3AsTOpq9crZUYBL9aD1lXBng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NI, len_9b0YRltzV3kNSE9aQTsG82wg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI64, lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g)(NimStringDesc** result, NI64 value);
N_LIB_PRIVATE N_NIMCALL(void, addInt_mftMOxbyu0h4yByfs3sqjA)(NimStringDesc** result, NI64 x);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, parentObj_uBOaBBiKguvub019cPppbOQcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__gSgutt9b7GMWVGBkCt0UHAQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordFields_1Yw0f9bM6njBLDchKVMziZw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lastSon_UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Vcuq0AWiVDndx4UH9cJ9cBRg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__l4wxq9cmPihXoF5xnDVNR1w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__zgEKWXsZtT6lqQ6XlgfrsA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__uXZ30k0oJEqGPZW57O3dwg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName_HzLa9cY9ad9bp8c63DnHIEfWA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField_IekjVhJd9bZAI9cs9bWYUDsTA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__tTI9aMQiBZdiEeBIVh7QtYA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType_PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__VJBBlA9aMl5p0yYB1WzSMVg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jw4Sb0OSpKH1T5cLz7iyzA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0RQ2PINB4t8FjFlNUM6N9cQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_qifZy01sZ5OX01eT5FP76w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, intLiteral_kQA0lBUvzOSZAw7DHC4Fjg)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__LQ9bGxpANW8yeg5P9c0UYAaQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__f8tdlskieCnWysl9c9blzqZg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__KbFpNe1pZ7hIuQi7dp1dSQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nunbo9aB0HmmYQJ3InIBEzQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__RBxLok7DyUB0aHl9bxPIl9bQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A)(NU64 i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__RkX9btpg5sQIaP8yYXB6tbA)(NU64 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__NARRjCd1x5Fr7NTTcoPRrw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q)(tyObject_TNodeTable_wN7B39cKxLpMkvKNm9bduZ0A* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* key, NI val);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__NlLLwmZHOiJUpZfuk00AWA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral_mf9bJ50BK9auefXIgup7r1CQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral_SO73hKlDdl5sMaSHTbOJLw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1_SO73hKlDdl5sMaSHTbOJLw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1_wg9bxyc8oC9b9ahuYUo9bM4FJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__mF9aI9b3hDjj53TD2C2gTrHA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2_SO73hKlDdl5sMaSHTbOJLw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genStringLiteralDataOnlyV2_Audays6K31pmxRIYbD09cLw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__PafMws9cJ9arr9a0RVMoIHmAw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__3lAlmrWiRqEg9a9cd9a8kNhig)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toStrMaxPrecision_ayHojnbqAtgkZF8TXMNMzg)(NF f, NimStringDesc* literalPostfix);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyNode_Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__f8NIixSwWrk6SXQ3BFamWw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TTRh79a14hh1gb0owIP1Y6Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TmeCjGna9cPfiHHcfqmKXjw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__FsfRVuOOBePjn9cQ9aK7Vh1w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__paA0sar8RKZqiwEaDfWo2A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jr9cXNQhhlLDfFJH4RSjeZg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, dataField_3AsTOpq9crZUYBL9aD1lXBng_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__EnzikEr9bDhOR6GYxWuYSwQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__QqzUiJcAEZE2azDhIWHrgg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__20ZujjIFPkyqvS2OmenEAA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Vxo9ayk1xB18if39aZ1TBnKA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__NtQEfuK9bXszNTfYU57z19bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo_TiBDnY33G5Ca1p0Z3BOA9bg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genSetInfo_TiBDnY33G5Ca1p0Z3BOA9bg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AKNexo4CH8G2vDeWW34Vpg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_TiBDnY33G5Ca1p0Z3BOA9bg_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__LE3oWAmB5YDSDHm3LNHhCg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__W83I2xs7lC32PrMs9bq4P2w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__JKMGBJtXtDvc0NwxujFmZQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TA8WFV49atYpIneJatQWALw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nPenDL3j2Q6A1an1Cl3oCA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TNkzce2Sd9bck2QRtketc8A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfoV2_TDEOLqqwXHVFJ9cWxDq6Nww)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__kqRXw2WRJqDnfQK0N30ydw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_DVDUKxJo5CvrWtAaM2iHCw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genObjectFields_TSbjDRI5MCd36QpIuSTshg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableName_WpGsd0DJejVIze0ZXr8L3g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupInRecord_gYQxUKQhlRY6yBu3Ll2TYg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__BKnrQUIV2xGn2MO0RK09aUw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__SCyrk9acEm3vLZhXCV1fGNg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__erDe9aYc2BNxzH9brKlmtEBg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, getOrdValue_MzTDl1zEXJLD4sql7PhCwA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__HSAgkeH84eiEd8MfKIuBQA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc_hi0Gu9bcBd9a9cO4KStt3d7iw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__1AD3Wp47Hcdfg6PO2ac0NQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, initLocalVar_EpeofNfMJPurx0duaALCaA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, NIM_BOOL immediateAsgn);
N_LIB_PRIVATE N_NIMCALL(void, fillResult_p9cP79bBkRq6WIT5fOHMaTzQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* param);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__T11tCz9bIGT2CcftAwrDXZw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, assignParam_9aFEJaMCg37I5D9b15sgctsw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType);
N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam_8o8k31aDRiyxRXKGzZbQIQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc);
N_LIB_PRIVATE N_NIMCALL(void, genRefAssign_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src);
static N_INLINE(NIM_BOOL, usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, closureSetup_PDMGXd7Yn9cB79asQW3arukQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__M3h9cTlVBrj2vakKBqQRlMA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrame_hSB0mXJGcFil9bvrhp0Qm5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__BBAyGuVoK6QA7nXfPUIYKA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__g9b9arp3BWCGRHDe21SJso6w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__09aVguRR64dWfw4b6fKBcqg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getProcTypeCast_kjPRfLdGk3b78KhSOOjbOA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__tgUnLdPVK0vRqC0pWxMClQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr_SYG8r9a6ANje3aBM5rYzaeg)(tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib_Q3RS49c6kF7OS9bmwvFHRQJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__FBNsdfF5FNrY4P9cYQIfvZQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, libCandidates_TEY9aqiaMWVK2l0NzZy7BwQ)(NimStringDesc* s, tySequence_sM4lkSb7zS6F7OVMvW9cffQ** dest);
N_LIB_PRIVATE N_NIMCALL(void, rawMessage_h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newStrNode_zLcHGdlEbBYFtoCoan9agkg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, NimStringDesc* strVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(void, initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__cB7zULPbG5vWWdCukRjdqg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__mZ66tEveFIQokq3arf8Klw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__dpzmcz9a6kXbhFacdElIMOw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AWFBEodxoi9a61KDUc9aiw1w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial_TAVDUakAwQnRHDK9cFe6L7g_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_R6uRTGpl30Ofaw4Ni3vawA)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vHbYzYlzLPcurSm0Hu8InQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype_t9a9a9bxmaOztYOfsfhQUOXXw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar_wDT42Iy4l3KGL9cd8rMjKRA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern);
static N_INLINE(NIM_BOOL, emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nzT6Rke9c7tkW9b3XMmld2LA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, incl_jENnK9c9bPE73pKmo2vYjpqg)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9cCc2iMcL3MEBZTTL3LCW1w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newSymNode_I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
static N_INLINE(NIM_BOOL, contains_qHGsA9c3St7G1nwMx4AqqdAsystem)(tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg s, tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw value);
static N_INLINE(tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg, dotdot__0wIRQwb39b5pamdesRscOZAsystem)(tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw a, tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw b);
N_NOINLINE(void, chckNil)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, addActualPrefixForHCR_Mns9bHWQy2Dza12fE8Mjw9aw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** res, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck_SaA9bA11X42SNop9bW9cVLmng)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ahBYcGrhpPvM5dTdzCQBrQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, excl_jENnK9c9bPE73pKmo2vYjpqg_2)(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__XI9awM9a9aQ9cB9bcS7uDRsa1Rw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9cWNaGuyEpBbdBlD9b5nY1ug)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__6P67I9czJ9aa9aZzVyYWUiGlw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__S4jE5dFDtcCC8ODzxaJk6A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Msid9awGKVeVe7p3v7WfNQA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__xyRsdWsGY1DVVispyn0Xeg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__EPABzhs2B9atAvHV4CUTw2Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__2MhCcipNmSHgcDtN4cr8ng)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot_YRbO0Zq30XmyAQjpf1Mi6g)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, resolveStarsInCppType_dTa9cSuyNlFVdzNe1dV0rag)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars);
N_LIB_PRIVATE N_NIMCALL(NI, len_eY4T6kWJb9a9aTWUufrTLjXg_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag_wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr_iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc_HJhu9cCeHNnnn2AMyLicEaw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0ul9cDZYl7YkH1RhZBTd9c6A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__QFf4DPoOk6Jy59cL2OASJzw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__7yDHbEsisDNKcqQHIRgOuQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__GwVmUG4AZCEAP8dBk4TGHg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc_HJhu9cCeHNnnn2AMyLicEaw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__q7DaQZqCe0lRO0rhBWzM0w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hGIvKp3CGssDQ2vSvfksxQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9c1P82lz6H9anMKDbz1vYNpg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__dbg9bsMENUwtF9aO45wEGG3Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, requiresExternC_axmagSzN10JTkqlmiAFoqQcgen)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA s);
N_LIB_PRIVATE N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canMove_b5Hq2LPdi5DP1QFBXQYNdA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ym0Pr6z8A9ajyOAgotpd9a9bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity_jQZhYDteQXOIUBRG4iLXPQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NI, safeLineNm_cb5f0VvvxoagMath9ay3UuQ)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NI, toLinenumber_6D4Rmpw7LpcRI1j7CMqEsAmsgs)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst_y9bTRtTAknVsv9apXKbpJYJA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, putIntoDest_6NyA5DzsDGY17BhjidN65Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s);
N_LIB_PRIVATE N_NIMCALL(void, genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, requestConstImpl_POVv0myAK3ae9cYA55o72Fw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__izqbVTMtpY7kMiTK4bPJ6Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, toBitSet_NZsBRVngLBw9c79cEt9a4qOHg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s, tySequence_pxbIse2JUQkJU0n9blV9bY5g** b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRawSetData_lBnyc1f1M4k1nDKRQRL0HA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__gdRHKHO8CLHZjlFjzVssIA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NI, modInt)(NI a, NI b);
N_NOINLINE(void, raiseDivByZero)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__8F9beWGEEhmch2jKYVl6O9aQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__e2iAIDEoF9aBms0Kttr6gkQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__s4a1VwhxBAKO22LFS4Q9bnw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, bitSetToWord_N7LtJ6JfsQts6D1Lt9bpAaw)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* s, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeqV2_knXDbAconJZRQ7C8XTIrzw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__rouofEnBX1ok9aMXmOsKdHg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__C3GQZbey70223GyG307UFg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeq_knXDbAconJZRQ7C8XTIrzw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yxmLIVRKySYknm2wSBp9cpg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__8u7UPO7ZpaMkWoJRtZLlYQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__xXT7cKE1NTiL4U2MdlA2yQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__44q9ak51X9b9bmuZ9cK4LsFWOg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClosureType_lWDfUH9cj8K8DjyEqo9cmP3A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__77dMna2dOod5LqwYkRMZGg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__QXMcmOst45ThYFLo9cOKDiQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDefaultValue_6MJ4xodlafi9aSG537L79bpw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__zldA3DCxzpAhONjlfz7iIg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, globalError_NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__dnB3So2xw9c189c09a9cc9b4hxA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const_SO73hKlDdl5sMaSHTbOJLw_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__r2gXVULKoAtQjkgjf0Z4wg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__VsLzrOz1nS9cRBBz9ccZfETQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__sb2NV56uvmvOtYkgVsaVQQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, putDataIntoDest_fYECstGN5jPehhn5p8Iclg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Ng8dczn37bLzoM9bsVdPwjQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, sourceLine_b49bYNvmBdG6RP9cHaZGFhvQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, NimStringDesc* filename, NI line, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__lS9bA1j3Ue6pp7sCliDsT8g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, makeSingleLineCString_rMRFcrOdLs9cBLwxpf0jLag)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, freshLineInfo_7ClJaTgavvBeZEMW4B6fYA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getLabel_3AsTOpq9crZUYBL9aD1lXBng_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__sGnLi1DjaBomQ9c9a6MOCA5g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bEKtSmboScaCP8PPnlOWqw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ZpwWwpfBXgcQ6xoLOH4CJw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__GHW5yjG8N9c2BQBun6aBJzQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_NIMCALL(NI64, mulInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Yup67SPGRVcwMdmZwc9cSag)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ec65mR1N7BSL9cmUa3z9czvA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bhgXbeM5JQfUijWaQ1qxsQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__tFyian2BoPSR4OpT1TLvxw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__lstDFo9arIum6fdAXNDzYqQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vloJZRdHw3BkBitD19a41NQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__IW8HlDdKcjoyDD9aedPrY3w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__DUxtYbinntJf2OjJeQFG5w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__E79b9b9azxAg7A3Bp07EawUSA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Z9aK26lplmBflSsthWiVgGQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__qoCzqD9b4akUSZt1uif9bo3w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__xg9aKYYJnrtDL5QhyCCrG0Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__oSkpLVCRqCK7137pMlquDg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__IEcO8wIVN2VV9bKM6z9arfPg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__gYTXmJhiFbKYpjWklBzghw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ibyK70G44kCK9cN8nAkxyGA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__H9b69aGZGrLOiKWQdd30yQ9bg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Te7bvH18PbGe5siNJ9aDTTA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MUaBvSw0MHw3qQi9bYavAmg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bWYxjLMocXEvYgQQcC63rw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ZpcNBrQMfioSvQNxKHhu9aw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__gywCjjjPZobIva6liQWNLQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__6PDHoyz05lEjxGNE0k0ikw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AXGsBlGV5DoEOwPJSl9bdJw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ygzR9aJ6oM1bZTq4Z2lNO3Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__uYVc6UX8hcaEdrHosUQAOw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AlV8xJkjCXujAUesHxezgw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__L9asecuKwevQN2h9cWzyv6oA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nZD9cadh12dcqTFsXBHbCRg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__dz1JHdrf1p9bPB9ad2dZBtYw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0MUu7DVBoaLHTVUZe9bKoIA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__29aIWEGnJW0wnITIeSKWfFg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__n2CigWG38YNInkiL4n8g7A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bb3v9bDRLv9c9bcQzGH9c5H4Gw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__tkJq8W3gQVDjuu9aT3THC6Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__oyQkqbRkRzo43y6iRevkaA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YuphtPwdJHG6BUJOVa9bX3w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__EQxs5xa4FNWtMfcvmFZ9cMA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__5YbjRZxm0g3SrdnL73aQaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MEALpIIbc0cKMcjQ7Xckzg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yUc5o9ax9c9asIVNkfprLRPpA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__4JrnABFfF3UTQ3nO9a6mXzQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bkAwkKoaz09cAQo9arQjGA0A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__7N9bV9cjVBHs9ciAhz7vgdI9aw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__QX9cU2fNK0jJrZNDQKnAycA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genEqProc_BKdMcfvryaJLplX0oFPcAQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vTbVjc6faJqdBrTckFLLWQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__v4k9cDtOUzGyUHJbnJ7kQKg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdCharLoc_xidyzuHqIciXbQyEOKahDg_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__TmT2Gs9cB7RN9cmo9c9cBpfKsA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL fixedUnsigned);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0ym49cR6ES8k9bYWsnh1fELA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__L3AeZ1n9aK4C1jsBCeaCmlQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__qE1JtEDDOvP6J49a9cv9aK1Dg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ctvQ2lU9b9bnVVpNP4GhIo2Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, gcUsage_Faz6su3hXrHmiSECd9c9a6Pg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, message_mMj7lrOf3zBP9bl69amiKu5g)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSwap_BKdMcfvryaJLplX0oFPcAQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, binaryStmt_FWB0HmRDLgoWdgSy9bfL9b5w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* op);
N_LIB_PRIVATE N_NIMCALL(void, genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, strLoc_09c8G9aj7c6ktd6DIBLVcdnw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, byRefLoc_Xfvxpx3W1zkiCqENsur9ckg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a);
N_LIB_PRIVATE N_NIMCALL(void, binaryStmtAddr_vxeaiXjty5M8JXT1fo429aQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* cpname);
N_LIB_PRIVATE N_NIMCALL(void, genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, makeAddr_oKhRC9bEKTxG5epdNiNWZ0w_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newTree_FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType_W0UItHZuQBLie8iFE3EjmA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit_2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(void, genCall_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArg_DHNxWzRy19cVFA89bbFHabxg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipConv_BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg, getMagic_4W1ZJaFiusqlhViRx9cbM9bw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op);
N_LIB_PRIVATE N_NIMCALL(void, genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vqIFMTTP8O9b9c4EsAri31BQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ML5hzh8w7tNOJMECHdXA4Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__EzpkPkzs39aBICgncroQyOw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hNV2ZHUBotfPVQ9c9chIhpNQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ebmRHYtM9cCbYF6WvKDfQ9cg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRawProcType_pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w, isPartOf_1otDDZAmvFsmbqPyFytXFg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NIM_BOOL, hasNoInit_XO14mevzEVVwQTyfj9cMewwcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__8bHx2qDxS2yWIId1X52mqg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addComma_WAlh7NpO6KFA22Kxnp9aoaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__kTDR7D9c9aomjcaUQOmKJ9csg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__1tj59chZC08k4TWYeZiqDnQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__533QKY9a8quvLM1SsLE1JfQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_wAzSnEu9cCHHjvPQlWBZUeQ)(NimStringDesc* s, tySet_tyChar_nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOtherArg_9a86z5oGsAZjkB52zPdLZJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__uFJUSitn9c1Tw6cF9cZf6x6Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__G8iCcDovsaw25PkF7wHs0g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref_vMC9cau6W2PcQ0Z0zO9cDXMA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* node);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__SY4U2QvmoQxocaG8MOmyHA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, fixupCall_5AieZFwkpMkLKPnkORd7Cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* callee, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bhkFYKbURxGcJnKpswdr2Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, getTempCpp_17YlQRjV7sYeIVr87qv2GA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* value);
N_LIB_PRIVATE N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__lTsL0bi6njxzDh9c8A32r2w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NIM_BOOL, contains_Pa9a8m0kZYH6LC8N1EcZJdQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
static N_INLINE(NI, find_31wM5Ui9c8jnrQ5QD4oPxOQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__k4VEB3kaBL72FRQN8buzSg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YbQIA9cHUESCyYT1WEeIVbA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__66KauNYQRukYNgmb6bVXEA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__S550SlHmWbDpD7rs0J2lrA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn_NAlbw3fU59aFdo7L5aQtmkw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
static N_INLINE(void, postStmtActions_hU2pQ4yYkske4uOCGEGfMwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result);
N_LIB_PRIVATE N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genEnumToStr_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, genEnumToStrProc_1dNAvAAONCZJhs8N6saOAw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, copyTree_Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, genOf_8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genOf_uDNhebNf5Eggw4ZZsc4T9cg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Jx78R9a9anGvjjocCaP8YgIg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOfHelper_syG9ah9cBD4IpDknTLKkLglQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__s0lnM9cZDB9bOREa4Fx1leBw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__aT7p9bNEmP3LxrK3OhspnSw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, rawGenNew_xJGU3j3G6xInb7v14wgw2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__mV75vMLuQ8rrQEUzNz6llA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jhVz7tKuf0heLM2D3nL0gw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* length, NIM_BOOL lenIsZero);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__c4YKWXetPKpaUUF7Qft2gA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__rCIIoKC0OrXhpuTFTIZn0g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__duX6hgjmpJtFFdvJVuoafg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__GNSb4l0oRsR1gu66azz1LQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__LGbUtKnsZL8FcQiQN7sWEA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__e8Xf9ajw9cRlpuqnFnlEuSpA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nVQhtKHyPC8pvPbUAUBU7A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9bI5GhokFUA9bgO9av819cgdBg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__qTicKO8EMC9cWGOyybIz4WQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yZHx0qMqBvbhmZ0fMuAP6A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YQzyPnY5vKAqE2RyLX0cew)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__cIILAsA6BeRrvHfloZIscg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__IwDTuHqkGn7wW16ga2ktSg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__lbkoHJP5AIgE86vP7MmlKw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9b84wNYrm79cLYfx9bsPNHjPQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__K5ihI3kW9cFBh6sKlfEpJwg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fewCmps_vBGSIpCyq29bEZNYsVP3V6w)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nEiBK88oEGnvYfkiei9cyJA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Psy1qActyEYmIhrRo2KkJA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genInExprAux_9cclvr8sbqtJj8irRbQQpqQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bIZqgQGMIUCBRFFeiRG0aA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__HPctrFzseNT2BeQr9aYVqcg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__k5v9c9cMBoWUlAaq59araCfmg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Py40oiVtYdIelNuiQQjpjw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__QzVlk7tEXgagMWC19aLvbkg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__qxufH5vUl9aY2l9cFq39bnVwA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jiTCvQQpgMU0bTrdVuECiw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__n4OrLXC1r9a83k5wz2NoWxQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDefault_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lhsDoesAlias_edSekmjUCfSNOPSuXdUClg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, wrapProcForSpawn_MJZ4vKNaMfcU6vC2PCi1Ng)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* spawnExpr, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* barrier, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, liftParallel_ndOOzgg7N9cEw3E9bRfkcIDw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src);
N_LIB_PRIVATE N_NIMCALL(void, genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMove_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genDestroy_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bJpxHYPJaxWBQn6QxwBA4w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__fOn9b5Ij3ytw2Ui9a2CPI5zw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__zJU3FoYOdJ9bmuODPmqtgdQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__1MXpJAdeOMc2XMg5H7t9aSg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__VNAv31sqVgxrd9aXeFF5wYw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MULS9c8dKz2mJ1U9a9cMyTCYw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isConstClosure_4MUa2M7mDMhaGJLAFrkWDwcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isRoutine_Ye2MiAptq3GrXxTQeyXNeAast)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__5TB09c2Iz60T0YagbSbI5RQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ** resTyp);
N_LIB_PRIVATE N_NIMCALL(void, genFieldCheck_9bUUELnkXphPuPspD3YnKHQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* obj, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__NIzUqj4Mr1E3EKy0AkJaXQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yQdCkIARIVr9aqI8oVxi9cQw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType_n70Tq9c0HITdaYm9cT8YLryw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* y);
N_LIB_PRIVATE N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(NIM_BOOL, isCppRef_Rt7PF9bsOeNWjGFhSpqAlTwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genUncheckedArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__WYvjnWcyRjjjI0lasIi1YA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDeref_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_25)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hR4oq6WdDjEl0JIvQtvUlg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_26)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename, NI line);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__84GQPNcrIJtbrzuA7JnMPw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame);
N_LIB_PRIVATE N_NIMCALL(void, genStmtList_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__SqZEI7bxySjmJX4GsXyvKw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__c1f569aWpTd825BTnv9bq4Xg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, inheritanceDiff_1dM2iQB5qStJfnn3684ijQ_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b);
N_LIB_PRIVATE N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic);
N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stmtsContainPragma_QPJXGOVirAPBlaL8RY5bwA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw w);
N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, enumHasHoles_YPjOkGV9axAnGR3UfLeWZ1g_3)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ibl3qMPOrpGT2x8X7vmbeQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__bBcuDHMXr6Kz1tr7BzD9aKw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__aDvifvZOUmduC6Unfm69bKA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__5kuxCbMO8PVJc9aJbXScUOQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Uu9cBz7dxPVDFhF9aLzWecyQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__WWt3il4CHPiYP10KdNLrWw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_NIMCALL(void, FieldDiscriminantCheck)(NI oldDiscVal, NI newDiscVal, TNimNode** a, NI L);
static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, assignLabel_mIFKIo7g6Echd7EokLhQegcgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b);
N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__tRSKshYob5uzZE3eBVe59cg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vcbf2lEZaiSjbAHwgt9aKXw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTraverseProc_V1atRcoAv09bVdrCPNlvW8Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal_N6PVM8zp2L2vM3WsaTEaJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__7STLi75js8HXlmFg7Abt9bQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__5O50gePV9adn3wgFGWjlOLQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9a3Y7eeGNXkOCLUktwxzN9ag)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, registerTraverseProc_BwxixSWhJWbQ369cJZeckHA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* traverseProc);
static N_INLINE(NIM_BOOL, isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsHiddenPointer_IVXYI9cxSeivThgKCncHRnA_4)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__boICAAvO1zkTlYDOuEaj6g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__LeuvM3mIc6pSNktpm9cHSVw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__mxQQ2vwZhwfDagj5SEXeHA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__x2NKZw9brJpylbwEtLfx9a9bg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(void, loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* 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);
static N_NIMCALL(void, Marker_tySequence_sno9c9bXUVS2CqhtWOJadaCw)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo_v2qC0V55wqa9bmqc7eHTz8A)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** branches, NI branchesLen_0);
N_LIB_PRIVATE N_NIMCALL(NI64, hashString_9acplCwsZ5kwBbm0f7S7DNw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hc7hMh137dtaNdd3qw28EQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__XWz49cQA2QiZaLkqHBU5L3g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Au81R9a68Rv3gwlPtvDarPg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Yw741acxvsUs9cOX9cuiDj9bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint_sCIDQrEETdL3XXbX8Uzgrg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange_FtWqvDVdWg4sJ9aFlt4ZdKg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NI64, subInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__T9caGByKkBhaXSZ6fCJLIdQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__JmTWN8YiVKTZuvCYW2XNZA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts);
N_LIB_PRIVATE N_NIMCALL(tySequence_P9c6Y5h4sjjYLVGti5AELHg*, newSeq_OaobbyM33hdaUSQLz9cbgqA)(NI len);
static N_INLINE(void, pop_in6U6M9b8kwov18g9cnnpKlAsystem)(tySequence_P9c6Y5h4sjjYLVGti5AELHg** s, tyTuple_aTNxDjHI7v9cq37xS7PT7jA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Kbv8OIo8zpawh7SNMbfgkA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fieldDiscriminantCheckNeeded_d5oNi1LGrB28KpBLXL9a32Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn);
N_LIB_PRIVATE N_NIMCALL(void, asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(void, genCaseObjDiscMapping_Wc0TPRDzP9a6sdbq2sjsjcA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, genCaseObjDiscMapping_vdEMa74K7U684lW2D5bieg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, add_P8dDSotTW25BkfbyspojGg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(void, genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableDecl_WpGsd0DJejVIze0ZXr8L3g_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d);
N_LIB_PRIVATE N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt);
N_LIB_PRIVATE N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
static N_INLINE(tyTuple_aTNxDjHI7v9cq37xS7PT7jA*, X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem)(tyTuple_aTNxDjHI7v9cq37xS7PT7jA* s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInfixAs_CZaoTkWCFI9acor4BmYF3Yw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__B0OBOTOJQENvDd71LJ9b19bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts);
N_LIB_PRIVATE N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__22ELRKd9bDuNug6qvIihS3A)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedException_dZW9czpRSiiVl9cyT6tyk84A)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ddrHnMlEhcHznkXv27msmQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genTypeSection_t9a9a9bxmaOztYOfsfhQUOXXw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw, whichPragma_Pjztiiq9bHmTTxDuLd39cNRw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg, determineSection_3f2MBweHSQI3C7jDZiYA2Q)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s, NimStringDesc* prefix);
N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_8gOq38UiI9arVxZ9at35m22Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, skipGenericOwner_lIu8wX6Beq6dBJgESOFFjg_3)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__yhJ9aDxHfJqHvWO0i6N9bukQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MLJpsW0DAZYB8lAgq09cUjg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__8tWfSjtTOlDafxpQPvChAA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__xKLwwPkFSVy2Dtn9cuJ78xw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__hdRijZdoPR3UGq9aUw2zFDQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genBreakState_8mAL9ckajemzgfLPfeZVNoQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ZjQc8bFVF8ePFYxjN0iVVg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__SiqB8gWmdYKb4vtgqYrrMA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, popInfoContext_O9arH9bYenXLOr27ZSmcQnEw_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, genForwardedProcs_PBGOqkExHgxzX6Rn0nJkYg)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g);
static N_INLINE(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, pop_sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence_DfgJFJEYoj4YBAHLZPl5lQ** s);
N_LIB_PRIVATE N_NIMCALL(void, writeModule_ZCCFqS1YhEjeMHLdSMM8xg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NIM_BOOL pending);
N_LIB_PRIVATE N_NIMCALL(void, genInitCode_7ll08CGQoDzh9cxhZCroU4w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getInitName_ao6gUnuVfQLtZ89c4kaIKfg_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName_E8VUcJLPfNp8S9aZKgHijew)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* suffix);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeNameForModule_JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__2Ixv9aZ9bvpNaVAVzYBJlUPg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__HoXSbgR7plMG7Fef0fcy9aw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__H1Ma2EXqegHnMqzJZ4SA1g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__jpXTCDNVjIi5r4hbHN5SVQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_otaTb0ytiYCWgsXTIvijfg)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2)(tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg ps, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__4L62Yp9bLO2ZDcvBG9bSvP9bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MCSdS9cTdQvttqiM9azLzkDg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getHcrInitName_ao6gUnuVfQLtZ89c4kaIKfg_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, hcrGetProcLoadCode_uWPA1lTRrPufWdliMF9aGrg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* sym, NimStringDesc* prefix, NimStringDesc* handle, NimStringDesc* getProcFunc);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__E9bSTz8DQ4tgiLV9avQjFgFA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__3CQpPXVDiNqC3jKO8Juliw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__w50CkyHBltcyR8rWxttZCg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genDatInitCode_7ll08CGQoDzh9cxhZCroU4w_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDatInitName_ao6gUnuVfQLtZ89c4kaIKfg_6)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionStart_KYNwN8RXzjqIkzxFSwHsxw)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2)(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg fs, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__fmEfDTfNDkVDxWi9c0O6D2g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain_9aldr9cciNpmwLn9bc4Nq2PGQ)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__k9bgPIs43oLgxnk1l4TNQaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__5MqeIopvDuA9aozxL79cQ88g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
static N_INLINE(NI, rawGet_QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc);
static N_INLINE(NI, hash_ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x);
static N_INLINE(NIM_BOOL, isFilled_5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
static N_INLINE(NI, nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Zp9bMZDO5tEkvVLTxiKsBkA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__j5FZyaqnqjc2dcsUkAp28Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__EbvvG9awBeRKzx8xuBIb7TA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, sigHash_mSn9a9aX0NBzWqerwPW0qRww_2)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyArray_qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9a8besSQa09cOOt9b9cgdVwY9aQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__oVKF7oq59cRGAaMpvWzNWbw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__7ru3bwKuSx4Sc8ilsBmX3g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__MDIdJXTVckPj57aO7LMVgw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__vQDE0VOBftnrpkVsM9cme4w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__9bmR9bM9b0qqEqU0QJKnmLQnA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__88tWbH31SmOWJjgJ7RnfHA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__t1CB59bEwlxfHZhNwNNz1bw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YbLM7ZajsWOFLl4iSo0Krg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s, NimStringDesc* sub, NimStringDesc* by);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__rH7Ns9bqAnnfkukwBIlz9bKg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__zx9ctq3Ffe9aysjoWhZOzevQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__T9a21DAzFCa3OqRooKKtkqw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions_7ll08CGQoDzh9cxhZCroU4w_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, genMainProc_7ll08CGQoDzh9cxhZCroU4w_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
static N_NIMCALL(void, Marker_tyRef_Le8C8QGYTcdw3ffY0559cFg)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, loadLib_U9bFGPRkCoZVGu0OHStKJag)(NimStringDesc* handle, NimStringDesc* name, void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__AgJ22lURvdZuLTh9c9bRsD6w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openNamespaceNim_h7k639c1gj2MLT300oN1wwg)(NimStringDesc* namespace_0);
N_LIB_PRIVATE N_NIMCALL(void, generateThreadVarsSize_7ll08CGQoDzh9cxhZCroU4w_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Y4DThr9bpMbmoKpvgT1rYwg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toObjFile_GMjJ0d3khWrmxAqhh9anEsw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genModule_EFwkiA59cPQJZpsz0yL8eHQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getFileHeader_t9c9byVBpvEfissxdPQCEZLw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getCopyright_t9c9byVBpvEfissxdPQCEZLw_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__811qrD9bMr21weOkImaKvIA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YNifhKTQWQRf1atK7E3Qmg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCompileCFileCmd_06MAxvfKFF1QpT9bEO6AQJw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile, NIM_BOOL isMainFile);
static N_INLINE(void, addIntTypes_jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__YfbBxPLyPvVS6F2y9bSUFIA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genMergeInfo_T0VHRXp9cMnXMqYxgPwvmXw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage_7ll08CGQoDzh9cxhZCroU4w_6)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__OBvl4G6evYkvK9b9bClFGqNw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(void, generateHeaders_7ll08CGQoDzh9cxhZCroU4w_7)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuReplaceChar)(NimStringDesc* s, NIM_CHAR sub, NIM_CHAR by);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__pHsLkkx9bTDctZjmJqwCYRA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__ksH6NowTz9bh4eMOdyaiR1w)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile_H4aCBrBgfkxUNX78oimi1g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile_Wiam9c8x73Mtmbj0r4Ppikg)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
static N_INLINE(NIM_BOOL, fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(void, noscopyFile)(NimStringDesc* source, NimStringDesc* dest);
N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope_LLRRC42xWBSkxzV9bsPu7lA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a, NimStringDesc* b);
N_LIB_PRIVATE N_NIMCALL(void, addFileToCompile_0nANBPjKLpImf3GNXBeQ2Q)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, mergeRequired_X8MaNNxDVB7fxLVXrvJcFw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, mergeFiles_l8sH9bHsXY4q3tbS3srelEw)(NimStringDesc* cfilename, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(void, close_GvEyiCVhfPFZLA80aIn5Nw)(tyObject_NdiFile_9cEuXfAnHp9bnWFK409cMtsEw* f);
N_LIB_PRIVATE N_NIMCALL(void, writeMapping_LBHXhYTVO2vldQU4a5LZ9aQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* symbolMapping);
N_LIB_PRIVATE N_NIMCALL(void, writeHeader_7ll08CGQoDzh9cxhZCroU4w_8)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__y39ant8iE9bjKB0kbkRCAibQ)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__RKXvZR1cmZW5dfjtFQCG3g)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__nEA33x9cMfuJw3ZiGbn25iw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__0xK6HolrLvVFWil73hZYbA)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, percent__Z2c9cvs0wVVVqTEZ3Qwe9bfw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0);
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_CpP4eJLbv5ZwofQXpESuGA_;
extern TNimType NTI_NkKlBfvvsMUW70DxvxLVIg_;
extern TNimType NTI_9cG6VsX22pOhho6kxyhFVow_;
extern TNimType NTI_SHVxAqOYtIy7teT1q4s0zQ_;
extern TNimType NTI_oUyaggHmIX9bpJcMeoG6lpA_;
extern TNimType NTI_WwUFq9cJ2xKRlsAWVEHyPRg_;
extern TNimType NTI_DfgJFJEYoj4YBAHLZPl5lQ_;
extern TNimType NTI_9a3YiReNVD0IJHWFKgXRe9ag_;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cachedUnion_37c7SFtO1oJKGkAWrI71Fw;
extern TNimType NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_;
tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cachedStruct_9a5hqgEB1sqNj6CL5z0oy5w;
extern TNimType NTI_Ef05srmQTDulnBdXR4Ja6Q_;
extern TNimType NTI_G4E4Gxe7oI2Cm03rkiOzQw_;
extern TNimType NTI_cNCW9acsSznmEccl1fgQwkw_;
extern TNimType NTI_EtHNvCB0bgfu9bFjzx9cb6aA_;
extern TNimType NTI_shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI_MvZmat48bhe9b6x9aUD58D5Q_;
extern TNimType NTI_bROa11lyF5vxEN9aYNbHmhw_;
extern TNimNode* NimDT__bROa11lyF5vxEN9aYNbHmhw_kind[162];
extern TNimType NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ_;
TNimType NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_;
TNimType NTI_sno9c9bXUVS2CqhtWOJadaCw_;
extern TNimType NTI_P9c6Y5h4sjjYLVGti5AELHg_;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ_;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_xMgU9cvtBGj0wNZW9cfTxFVA_;
extern TNimType NTI_xHTZrq9aYs6boc9bCba0JbpQ_;
TNimType NTI_Le8C8QGYTcdw3ffY0559cFg_;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_2, "TM", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_3, "_", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_5, "ndi", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_7, ".h", 2);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_MQdRN7fpbG7rPm4JpVVAhA_8 = {
0xEC, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_9, "sons", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_15, "\011", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_17, "if (nim_hcr_do_init_)\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_18, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(124, 14) `p.module != nil"
"` ", 129);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_19, "{", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_20, "\012", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_25, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/system/iterators.nim(190, 11) `len(a) ="
"= L` the length of the seq changed while iterating over it", 185);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_MQdRN7fpbG7rPm4JpVVAhA_26 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_27, "sym", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_28, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(88, 11) `sym.annex != nil"
"` ", 129);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_29, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(124, 14) `m != nil` ", 122);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_30, "static", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_31, "extern", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_32, " ", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_34, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ropes.nim(177, 16) `it.right != ni"
"l` ", 130);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_35, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ropes.nim(180, 15) `it != nil` ", 124);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_36, "cannot generate C type for: ", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_37, "void", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_38, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_39, "nimStrVersion", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_40, "N_LIB_IMPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_41, "N_LIB_EXPORT ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_42, "static ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_43, "N_LIB_PRIVATE ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_44, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(162, 14) `typ.isResol"
"vedUserTypeClass` ", 145);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_47, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(195, 19) `false` mapT"
"ype", 130);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_48, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(196, 17) `false` mapT"
"ype", 130);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_49, "genProcParams", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_50, "_0", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_51, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(254, 10) `skResult !="
" s.kind` ", 136);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_54, "getTypeName: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_56, "union", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_58, "struct", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_59, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(371, 14) `m.forwTypeC"
"ache[sig] == result` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_60, "getTypeForward(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_61, "*", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_64, ", ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_65, "void* ClE_0", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_66, "...", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_67, "void)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_68, ")", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_69, "(", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_70, "_PTR", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_71, "_actual", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_72, "N_NIMCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_73, "N_STDCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_74, "N_CDECL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_75, "N_SAFECALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_76, "N_SYSCALL", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_77, "N_INLINE", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_78, "N_NOINLINE", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_79, "N_FASTCALL", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_80, "N_CLOSURE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_81, "N_NOCONV", 8);
NIM_CONST tyArray_t1sx1FVcaX4m77XqENedIQ CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_72),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_73),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_74),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_75),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_76),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_77),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_78),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_79),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_80),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_81)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_82, "(*", 2);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_MQdRN7fpbG7rPm4JpVVAhA_83 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_84, "strVal", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_85, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(979, 9) `prc.ast != nil` ", 127);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_86, "proc has no result symbol", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_89, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(85, 10) `s.kind in sk"
"LocalVars + {skTemp}` ", 149);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_92, " register", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_93, " volatile", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_94, " = ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_95, ";", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_96, "&", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_97, "(&", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_98, "TNimType", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_99, "TNimNode", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_100, ".nim.cpp", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_101, ".nim.m", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_102, ".nim.c", 6);
extern NIM_CONST tyArray_AvOd9bOqQkvZ6R9aJoQwnnEg OS_Jx0qy9c9bSo4fGkMxUfUaAaw;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_103, "/", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_104, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1300, 12) `m.g.module"
"s[owner.position] != nil` ", 153);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_105, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_106, "void*", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_107, "nimTypeNames", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_108, "ref object", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_109, "anon ref object from ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_110, "nimTypeRoot", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_111, "genTypeInfo(", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_113, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim", 105);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_112 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_113),
((NI) 1317),
((NI) 19)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_114, "0", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_117, "Marker_", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_118, "op", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_119, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtrav.nim(153, 10) `typ.kind != "
"tyTypeDesc` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_120, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtrav.nim(119, 10) `typ.kind == "
"tySequence` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_122, "T", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_123, ".len = 0; ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_124, ".p = NIM_NIL;", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_125, " = (", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_126, ")0;", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_127, "nimZeroMem", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_128, "((void*)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_129, ", sizeof(", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_130, "));", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_131, "noCppExceptions", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_132, "<new>", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_133, "new (", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_134, ") ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_135, ".Sup", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_136, ".m_type = ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_137, "complex object initialization is not supported with --newruntim"
"e", 64);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_138, "objectInit", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_139, ");", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_140, ".name = ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_141, ".len", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_142, "len", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_143, "Sup.len", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_144, "for (", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_145, " = 0; ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_146, " < ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_147, "; ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_148, "++) {", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_149, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(124, 14) `c.p.module != n"
"il` ", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_150, "[", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_151, "]", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_154, "genTraverseProc", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_156, "genRecordFieldsAux", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_157, "struct {", 8);
extern NIM_CONST tyArray_HiaU9aN9a9cvYgGY9c20ixGFjA CC_78I18QZNZFIv9ah7oETc0jg;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_158, "struct __attribute__((__packed__)){", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_159, "genRecordFieldsAux(record case branch)", 38);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_161, "mangleRecFieldName", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_162, "bitsize", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_163, "genRecordFieldsAux()", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_164, "genTraverseProc()", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_165, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtrav.nim(43, 14) `branch.kind i"
"n {nkOfBranch, nkElse}` ", 151);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_MQdRN7fpbG7rPm4JpVVAhA_167 = {
0xE0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_168, "intVal", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_169, "ULL", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_171, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_172, "((", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_173, "NimStringDesc", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_174, "*) NIM_NIL)", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_175, "*) &", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_176, "TGenericSeq", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_177, "NimStrPayload", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_178, "NimStringV2", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_179, "cannot determine how to produce code for string literal", 55);
static NIM_CONST tySet_tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw TM_MQdRN7fpbG7rPm4JpVVAhA_180 = {
0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_181, "floatVal", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_182, "f", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_183, "genLiteral(", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_187, ".Field", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_189, "nimGCvisit", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_190, ".ClE_0", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_191, ".p->data", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_192, "->data", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_193, "a", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_194, "(*a)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_195, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1195, 9) `typ.sons[0]"
" != nil` ", 136);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_196, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1165, 11) `typ.n.sons"
"[i].kind == nkSym` ", 146);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_198, ", \012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_200, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1252, 10) `t.kind == "
"tyObject` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_201, "request for RTTI generation for incomplete object: ", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_202, "the destructor that is turned into a finalizer needs to have th"
"e \'nimcall\' calling convention", 93);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_203, "|", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_204, ".", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_206, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1059, 11) `n.sons[0]."
"kind == nkSym` ", 142);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_207, "anonymous obj with discriminator", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_208, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(1063, 12) `L > 0` ", 124);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_209, "genObjectFields", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_211, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_215, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_220, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(997, 15) `res.loc.r != ni"
"l` ", 130);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_221, "\011return ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_222, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(570, 9) `s.loc.r != nil` ", 127);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_228, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(387, 12) `rdLoc(loc) != n"
"il` ", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_229, "asgnRef", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_230, "((void**) ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_231, "unsureAsgnRef", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_232, " = 0;", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_233, "chckNil", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_234, "genericReset", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_236, "closure generation failed", 25);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_237, ", (", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_238, ") ClE_0);", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_239, ") ClE_0;", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_240, "__declspec(noreturn) ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_241, "__declspec(naked) ", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_242, " {", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_243, "}\012\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_244, " {\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_245, "  ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_246, "#", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_247, "  define nimfr_(proc, file) \\\012      TFrame FR_; \\\012      FR_.pro"
"cname = proc; FR_.filename = file; FR_.line = 0; FR_.len = 0; ", 125);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_248, "nimFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_249, "(&FR_);\012\012  ", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_250, "  define nimfrs_(proc, file, slots, length) \\\012      struct {TFr"
"ame* prev;NCSTRING procname;NI line;NCSTRING filename; NI len; V"
"arSlot s[slots];} FR_; \\\012      FR_.procname = proc; FR_.filename"
" = file; FR_.line = 0; FR_.len = length; ", 232);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_251, "((TFrame*)&FR_);\012\012  ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_252, "  define nimln_(n, file) \\\012      FR_.line = n; FR_.filename = f"
"ile;\012  ", 70);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_253, "VarSlot", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_254, "\011nimfrs_(", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_255, "\011nimfr_(", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_256, "nimProfile", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_257, "();", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_258, "if (((NU)&GCFRAME_) < 4096) ", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_259, "nimGCFrame", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_260, "(&GCFRAME_);", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_261, "popFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_262, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(665, 9) `lib != nil` ", 123);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_263, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(669, 11) `lib.name == nil"
"` ", 129);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_265, "||", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_266, "nimLoadLibrary", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_267, "))", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_269, "if (!(", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_270, ")) ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_271, "nimLoadLibraryError", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_272, "))) ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_273, "loadDynamicLib", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_274, "Dl_$1_", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_279, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim", 101);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_278 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_279),
((NI) 737),
((NI) 18)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_280, "wrong index: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_281, "nimGetProcAddr", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_282, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1201, 11) `sym.loc.r != n"
"il` ", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_283, "extern ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_284, "NIM_THREADVAR ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_285, "cgsym: ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_286, ": ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_287, "system module needs: ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_288, "NimStringDesc*", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_289, "NCSTRING", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_290, "NIM_BOOL", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_291, "NIM_CHAR", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_292, "NI", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_293, "NI8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_294, "NI16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_295, "NI32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_296, "NI64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_297, "NF", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_298, "NF32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_299, "NF64", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_300, "NF128", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_301, "NU", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_302, "NU8", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_303, "NU16", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_304, "NU32", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_305, "NU64", 4);
NIM_CONST tyArray_Sjq0yxKksnvb1U6tEMqzYg NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_292),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_293),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_294),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_295),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_296),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_297),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_298),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_299),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_300),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_301),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_302),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_303),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_304),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_305)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_306, "tyStatic for getSimpleTypeDesc", 30);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_307, "checkabi", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_308, "getTypeDescAux: enum", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_309, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(742, 11) `cacheGetTyp"
"e(m.typeCache, sig) == nil` ", 155);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_310, "typedef struct{ NI cap;", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_311, "AllocatorObj", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_312, "* allocator;", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_313, " data[SEQ_DECL_SIZE];}", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_314, "_Content;", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_315, "struct ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_316, "  NI len; ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_317, "_Content* p;", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_318, "};", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_319, " : ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_320, " data[SEQ_DECL_SIZE];", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_321, " Sup;", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_322, "cannot map the empty seq type to a C type", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_329, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(622, 14) `false` inva"
"lid apostrophe type parameter index", 162);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_332 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_113),
((NI) 796),
((NI) 25)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_334, "<", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_336, " COMMA ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_338, "> ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_339, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(823, 14) `t.kind != t"
"yTuple` ", 135);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_340, " __attribute__((__packed__))", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_341, "#pragma pack(push, 1)\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_342, "* m_type;", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_343, " : public ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_344, "virtual void raise() { throw *this; }", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_345, "~", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_346, "inline ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_347, "::~", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_348, "() {if(this->raiseId) ", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_349, "popCurrentExceptionEx", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_350, "(this->raiseId);}", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_351, "};\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_352, "#pragma pack(pop)\012", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_353, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(852, 16) `m.forwTypeC"
"ache[sig] == result` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_355, "char dummy;\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_357, "getTypeDescAux(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_358, "extern \"C\" ", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_359, " __attribute__((naked))", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_360, " __attribute__((noreturn))", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_361, ";\012", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_362, "nimCopyMem", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_363, ", (NIM_CONST void*)", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_364, "genericShallowAssign", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_365, ", (void*)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_366, "genericAssign", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_367, "genericSeqAssign", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_368, "copyString", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_369, "copyStringRC1", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_370, "if (", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_371, "nimGCunrefNoCycle", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_372, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(198, 10) `field != ni"
"l` ", 130);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_373, "ClE_0", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_374, ".ClP_0 = ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_375, ".ClP_0;", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_380, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim", 105);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_379 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_380),
((NI) 325),
((NI) 23)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_382, "genericAssignOpenArray", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_383, "Len_0, ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_384, "genAssignment: ", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_385, "memTrackerWrite", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_386, "request to generate code for .compileTime proc: ", 48);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_387, "expr: proc not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_388, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1162, 12) `q.initProc.mod"
"ule == q` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_395, "{", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_397, "}", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_398, "static const struct {", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_399, "  NI cap; void* allocator; ", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_400, " data[", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_401, "];", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_402, "} ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_403, " = {", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_404, ", NIM_NIL, ", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_405, "_Content", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_406, ", {", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_408, "NIM_CONST struct {", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_409, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgtypes.nim(889, 10) `t.kind == t"
"yProc` ", 134);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_418, "NIM_FALSE", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_419, "0.0", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_420, "NIM_NIL", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_421, "{NIM_NIL, NIM_NIL}", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_422, "{}", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_424, "cannot create null element for: ", 32);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_425, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1167, 11) `sym.loc.r != n"
"il` ", 131);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_426, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2386, 9) `(sym.loc.r "
"!= nil) and (sym.loc.t != nil)` ", 159);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_427, "expr: var not init ", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_428, "\011NimTV_ = (NimThreadVars*) ", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_429, "GetThreadLocalVars", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_430, "NimTV_->", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_431, "expr: temp not init ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_432, "expr: param not init ", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_433, "expr(", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_434, "); unknown symbol", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_435, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(243, 10) `line >= 0` ", 123);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_436, "endb", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_437, "\?\?\?", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_438, ");\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_439, "nimln_(", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_442, "LA", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_444, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(663, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_464, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(712, 12) `false` ", 123);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_465, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(537, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_466, " == ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_467, "raiseOverflow", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_469, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(551, 11) `false` ", 123);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_470, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2019, 11) `e.sons[1]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_471, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2020, 11) `e.sons[2]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_472, ")(", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_473, "+", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_474, "-", 1);
NIM_CONST tyArray_Gm0NaIqP69aDZ76njaVHflw opr_jSXnH9c8YRRwSdXyVdSg9acA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_473),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_103)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_475, " (", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_476, "nanCheck", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_477, "infCheck", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_478, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(557, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_479, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(558, 9) `e.sons[2].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_482, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(616, 11) `false` ", 123);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_483, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(620, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_484, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(621, 9) `e.sons[2].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_485, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(518, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_486, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(519, 9) `e.sons[2].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_487, "%", 1);
NIM_CONST tyArray_0JAfn8Knf9bolQnS0KarOXA opr_UAWyVnvyQoWbplounFNlGg = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_473),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_103),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_487),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_473),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_488, "addInt64", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_489, "subInt64", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_490, "mulInt64", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_491, "divInt64", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_492, "modInt64", 8);
NIM_CONST tyArray_0JAfn8Knf9bolQnS0KarOXA prc64_9bTptLAKOOYdunqlEwXM6PQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_488),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_489),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_490),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_491),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_492),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_488),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_489)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_493, "addInt", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_494, "subInt", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_495, "mulInt", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_496, "divInt", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_497, "modInt", 6);
NIM_CONST tyArray_0JAfn8Knf9bolQnS0KarOXA prc_8UqUr1y9abLbrO1vSUF2CqQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_493),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_495),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_496),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_497),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_493),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_498, " || ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_499, " > ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_500, "\'repr\' is not available for --newruntime", 40);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_501, "reprInt", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_502, "((NI64)", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_503, "reprFloat", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_504, "reprBool", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_505, "reprChar", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_506, "reprEnum", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_507, "((NI)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_508, "reprStr", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_509, "reprSet", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_510, "genRepr()", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_511, "reprOpenArray", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_512, "reprAny", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_513, "\'repr\' doesn\'t support \'void\' type", 34);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_514, " - 1)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_515, ", 1)", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_516, "binaryStmt", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_517, "+=", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_518, "-=", 2);
NIM_CONST tyArray_8QG8K2QZHzCGCKMf84A8og opr_O7uP3jzNu3e9auWdRdRa9cJA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_517),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_518)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_519, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2139, 13) `e.sons[1]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_520, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2140, 13) `e.sons[2]."
"typ != nil` ", 139);
NIM_CONST tyArray_8QG8K2QZHzCGCKMf84A8og fun64_fjrbodMqcYB619bEDCGfJsA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_488),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_489)}
;
NIM_CONST tyArray_8QG8K2QZHzCGCKMf84A8og fun_gOe15RXeJ2duD5In6NwLXA = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_493),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_525, "appendChar", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_529, " + ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_530, "appendString", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_532, "rawNewString", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_533, "binaryStmtAddr", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_534, "nimAddCharV1", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_535, "addChar", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_536, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1168, 9) `d.k == locN"
"one` ", 132);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_545, "prepareAdd", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_546, "resizeString", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_547, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(224, 9) `typ.kind == "
"tyProc` ", 135);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_548, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(227, 11) `sonsLen(typ"
") == sonsLen(typ.n)` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_549, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(178, 11) `typ.n.sons["
"i].kind == nkSym` ", 145);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_550, "nimToCStringConv", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_551, " != -1 && ((NU)(", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_552, ") >= (NU)(", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_553, "Len_0) || (NU)(", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_554, "Len_0))) ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_555, "raiseIndexError", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_556, " != -1 && (", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_557, " < -1 || ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_558, ") >= (NU)", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_559, " || (NU)(", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_560, "openArrayLoc: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_563, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(258, 13) `d.t != nil`"
" ", 128);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_564, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(438, 9) `typ.kind == "
"tyProc` ", 135);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_565, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(440, 9) `sonsLen(typ)"
" == sonsLen(typ.n)` ", 147);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_567, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim", 105);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_566 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_567),
((NI) 443),
((NI) 17)}
;
static NIM_CONST tySet_tyChar_nmiMWKVIe46vacnhAFrQvw TM_MQdRN7fpbG7rPm4JpVVAhA_568 = {
0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_569, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(275, 11) `paramType.k"
"ind == nkSym` ", 141);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_570, "wrong argument count", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_579, "call expression expected for C++ pattern", 40);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_583 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_567),
((NI) 348),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_584, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(349, 9) `typ.n.sons[i"
"].kind == nkSym` ", 144);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_585, "->", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_594, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(458, 15) `d.t != nil`"
" ", 128);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_595, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(475, 13) `sonsLen(typ"
") == sonsLen(typ.n)` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_598, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(68, 15) `d.t != nil` ", 127);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_599, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(486, 9) `typ.kind == "
"tyProc` ", 135);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_600, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(488, 9) `sonsLen(typ)"
" == sonsLen(typ.n)` ", 147);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_601 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_567),
((NI) 492),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_604, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(510, 11) `sonsLen(typ"
") == sonsLen(typ.n)` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_605, "varargs for objective C method\?", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_606, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(513, 11) `typ.n.sons["
"i].kind == nkSym` ", 145);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_608, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(540, 13) `d.t != nil`"
" ", 128);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_609, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(199, 9) `typ.kind == "
"tyProc` ", 135);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_610, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgcalls.nim(200, 9) `sonsLen(typ)"
" == sonsLen(typ.n)` ", 147);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_612, "incrSeqV3", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_613, "((TGenericSeq*)(", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_614, "), ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_616, "NI ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_617, "++;", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_618, " == 0)", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_619, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(467, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_620, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(468, 9) `e.sons[2].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_621, "eqStrings", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_622, "cmpStrings", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_623, ") <= 0)", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_624, ") < 0)", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_625, ".ClP_0 == 0)", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_626, "nimIntToStr", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_627, "nimInt64ToStr", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_628, "nimBoolToStr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_629, "nimCharToStr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_630, "nimFloatToStr", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_631, "cstrToNimstr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_633, "no \'of\' operator available for pure objects", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_634, ") && (", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_635, "isObj", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_636, ".m_type, ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_638, "Nim_OfCheck_CACHE", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_639, "isObjWithCache", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_640, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1244, 10) `refType.ki"
"nd == tyRef` ", 140);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_641, "nimNewObj", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_642, ") { ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_643, "nimGCunrefRC1", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_644, "); ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_645, " = NIM_NIL; }", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_646, "newObj", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_647, "newObjRC1", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_648, ".len = ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_649, ".p = (", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_650, "*) ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_651, "newSeqPayload", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_652, "newSeq", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_653, "newSeqRC1", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_654, "nimNewSeqOfCap", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_655, "<stdalign.h>", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_656, ")-(", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_657, ")+1", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_658, "Len_0-1)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_659, "Len_0", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_660, " \? (", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_661, "nimCStrLen", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_662, ")-1) : -1)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_663, " \? ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_664, ") : 0)", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_665, "genArrayLen()", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_666, "->Sup.len)", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_667, "->len", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_668, "->Sup.len;", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_669, "->len;", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_670, "unaryStmt", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_671, "nimGCref", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_672, "); }", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_673, "nimGCunref", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_674, "setLengthStrV2", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_675, "genSetLengthStr", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_676, "setLengthStr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_677, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1693, 9) `d.k == locN"
"one` ", 132);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_678, "setLengthSeqV2", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_679, "(&(", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_680, ")->Sup, ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_681, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1777, 9) `d.k ==\012    "
"locNone` ", 136);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_682, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1749, 9) `setType.kin"
"d == tySet` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_683, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1847, 19) `false` ", 124);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_684, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1854, 19) `false` ", 124);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_685, "countBits32", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_686, "countBits64", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_687, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(475, 9) `e.sons[1].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_688, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(476, 9) `e.sons[2].ty"
"p != nil` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_689, " & ~ ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_690, " ==0)&&(", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_691, " != ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_692, ")==0)", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_693, " & ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_694, " | ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_695, " ^ ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_698, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1815, 11) `e.sons[1]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_699, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1816, 11) `e.sons[2]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_700, "genSetOp()", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_701, "cardSet", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_702, "++) { ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_703, " = ((", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_704, "] & ~ ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_705, "]) == 0);", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_706, "  if (!", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_707, ") break;}", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_708, "nimCmpMem", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_709, ") != 0);", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_710, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1889, 13) `e.sons[1]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_711, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(1890, 13) `e.sons[2]."
"typ != nil` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_712, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$n", 88);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_713, "for ($1 = 0; $1 < $2; $1++) { $n  $3 = (($4[$1] & ~ $5[$1]) == "
"0);$n  if (!$3) break;}$nif ($3) $3 = (#nimCmpMem($4, $5, $2) !="
" 0);$n", 133);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_714, "& ~", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_715, "^", 1);
NIM_CONST tyArray_Rm3qdnjMKv9cj1rqvTZQYTA lookupOpr_w7WuexLq9cuXtAtqil9csnVQ = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_712),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_713),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_714),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_715)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_716, "genSetOp", 8);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_717 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_380),
((NI) 1074),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_718, ", \"\"", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_719, ", Genode::Cstring(", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_720, "->data, ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_721, "->len)", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_723, "<base/log.h>", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_724, "<util/string.h>", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_725, "Genode::log(\"\"", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_726, "echoBinSafe", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_727, "(NIM_NIL, ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_731, "\'$1\' can only be used in compile-time context", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_732, "genericDeepCopy", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_733, "genericSeqDeepCopy", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_734, "genericDeepCopyOpenArray", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_735, "genDeepCopy: ", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_736, ".len && ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_737, ".p != ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_738, ".p) {", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_739, ".len; ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_740, ".p = ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_741, ".p;", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_742, ".p->allocator) {", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_743, ".p->allocator->dealloc(", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_744, ".p->allocator, ", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_745, ".p, ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_746, ".p->cap + 1 + sizeof(NI) + sizeof(void*)); }", 44);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_747, ".p, (", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_748, ".p->cap * sizeof(", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_749, ")) + sizeof(NI) + sizeof(void*)); }", 35);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_750, "destructor turned out to be not trivial", 39);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_751, "invalid context for \'toOpenArray\';  \'toOpenArray\' is only valid"
" within a call expression", 88);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_752, "genMagicExpr: ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_760, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(2350, 10) `n.kind in "
"{nkPar, nkTupleConstr, nkClosure}` ", 162);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_762, "CNSTCLOSURE", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_763, "closure to closure created", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_764, ".ClE_0 = ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_766, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(812, 10) `r != nil` ", 126);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_767, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(815, 11) `ty.kind in "
"{tyTuple, tyObject}` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_768, "genCheckedRecordField", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_769, "genObjConstr", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_770, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(849, 11) `it.kind in "
"nkCallKinds` ", 140);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_771, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(850, 11) `it.sons[0]."
"kind == nkSym` ", 142);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_772, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(854, 11) `disc.kind ="
"= nkSym` ", 136);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_773, "raiseFieldError", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_777, "union { ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_778, " source; ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_779, " dest; } LOC", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_780, "if ((NU)(", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_781, ") > (NU)(", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_782, "raiseIndexError2", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_783, "raiseIndexError3", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_784, "index ", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_785, " not in ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_786, " .. ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_787, "[(", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_788, ")- ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_789, "Len_0)) ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_790, ",", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_791, "Len_0-1);", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_792, ") > (NU)", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_793, "-1);", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_794, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgexprs.nim(799, 10) `tupType.kin"
"d == tyTuple` ", 141);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_795, "genTupleElem", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_796, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_797, "genDeref ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_798, "genRecordFieldAux", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_799, "genRecordField 3 ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_800, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(606, 13) `n.sons[0].k"
"ind == nkSym` ", 141);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_804, "FR", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_805, ".procname = ", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_806, ".filename = ", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_807, ";  ", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_808, ".line = ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_809, ".len = -1; nimFrame(&", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_812, "popFrameOfAddr", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_818, "genIf()", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_820, "->Sup", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_822, " = &", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_823, "chckObj", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_824, "chckRangeU", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_825, "chckRangeF", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_826, "chckRange64", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_827, "chckRange", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_828, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(567, 9) `sonsLen(t) ="
"= 2` ", 132);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_830, "case statement must be exhaustive for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_831, "case statement cannot work on enums with holes for computed got"
"o", 64);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_832, "case statement has too many cases for computed goto", 51);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_833, "case statement has to start at 0 for computed goto", 50);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_835, "no case statement found for computed goto", 41);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_845, "range notation not available for computed goto", 46);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_851, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(471, 9) `n.kind in {n"
"kLetSection, nkVarSection}` ", 155);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_860, "while (1) {", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_862, "\'goto\' target must be a literal value", 37);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_864, ";$n", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_865, "dbgRegisterGlobal", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_866, ", &", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_867, "nimRegisterThreadLocalMarker", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_868, "nimRegisterGlobalMarker", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_869, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(330, 15) `typ.kind =="
" tyProc` ", 136);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_870, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(333, 17) `sonsLen(typ"
") == sonsLen(typ.n)` ", 148);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_872, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(124, 14) `targetProc.modu"
"le != nil` ", 138);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_873, "hcrRegisterGlobal(", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_874, ", \"", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_875, "\", sizeof(", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_876, ", (void**)&", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_877, "if (hcrRegisterGlobal(", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_878, "))\012", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_879, "genVarTuple", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_887, "NIM_BOOL ", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_888, " = NIM_FALSE;", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_889, " |= hcrRegisterGlobal(", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_892, "for statement not eliminated", 28);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_900, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(769, 11) `b.sons[i].k"
"ind != nkRange` ", 143);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_901, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(771, 11) `b.sons[i].k"
"ind in {nkStrLit .. nkTripleStrLit}` ", 164);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_902, ")) goto ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_905, "switch (", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_906, "hashString", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_907, ") & ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_908, ") {", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_928, " >= ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_929, " && ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_930, " <= ", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_931, ") goto ", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_957, "popSafePoint", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_962, "popCurrentException", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_965, ".status != 0) ", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_966, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(656, 11) `t.sons[0].k"
"ind == nkSym` ", 141);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_967, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(658, 13) `sym.loc.k ="
"= locOther` ", 139);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_970, "no loop to break", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_973, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(1271, 11) `a.t != nil"
"` ", 129);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_975, "nimFieldDiscriminantCheckV2", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_976, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(1212, 10) `t.kind == "
"tyObject` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_978, "FieldDiscriminantCheck", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_979, "((NI)(NU)(", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_980, "), (NI)(NU)(", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_982, "(void)(", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_983, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(1131, 9) `t.kind == n"
"kAsmStmt` ", 137);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_992, "\"", 1);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_993, "\\n\"\012", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_994, "try {", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_996, "catch (...) {", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_997, "\011TFrame* _nimCurFrame;", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_998, "\011_nimCurFrame = ", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_999, "getFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1000, "setFrame", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1001, "(_nimCurFrame);", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1003, "catch (", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1004, "& ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1005, "&) {", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1012, "nimQuirky", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1013, "<setjmp.h>", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1014, "Exception", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1015, "TSafePoint", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1016, "pushSafePoint", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1017, "nimStdSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1018, ".status = setjmp(", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1019, ".context);", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1020, "nimSigSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1021, ".status = sigsetjmp(", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1022, ".context, 0);", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1023, "nimRawSetjmp", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1024, ".status = _setjmp(", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1025, ".status == 0) {", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1026, "else {", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1027, "getCurrentException", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1028, "()) {", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1029, ".status = 0;", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1031, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(1055, 15) `t.sons[i]."
"sons[j].kind == nkType` ", 151);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1032, "m_type", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1033, "Sup.m_type", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1034, "()->", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1036, "else ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1039, "reraiseException", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1041, "raiseExceptionEx", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1042, "*)", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1043, " = NIM_NIL;", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1044, "/*TYPESECTION*/", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1045, "/*VARSECTION*/", 14);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1046, "/*INCLUDESECTION*/", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1047, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(1166, 13) `t.sons[1]."
"kind in {nkStrLit .. nkTripleStrLit}` ", 165);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1049, "bp", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1050, "dbgRegisterBreakpoint", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1051, ", (NCSTRING)", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1052, "dbgRegisterWatchpoint", 21);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1054, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(614, 9) `sonsLen(t) ="
"= 3` ", 132);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1056, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim(625, 11) `sonsLen(cal"
"l) in {4, 5}` ", 141);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1059, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/ccgstmts.nim", 105);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_1058 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1059),
((NI) 190),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1060, "STATE", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1061, ": ;", 3);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1063, "STATE", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1065, "); unknown node kind", 20);
NIM_CONST tyTuple_kN8up2W6YKc5YA9avn5mV5w TM_MQdRN7fpbG7rPm4JpVVAhA_1066 = {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1059),
((NI) 1286),
((NI) 17)}
;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1068, "programResult", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1069, "procAddrError", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1070, "rawWrite", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1071, "initStackBottomWith", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1072, "initThreadVarsEmulation", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1073, "dbgRegisterFilename", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1076, "still forwarded: ", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1077, "NimMainModule", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1078, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1249, 10) `m.kind == skMo"
"dule` ", 133);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1079, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1250, 10) `m.owner.kind ="
"= skPackage` ", 140);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1080, "Init000", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1081, "N_LIB_EXPORT", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1082, "N_LIB_PRIVATE", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1083, "generated_not_to_break_here", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1084, "* ", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1085, "\011hcrRegisterGlobal(", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1086, "\", sizeof(TNimNode) * ", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1087, ", NULL, (void**)&", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1088, "\011if (nim_hcr_do_init_) {\012\012", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1089, "\012\011} // nim_hcr_do_init_\012", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1091, "hcrRegisterProc", 15);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1092, "hcrGetProc", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1093, "hcrRegisterGlobal", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1094, "hcrGetGlobal", 12);
NIM_CONST struct {
  TGenericSeq Sup;
  NimStringDesc* data[4];
} TM_MQdRN7fpbG7rPm4JpVVAhA_1095 = {{4, 4 | NIM_STRLIT_FLAG}, {((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1091),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1092),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1093),
((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1094)}};
NIM_CONST tySequence_sM4lkSb7zS6F7OVMvW9cffQ* TM_MQdRN7fpbG7rPm4JpVVAhA_1090 = ((tySequence_sM4lkSb7zS6F7OVMvW9cffQ*)&TM_MQdRN7fpbG7rPm4JpVVAhA_1095);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1096, "HcrInit000", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1097, "hcrInit", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1098, "hcrAddModule", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1099, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1569, 10) `prc != nil` ", 125);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1100, "handle", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1101, "getProcAddr", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1105, "DatInit000", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1110, "stdlib_system", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1111, "stdlib_os", 9);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1112, "\011int* cmd_count;\012", 17);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1113, "\011char*** cmd_line;\012", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1114, "\011*cmd_count = cmdCount;\012", 24);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1115, "\011*cmd_line = cmdLine;\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1116, "();\012", 4);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1117, "((void *)&inner);\012", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1120, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/cgen.nim(1282, 14) `prc != nil` ", 125);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1121, "\011if (!(", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1122, ")))\012\011\011", 6);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1123, "hcr_handle", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1125, "\011void* rtl_handle;\012", 19);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1126, "rtl_handle", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1127, "nimGC_setStackBottom", 20);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1129, "nimrtl_", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1130, "\011inner = PreMain;\012", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1131, "\011initStackBottomWith_actual((void *)&inner);\012", 45);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1132, "\011(*inner)();\012", 13);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1133, "\011PreMain();\012", 12);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1134, "<windows.h>", 11);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1135, "<libc/component.h>", 18);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1138, "\012void PreMainInner(void) {\012", 27);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1139, "}\012\012int cmdCount;\012char** cmdLine;\012char** gEnv;\012void PreMain(void"
") {\012\011void (*volatile inner)(void);\012\011inner = PreMainInner;\012", 121);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1140, "\011(*inner)();\012}\012\012", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1141, "N_CDECL(void, NimMainInner)(void) {\012", 36);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1142, "}\012\012N_CDECL(void, NimMain)(void) {\012\011void (*volatile inner)(void)"
";\012", 65);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1143, "\011inner = NimMainInner;\012", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1144, "}\012\012N_LIB_EXPORT N_CDECL(void, NimMain)(void) {\012\011void (*volatile"
" inner)(void);\012", 78);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1145, "extern Genode::Env *nim_runtime_env;\012extern void nim_component_"
"construct(Genode::Env*);\012\012N_CDECL(void, NimMainInner)(void) {\012", 125);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1146, "}\012", 2);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1147, "using namespace ", 16);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1148, "N_STDCALL(int, WinMain)(HINSTANCE hCurInstance, \012              "
"          HINSTANCE hPrevInstance, \012                        LPST"
"R lpCmdLine, int nCmdShow) {\012\011NimMain();\012\011return ", 176);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1149, "nim_program_result;\012}\012\012", 23);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1150, "BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, \012     "
"               LPVOID lpvReserved) {\012\011if(fwdreason == DLL_PROCES"
"S_ATTACH) {\012\011NimMain();\012}\012\011return 1;\012}\012\012", 167);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1151, "void Libc::Component::construct(Libc::Env &env) {\012\011// Set Env u"
"sed during runtime initialization\012\011nim_runtime_env = &env;\012\011Libc"
"::with_libc([&] () {\012\011\011// Initialize runtime and globals\012\011NimMai"
"n();\012\011// Call application construct\012\011\011nim_component_construct(&e"
"nv);\012\011});\012}\012\012", 268);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1152, "void NIM_POSIX_INIT NimMainInit(void) {\012\011NimMain();\012}\012\012", 55);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1153, "int main(void) {\012\011NimMain();\012\011return 0;\012}\012\012", 43);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1154, "int main(int argc, char** args, char** env) {\012\011cmdLine = args;\012"
"\011cmdCount = argc;\012\011gEnv = env;\012\011NimMain();\012\011return ", 114);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1155, "namespace ", 10);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1156, "0.20.0", 6);
extern NIM_CONST tyArray_WxFMsMy3sd8GAYe6uK9bvxw CPU_uYXopJX8pM87pQDCtmgWfQ;
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1157, "#define NIM_HOT_CODE_RELOADING\012", 31);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1158, "#define USE_NIM_NAMESPACE ", 26);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1160, "\012#include \"nimbase.h\"\012", 22);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1162, "#undef LANGUAGE_C\012#undef MIPSEB\012#undef MIPSEL\012#undef PPC\012#undef"
" R3000\012#undef R4000\012#undef i386\012#undef linux\012#undef mips\012#undef "
"near\012#undef far\012#undef powerpc\012#undef unix\012", 170);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1163, "#define nimfr_(x, y)\012#define nimln_(x, y)\012", 42);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1165, ".backup", 7);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1166, "diff ", 5);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1167, ".backup ", 8);
STRING_LITERAL(TM_MQdRN7fpbG7rPm4JpVVAhA_1168, "new file ", 9);

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

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

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

static N_INLINE(void, decRef_AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) - (NU32)(((NI) 8)));
	{
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_AT1eRuflKWyTTBdLjEDZbg_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_QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef_AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

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_M04YC71iJg1N7gBF3HZTngsystem)(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_M04YC71iJg1N7gBF3HZTngsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

static N_INLINE(void, nimSetMem_JE6t4x7Z3v2iVz27Nx0MRAmemory)(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_JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

N_LIB_PRIVATE N_NIMCALL(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg, initProcOptions_qttThLa3xHNEeApwU61sZA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg result;
	tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg opts;
	nimZeroMem((void*)(&result), sizeof(tySet_tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg));
	opts = (*(*(*m).g).config).options;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA3_;
		result = (opts & ~ 65536);
	}
	goto LA1_;
	LA3_: ;
	{
		result = opts;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*, newPreInitProc_Bb5LmORIEBm1ncSKlFHvVA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* result;
	result = (tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q*)0;
	result = newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	(*result).labels = ((NI) 100000);
	return result;
}

static N_INLINE(void, nimGCunrefRC1)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell_QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef_AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) + (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTempName_ao6gUnuVfQLtZ89c4kaIKfg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_4;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).labels)));
	result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T1_);
	TM_MQdRN7fpbG7rPm4JpVVAhA_4 = addInt((*m).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_4 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_4 > 2147483647) raiseOverflow();
	(*m).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_4);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, rawNewModule_a8P0HPhDv3Sesns79bJU0jA)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, NimStringDesc* filename) {
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* result;
	NimStringDesc* T1_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
	NimStringDesc* ndiName;
	result = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	result = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*) newObj((&NTI_NkKlBfvvsMUW70DxvxLVIg_), sizeof(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow));
	(*result).Sup.Sup.m_type = (&NTI_9cG6VsX22pOhho6kxyhFVow_);
	asgnRef((void**) (&(*result).g), g);
	T1_ = (NimStringDesc*)0;
	nimZeroMem((void*)T2_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashOwner_mSn9a9aX0NBzWqerwPW0qRww_4(module, T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = dollar__0A9bslyIJ49bWrftLGh13rvg(T2_);
	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 3);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_2));
appendString(T1_, T3_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	asgnRef((void**) (&(*result).tmpBase), rope_yShmEg9cffWxI7s5XzEKBow(T1_));
	if ((*result).headerFiles) { nimGCunrefNoCycle((*result).headerFiles); (*result).headerFiles = NIM_NIL; }
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&(*result).declaredThings));
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&(*result).declaredProtos));
	T4_ = (NimStringDesc*)0;
	T4_ = (*result).cfilename; (*result).cfilename = copyStringRC1(filename);
	if (T4_) nimGCunrefNoCycle(T4_);
	T5_ = (NimStringDesc*)0;
	T5_ = (*result).filename; (*result).filename = copyStringRC1(filename);
	if (T5_) nimGCunrefNoCycle(T5_);
	initTable_PWCx2pXbMQdMiGj5j6BNEQ(((NI) 64), (&(*result).typeCache));
	initTable_PWCx2pXbMQdMiGj5j6BNEQ(((NI) 64), (&(*result).forwTypeCache));
	asgnRef((void**) (&(*result).module), module);
	initTable_PWCx2pXbMQdMiGj5j6BNEQ(((NI) 64), (&(*result).typeInfoMarker));
	initCountTable_wWvh9aBvC7U2mbRYPFlmaXA(((NI) 64), (&(*result).sigConflicts));
	asgnRef((void**) (&(*result).initProc), newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, result));
	(*(*result).initProc).options = initProcOptions_qttThLa3xHNEeApwU61sZA(result);
	asgnRef((void**) (&(*result).preInitProc), newPreInitProc_Bb5LmORIEBm1ncSKlFHvVA(result));
	initNodeTable_RsAJjlvhLCgVyd9cZJtMRoQ((&(*result).dataCache));
	if ((*result).typeStack) { nimGCunrefRC1((*result).typeStack); (*result).typeStack = NIM_NIL; }
	asgnRef((void**) (&(*result).typeNodesName), getTempName_ao6gUnuVfQLtZ89c4kaIKfg(result));
	asgnRef((void**) (&(*result).nimTypesName), getTempName_ao6gUnuVfQLtZ89c4kaIKfg(result));
	{
		if (!(((*module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA8_;
		(*result).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0)) & 7);
		(*(*result).preInitProc).options &= ~(((NU32)1) << ((((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16)) & 31));
	}
	LA8_: ;
	{
		NimStringDesc* T14_;
		if (!(((*(*g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 6))&63U)))!=0)) goto LA12_;
		T14_ = (NimStringDesc*)0;
		T14_ = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*g).config, filename, NIM_TRUE);
		ndiName = noschangeFileExt(T14_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_5));
	}
	goto LA10_;
	LA12_: ;
	{
		ndiName = ((NimStringDesc*) NIM_NIL);
	}
	LA10_: ;
	open_jmWVcl5Qp9atJWCEkvq1SfA((&(*result).ndi), ndiName, (*g).config);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, rawNewModule_S73dIOk2nN4g6ZKuvNB9ceA_2)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* result;
	NimStringDesc* T1_;
	result = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_VW1RaR1l9c9bPnJxr1KuvIrg(conf, ((NI32) ((*module).position)));
	result = rawNewModule_a8P0HPhDv3Sesns79bJU0jA(g, module, T1_);
	return result;
}

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, newModule_S73dIOk2nN4g6ZKuvNB9ceA)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* result;
	result = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	result = rawNewModule_S73dIOk2nN4g6ZKuvNB9ceA_2(g, module, conf);
	{
		NI T3_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_6;
		T3_ = ((*g).modules ? (*g).modules->Sup.len : 0);
		if (!(T3_ <= (*module).position)) goto LA4_;
		TM_MQdRN7fpbG7rPm4JpVVAhA_6 = addInt((*module).position, ((NI) 1));
		asgnRef((void**) (&(*g).modules), (tySequence_SHVxAqOYtIy7teT1q4s0zQ*) setLengthSeqV2(&((*g).modules)->Sup, (&NTI_SHVxAqOYtIy7teT1q4s0zQ_), ((NI)chckRange((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_6), ((NI) 0), ((NI) 2147483647)))));
	}
	LA4_: ;
	if ((NU)((*module).position) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)) raiseIndexError2((*module).position,((*g).modules ? (*g).modules->Sup.len : 0)-1);
	asgnRef((void**) (&(*g).modules->data[(*module).position]), result);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w*, myOpen_uilCuJJCRRa62GOiz1PPkg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module) {
	tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* result;
	tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* T6_;
	result = (tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w*)0;
	{
		tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* T5_;
		if (!((*graph).backend == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*)0;
		T5_ = newModuleList_pKl1ntXN7hbkEFOmcSlHSg(graph);
		asgnRef((void**) (&(*graph).backend), &T5_->Sup);
	}
	LA3_: ;
	if ((*graph).backend) chckObj((*(*graph).backend).m_type, (&NTI_CpP4eJLbv5ZwofQXpESuGA_));
	g = ((tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*) ((*graph).backend));
	T6_ = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	T6_ = newModule_S73dIOk2nN4g6ZKuvNB9ceA(g, module, (*graph).config);
	result = &T6_->Sup;
	{
		NIM_BOOL T9_;
		NimStringDesc* f;
		NimStringDesc* T18_;
		NimStringDesc* T19_;
		T9_ = (NIM_BOOL)0;
		T9_ = (((*(*graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 26))&63U)))!=0);
		if (!(T9_)) goto LA10_;
		T9_ = ((*g).generatedHeader == NIM_NIL);
		LA10_: ;
		if (!T9_) goto LA11_;
		{
			if (!(((NI) 0) < ((*(*graph).config).headerFile ? (*(*graph).config).headerFile->Sup.len : 0))) goto LA15_;
			f = (*(*graph).config).headerFile;
		}
		goto LA13_;
		LA15_: ;
		{
			f = (*(*graph).config).projectFull;
		}
		LA13_: ;
		T18_ = (NimStringDesc*)0;
		T18_ = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*graph).config, f, NIM_TRUE);
		T19_ = (NimStringDesc*)0;
		T19_ = noschangeFileExt(T18_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_7));
		asgnRef((void**) (&(*g).generatedHeader), rawNewModule_a8P0HPhDv3Sesns79bJU0jA(g, module, T19_));
		(*(*g).generatedHeader).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3)) & 7);
	}
	LA11_: ;
	return result;
}

static N_INLINE(NIM_BOOL, skipCodegen_nwSFZweO0MiC1cK59cLXWvgpasses)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((NI) 0) < (*config).errorCounter);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn_a2BRACVCGIuooKjHNmoLsA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hcrOn_UhPXgqyDuuU9cKcS8FM883w((*(*m).g).config);
	return result;
}

static N_INLINE(NI, len_P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}

static N_INLINE(NI, safeLen_P89cqdlERShb9alU3iC0yj8w_2ast)(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_P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}

static N_INLINE(NI, subInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU32)(a) - (NU32)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU32) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, blockBody_tMtK9ba4LBR5bZYSR9avbIag)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0];
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(((NI16) 0) < (*b).frameLen)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*b).frameLen)));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent__ZkZcMxwzInnijXy5kz1K3A(T5_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T6_);
	}
	LA3_: ;
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1))- 0]);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*b).sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0]);
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, s_kOyJGmZMM2tMgCKSrvUE3gcgendata)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_14;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_14 = subInt(T1_, ((NI) 1));
	if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_14)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_14),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	result = &(*p).blocks->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_14)].sections[(s)- 0];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, indentLine_5PupwEBrKjp65kTtpnAp9bQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = r;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_16;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T5_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
				prepend_IM4kcMNkkOLJtqdEqSxR8A_2(&result, T5_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_16 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_16);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, endBlock_12ZfBiPs9cA29axtp2bvV6zg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd) {
	NI topBlock;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_12;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_13;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_12 = subInt(T1_, ((NI) 1));
	topBlock = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_12);
	TM_MQdRN7fpbG7rPm4JpVVAhA_13 = subInt(topBlock, ((NI) 1));
	if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_13)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_13),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = blockBody_tMtK9ba4LBR5bZYSR9avbIag((&(*p).blocks->data[topBlock]));
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_13)].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2))- 0], T2_);
	asgnRef((void**) (&(*p).blocks), (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_oUyaggHmIX9bpJcMeoG6lpA_), ((NI)chckRange(topBlock, ((NI) 0), ((NI) 2147483647)))));
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, blockEnd);
	add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T4_);
}

N_LIB_PRIVATE N_NIMCALL(void, endBlock_0dpuY9coTlraj8JXIe2BzVw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI topBlock;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_11;
	NI16 frameLen;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* blockEnd;
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_11 = subInt(T1_, ((NI) 1));
	topBlock = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_11);
	if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	frameLen = (*p).blocks->data[topBlock].frameLen;
	blockEnd = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(((NI16) 0) < frameLen)) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (frameLen)));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__KxpxlR6eqq3gRIOYTfR67w(T6_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T7_);
	}
	LA4_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
		if (!!(((*p).blocks->data[topBlock].label == NIM_NIL))) goto LA10_;
		nimZeroMem((void*)T12_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		if ((NU)(topBlock) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(topBlock,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
		T12_[0] = (*p).blocks->data[topBlock].label;
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent__IFeEbVhQpPGgxkLehuSiBA(T12_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T13_);
	}
	goto LA8_;
	LA10_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		nimZeroMem((void*)T15_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent__BYiowJAm8zF7RBRISElaLg(T15_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&blockEnd, T16_);
	}
	LA8_: ;
	endBlock_12ZfBiPs9cA29axtp2bvV6zg(p, blockEnd);
}

N_LIB_PRIVATE N_NIMCALL(NI, inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI result;
	result = (NI)0;
	{
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA x;
		tySequence_P9c6Y5h4sjjYLVGti5AELHg* colontmp_;
		NI i;
		NI L;
		NI T2_;
		nimZeroMem((void*)(&x), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
		colontmp_ = (tySequence_P9c6Y5h4sjjYLVGti5AELHg*)0;
		colontmp_ = (*p).nestedTryStmts;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_24;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				x.Field0 = colontmp_->data[i].Field0;
				x.Field1 = colontmp_->data[i].Field1;
				{
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_23;
					if (!x.Field1) goto LA7_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_23 = addInt(result, ((NI) 1));
					result = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_23);
				}
				LA7_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_24 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_24);
				{
					NI T11_;
					T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T11_ == L))) goto LA12_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA12_: ;
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, startBlockInternal_1ygdb876UM9astcNUXtgUBQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NI result;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_21;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_22;
	NI T2_;
	NI T3_;
	result = (NI)0;
	TM_MQdRN7fpbG7rPm4JpVVAhA_21 = addInt((*p).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_21 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_21 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_21);
	T1_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	result = T1_;
	TM_MQdRN7fpbG7rPm4JpVVAhA_22 = addInt(result, ((NI) 1));
	asgnRef((void**) (&(*p).blocks), (tySequence_oUyaggHmIX9bpJcMeoG6lpA*) setLengthSeqV2(&((*p).blocks)->Sup, (&NTI_oUyaggHmIX9bpJcMeoG6lpA_), ((NI)chckRange((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_22), ((NI) 0), ((NI) 2147483647)))));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	(*p).blocks->data[result].id = ((NI) ((*p).labels));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	T2_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	(*p).blocks->data[result].nestedTryStmts = ((NI16)chckRange(T2_, ((NI16) -32768), ((NI16) 32767)));
	if ((NU)(result) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(result,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	T3_ = (NI)0;
	T3_ = inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2(p);
	(*p).blocks->data[result].nestedExceptStmts = ((NI16)chckRange(T3_, ((NI16) -32768), ((NI16) 32767)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillLoc_o49bXuxJYpCizOgQ54UViIg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	{
		if (!((*a).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*a).k = k;
		unsureAsgnRef((void**) (&(*a).lode), lode);
		(*a).storage = s;
		{
			if (!((*a).r == NIM_NIL)) goto LA7_;
			unsureAsgnRef((void**) (&(*a).r), r);
		}
		LA7_: ;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleName_RaNE9b8A430I9bfpgZmdrC1w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* T5_;
		NimStringDesc* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(result == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T5_);
		T6_ = (NimStringDesc*)0;
		T6_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*(*m).module).name).s);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = idOrSig_sKAFwdXn9cKHxc9cdaovk69cA(s, T6_, (&(*m).sigConflicts));
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T7_);
		asgnRef((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA10_;
			doWrite_1nU29cZKUVlth4bckzRe6Tw((&(*m).ndi), s, (*(*m).g).config);
		}
		LA10_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	sym = (*n).sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_RaNE9b8A430I9bfpgZmdrC1w(m, sym);
		fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, useHeader_TAVDUakAwQnRHDK9cFe6L7g_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	{
		NimStringDesc* str;
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 6))&15U)))!=0)) goto LA3_;
		{
			if (!!(!(((*sym).annex == NIM_NIL)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_28));
		}
		LA7_: ;
		str = getStr_P2DOsHG6Jk4Siab3L2qwUg((*(*sym).annex).path);
		includeHeader_G5jzmdnwglHVk5qfDcXonA(m, str);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q)(NimStringDesc** result, NimStringDesc* value) {
	unsureAsgnRef((void**) (&(*result)), resizeString((*result), (value ? value->Sup.len : 0) + 0));
appendString((*result), value);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isReloadable_bilAk8nY4d5fxUpVg9bnphQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	NIM_BOOL T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T1_)) goto LA2_;
	T1_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0));
	LA2_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, pop_9c4Y4hTtvRqjj2EC8KP9aqDAsystem)(tySequence_WwUFq9cJ2xKRlsAWVEHyPRg** s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI L;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_33;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_33 = subInt(T1_, ((NI) 1));
	L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_33);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)) raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1);
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) setLengthSeqV2(&((*s))->Sup, (&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI)chckRange(L, ((NI) 0), ((NI) 2147483647)))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ)(NimStringDesc** result, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* value) {
	{
		NimStringDesc* str;
		str = (NimStringDesc*)0;
		{
			tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* stack;
			if (!!((value == NIM_NIL))) goto LA4_;
			stack = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
			asgnRef((void**) (&stack->data[0]), value);
			{
				while (1) {
					NI T8_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* it;
					T8_ = (stack ? stack->Sup.len : 0);
					if (!(((NI) 0) < T8_)) goto LA7;
					it = pop_9c4Y4hTtvRqjj2EC8KP9aqDAsystem((&stack));
					{
						while (1) {
							NI T15_;
							if (!!(((*it).left == NIM_NIL))) goto LA10;
							{
								if (!!(!(((*it).right == NIM_NIL)))) goto LA13_;
								failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_34));
							}
							LA13_: ;
							stack = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_));
							T15_ = stack->Sup.len++;
							asgnRef((void**) (&stack->data[T15_]), (*it).right);
							it = (*it).left;
							{
								if (!!(!((it == NIM_NIL)))) goto LA18_;
								failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_35));
							}
							LA18_: ;
						} LA10: ;
					}
					str = (*it).data;
					unsureAsgnRef((void**) (&(*result)), resizeString((*result), (str ? str->Sup.len : 0) + 0));
appendString((*result), str);
				} LA7: ;
			}
		}
		LA4_: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedCppType_IafZhvqpthq9b9c13SFhzAOw)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	x = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(1189055854743137808));
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*t).sym == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = !(((*x).sym == NIM_NIL));
	if (!(T5_)) goto LA6_;
	T5_ = (((*(*x).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA6_: ;
	T1_ = T5_;
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NimStringDesc* literal) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((*t).sym == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T4_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T3_ = ((*(*t).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		if (!T3_) goto LA7_;
		result = (*(*t).sym).loc.r;
	}
	goto LA1_;
	LA7_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(literal);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, detectStrVersion_V25kMWfh1jWVNQQI5BNfLg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NI result;
	result = (NI)0;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* core;
		if (!((*(*m).g).strVersion == ((NI) 0))) goto LA3_;
		core = getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_39));
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (core == NIM_NIL);
			if (T7_) goto LA8_;
			T7_ = !(((*core).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10)));
			LA8_: ;
			if (!T7_) goto LA9_;
			(*(*m).g).strVersion = ((NI) 1);
		}
		goto LA5_;
		LA9_: ;
		{
			NI64 T12_;
			T12_ = (NI64)0;
			T12_ = getInt_9bJVNhKKZVfVNAx9aQOEPuog((*core).ast);
			(*(*m).g).strVersion = ((NI)chckRange64(T12_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
		}
		LA5_: ;
	}
	LA3_: ;
	result = (*(*m).g).strVersion;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isActivated_FP3Xc9c0yhzvB6NLyfQJkYw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*prc).typ == NIM_NIL));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addForwardedProc_HbYPOpwLApFuBkISFGrmEQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NI T1_;
	asgnRef((void**) (&(*(*m).g).forwardedProcs), (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*(*m).g).forwardedProcs), (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_)));
	T1_ = (*(*m).g).forwardedProcs->Sup.len++;
	asgnRef((void**) (&(*(*m).g).forwardedProcs->data[T1_]), prc);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*, findPendingModule_Dhy9cmzSsJkQqlfDq047WUA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* ms;
	result = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	ms = getModule_xfh8ar7fDxVX2A4OO9b5sqQ(s);
	if ((NU)((*ms).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)) raiseIndexError2((*ms).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1);
	result = (*(*m).g).modules->data[(*ms).position];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNonReloadable_bilAk8nY4d5fxUpVg9bnphQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	NIM_BOOL result;
	NIM_BOOL T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T1_)) goto LA2_;
	T1_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
	LA2_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	NI64 T1_;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, typ);
	switch (((NI)chckRange64(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)))) {
	case ((NI) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 4);
	}
	break;
	case ((NI) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 5);
	}
	break;
	case ((NI) 4):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
	}
	break;
	case ((NI) 8):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 7);
	}
	break;
	default:
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapType_K9aceyVl15zb9aYN9b6YJ8TnA)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
{	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 0):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 0);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 2);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 1);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2(conf, typ);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA10_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_44));
		}
		LA10_: ;
		T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T12_);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 10):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 12):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
		T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T14_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T14_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		{
			NI64 T18_;
			T18_ = (NI64)0;
			T18_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, typ);
			if (!(T18_ < IL64(0))) goto LA19_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
		}
		goto LA16_;
		LA19_: ;
		{
			NI64 T22_;
			T22_ = (NI64)0;
			T22_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, typ);
			switch (((NI)chckRange64(T22_, ((NI) (-2147483647 -1)), ((NI) 2147483647)))) {
			case ((NI) 1):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 13);
			}
			break;
			case ((NI) 2):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 14);
			}
			break;
			case ((NI) 4):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
			}
			break;
			case ((NI) 8):
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 7);
			}
			break;
			default:
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 6);
			}
			break;
			}
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
		T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T30_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		base = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T30_, IL64(36134350135273744));
		switch ((*base).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
		{
			{
				tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T35_;
				T35_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
				T35_ = mapSetType_K9aceyVl15zb9aYN9b6YJ8TnA_2(conf, base);
				if (!(T35_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA36_;
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18);
			}
			goto LA33_;
			LA36_: ;
			{
				result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
			}
			LA33_: ;
		}
		break;
		default:
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 20);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 22);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA45_;
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 23);
		}
		goto LA43_;
		LA45_: ;
		{
			result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19);
		}
		LA43_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 21);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 24);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_45;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_46;
		TM_MQdRN7fpbG7rPm4JpVVAhA_45 = subInt((*typ).kind, ((NI) 31));
		TM_MQdRN7fpbG7rPm4JpVVAhA_46 = addInt((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_45), ((NI) 3));
		result = ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)chckRange((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_46), ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 0), ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 24)));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T56_;
			if (!!(((*typ).n == NIM_NIL))) goto LA54_;
			T56_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T56_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T56_);
		}
		goto LA52_;
		LA54_: ;
		{
			{
				if (!NIM_TRUE) goto LA60_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_47));
			}
			LA60_: ;
		}
		LA52_: ;
	}
	break;
	default:
	{
		{
			if (!NIM_TRUE) goto LA65_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_48));
		}
		LA65_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T4_ = (NIM_BOOL)0;
	T4_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
	if (!(T4_)) goto LA5_;
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	T4_ = ((*typ).sons->data[((NI) 0)] == NIM_NIL);
	LA5_: ;
	T3_ = T4_;
	if (T3_) goto LA6_;
	T3_ = isPureObject_IVXYI9cxSeivThgKCncHRnA_2(typ);
	LA6_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rettype) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(rettype == NIM_NIL)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, rettype);
		switch (T6_) {
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
			T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T8_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(rettype, IL64(36134350135273744));
			result = !(((*T8_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T8_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*T8_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T8_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21)));
		}
		break;
		case ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 19):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			NIM_BOOL T16_;
			NIM_BOOL T18_;
			NIM_BOOL T20_;
			t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(rettype, IL64(36134350135273744));
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(rettype);
				if (T12_) goto LA13_;
				T12_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(t);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (NIM_BOOL)0;
			T16_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(t);
			if (T16_) goto LA17_;
			T18_ = (NIM_BOOL)0;
			T18_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
			if (!(T18_)) goto LA19_;
			T20_ = (NIM_BOOL)0;
			T20_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(t);
			T18_ = !(T20_);
			LA19_: ;
			T16_ = T18_;
			LA17_: ;
			result = T16_;
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types)(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(NIM_BOOL, isKeyword_plkNLyLwnwkMYELCfG4Gxw)(tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* w) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*w).Sup.id) {
	case ((NI) 208) ... ((NI) 273):
	case ((NI) 4) ... ((NI) 66):
	case ((NI) 138):
	{
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	break;
	default:
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleParamName_RaNE9b8A430I9bfpgZmdrC1w_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = (*s).loc.r;
	{
		NimStringDesc* res;
		if (!(result == NIM_NIL)) goto LA3_;
		res = mangle_GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
			if (T8_) goto LA9_;
			T8_ = isKeyword_plkNLyLwnwkMYELCfG4Gxw((*s).name);
			LA9_: ;
			T7_ = T8_;
			if (T7_) goto LA10_;
			T7_ = contains_RafAVeUVSno4B47UdPqNlg((*(*(*m).g).config).cppDefines, res);
			LA10_: ;
			if (!T7_) goto LA11_;
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_50));
		}
		LA11_: ;
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
		asgnRef((void**) (&(*s).loc.r), result);
		{
			if (!(*m).ndi.enabled) goto LA15_;
			doWrite_1nU29cZKUVlth4bckzRe6Tw((&(*m).ndi), s, (*(*m).g).config);
		}
		LA15_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw, paramStorageLoc_lQqiacOo5FnwNzTrDjiPvw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param) {
	tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw result;
	result = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*param).typ, IL64(140737496744192));
		if (!!(((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48)))) goto LA4_;
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr_W9aw79b629bysnh3DDOpE3OTg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* pt;
{	result = (NIM_BOOL)0;
	pt = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*s).typ, IL64(36134350135273744));
	{
		if (!!(!((((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11) == (*s).kind)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_51));
	}
	LA3_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 14))&63U)))!=0)) goto LA7_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA5_;
	LA7_: ;
	{
		if (!(((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 13))&63U)))!=0)) goto LA10_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA5_;
	LA10_: ;
	LA5_: ;
	switch ((*pt).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = !(((*(*s).typ).sym == NIM_NIL));
			if (!(T15_)) goto LA16_;
			T15_ = (((*(*(*s).typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA17_: ;
		{
			NIM_BOOL T20_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_52;
			NI64 T22_;
			T20_ = (NIM_BOOL)0;
			T20_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0);
			if (T20_) goto LA21_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_52 = mulInt((*conf).target.floatSize, ((NI) 3));
			T22_ = (NI64)0;
			T22_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, pt);
			T20_ = (((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_52))) < T22_);
			LA21_: ;
			if (!T20_) goto LA23_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA23_: ;
		{
			NIM_BOOL T26_;
			T26_ = (NIM_BOOL)0;
			T26_ = !((retType == NIM_NIL));
			if (!(T26_)) goto LA27_;
			T26_ = ((*retType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA27_: ;
			if (!T26_) goto LA28_;
			result = NIM_TRUE;
		}
		goto LA13_;
		LA28_: ;
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = (((*pt).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (!(T31_)) goto LA32_;
			if ((NU)(((NI) 0)) >= (NU)((*pt).sons ? (*pt).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*pt).sons ? (*pt).sons->Sup.len : 0)-1);
			T31_ = ((*pt).sons->data[((NI) 0)] == NIM_NIL);
			LA32_: ;
			if (!T31_) goto LA33_;
			result = NIM_FALSE;
		}
		goto LA13_;
		LA33_: ;
		{
			result = NIM_TRUE;
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			T39_ = !((retType == NIM_NIL));
			if (!(T39_)) goto LA40_;
			T39_ = ((*retType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47));
			LA40_: ;
			if (!T39_) goto LA41_;
			result = NIM_TRUE;
		}
		goto LA37_;
		LA41_: ;
		{
			NIM_BOOL T44_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_53;
			NI64 T45_;
			T44_ = (NIM_BOOL)0;
			TM_MQdRN7fpbG7rPm4JpVVAhA_53 = mulInt((*conf).target.floatSize, ((NI) 3));
			T45_ = (NI64)0;
			T45_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, pt);
			T44_ = (((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_53))) < T45_);
			if (T44_) goto LA46_;
			T44_ = (((*s).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 19))&31U)))!=0);
			LA46_: ;
			result = T44_;
		}
		LA37_: ;
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cacheGetType_2wgznvEs9bt7XaKJgVohBCw)(tyObject_Table_gZ3EYQdz9coOB7ngN9a1cqwA tab, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getOrDefault_tD8SQMueXhdfvpBnagcsKg(tab, sig);
	return result;
}

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

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, typeName_qvCJ9bux56nS82Shxh5hLNg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	typ_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743137808));
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		NimStringDesc* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*typ_2).sym == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((*typ_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*typ_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T8_ = (NimStringDesc*)0;
		T8_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*(*typ_2).sym).name).s);
		T7_ = rawNewString((reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + 1);
appendString(T7_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T7_, 95);
appendString(T7_, T8_);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = typ;
	{
		while (1) {
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !(((*t).sym == NIM_NIL));
				if (!(T5_)) goto LA6_;
				T5_ = !(((96 & (*(*t).sym).flags) == 0));
				LA6_: ;
				if (!T5_) goto LA7_;
				result = (*(*t).sym).loc.r;
				goto BeforeRet_;
			}
			LA7_: ;
			{
				if (!((IL64(1189055854743137808) &((NU64)1<<((NU)((*t).kind)&63U)))!=0)) goto LA11_;
				t = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			}
			goto LA9_;
			LA11_: ;
			{
				goto LA1;
			}
			LA9_: ;
		}
	} LA1: ;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45))) goto LA16_;
		typ_2 = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
	}
	goto LA14_;
	LA16_: ;
	{
		typ_2 = typ;
	}
	LA14_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		NimStringDesc* T24_;
		if (!((*typ_2).loc.r == NIM_NIL)) goto LA21_;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = typeName_qvCJ9bux56nS82Shxh5hLNg(typ_2);
		T24_ = (NimStringDesc*)0;
		T24_ = dollar__0A9bslyIJ49bWrftLGh13rvg(sig);
		asgnRef((void**) (&(*typ_2).loc.r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T23_, T24_));
	}
	goto LA19_;
	LA21_: ;
	{
	}
	LA19_: ;
	result = (*typ_2).loc.r;
	{
		NimStringDesc* T30_;
		if (!(result == NIM_NIL)) goto LA28_;
		T30_ = (NimStringDesc*)0;
		T30_ = rawNewString((reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T30_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_54));
appendString(T30_, reprEnum((NI)(*typ_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T30_);
	}
	LA28_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isImportedType_IafZhvqpthq9b9c13SFhzAOw_2)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !(((*t).sym == NIM_NIL));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addForwardStructFormat_pzRGCZRDAEWnDSHC2tztFg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* structOrUnion, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typename_0) {
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = structOrUnion;
		T7_[1] = typename_0;
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__vzbf0XksfaFTXNoTT6BCwA(T7_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T10_[0] = structOrUnion;
		T10_[1] = typename_0;
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent__lQVSDPkAFXHNoa1N7jYrNw(T10_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 3))- 0], T11_);
	}
	LA1_: ;
}
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_55)(void) {
	nimGCvisit((void*)cachedUnion_37c7SFtO1oJKGkAWrI71Fw, 0);
}
static N_NIMCALL(void, TM_MQdRN7fpbG7rPm4JpVVAhA_57)(void) {
	nimGCvisit((void*)cachedStruct_9a5hqgEB1sqNj6CL5z0oy5w, 0);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, structOrUnion_TLFDupRCidtMx8175pusWQ)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744177680));
	{
		if (!(((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0)) goto LA3_;
		result = cachedUnion_37c7SFtO1oJKGkAWrI71Fw;
	}
	goto LA1_;
	LA3_: ;
	{
		result = cachedStruct_9a5hqgEB1sqNj6CL5z0oy5w;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, pushType_4q3XOfd3NI3C8cSNkaF9cWA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NI T1_;
	asgnRef((void**) (&(*m).typeStack), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*m).typeStack), (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
	T1_ = (*m).typeStack->Sup.len++;
	asgnRef((void**) (&(*m).typeStack->data[T1_]), typ);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* concrete;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
	{
		if (!!((result == NIM_NIL))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	result = getTypePre_zLenRlTUJy0Mn9b8JKwzEcQ(m, typ, sig);
	{
		if (!!((result == NIM_NIL))) goto LA7_;
		goto BeforeRet_;
	}
	LA7_: ;
	concrete = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(4647820368562661648));
	switch ((*concrete).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, typ, sig);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
		{
			NIM_BOOL T12_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
			T12_ = (NIM_BOOL)0;
			T12_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(concrete);
			if (!!(T12_)) goto LA13_;
			T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			addForwardStructFormat_pzRGCZRDAEWnDSHC2tztFg(m, T15_, result);
		}
		goto LA10_;
		LA13_: ;
		{
			pushType_4q3XOfd3NI3C8cSNkaF9cWA(m, concrete);
		}
		LA10_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = X5BX5D__KricVWBSqqSbgxpQ5up3Ig((&(*m).forwTypeCache), sig);
			if (!!(((*T19_) == result))) goto LA20_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_59));
		}
		LA20_: ;
	}
	break;
	default:
	{
		NimStringDesc* T23_;
		T23_ = (NimStringDesc*)0;
		T23_ = rawNewString((reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T23_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_60));
appendString(T23_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T23_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T23_);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, seqStar_hiFj6GH2C6Qv8bI0r9caT5A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	{
		if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		result = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		result = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etB;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	etB = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	switch ((*etB).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(etB);
			if (!(T4_)) goto LA5_;
			T4_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA5_: ;
			if (!T4_) goto LA6_;
			result = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
		}
		goto LA2_;
		LA6_: ;
		{
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
			nimZeroMem((void*)T9_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_UdooXLclXL8uld7qLI5JRw(t, 2, T9_);
			result = getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2(m, t, T9_);
			pushType_4q3XOfd3NI3C8cSNkaF9cWA(m, t);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA13_;
			result = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
		}
		goto LA11_;
		LA13_: ;
		{
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T16_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
			NimStringDesc* T18_;
			nimZeroMem((void*)T16_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_UdooXLclXL8uld7qLI5JRw(t, 2, T16_);
			T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2(m, t, T16_);
			T18_ = (NimStringDesc*)0;
			T18_ = seqStar_hiFj6GH2C6Qv8bI0r9caT5A(m);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T17_, T18_);
			pushType_4q3XOfd3NI3C8cSNkaF9cWA(m, t);
		}
		LA11_: ;
	}
	break;
	default:
	{
		result = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, t, check);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w, mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w result;
	result = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
	result = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, typ);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcParams_uApDq1rn2zPxULBMpTSrxQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** rettype, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** params, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check, NIM_BOOL declareEnvironment, NIM_BOOL weakDep) {
	unsureAsgnRef((void**) (&(*params)), NIM_NIL);
	{
		NIM_BOOL T3_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T7_;
		T3_ = (NIM_BOOL)0;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T3_ = ((*t).sons->data[((NI) 0)] == NIM_NIL);
		if (T3_) goto LA4_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T3_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*t).sons->data[((NI) 0)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		unsureAsgnRef((void**) (&(*rettype)), percent__G9aA37gQrW88KHzpCAwhgjQ(T7_, 0));
	}
	goto LA1_;
	LA5_: ;
	{
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		unsureAsgnRef((void**) (&(*rettype)), getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check));
	}
	LA1_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_63;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
					tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw T29_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr;
					NI j;
					{
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)-1);
						if (!!(((*(*(*t).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA15_;
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_49));
					}
					LA15_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)-1);
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*t).n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*t).n).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
					param = (*(*(*t).n).sons->data[i]).sym;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types((*param).typ);
						if (!T19_) goto LA20_;
						goto LA12;
					}
					LA20_: ;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
						if (!!(((*params) == NIM_NIL))) goto LA24_;
						nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T27_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T26_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(params, T27_);
					}
					LA24_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)-1);
					T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T28_ = mangleParamName_RaNE9b8A430I9bfpgZmdrC1w_2(m, param);
					T29_ = (tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw)0;
					T29_ = paramStorageLoc_lQqiacOo5FnwNzTrDjiPvw(param);
					fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*param).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), (*(*t).n).sons->data[i], T28_, T29_);
					{
						NIM_BOOL T32_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T36_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
						T32_ = (NIM_BOOL)0;
						T32_ = ccgIntroducedPtr_W9aw79b629bysnh3DDOpE3OTg((*(*m).g).config, param, (*t).sons->data[((NI) 0)]);
						if (!T32_) goto LA33_;
						T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T35_ = getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g(m, (*param).typ, check);
						add_IM4kcMNkkOLJtqdEqSxR8A(params, T35_);
						nimZeroMem((void*)T36_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T37_ = percent__6d8an6hdqiIrRjPW1wEh5Q(T36_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(params, T37_);
						(*param).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
						(*param).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
					}
					goto LA30_;
					LA33_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!weakDep) goto LA39_;
						T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g(m, (*param).typ, check);
						add_IM4kcMNkkOLJtqdEqSxR8A(params, T41_);
					}
					goto LA30_;
					LA39_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
						T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T43_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*param).typ, check);
						add_IM4kcMNkkOLJtqdEqSxR8A(params, T43_);
					}
					LA30_: ;
					nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T45_ = percent__gMbiWAc0IjihIq46IYhmAw(T44_, 0);
					add_IM4kcMNkkOLJtqdEqSxR8A(params, T45_);
					add_IM4kcMNkkOLJtqdEqSxR8A(params, (*param).loc.r);
					arr = (*param).typ;
					{
						if (!((*arr).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*arr).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA48_;
						arr = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(arr);
					}
					LA48_: ;
					j = ((NI) 0);
					{
						while (1) {
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T56_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_62;
							if (!((*arr).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*arr).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA51;
							{
								if (!((*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47))) goto LA54_;
								(*param).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
							}
							LA54_: ;
							nimZeroMem((void*)T56_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T56_[0] = (*param).loc.r;
							T56_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (j)));
							T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T57_ = percent__uHsu7fLXac4OhMNd79bSJwA(T56_, 2);
							add_IM4kcMNkkOLJtqdEqSxR8A(params, T57_);
							TM_MQdRN7fpbG7rPm4JpVVAhA_62 = addInt(j, ((NI) 1));
							j = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_62);
							if ((NU)(((NI) 0)) >= (NU)((*arr).sons ? (*arr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*arr).sons ? (*arr).sons->Sup.len : 0)-1);
							arr = (*arr).sons->data[((NI) 0)];
						} LA51: ;
					}
				} LA12: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_63 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_63);
			} LA11: ;
		}
	}
	{
		NIM_BOOL T60_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr_2;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
		T60_ = (NIM_BOOL)0;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T60_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		if (!(T60_)) goto LA61_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T60_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*t).sons->data[((NI) 0)]);
		LA61_: ;
		if (!T60_) goto LA62_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		arr_2 = (*t).sons->data[((NI) 0)];
		{
			if (!!(((*params) == NIM_NIL))) goto LA66_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		}
		LA66_: ;
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			T70_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T70_ = mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3((*(*m).g).config, (*t).sons->data[((NI) 0)]);
			if (!!((T70_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)))) goto LA71_;
			T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T73_ = getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g(m, arr_2, check);
			add_IM4kcMNkkOLJtqdEqSxR8A(params, T73_);
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
		}
		goto LA68_;
		LA71_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, arr_2, check);
			add_IM4kcMNkkOLJtqdEqSxR8A(params, T75_);
		}
		LA68_: ;
		nimZeroMem((void*)T76_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent__3WM9b4PeyDKoIDFMvYcQX3w(T76_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(params, T77_);
	}
	LA62_: ;
	{
		NIM_BOOL T80_;
		T80_ = (NIM_BOOL)0;
		T80_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		if (!(T80_)) goto LA81_;
		T80_ = declareEnvironment;
		LA81_: ;
		if (!T80_) goto LA82_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA86_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		}
		LA86_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_65));
	}
	LA82_: ;
	{
		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA90_;
		{
			if (!!(((*params) == NIM_NIL))) goto LA94_;
			add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		}
		LA94_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_66));
	}
	LA90_: ;
	{
		if (!((*params) == NIM_NIL)) goto LA98_;
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_67));
	}
	goto LA96_;
	LA98_: ;
	{
		add_yG4AKzsBRS1W4MANDlXQeg(params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	}
	LA96_: ;
	unsureAsgnRef((void**) (&(*params)), amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69), (*params)));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genProcHeader_OWG529cW3RTHLgDJuQoIH8A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL asPtr) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* asPtrStr;
	NimStringDesc* T21_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0)) goto LA3_;
		{
			if (!(((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 3))&7U)))!=0)) goto LA7_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_40));
		}
		goto LA5_;
		LA7_: ;
		{
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_41));
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5));
		if (T12_) goto LA13_;
		T12_ = asPtr;
		LA13_: ;
		T11_ = T12_;
		if (T11_) goto LA14_;
		T11_ = isNonReloadable_bilAk8nY4d5fxUpVg9bnphQ_2(m, prc);
		LA14_: ;
		if (!T11_) goto LA15_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
	}
	goto LA1_;
	LA15_: ;
	{
		if (!((96 & (*prc).flags) == 0)) goto LA18_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_43));
	}
	goto LA1_;
	LA18_: ;
	LA1_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&check));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = mangleName_RaNE9b8A430I9bfpgZmdrC1w(m, prc);
	fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*prc).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 7), (*(*prc).ast).sons->data[((NI) 0)], T20_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	genProcParams_uApDq1rn2zPxULBMpTSrxQ(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
	T21_ = (NimStringDesc*)0;
	{
		if (!asPtr) goto LA24_;
		T21_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_70));
	}
	goto LA22_;
	LA24_: ;
	{
		T21_ = ((NimStringDesc*) NIM_NIL);
	}
	LA22_: ;
	asPtrStr = rope_yShmEg9cffWxI7s5XzEKBow(T21_);
	name = (*prc).loc.r;
	{
		NIM_BOOL T29_;
		T29_ = (NIM_BOOL)0;
		T29_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, prc);
		if (!(T29_)) goto LA30_;
		T29_ = !(asPtr);
		LA30_: ;
		if (!T29_) goto LA31_;
		add_yG4AKzsBRS1W4MANDlXQeg(&name, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71));
	}
	LA31_: ;
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		if (!((*prc).constraint == 0)) goto LA35_;
		nimZeroMem((void*)T37_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T37_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*(*prc).typ).callConv)- 0]);
		T37_[1] = asPtrStr;
		T37_[2] = rettype;
		T37_[3] = name;
		T37_[4] = params;
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = percent__p4LhaCxKpUERrq9cB9b8Mp9cw(T37_, 5);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T38_);
	}
	goto LA33_;
	LA35_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* asPtrStr_2;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T47_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			if (!asPtr) goto LA42_;
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82));
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T44_, name);
			asPtrStr_2 = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		}
		goto LA40_;
		LA42_: ;
		{
			asPtrStr_2 = name;
		}
		LA40_: ;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*prc).constraint).kind)>>3] &(1U<<((NU)((*(*prc).constraint).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		nimZeroMem((void*)T47_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T47_[0] = rettype;
		T47_[1] = asPtrStr_2;
		T47_[2] = params;
		result = runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA((*(*prc).constraint).strVal, T47_, 3);
	}
	LA33_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T3_ = ((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_88;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						NIM_BOOL T13_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						T13_ = (NIM_BOOL)0;
						T13_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag((*n).sons->data[i]);
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_88 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_88);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, easyResultAsgn_oKhRC9bEKTxG5epdNiNWZ0w)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI i;
		i = ((NI) 0);
		{
			while (1) {
				NIM_BOOL T4_;
				NI T5_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_87;
				T4_ = (NIM_BOOL)0;
				T5_ = (NI)0;
				T5_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
				T4_ = (i < T5_);
				if (!(T4_)) goto LA6_;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T4_ = ((*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n).sons->data[i]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*(*n).sons->data[i]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98) || (*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101) || (*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125) || (*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159));
				LA6_: ;
				if (!T4_) goto LA3;
				TM_MQdRN7fpbG7rPm4JpVVAhA_87 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_87);
			} LA3: ;
		}
		{
			NI T9_;
			T9_ = (NI)0;
			T9_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(i < T9_)) goto LA10_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = easyResultAsgn_oKhRC9bEKTxG5epdNiNWZ0w((*n).sons->data[i]);
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T19_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T16_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T16_)) goto LA17_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T16_ = ((*(*(*n).sons->data[((NI) 0)]).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T19_ = (NIM_BOOL)0;
			T19_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag((*n).sons->data[((NI) 1)]);
			T15_ = !(T19_);
			LA18_: ;
			if (!T15_) goto LA20_;
			(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14)) & 31);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = (*n).sons->data[((NI) 1)];
			goto BeforeRet_;
		}
		LA20_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T25_;
			T25_ = (NI)0;
			T25_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T25_)) goto LA26_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = easyResultAsgn_oKhRC9bEKTxG5epdNiNWZ0w((*n).sons->data[((NI) 0)]);
			{
				if (!!((result == NIM_NIL))) goto LA30_;
				(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14)) & 31);
			}
			LA30_: ;
		}
		LA26_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, shallow_cnzwaZQQIa73ryXE31wijQsystem)(NimStringDesc** s) {
	TGenericSeq* s_2;
	s_2 = ((TGenericSeq*) ((*s)));
	{
		NimStringDesc* T5_;
		if (!(s_2 == NIM_NIL)) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = mnewString(((NI) 0));
		s_2 = ((TGenericSeq*) (T5_));
	}
	LA3_: ;
	{
		if (!((NI)((*s_2).reserved & ((NI) 1073741824)) == ((NI) 0))) goto LA8_;
		(*s_2).reserved = (NI)((*s_2).reserved | ((NI) (-2147483647 -1)));
	}
	LA8_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((2100008 &(1U<<((NU)((*s).kind)&31U)))!=0))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_89));
	}
	LA3_: ;
	result = (*s).loc.r;
	{
		NimStringDesc* key;
		NI counter;
		if (!(result == NIM_NIL)) goto LA7_;
		key = mangle_GxzvEIRbrShQbyJNboTw7A((*(*s).name).s);
		shallow_cnzwaZQQIa73ryXE31wijQsystem((&key));
		counter = getOrDefault_9bK0jMctS3Kpz9aVaHPQI4gA((*p).sigConflicts, key, ((NI) 0));
		result = rope_yShmEg9cffWxI7s5XzEKBow(key);
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5))) goto LA11_;
			{
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_90;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
				if (!!((counter == ((NI) 0)))) goto LA15_;
				TM_MQdRN7fpbG7rPm4JpVVAhA_90 = addInt(counter, ((NI) 1));
				T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T17_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_90))));
				T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3), T17_);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T18_);
			}
			LA15_: ;
		}
		goto LA9_;
		LA11_: ;
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_91;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			T21_ = !((counter == ((NI) 0)));
			if (T21_) goto LA22_;
			T21_ = isKeyword_plkNLyLwnwkMYELCfG4Gxw((*s).name);
			LA22_: ;
			T20_ = T21_;
			if (T20_) goto LA23_;
			T20_ = contains_RafAVeUVSno4B47UdPqNlg((*(*(*(*p).module).g).config).cppDefines, key);
			LA23_: ;
			if (!T20_) goto LA24_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_91 = addInt(counter, ((NI) 1));
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_91))));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3), T26_);
			add_IM4kcMNkkOLJtqdEqSxR8A(&result, T27_);
		}
		goto LA9_;
		LA24_: ;
		LA9_: ;
		inc_cue4X8ebEalt3pWXvkS49cw((&(*p).sigConflicts), key, ((NI) 1));
		asgnRef((void**) (&(*s).loc.r), result);
		{
			if (!!(((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5)))) goto LA30_;
			{
				if (!(*(*p).module).ndi.enabled) goto LA34_;
				doWrite_1nU29cZKUVlth4bckzRe6Tw((&(*(*p).module).ndi), s, (*(*(*p).module).g).config);
			}
			LA34_: ;
		}
		LA30_: ;
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, localVarDecl_NYI5fC69aIqZGRakncXv9cNQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	s = (*n).sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ(p, s);
		fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 2), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		{
			if (!((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			(*s).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2)) & 15);
		}
		LA8_: ;
	}
	LA3_: ;
	result = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*s).typ);
	{
		if (!((*s).constraint == 0)) goto LA12_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA16_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
		}
		LA16_: ;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA20_;
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93));
		}
		LA20_: ;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*s).loc.r);
	}
	goto LA10_;
	LA12_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T23_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*s).constraint).kind)>>3] &(1U<<((NU)((*(*s).constraint).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		nimZeroMem((void*)T23_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T23_[0] = result;
		T23_[1] = (*s).loc.r;
		result = runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA((*(*s).constraint).strVal, T23_, 2);
	}
	LA10_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initLoc_qlujIAW86QclHYUVxlHRiQ)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg k, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* lode, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	(*result).k = k;
	(*result).storage = s;
	unsureAsgnRef((void**) (&(*result).lode), lode);
	unsureAsgnRef((void**) (&(*result).r), NIM_NIL);
	(*result).flags = 0;
}

N_LIB_PRIVATE N_NIMCALL(void, initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	initLoc_qlujIAW86QclHYUVxlHRiQ(result, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T5_ = !(((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T5_) goto LA6_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T5_ = ((*(*(*e).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			T11_ = ((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T11_)) goto LA12_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T11_ = (((*(*(*e).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA12_: ;
			if (!T11_) goto LA13_;
			(*result).flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) & 15);
		}
		LA13_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		(*result).flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) & 15);
	}
	LA1_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdLoc_xidyzuHqIciXbQyEOKahDg)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = a.r;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = result;
		result = percent__TbMwXzwNL7txOQADiTjwKA(T5_, 1);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getCFile_bmANOnd5oQhXRrTCn9a8S4g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NimStringDesc* result;
	NimStringDesc* ext;
	NimStringDesc* T13_;
	NimStringDesc* T14_;
	result = (NimStringDesc*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_100));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 3));
		if (T8_) goto LA9_;
		T8_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_101));
	}
	goto LA1_;
	LA10_: ;
	{
		ext = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_102));
	}
	LA1_: ;
	T13_ = (NimStringDesc*)0;
	T13_ = withPackageName_9bhgFqdEZM7DoX7p3U69bQEg_2((*(*m).g).config, (*m).cfilename);
	T14_ = (NimStringDesc*)0;
	T14_ = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T13_, NIM_TRUE);
	result = noschangeFileExt(T14_, ext);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath_ao6gUnuVfQLtZ89c4kaIKfg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	tyTuple_7q7q3E6Oj24ZNVJb9aonhAg T2_;
	NimStringDesc* dir;
	NimStringDesc* name;
	NimStringDesc* ext;
	NimStringDesc* filename;
	tyArray_nHXaesL0DJZHyVS07ARPRA T3_;
	NimStringDesc* T4_;
	NimStringDesc* T5_;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	T1_ = getCFile_bmANOnd5oQhXRrTCn9a8S4g(m);
	nimZeroMem((void*)(&T2_), sizeof(tyTuple_7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile_z7B4FbwzX3Y0L1EA2lLGXw(T1_, (&T2_));
	dir = (NimStringDesc*)0;
	dir = T2_.Field0;
	name = (NimStringDesc*)0;
	name = T2_.Field1;
	ext = (NimStringDesc*)0;
	ext = T2_.Field2;
	if ((*(*(*m).g).config).target.targetOS < 1 || (*(*(*m).g).config).target.targetOS > 28) raiseIndexError3((*(*(*m).g).config).target.targetOS, 1, 28);
	nimZeroMem((void*)T3_, sizeof(tyArray_nHXaesL0DJZHyVS07ARPRA));
	T4_ = (NimStringDesc*)0;
	T4_ = rawNewString((name ? name->Sup.len : 0) + (ext ? ext->Sup.len : 0) + 0);
appendString(T4_, name);
appendString(T4_, ext);
	T3_[0] = T4_;
	filename = nsuFormatOpenArray(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[((*(*(*m).g).config).target.targetOS)- 1].Field2, T3_, 1);
	T5_ = (NimStringDesc*)0;
	T5_ = rawNewString((dir ? dir->Sup.len : 0) + (filename ? filename->Sup.len : 0) + 1);
appendString(T5_, dir);
appendString(T5_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_103));
appendString(T5_, filename);
	result = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T5_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* T1_;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
	T1_ = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA(m, s);
	result = getModuleDllPath_ao6gUnuVfQLtZ89c4kaIKfg_2(T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, declareNimType_w2jZebce9cvMAGUdQoJVOuA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* str, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* ownerModule) {
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = str;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__E0nDsXp7tY4mC1BnrrjWmA(T6_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T7_);
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = str;
		T8_[1] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, ownerModule);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent__mbjeaBETPixw9bUvyk31B6g(T8_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T9_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T11_[0] = str;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__AfR9bXoD9bcehKoM7F8O79bYA(T11_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T12_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T6_, name);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	}
	goto LA1_;
	LA4_: ;
	{
		result = name;
	}
	LA1_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	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_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(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_Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI nimtypeKind;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nameHcr;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* size;
	tyArray_f7nG5LD47BH5K9c6mASit3g T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	NI flags;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
	nimtypeKind = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(typ);
		if (!T3_) goto LA4_;
		nimtypeKind = ((NI) 18);
	}
	goto LA1_;
	LA4_: ;
	{
		nimtypeKind = (*typ).kind;
	}
	LA1_: ;
	nameHcr = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	size = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0)) goto LA9_;
		size = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_106));
	}
	goto LA7_;
	LA9_: ;
	{
		size = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, origType);
	}
	LA7_: ;
	nimZeroMem((void*)T12_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T12_[0] = nameHcr;
	T12_[1] = size;
	T12_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (nimtypeKind)));
	T12_[3] = base;
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = percent__dwsIkeXQe0E8HKrzN9aRE5A(T12_, 4);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T13_);
	flags = ((NI) 0);
	{
		NIM_BOOL T16_;
		T16_ = (NIM_BOOL)0;
		T16_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(typ);
		if (!!(T16_)) goto LA17_;
		flags = (NI)(flags | ((NI) 1));
	}
	LA17_: ;
	{
		NIM_BOOL T21_;
		T21_ = (NIM_BOOL)0;
		T21_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_3(typ);
		if (!!(T21_)) goto LA22_;
		flags = (NI)(flags | ((NI) 2));
	}
	LA22_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		if (!!((flags == ((NI) 0)))) goto LA26_;
		nimZeroMem((void*)T28_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T28_[0] = nameHcr;
		T28_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (flags)));
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent__fIR1FG0QPRsKvEYKq4tJUQ(T28_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T29_);
	}
	LA26_: ;
	T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
	(void)(T30_);
	{
		NIM_BOOL T33_;
		NimStringDesc* typename_1;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T52_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T55_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
		T33_ = (NIM_BOOL)0;
		T33_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_107));
		if (!T33_) goto LA34_;
		T36_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		{
			if (!!(((*origType).typeInst == NIM_NIL))) goto LA39_;
			T36_ = (*origType).typeInst;
		}
		goto LA37_;
		LA39_: ;
		{
			T36_ = origType;
		}
		LA37_: ;
		typename_1 = typeToString_QlvraUan7WbHowhAbvDvdA(T36_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
		{
			NIM_BOOL T44_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T46_;
			NimStringDesc* T49_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
			NimStringDesc* T51_;
			T44_ = (NIM_BOOL)0;
			T44_ = eqStrings(typename_1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_108));
			if (!(T44_)) goto LA45_;
			T46_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T46_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(36275087638268176));
			T44_ = !(((*T46_).sym == NIM_NIL));
			LA45_: ;
			if (!T44_) goto LA47_;
			T49_ = (NimStringDesc*)0;
			T50_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T50_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(36275087638268176));
			T51_ = (NimStringDesc*)0;
			T51_ = dollar__aQsiZUvE4SFfnWyKx1JgKA_2((*(*m).g).config, (*(*T50_).sym).info);
			T49_ = rawNewString((T51_ ? T51_->Sup.len : 0) + 21);
appendString(T49_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_109));
appendString(T49_, T51_);
			typename_1 = T49_;
		}
		LA47_: ;
		nimZeroMem((void*)T52_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T52_[0] = nameHcr;
		T52_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(typename_1);
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent__jADQs38xm62v1oxF2cSvEw(T52_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T53_);
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_110));
		(void)(T54_);
		nimZeroMem((void*)T55_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T55_[0] = nameHcr;
		T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = percent__DZV83DjWnQ9a19atC2oeswXg(T55_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T56_);
	}
	LA34_: ;
	{
		NIM_BOOL T59_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T62_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T64_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
		T59_ = (NIM_BOOL)0;
		T59_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T59_) goto LA60_;
		nimZeroMem((void*)T62_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T62_[0] = name;
		T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T63_ = percent__E0nDsXp7tY4mC1BnrrjWmA(T62_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T63_);
		nimZeroMem((void*)T64_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T64_[0] = name;
		T64_[1] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = percent__sfvTjNjtOC86mU9bHczF6ow(T64_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).hcrCreateTypeInfosProc, T65_);
	}
	goto LA57_;
	LA60_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T67_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
		nimZeroMem((void*)T67_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T67_[0] = name;
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = percent__9ab1aKSDn70Vte0NcIItnaQ(T67_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T68_);
	}
	LA57_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, fakeClosureType_OVHn4Lx3T69a1BHJ0KreWYw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* r;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType_SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18), owner);
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = newType_SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26), owner);
	rawAddSon_9a8CdZqChTyqzq5bpSL3TzA(result, T1_);
	r = newType_SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22), owner);
	obj = createObj_vpIcmDdKH7ed0dcs37b1GQ((*(*m).g).graph, owner, (*owner).info, NIM_FALSE);
	rawAddSon_9a8CdZqChTyqzq5bpSL3TzA(r, obj);
	rawAddSon_9a8CdZqChTyqzq5bpSL3TzA(result, r);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_115;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = (*m).typeNodesName;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*m).typeNodes)));
	result = percent__jadqNPnY9aM3oxYK6jarLrA(T1_, 2);
	TM_MQdRN7fpbG7rPm4JpVVAhA_115 = addInt((*m).typeNodes, ((NI) 1));
	(*m).typeNodes = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_115);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTNimNodeArray_8W0lvt5dkO9cVIIfffRji9cQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* size) {
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = name;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__LvsIDF8olc08xBiqCYIUog(T6_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T7_);
		nimZeroMem((void*)T8_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T8_[0] = name;
		T8_[1] = size;
		T8_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent__6Tfa1iP1ENVlWbe89cSELSQ(T8_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).hcrCreateTypeInfosProc, T9_);
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = name;
		T11_[1] = size;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__hKg2Id9cvzE5Dgl9cU31c4Vw(T11_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T12_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleInfo_DVDUKxJo5CvrWtAaM2iHCw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr;
	NI length;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T22_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
	genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, typ, name, T1_, info);
	expr = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	length = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		NimStringDesc* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		if (!(((NI) 0) < length)) goto LA4_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
		T8_ = (NimStringDesc*)0;
		T8_ = nimIntToStr(length);
		tmp = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, T8_);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		genTNimNodeArray_8W0lvt5dkO9cVIIfffRji9cQ(m, tmp, T9_);
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2;
					tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T13_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T15_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_116;
					if (!(i_2 < length)) goto LA12;
					i = i_2;
					if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					a = (*typ).sons->data[i];
					tmp2 = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
					nimZeroMem((void*)T13_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
					T13_[0] = tmp;
					T13_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T13_[2] = tmp2;
					T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = percent__H3xXuIFdbz4MNb5T6BSfcQ(T13_, 3);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T14_);
					nimZeroMem((void*)T15_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T15_[0] = tmp2;
					T15_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, origType);
					T15_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					T15_[3] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, a, info);
					T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = percent__ELXFo0GedkhGYj9bocTHZAg(T15_, 4);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T16_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_116 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_116);
				} LA12: ;
			}
		}
		nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T17_[0] = expr;
		T17_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		T17_[2] = tmp;
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = percent__9aLrcjgzGJE3f9ab2uR37jog(T17_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T18_);
	}
	goto LA2_;
	LA4_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T20_[0] = expr;
		T20_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = percent__3Q9c5iS9btBDBXZVoQktb1XQ(T20_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T21_);
	}
	LA2_: ;
	nimZeroMem((void*)T22_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T22_[0] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T22_[1] = expr;
	T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T23_ = percent__MALQXTKXJv7x9a9c247satLQ(T22_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T23_);
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* base;
	base = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NI T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		T3_ = (((NI) 0) < T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		T3_ = !((T6_ == NIM_NIL));
		LA5_: ;
		if (!T3_) goto LA7_;
		x = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		{
			if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA11_;
			x = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(36275087638268176));
		}
		LA11_: ;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T19_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
			if (!(T16_)) goto LA17_;
			T16_ = ((*x).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T19_ = (NIM_BOOL)0;
			T19_ = !(((*x).sym == NIM_NIL));
			if (!(T19_)) goto LA20_;
			T19_ = ((272 & (*(*x).sym).flags) == 16);
			LA20_: ;
			T15_ = T19_;
			LA18_: ;
			if (!T15_) goto LA21_;
			base = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
		}
		goto LA13_;
		LA21_: ;
		{
			base = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, x, info);
		}
		LA13_: ;
	}
	goto LA1_;
	LA7_: ;
	{
		base = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
	}
	LA1_: ;
	genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, origType, name, base, info);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, lodeTyp_Zo4XKVi6BmwOZE51Yogqwg)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNode_PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
	asgnRef((void**) (&(*result).typ), t);
	return result;
}

static N_INLINE(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, t_XNOXh7uniWNgiq58C9bW49awcgen)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (!((*a.lode).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*a.lode).kind)>>3] &(1U<<((NU)((*a.lode).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		result = (*(*a.lode).sym).typ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = (*a.lode).typ;
	}
	LA1_: ;
	return result;
}

static N_INLINE(NIM_BOOL, isComplexValueType_Fl17jclCP5VEr9a7Ycym1awcgen)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(49645149017385232));
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addrLoc_9b8NbhHc4w1oBKAy127l3xQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = a.r;
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA(conf, T5_);
		T3_ = !((T6_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		LA4_: ;
		if (!T3_) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), result);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	}
	LA7_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInit_pua7psQb9a19bblGZEt9b0ZXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg section, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, NIM_BOOL takeAddr) {
	tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw T25_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T5_) goto LA6_;
		T5_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = isException_YPjOkGV9axAnGR3UfLeWZ1g_9(t);
		LA7_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T9_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_131));
		T3_ = !(T9_);
		LA8_: ;
		if (!T3_) goto LA10_;
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_132));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA15_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA15_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_133));
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T23_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T12_, T24_);
	}
	LA10_: ;
	T25_ = (tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw)0;
	T25_ = analyseObjectWithTypeField_Pldxz9alDV6810oJzh2Apog(t);
	switch (T25_) {
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 0):
	{
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 1):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T43_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
			if (!!(takeAddr)) goto LA30_;
			nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T32_[0] = r;
			r = percent__TbMwXzwNL7txOQADiTjwKA(T32_, 1);
		}
		LA30_: ;
		s = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T35_) goto LA36_;
			T35_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA36_: ;
			if (!!(T35_)) goto LA37_;
			{
				while (1) {
					NIM_BOOL T41_;
					T41_ = (NIM_BOOL)0;
					T41_ = ((*s).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T41_)) goto LA42_;
					if ((NU)(((NI) 0)) >= (NU)((*s).sons ? (*s).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*s).sons ? (*s).sons->Sup.len : 0)-1);
					T41_ = !(((*s).sons->data[((NI) 0)] == NIM_NIL));
					LA42_: ;
					if (!T41_) goto LA40;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
					if ((NU)(((NI) 0)) >= (NU)((*s).sons ? (*s).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*s).sons ? (*s).sons->Sup.len : 0)-1);
					s = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*s).sons->data[((NI) 0)], IL64(36275087638268176));
				} LA40: ;
			}
		}
		LA37_: ;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T43_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA46_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), r);
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_136));
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*a.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA51_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA51_: ;
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T43_, T54_);
	}
	break;
	case ((tyEnum_TTypeFieldResult_aBXTX9cIKT9b0yNlXSu9aPT9cw) 2):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T65_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA58_;
			localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*(*p).prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_137));
		}
		LA58_: ;
		{
			if (!takeAddr) goto LA62_;
			r_2 = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		}
		goto LA60_;
		LA62_: ;
		{
			r_2 = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		}
		LA60_: ;
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T65_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA68_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA68_: ;
		res_3 = rawNewString(((NI) 80));
		T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T70_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_138));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T70_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), r_2);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T71_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*a.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T71_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA74_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA74_: ;
		T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T76_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T76_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T65_, T77_);
	}
	break;
	}
	{
		NIM_BOOL T80_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r_3;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* s_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T100_;
		NimStringDesc* res_4;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T105_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T111_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
		T80_ = (NIM_BOOL)0;
		T80_ = isException_YPjOkGV9axAnGR3UfLeWZ1g_9(t);
		if (!T80_) goto LA81_;
		r_3 = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T87_;
			if (!!(takeAddr)) goto LA85_;
			nimZeroMem((void*)T87_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T87_[0] = r_3;
			r_3 = percent__TbMwXzwNL7txOQADiTjwKA(T87_, 1);
		}
		LA85_: ;
		s_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		{
			NIM_BOOL T90_;
			T90_ = (NIM_BOOL)0;
			T90_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T90_) goto LA91_;
			T90_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA91_: ;
			if (!!(T90_)) goto LA92_;
			{
				while (1) {
					NIM_BOOL T96_;
					NIM_BOOL T97_;
					T96_ = (NIM_BOOL)0;
					T97_ = (NIM_BOOL)0;
					T97_ = ((*s_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T97_)) goto LA98_;
					if ((NU)(((NI) 0)) >= (NU)((*s_2).sons ? (*s_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*s_2).sons ? (*s_2).sons->Sup.len : 0)-1);
					T97_ = !(((*s_2).sons->data[((NI) 0)] == NIM_NIL));
					LA98_: ;
					T96_ = T97_;
					if (!(T96_)) goto LA99_;
					T96_ = !(((*(*s_2).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 290)));
					LA99_: ;
					if (!T96_) goto LA95;
					add_yG4AKzsBRS1W4MANDlXQeg(&r_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
					if ((NU)(((NI) 0)) >= (NU)((*s_2).sons ? (*s_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*s_2).sons ? (*s_2).sons->Sup.len : 0)-1);
					s_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*s_2).sons->data[((NI) 0)], IL64(36275087638268176));
				} LA95: ;
			}
		}
		LA92_: ;
		T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T100_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, section);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA103_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA103_: ;
		res_4 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), r_3);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_140));
		T105_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T105_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T106_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*T105_).sym).name).s);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T106_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA109_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA109_: ;
		T111_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T111_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T112_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T111_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T100_, T112_);
	}
	LA81_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, constructLoc_UnMShnfXExBqkSCjaZsFdw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc, NIM_BOOL isTemp) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	typ = t_XNOXh7uniWNgiq58C9bW49awcgen(loc);
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
		T3_ = ((*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*T5_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24));
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T8_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA11_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA11_: ;
		res = rawNewString(((NI) 80));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_124));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T8_, T20_);
	}
	goto LA1_;
	LA6_: ;
	{
		NIM_BOOL T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		T22_ = (NIM_BOOL)0;
		T22_ = isComplexValueType_Fl17jclCP5VEr9a7Ycym1awcgen(typ);
		if (!!(T22_)) goto LA23_;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = rdLoc_xidyzuHqIciXbQyEOKahDg(loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_126));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA34_: ;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T37_);
	}
	goto LA1_;
	LA23_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
		{
			NIM_BOOL T41_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
			T41_ = (NIM_BOOL)0;
			T41_ = !(isTemp);
			if (T41_) goto LA42_;
			T43_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T43_ = t_XNOXh7uniWNgiq58C9bW49awcgen(loc);
			T41_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T43_);
			LA42_: ;
			if (!T41_) goto LA44_;
			{
				NIM_BOOL T48_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T51_;
				NimStringDesc* res_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
				T48_ = (NIM_BOOL)0;
				T48_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(typ);
				if (!!(T48_)) goto LA49_;
				T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T51_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA54_: ;
				res_3 = rawNewString(((NI) 80));
				T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T56_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_127));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
				res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
				T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, loc);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
				res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
				T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA61_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA61_: ;
				T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
				T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T63_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T51_, T64_);
			}
			LA49_: ;
		}
		LA44_: ;
		T65_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T65_ = t_XNOXh7uniWNgiq58C9bW49awcgen(loc);
		genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T65_, loc, NIM_TRUE);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, getTemp_VjOFVqypINqQv5C3ECnxbw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, NIM_BOOL needsInit) {
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_121;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	TM_MQdRN7fpbG7rPm4JpVVAhA_121 = addInt((*p).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_121 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_121 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_121);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_122), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T14_);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(t));
	(*result).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
	constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (*result), !(needsInit));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenField_3AsTOpq9crZUYBL9aD1lXBng)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T4_) goto LA5_;
		T4_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA5_: ;
		if (!T4_) goto LA6_;
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_142));
	}
	goto LA2_;
	LA6_: ;
	{
		T1_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_143));
	}
	LA2_: ;
	result = rope_yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, lenExpr_Xfvxpx3W1zkiCqENsur9ckg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T5_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_141));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T7_[1] = lenField_3AsTOpq9crZUYBL9aD1lXBng(p);
		result = percent__2SWcbuU7RHQR0b8y9aJ9a5VQ(T7_, 2);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g)(NimStringDesc** result, NI64 value) {
	addInt_mftMOxbyu0h4yByfs3sqjA(result, value);
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, parentObj_uBOaBBiKguvub019cPppbOQcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = accessor;
		result = percent__gSgutt9b7GMWVGBkCt0UHAQ(T7_, 1);
	}
	goto LA1_;
	LA5_: ;
	{
		result = accessor;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mangleField_IekjVhJd9bZAI9cs9bWYUDsTA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TIdent_GufRQq9c0miSybX3zBD4tyA* name) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = mangle_GxzvEIRbrShQbyJNboTw7A((*name).s);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isKeyword_plkNLyLwnwkMYELCfG4Gxw(name);
		if (!T3_) goto LA4_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_50));
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleRecFieldName_HzLa9cY9ad9bp8c63DnHIEfWA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((96 & (*field).flags) == 0))) goto LA3_;
		result = (*field).loc.r;
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		T6_ = (NimStringDesc*)0;
		T6_ = mangleField_IekjVhJd9bZAI9cs9bWYUDsTA(m, (*field).name);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T6_);
	}
	LA1_: ;
	{
		if (!(result == NIM_NIL)) goto LA9_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_161));
	}
	LA9_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rectype, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_155;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T5_ = genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA(m, (*n).sons->data[i], rectype, check);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T5_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_155 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_155);
				} LA4: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* unionBody;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_156));
		}
		LA9_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA(m, (*n).sons->data[((NI) 0)], rectype, check);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T11_);
		unionBody = NIM_NIL;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_160;
					if (!(i_4 < colontmp__2)) goto LA14;
					i_3 = i_4;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					switch ((*(*n).sons->data[i_3]).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* k;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						k = lastSon_UPSW0jLTX5qJL51YMUAHgw((*n).sons->data[i_3]);
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a;
							if (!!(((*k).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA18_;
							a = genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA(m, k, rectype, check);
							{
								tyArray_qTjAvTvKF9anytN1At69aJMQ T36_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
								if (!!((a == NIM_NIL))) goto LA22_;
								{
									if (!!((((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0))) goto LA26_;
									add_yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_157));
								}
								goto LA24_;
								LA26_: ;
								{
									{
										if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
										if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA31_;
										add_yG4AKzsBRS1W4MANDlXQeg(&unionBody, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_158));
									}
									goto LA29_;
									LA31_: ;
									{
										tyArray_qTjAvTvKF9anytN1At69aJMQ T34_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
										nimZeroMem((void*)T34_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
										T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T35_ = percent__Vcuq0AWiVDndx4UH9cJ9cBRg(T34_, 0);
										add_IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T35_);
									}
									LA29_: ;
								}
								LA24_: ;
								add_IM4kcMNkkOLJtqdEqSxR8A(&unionBody, a);
								nimZeroMem((void*)T36_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T37_ = percent__l4wxq9cmPihXoF5xnDVNR1w(T36_, 0);
								add_IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T37_);
								{
									NIM_BOOL T40_;
									tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
									T40_ = (NIM_BOOL)0;
									T40_ = (((*rectype).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
									if (!(T40_)) goto LA41_;
									if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
									T40_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
									LA41_: ;
									if (!T40_) goto LA42_;
									nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
									T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T45_ = percent__zgEKWXsZtT6lqQ6XlgfrsA(T44_, 0);
									add_IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T45_);
								}
								LA42_: ;
							}
							LA22_: ;
						}
						goto LA16_;
						LA18_: ;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
							T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T47_ = genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA(m, k, rectype, check);
							add_IM4kcMNkkOLJtqdEqSxR8A(&unionBody, T47_);
						}
						LA16_: ;
					}
					break;
					default:
					{
						internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_159));
					}
					break;
					}
					TM_MQdRN7fpbG7rPm4JpVVAhA_160 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_160);
				} LA14: ;
			}
		}
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T53_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			if (!!((unionBody == NIM_NIL))) goto LA51_;
			nimZeroMem((void*)T53_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T53_[0] = unionBody;
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = percent__uXZ30k0oJEqGPZW57O3dwg(T53_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&result, T54_);
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sname;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field = (*n).sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA58_;
			goto BeforeRet_;
		}
		LA58_: ;
		sname = mangleRecFieldName_HzLa9cY9ad9bp8c63DnHIEfWA(m, field);
		fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*field).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5), n, sname, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			NIM_BOOL T62_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fieldType;
			T62_ = (NIM_BOOL)0;
			T62_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(rectype);
			if (!!(T62_)) goto LA63_;
			fieldType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*field).loc.lode).typ, IL64(36134350135273744));
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T69_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T70_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
				if (!((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49))) goto LA67_;
				nimZeroMem((void*)T69_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T70_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T70_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(fieldType);
				T69_[0] = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T70_, check);
				T69_[1] = sname;
				T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = percent__tTI9aMQiBZdiEeBIVh7QtYA(T69_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T71_);
			}
			goto LA65_;
			LA67_: ;
			{
				NIM_BOOL T73_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T77_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T78_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
				T73_ = (NIM_BOOL)0;
				T73_ = ((*fieldType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24));
				if (!(T73_)) goto LA74_;
				T73_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4)));
				LA74_: ;
				if (!T73_) goto LA75_;
				nimZeroMem((void*)T77_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T78_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T78_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T77_[0] = getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g(m, T78_, check);
				T77_[1] = sname;
				T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T79_ = percent__vzbf0XksfaFTXNoTT6BCwA(T77_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T79_);
			}
			goto LA65_;
			LA75_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T83_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
				NimStringDesc* T85_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
				if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162));
				if (!!(((*field).bitsize == ((NI) 0)))) goto LA81_;
				nimZeroMem((void*)T83_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T84_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T84_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T83_[0] = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T84_, check);
				T83_[1] = sname;
				if (!(((2622208 &(1U<<((NU)((*field).kind)&31U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162));
				T85_ = (NimStringDesc*)0;
				T85_ = nimIntToStr((*field).bitsize);
				T83_[2] = rope_yShmEg9cffWxI7s5XzEKBow(T85_);
				T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T86_ = percent__VJBBlA9aMl5p0yYB1WzSMVg(T83_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T86_);
			}
			goto LA65_;
			LA81_: ;
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T88_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
				nimZeroMem((void*)T88_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T89_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
				T88_[0] = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T89_, check);
				T88_[1] = sname;
				T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T90_ = percent__vzbf0XksfaFTXNoTT6BCwA(T88_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T90_);
			}
			LA65_: ;
		}
		LA63_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_163));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordFields_1Yw0f9bM6njBLDchKVMziZw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = genRecordFieldsAux_Lnx3irvSs2c8Fx3FQpi9aAA(m, (*typ).n, typ, check);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&check));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getRecordFields_1Yw0f9bM6njBLDchKVMziZw(m, typ, (&check));
	(void)(T1_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, intLiteral_kQA0lBUvzOSZAw7DHC4Fjg)(NI64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-2147483648) < i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= IL64(2147483647));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
	}
	goto LA1_;
	LA5_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T10_;
		if (!(i == IL64(-2147483648))) goto LA8_;
		nimZeroMem((void*)T10_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__LQ9bGxpANW8yeg5P9c0UYAaQ(T10_, 0);
	}
	goto LA1_;
	LA8_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA12_;
		nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
		result = percent__f8tdlskieCnWysl9c9blzqZg(T14_, 1);
	}
	goto LA1_;
	LA12_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T16_;
		nimZeroMem((void*)T16_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__KbFpNe1pZ7hIuQi7dp1dSQ(T16_, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2)(NI64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!((IL64(-9223372036854775807) - IL64(1)) < i)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
		result = percent__f8tdlskieCnWysl9c9blzqZg(T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__KbFpNe1pZ7hIuQi7dp1dSQ(T7_, 0);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A)(NU64 i) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = dollar__RkX9btpg5sQIaP8yYXB6tbA(i);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 3);
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_169));
	result = rope_yShmEg9cffWxI7s5XzEKBow(T1_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNilStringLiteral_mf9bJ50BK9auefXIgup7r1CQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!((m == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174));
	result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralDataOnlyV1_wg9bxyc8oC9b9ahuYUo9bM4FJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
	(void)(T1_);
	result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	nimZeroMem((void*)T2_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T2_[0] = result;
	T2_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(s);
	T2_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((s ? s->Sup.len : 0))));
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__mF9aI9b3hDjj53TD2C2gTrHA(T2_, 3);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T3_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV1_SO73hKlDdl5sMaSHTbOJLw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!NIM_FALSE) goto LA3_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_174));
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA3_: ;
	{
		NI id;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
		{
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
			if (!(id == ((NI) ((*m).labels)))) goto LA13_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA17_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA17_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_175));
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = genStringLiteralDataOnlyV1_wg9bxyc8oC9b9ahuYUo9bM4FJQ(m, (*n).strVal);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T20_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			result = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		goto LA11_;
		LA13_: ;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA24_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA24_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T26_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_175));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*m).tmpBase);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (id)));
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			result = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		}
		LA11_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStringLiteralDataOnlyV2_Audays6K31pmxRIYbD09cLw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result) {
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T1_[0] = result;
	T1_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((s ? s->Sup.len : 0))));
	T1_[2] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(s);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__PafMws9cJ9arr9a0RVMoIHmAw(T1_, 3);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T2_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2_SO73hKlDdl5sMaSHTbOJLw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI id;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pureLit;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!(id == ((NI) ((*m).labels)))) goto LA3_;
		pureLit = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		genStringLiteralDataOnlyV2_Audays6K31pmxRIYbD09cLw(m, (*n).strVal, pureLit);
		result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
		(void)(T5_);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178));
		(void)(T6_);
		nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = result;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		T7_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n).strVal ? (*n).strVal->Sup.len : 0))));
		T7_[2] = pureLit;
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__3lAlmrWiRqEg9a9cd9a8kNhig(T7_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T8_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		nimZeroMem((void*)T10_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T10_[0] = result;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		T10_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n).strVal ? (*n).strVal->Sup.len : 0))));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		T10_[2] = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T11_);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__3lAlmrWiRqEg9a9cd9a8kNhig(T10_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T12_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteral_SO73hKlDdl5sMaSHTbOJLw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (NI)0;
	T1_ = detectStrVersion_V25kMWfh1jWVNQQI5BNfLg(m);
	switch (T1_) {
	case ((NI) 0):
	case ((NI) 1):
	{
		result = genStringLiteralV1_SO73hKlDdl5sMaSHTbOJLw_2(m, n);
	}
	break;
	case ((NI) 2):
	{
		result = genStringLiteralV2_SO73hKlDdl5sMaSHTbOJLw_3(m, n);
	}
	break;
	default:
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_179));
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_qifZy01sZ5OX01eT5FP76w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag k;
		k = (tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag)0;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
			if (!!((ty == NIM_NIL))) goto LA4_;
			T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T6_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			k = (*T6_).kind;
		}
		goto LA2_;
		LA4_: ;
		{
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5):
			{
				k = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2);
			}
			break;
			case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
			{
				k = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44);
			}
			break;
			case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 10):
			{
				k = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35);
			}
			break;
			default:
			{
				k = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5);
			}
			break;
			}
		}
		LA2_: ;
		switch (k) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
			result = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((*n).intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
		{
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T18_;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
				if (!!(((*n).intVal == IL64(0)))) goto LA16_;
				nimZeroMem((void*)T18_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				result = percent__nunbo9aB0HmmYQJ3InIBEzQ(T18_, 0);
			}
			goto LA14_;
			LA16_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T20_;
				nimZeroMem((void*)T20_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				result = percent__RBxLok7DyUB0aHl9bxPIl9bQ(T20_, 0);
			}
			LA14_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
		{
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
			result = int64Literal_kQA0lBUvzOSZAw7DHC4Fjg_2((*n).intVal);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
		{
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
			result = uint64Literal_ldwzpLT4KWF9c4XGru9cpC1A(((NU64) ((*n).intVal)));
		}
		break;
		default:
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T24_;
			nimZeroMem((void*)T24_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T24_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
			T24_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((*n).intVal);
			result = percent__NARRjCd1x5Fr7NTTcoPRrw(T24_, 2);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag k_2;
		{
			if (!(ty == NIM_NIL)) goto LA28_;
			k_2 = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26);
		}
		goto LA26_;
		LA28_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
			T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T31_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			k_2 = (*T31_).kind;
		}
		LA26_: ;
		{
			NIM_BOOL T34_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
			NI id;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
			T34_ = (NIM_BOOL)0;
			T34_ = (k_2 == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T34_)) goto LA35_;
			T36_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T36_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(36134350144710928));
			T34_ = ((*T36_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA35_: ;
			if (!T34_) goto LA37_;
			id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
			T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
			result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T39_);
			{
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_170;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T44_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
				if (!(id == ((NI) ((*(*p).module).labels)))) goto LA42_;
				TM_MQdRN7fpbG7rPm4JpVVAhA_170 = addInt((*(*p).module).labels, ((NI) 1));
				if (TM_MQdRN7fpbG7rPm4JpVVAhA_170 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_170 > 2147483647) raiseOverflow();
				(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_170);
				nimZeroMem((void*)T44_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T44_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
				T44_[1] = result;
				T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = percent__NlLLwmZHOiJUpZfuk00AWA(T44_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T45_);
			}
			LA42_: ;
		}
		goto LA32_;
		LA37_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171));
		}
		LA32_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag k_3;
		{
			if (!(ty == NIM_NIL)) goto LA50_;
			k_3 = ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28);
		}
		goto LA48_;
		LA50_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
			T53_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T53_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(ty, IL64(1202566653633669392));
			k_3 = (*T53_).kind;
		}
		LA48_: ;
		switch (k_3) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
		{
			result = genNilStringLiteral_mf9bJ50BK9auefXIgup7r1CQ((*p).module, (*n).info);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		{
			{
				NIM_BOOL T58_;
				NIM_BOOL T59_;
				T58_ = (NIM_BOOL)0;
				T59_ = (NIM_BOOL)0;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
				T59_ = (((*n).strVal ? (*n).strVal->Sup.len : 0) == ((NI) 0));
				if (!(T59_)) goto LA60_;
				T59_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0));
				LA60_: ;
				T58_ = T59_;
				if (!(T58_)) goto LA61_;
				T58_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4)));
				LA61_: ;
				if (!T58_) goto LA62_;
				result = genNilStringLiteral_mf9bJ50BK9auefXIgup7r1CQ((*p).module, (*n).info);
			}
			goto LA56_;
			LA62_: ;
			{
				result = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw((*p).module, n);
			}
			LA56_: ;
		}
		break;
		default:
		{
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
			result = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*n).strVal);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 18):
	{
		NimStringDesc* T67_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_180[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_181));
		T67_ = (NimStringDesc*)0;
		T67_ = toStrMaxPrecision_ayHojnbqAtgkZF8TXMNMzg((*n).floatVal, ((NimStringDesc*) NIM_NIL));
		result = rope_yShmEg9cffWxI7s5XzEKBow(T67_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 17):
	{
		NimStringDesc* T69_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_180[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_181));
		T69_ = (NimStringDesc*)0;
		T69_ = toStrMaxPrecision_ayHojnbqAtgkZF8TXMNMzg((*n).floatVal, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_182));
		result = rope_yShmEg9cffWxI7s5XzEKBow(T69_);
	}
	break;
	default:
	{
		NimStringDesc* T71_;
		T71_ = (NimStringDesc*)0;
		T71_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 12);
appendString(T71_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_183));
appendString(T71_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendChar(T71_, 41);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T71_);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = genLiteral_qifZy01sZ5OX01eT5FP76w(p, n, (*n).typ);
	return result;
}

static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseRange_KUz7NJSCXeUWRl4foF5zfg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch) {
	NI length;
	length = len_P89cqdlERShb9alU3iC0yj8wast(branch);
	{
		NI j;
		NI colontmp_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_166;
		NI res;
		j = (NI)0;
		colontmp_ = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_166 = subInt(length, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_166);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_185;
				if (!(res <= colontmp_)) goto LA3;
				j = res;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
					if (!((*(*branch).sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA6_;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
						if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
						if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0)) goto LA10_;
						T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*branch).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)-1);
						T13_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch).sons->data[j]).sons->data[((NI) 0)]);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*branch).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 1)) >= (NU)((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)-1);
						T13_[1] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*(*branch).sons->data[j]).sons->data[((NI) 1)]);
						T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T14_ = percent__0RQ2PINB4t8FjFlNUM6N9cQ(T13_, 2);
						T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T15_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T14_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T12_, T15_);
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* v;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*branch).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)-1);
						v = copyNode_Dsjo9bte8vGxzhtcSrsTyiQ((*(*branch).sons->data[j]).sons->data[((NI) 0)]);
						{
							while (1) {
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
								tyArray_JiWwrsTRC6xqNlGcBthSVA T20_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
								NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_184;
								if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*v).kind)>>3] &(1U<<((NU)((*v).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*branch).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*branch).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(((NI) 1)) >= (NU)((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*branch).sons->data[j]).sons ? (*(*branch).sons->data[j]).sons->Sup.len : 0)-1);
								if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*(*branch).sons->data[j]).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*branch).sons->data[j]).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
								if (!((*v).intVal <= (*(*(*branch).sons->data[j]).sons->data[((NI) 1)]).intVal)) goto LA18;
								T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
								T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
								nimZeroMem((void*)T20_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
								T20_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, v);
								T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T21_ = percent__f8NIixSwWrk6SXQ3BFamWw(T20_, 1);
								T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T22_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T21_);
								add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T22_);
								if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*v).kind)>>3] &(1U<<((NU)((*v).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
								TM_MQdRN7fpbG7rPm4JpVVAhA_184 = addInt64((*v).intVal, ((NI) 1));
								(*v).intVal = (NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_184);
							} LA18: ;
						}
					}
					LA8_: ;
				}
				goto LA4_;
				LA6_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T24_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T25_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
					T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T24_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T25_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
					T25_[0] = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, (*branch).sons->data[j]);
					T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T26_ = percent__f8NIixSwWrk6SXQ3BFamWw(T25_, 1);
					T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T27_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T24_, T27_);
				}
				LA4_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_185 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_185);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
{	{
		if (!(n == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_153;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*n).sons->data[i], typ);
					TM_MQdRN7fpbG7rPm4JpVVAhA_153 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_153);
				} LA8: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* disc;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T48_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA12_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_154));
		}
		LA12_: ;
		p = c.p;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		disc = (*(*n).sons->data[((NI) 0)]).sym;
		{
			if (!((*disc).loc.r == NIM_NIL)) goto LA16_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*c.p).module, typ);
		}
		LA16_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*disc).loc);
			if (!(T20_ == NIM_NIL)) goto LA21_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_164));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T24_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T24_[0] = accessor;
		T24_[1] = (*disc).loc.r;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent__jw4Sb0OSpKH1T5cLz7iyzA(T24_, 2);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T23_, T26_);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T43_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T44_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T45_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_186;
					if (!(i_4 < colontmp__2)) goto LA29;
					i_3 = i_4;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					branch = (*n).sons->data[i_3];
					{
						if (!!(((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85) || (*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA32_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_165));
					}
					LA32_: ;
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA36_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg(c.p, branch);
					}
					goto LA34_;
					LA36_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T39_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
						T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T39_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T40_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent__TTRh79a14hh1gb0owIP1Y6Q(T40_, 0);
						T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T42_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T39_, T42_);
					}
					LA34_: ;
					T43_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T43_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(branch);
					genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, T43_, typ);
					T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T44_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T45_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T46_ = percent__TmeCjGna9cPfiHHcfqmKXjw(T45_, 0);
					T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T46_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T44_, T47_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_186 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_186);
				} LA29: ;
			}
		}
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T48_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T49_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent__FsfRVuOOBePjn9cQ9aK7Vh1w(T49_, 0);
		T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T48_, T51_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T66_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T68_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field = (*n).sym;
		{
			if (!((*(*field).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63))) goto LA55_;
			goto BeforeRet_;
		}
		LA55_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA59_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*c.p).module, typ);
		}
		LA59_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
			T63_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T63_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
			if (!(T63_ == NIM_NIL)) goto LA64_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_164));
		}
		LA64_: ;
		nimZeroMem((void*)T66_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T66_[0] = accessor;
		T66_[1] = (*field).loc.r;
		T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = percent__paA0sar8RKZqiwEaDfWo2A(T66_, 2);
		T68_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T68_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T67_, T68_);
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*c.p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_164));
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
{	{
		if (!(typ == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	p = c.p;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 10):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, accessor, T6_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 arraySize;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldCode;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		NI oldLen;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		arraySize = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*c.p).module).g).config, (*typ).sons->data[((NI) 0)]);
		nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T8_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
		T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, T8_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, T9_, (&i), NIM_FALSE);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldCode = (*T10_);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T11_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA14_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), arraySize);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), i.r);
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_148));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T11_, T21_);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		oldLen = len_9b0YRltzV3kNSE9aQTsG82wg((*T22_));
		{
			if (!!(!(((*c.p).module == NIM_NIL)))) goto LA25_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
		}
		LA25_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), accessor);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), i.r);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		if ((NU)(((NI) 1)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T27_, (*typ).sons->data[((NI) 1)]);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
			NI T31_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T34_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T31_ = (NI)0;
			T31_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T30_));
			if (!(T31_ == oldLen)) goto LA32_;
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T34_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			unsureAsgnRef((void**) (&(*T34_)), oldCode);
		}
		goto LA28_;
		LA32_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T36_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = percent__BYiowJAm8zF7RBRISElaLg(T37_, 0);
			T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T38_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T36_, T39_);
		}
		LA28_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NI i_2;
			NI colontmp_;
			NI i_3;
			i_2 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
			i_3 = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_152;
					if (!(i_3 < colontmp_)) goto LA43;
					i_2 = i_3;
					if ((NU)(i_2) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i_2,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					x = (*typ).sons->data[i_2];
					{
						if (!!((x == NIM_NIL))) goto LA46_;
						x = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(x, IL64(36275087638268176));
					}
					LA46_: ;
					T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T48_ = parentObj_uBOaBBiKguvub019cPppbOQcgen(accessor, (*c.p).module);
					genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T48_, x);
					TM_MQdRN7fpbG7rPm4JpVVAhA_152 = addInt(i_3, ((NI) 1));
					i_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_152);
				} LA43: ;
			}
		}
		{
			if (!!(((*typ).n == NIM_NIL))) goto LA51_;
			genTraverseProc_ZF8ePl9bsRxWXLu7Z2MFifQ(c, accessor, (*typ).n, typ);
		}
		LA51_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		typ_2 = typ;
		{
			NI i_4;
			NI colontmp__2;
			NI i_5;
			i_4 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ_2);
			i_5 = ((NI) 0);
			{
				while (1) {
					NimStringDesc* res_3;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_188;
					if (!(i_5 < colontmp__2)) goto LA56;
					i_4 = i_5;
					{
						if (!!(!(((*c.p).module == NIM_NIL)))) goto LA59_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
					}
					LA59_: ;
					res_3 = rawNewString(((NI) 80));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), accessor);
					res_3 = resizeString(res_3, 6);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_187));
					cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (i_4)));
					T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T61_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
					if ((NU)(i_4) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)) raiseIndexError2(i_4,((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1);
					genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T61_, (*typ_2).sons->data[i_4]);
					TM_MQdRN7fpbG7rPm4JpVVAhA_188 = addInt(i_5, ((NI) 1));
					i_5 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_188);
				} LA56: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T63_;
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
		T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T63_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA66_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA66_: ;
		res_4 = rawNewString(((NI) 80));
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T68_);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), accessor);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_4), c.visitorFrmt);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA71_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA71_: ;
		T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T73_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T63_, T74_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T80_;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0))) goto LA78_;
			T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T80_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA83_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA83_: ;
			res_5 = rawNewString(((NI) 80));
			T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T85_);
			res_5 = resizeString(res_5, 8);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), accessor);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_5), c.visitorFrmt);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA88_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA88_: ;
			T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T91_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T80_, T91_);
		}
		goto LA76_;
		LA78_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T93_;
			NIM_BOOL T94_;
			T93_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T93_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			T94_ = (NIM_BOOL)0;
			T94_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T93_);
			if (!T94_) goto LA95_;
			genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA(c, accessor, typ);
		}
		goto LA76_;
		LA95_: ;
		LA76_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T102_;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 30))&63U)))!=0))) goto LA100_;
			T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T102_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA105_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA105_: ;
			res_6 = rawNewString(((NI) 80));
			T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T107_);
			res_6 = resizeString(res_6, 8);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), accessor);
			res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_6), c.visitorFrmt);
			res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA110_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA110_: ;
			T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T112_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T113_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T112_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T102_, T113_);
		}
		LA100_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T119_;
			NimStringDesc* res_7;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T124_;
			NimStringDesc* res_8;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T129_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T134_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T135_;
			if (!((*typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA117_;
			T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T119_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA122_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA122_: ;
			res_7 = rawNewString(((NI) 80));
			T124_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_189));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T124_);
			res_7 = resizeString(res_7, 8);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			{
				if (!!(!(((*c.p).module == NIM_NIL)))) goto LA127_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_149));
			}
			LA127_: ;
			res_8 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), accessor);
			res_8 = resizeString(res_8, 6);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_190));
			T129_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T129_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T129_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_7), c.visitorFrmt);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA132_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA132_: ;
			T134_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T134_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
			T135_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T135_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T134_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T119_, T135_);
		}
		LA117_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, dataField_3AsTOpq9crZUYBL9aD1lXBng_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_191));
	}
	goto LA1_;
	LA3_: ;
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_192));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA)(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* accessor, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T5_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldCode;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	NI oldLen;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	p = c.p;
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_120));
	}
	LA3_: ;
	nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	T5_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
	T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*c.p).module).g).graph, T5_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T6_, (&i), NIM_FALSE);
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T7_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldCode = (*T7_);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	a.r = accessor;
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T9_[0] = i.r;
	T9_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(c.p, a);
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = percent__xQaqlAwFuwxqBFixw7ewLg(T9_, 2);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T8_, T11_);
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	oldLen = len_9b0YRltzV3kNSE9aQTsG82wg((*T12_));
	nimZeroMem((void*)T13_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T13_[0] = accessor;
	T13_[1] = i.r;
	T13_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(c.p);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = percent__jr9cXNQhhlLDfFJH4RSjeZg(T13_, 3);
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T14_, (*typ).sons->data[((NI) 0)]);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T17_;
		NI T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T17_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T18_ = (NI)0;
		T18_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T17_));
		if (!(T18_ == oldLen)) goto LA19_;
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T21_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		unsureAsgnRef((void**) (&(*T21_)), oldCode);
	}
	goto LA15_;
	LA19_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T24_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent__BYiowJAm8zF7RBRISElaLg(T24_, 0);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T23_, T26_);
	}
	LA15_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProc_6ja22UmHW9bFsLaOtztGpHQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	NIM_BOOL hcrOn;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* markerName;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	tyArray_f7nG5LD47BH5K9c6mASit3g T34_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T35_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T37_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T38_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
	result = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_117), T1_);
	hcrOn = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(36134350135273744));
	{
		if (!hcrOn) goto LA4_;
		markerName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71));
	}
	goto LA2_;
	LA4_: ;
	{
		markerName = result;
	}
	LA2_: ;
	nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T7_[0] = markerName;
	header = percent__0nBiBCva6YS9a9bSV2Vr7Zxw(T7_, 1);
	t = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, typ);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = t;
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = percent__yyhPPkMkLJqWG6p8HGn9aoA(T9_, 1);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T8_, T11_);
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T13_[0] = t;
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = percent__t8gRNGR1flvaCNlBxuLn1A(T13_, 1);
	T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T14_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T12_, T15_);
	c.p = p;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_118));
	{
		if (!!(!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8))))) goto LA18_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_119));
	}
	LA18_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA22_;
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_193));
		genTraverseProcSeq_LXrm7ZbTiXTVtbB5E60yIA(c, T24_, typ);
	}
	goto LA20_;
	LA22_: ;
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T28_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T28_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36134350135273744));
			if (!((*T28_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA29_;
			T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_193));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T31_, (*typ).sons->data[((NI) 0)]);
		}
		goto LA26_;
		LA29_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_194));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, T33_, (*typ).sons->data[((NI) 0)]);
		}
		LA26_: ;
	}
	LA20_: ;
	nimZeroMem((void*)T34_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T34_[0] = header;
	T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T35_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T34_[1] = (*T35_);
	T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T36_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T34_[2] = (*T36_);
	T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T37_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T34_[3] = (*T37_);
	generatedProc = percent__EnzikEr9bDhOR6GYxWuYSwQ(T34_, 4);
	nimZeroMem((void*)T38_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T38_[0] = header;
	T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T39_ = percent__QqzUiJcAEZE2azDhIWHrgg(T38_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T39_);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T44_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T46_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
		if (!hcrOn) goto LA42_;
		nimZeroMem((void*)T44_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T44_[0] = result;
		T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = percent__20ZujjIFPkyqvS2OmenEAA(T44_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T45_);
		nimZeroMem((void*)T46_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T46_[0] = result;
		T46_[1] = markerName;
		T46_[2] = getModuleDllPath_ao6gUnuVfQLtZ89c4kaIKfg_2(m);
		T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = percent__Vxo9ayk1xB18if39aZ1TBnKA(T46_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T47_);
	}
	LA42_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayInfo_TiBDnY33G5Ca1p0Z3BOA9bg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	if ((NU)(((NI) 1)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, (*typ).sons->data[((NI) 1)], info);
	genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, typ, name, T1_, info);
}

N_LIB_PRIVATE N_NIMCALL(void, genSetInfo_TiBDnY33G5Ca1p0Z3BOA9bg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T5_;
	NI64 T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		if (!!(!(((*typ).sons->data[((NI) 0)] == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_195));
	}
	LA3_: ;
	genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, typ, name, info);
	tmp = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	nimZeroMem((void*)T5_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T5_[0] = tmp;
	T6_ = (NI64)0;
	T6_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*m).g).config, typ);
	T5_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T6_);
	T5_[2] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = percent__AKNexo4CH8G2vDeWW34Vpg(T5_, 3);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T7_);
}

N_LIB_PRIVATE N_NIMCALL(void, genEnumInfo_TiBDnY33G5Ca1p0Z3BOA9bg_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI length;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nodePtrs;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	NimStringDesc* T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* enumNames;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* specialCases;
	NI firstNimNode;
	NIM_BOOL hasHoles;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* enumArray;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* counter;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T33_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
	tyArray_dNfZYyzVYdaWfURv4pxodA T35_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T37_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
	genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, typ, name, info);
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T1_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	T3_ = (NimStringDesc*)0;
	T3_ = nimIntToStr(length);
	nodePtrs = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, T3_);
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	genTNimNodeArray_8W0lvt5dkO9cVIIfffRji9cQ(m, nodePtrs, T4_);
	enumNames = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	specialCases = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	firstNimNode = (*m).typeNodes;
	hasHoles = NIM_FALSE;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* elemNode;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_199;
				if (!(i_2 < length)) goto LA7;
				i = i_2;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
					if (!!(((*(*(*typ).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_196));
				}
				LA10_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*typ).n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*typ).n).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				field = (*(*(*typ).n).sons->data[i]).sym;
				elemNode = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
					if (!((*field).ast == NIM_NIL)) goto LA14_;
					T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
					add_IM4kcMNkkOLJtqdEqSxR8A(&enumNames, T16_);
				}
				goto LA12_;
				LA14_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*field).ast).kind)>>3] &(1U<<((NU)((*(*field).ast).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
					T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).ast).strVal);
					add_IM4kcMNkkOLJtqdEqSxR8A(&enumNames, T18_);
				}
				LA12_: ;
				{
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_197;
					TM_MQdRN7fpbG7rPm4JpVVAhA_197 = subInt(length, ((NI) 1));
					if (!(i < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_197))) goto LA21_;
					add_yG4AKzsBRS1W4MANDlXQeg(&enumNames, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_198));
				}
				LA21_: ;
				{
					NIM_BOOL T25_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T29_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
					T25_ = (NIM_BOOL)0;
					T25_ = !(((*field).position == i));
					if (T25_) goto LA26_;
					T25_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0);
					LA26_: ;
					if (!T25_) goto LA27_;
					nimZeroMem((void*)T29_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T29_[0] = elemNode;
					T29_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*field).position)));
					T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T30_ = percent__LE3oWAmB5YDSDHm3LNHhCg(T29_, 2);
					add_IM4kcMNkkOLJtqdEqSxR8A(&specialCases, T30_);
					hasHoles = NIM_TRUE;
				}
				LA27_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_199 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_199);
			} LA7: ;
		}
	}
	enumArray = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	counter = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T31_[0] = counter;
	T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T32_ = percent__W83I2xs7lC32PrMs9bq4P2w(T31_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T32_);
	nimZeroMem((void*)T33_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T33_[0] = enumArray;
	T33_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T33_[2] = enumNames;
	T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = percent__JKMGBJtXtDvc0NwxujFmZQ(T33_, 3);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T34_);
	nimZeroMem((void*)T35_, sizeof(tyArray_dNfZYyzVYdaWfURv4pxodA));
	T35_[0] = counter;
	T35_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T35_[2] = (*m).typeNodesName;
	T35_[3] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (firstNimNode)));
	T35_[4] = enumArray;
	T35_[5] = nodePtrs;
	T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T36_ = percent__TA8WFV49atYpIneJatQWALw(T35_, 6);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T36_);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], specialCases);
	nimZeroMem((void*)T37_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T37_[0] = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	T37_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (length)));
	T37_[2] = nodePtrs;
	T37_[3] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T38_ = percent__nPenDL3j2Q6A1an1Cl3oCA(T37_, 4);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T38_);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		if (!hasHoles) goto LA41_;
		nimZeroMem((void*)T43_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T43_[0] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = percent__TNkzce2Sd9bck2QRtketc8A(T43_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T44_);
	}
	LA41_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* it;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	res = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203));
	it = t;
	{
		while (1) {
			if (!!((it == NIM_NIL))) goto LA2;
			it = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(it, IL64(36275087638268176));
			{
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m_2;
				if (!!(((*it).sym == NIM_NIL))) goto LA5_;
				m_2 = (*(*t).sym).owner;
				{
					while (1) {
						NIM_BOOL T9_;
						T9_ = (NIM_BOOL)0;
						T9_ = !((m_2 == NIM_NIL));
						if (!(T9_)) goto LA10_;
						T9_ = !(((*m_2).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6)));
						LA10_: ;
						if (!T9_) goto LA8;
						m_2 = (*m_2).owner;
					} LA8: ;
				}
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = (m_2 == NIM_NIL);
					if (T13_) goto LA14_;
					T13_ = (((*m_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0);
					LA14_: ;
					if (!T13_) goto LA15_;
					res = resizeString(res, ((*(*(*it).sym).name).s ? (*(*(*it).sym).name).s->Sup.len : 0) + 0);
appendString(res, (*(*(*it).sym).name).s);
				}
				goto LA11_;
				LA15_: ;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* p;
					NimStringDesc* T25_;
					p = (*m_2).owner;
					{
						NIM_BOOL T20_;
						NimStringDesc* T24_;
						T20_ = (NIM_BOOL)0;
						T20_ = !((p == NIM_NIL));
						if (!(T20_)) goto LA21_;
						T20_ = ((*p).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 24));
						LA21_: ;
						if (!T20_) goto LA22_;
						T24_ = (NimStringDesc*)0;
						T24_ = rawNewString(((*(*p).name).s ? (*(*p).name).s->Sup.len : 0) + 1);
appendString(T24_, (*(*p).name).s);
appendString(T24_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
						res = resizeString(res, (T24_ ? T24_->Sup.len : 0) + 0);
appendString(res, T24_);
					}
					LA22_: ;
					T25_ = (NimStringDesc*)0;
					T25_ = rawNewString(((*(*m_2).name).s ? (*(*m_2).name).s->Sup.len : 0) + 1);
appendString(T25_, (*(*m_2).name).s);
appendString(T25_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
					res = resizeString(res, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(res, T25_);
					res = resizeString(res, ((*(*(*it).sym).name).s ? (*(*(*it).sym).name).s->Sup.len : 0) + 0);
appendString(res, (*(*(*it).sym).name).s);
				}
				LA11_: ;
			}
			goto LA3_;
			LA5_: ;
			{
				tyArray_qtqsWM5aXmcpMIVmvq3kAA T27_;
				NimStringDesc* T28_;
				nimZeroMem((void*)T27_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
				hashType_UdooXLclXL8uld7qLI5JRw(it, 2, T27_);
				T28_ = (NimStringDesc*)0;
				T28_ = dollar__0A9bslyIJ49bWrftLGh13rvg(T27_);
				res = resizeString(res, (T28_ ? T28_->Sup.len : 0) + 0);
appendString(res, T28_);
			}
			LA3_: ;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_203));
			if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
			it = (*it).sons->data[((NI) 0)];
		} LA2: ;
	}
	result = makeCString_vQJydtKy4Nf6bXPYtbmjtg(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInfoV2_TDEOLqqwXHVFJ9cWxDq6Nww)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* d;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T24_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T26_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_200));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NimStringDesc* T11_;
		NimStringDesc* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = !(((*t).sym == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = ((272 & (*(*t).sym).flags) == 16);
		LA8_: ;
		if (!T7_) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T12_ = (NimStringDesc*)0;
		T12_ = typeToString_QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
		T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + 51);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_201));
appendString(T11_, T12_);
		localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T11_);
	}
	LA9_: ;
	d = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((*t).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL))) goto LA15_;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*(*t).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ == NIM_NIL);
			if (T19_) goto LA20_;
			T19_ = !(((*(*(*t).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 0)));
			LA20_: ;
			if (!T19_) goto LA21_;
			localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202));
		}
		LA21_: ;
		genProc_HbYPOpwLApFuBkISFGrmEQ(m, (*t).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]);
		d = (*(*t).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).loc.r;
	}
	goto LA13_;
	LA15_: ;
	{
		d = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171));
	}
	LA13_: ;
	nimZeroMem((void*)T24_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T24_[0] = name;
	T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T25_ = percent__9ab1aKSDn70Vte0NcIItnaQ(T24_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T25_);
	nimZeroMem((void*)T26_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T26_[0] = name;
	T26_[1] = d;
	T26_[2] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, t);
	T26_[3] = genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg(m, t);
	T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T27_ = percent__kqRXw2WRJqDnfQK0N30ydw(T26_, 4);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T27_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableName_WpGsd0DJejVIze0ZXr8L3g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype_2;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T9_;
	NimStringDesc* T10_;
	NimStringDesc* T11_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	objtype_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(objtype, IL64(36275087638309136));
	{
		while (1) {
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T3_;
			T3_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
			T3_ = lookupInRecord_gYQxUKQhlRY6yBu3Ll2TYg((*objtype_2).n, (*d).name);
			if (!(T3_ == NIM_NIL)) goto LA2;
			if ((NU)(((NI) 0)) >= (NU)((*objtype_2).sons ? (*objtype_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*objtype_2).sons ? (*objtype_2).sons->Sup.len : 0)-1);
			objtype_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*objtype_2).sons->data[((NI) 0)], IL64(36275087638309136));
		} LA2: ;
	}
	{
		if (!((*objtype_2).sym == NIM_NIL)) goto LA6_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*d).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_207));
	}
	LA6_: ;
	nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	nimZeroMem((void*)T9_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_UdooXLclXL8uld7qLI5JRw(objtype_2, 2, T9_);
	T10_ = (NimStringDesc*)0;
	T10_ = dollar__0A9bslyIJ49bWrftLGh13rvg(T9_);
	T8_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T10_);
	T11_ = (NimStringDesc*)0;
	T11_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*d).name).s);
	T8_[1] = rope_yShmEg9cffWxI7s5XzEKBow(T11_);
	result = percent__BKnrQUIV2xGn2MO0RK09aUw(T8_, 2);
	return result;
}

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

N_LIB_PRIVATE N_NIMCALL(void, genObjectFields_TSbjDRI5MCd36QpIuSTshg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* expr, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
{	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		NI L;
		L = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
		{
			if (!(L == ((NI) 1))) goto LA4_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			genObjectFields_TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*n).sons->data[((NI) 0)], expr, info);
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
			NimStringDesc* T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T18_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
			if (!(((NI) 0) < L)) goto LA7_;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
			T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T10_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
			T11_ = (NimStringDesc*)0;
			T11_ = nimIntToStr(L);
			tmp = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T10_, T11_);
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			genTNimNodeArray_8W0lvt5dkO9cVIIfffRji9cQ(m, tmp, T12_);
			{
				NI i;
				NI i_2;
				i = (NI)0;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2;
						tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T16_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_205;
						if (!(i_2 < L)) goto LA15;
						i = i_2;
						tmp2 = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
						nimZeroMem((void*)T16_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
						T16_[0] = tmp;
						T16_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
						T16_[2] = tmp2;
						T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T17_ = percent__H3xXuIFdbz4MNb5T6BSfcQ(T16_, 3);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T17_);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						genObjectFields_TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*n).sons->data[i], tmp2, info);
						TM_MQdRN7fpbG7rPm4JpVVAhA_205 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_205);
					} LA15: ;
				}
			}
			nimZeroMem((void*)T18_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T18_[0] = expr;
			T18_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			T18_[2] = tmp;
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = percent__9aLrcjgzGJE3f9ab2uR37jog(T18_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T19_);
		}
		goto LA2_;
		LA7_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			nimZeroMem((void*)T21_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T21_[0] = expr;
			T21_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (L)));
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = percent__3Q9c5iS9btBDBXZVoQktb1XQ(T21_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T22_);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp_2;
		NI64 L_2;
		tyArray_YcHYlgE5mhtkt9a3rnoucVg T41_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T43_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_210;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA26_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_206));
		}
		LA26_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field = (*(*n).sons->data[((NI) 0)]).sym;
		tmp_2 = discriminatorTableName_WpGsd0DJejVIze0ZXr8L3g(m, typ, field);
		L_2 = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, (*field).typ);
		{
			if (!!((IL64(0) < L_2))) goto LA30_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_208));
		}
		LA30_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA34_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2(m, typ);
		}
		LA34_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T38_;
			T38_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T38_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field).loc);
			if (!(T38_ == NIM_NIL)) goto LA39_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_209));
		}
		LA39_: ;
		nimZeroMem((void*)T41_, sizeof(tyArray_YcHYlgE5mhtkt9a3rnoucVg));
		T41_[0] = expr;
		T41_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, origType);
		T41_[2] = (*field).loc.r;
		T41_[3] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, (*field).typ, info);
		T41_[4] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field).name).s);
		T41_[5] = tmp_2;
		T41_[6] = rope_KOisMGxcPhz6CcSmxgwEQQ(L_2);
		T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = percent__SCyrk9acEm3vLZhXCV1fGNg(T41_, 7);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T42_);
		nimZeroMem((void*)T43_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T43_[0] = tmp_2;
		TM_MQdRN7fpbG7rPm4JpVVAhA_210 = addInt64(L_2, IL64(1));
		T43_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_210));
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = percent__erDe9aYc2BNxzH9brKlmtEBg(T43_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T44_);
		{
			NI i_3;
			NI colontmp_;
			NI i_4;
			i_3 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp2_2;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T48_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_216;
					if (!(i_4 < colontmp_)) goto LA47;
					i_3 = i_4;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					b = (*n).sons->data[i_3];
					tmp2_2 = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
					T48_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T48_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(b);
					genObjectFields_TSbjDRI5MCd36QpIuSTshg(m, typ, origType, T48_, tmp2_2, info);
					switch ((*b).kind) {
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85):
					{
						{
							NI T52_;
							T52_ = (NI)0;
							T52_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(b);
							if (!(T52_ < ((NI) 2))) goto LA53_;
							internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*b).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_211));
						}
						LA53_: ;
						{
							NI j;
							NI colontmp__2;
							NI T56_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_212;
							NI res;
							j = (NI)0;
							colontmp__2 = (NI)0;
							T56_ = (NI)0;
							T56_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(b);
							TM_MQdRN7fpbG7rPm4JpVVAhA_212 = subInt(T56_, ((NI) 2));
							colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_212);
							res = ((NI) 0);
							{
								while (1) {
									NI TM_MQdRN7fpbG7rPm4JpVVAhA_214;
									if (!(res <= colontmp__2)) goto LA58;
									j = res;
									{
										NI x;
										NI64 T63_;
										NI y;
										NI64 T64_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(j) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(j,((*b).sons ? (*b).sons->Sup.len : 0)-1);
										if (!((*(*b).sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA61_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(j) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(j,((*b).sons ? (*b).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*b).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 0)) >= (NU)((*(*b).sons->data[j]).sons ? (*(*b).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*b).sons->data[j]).sons ? (*(*b).sons->data[j]).sons->Sup.len : 0)-1);
										T63_ = (NI64)0;
										T63_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*(*b).sons->data[j]).sons->data[((NI) 0)]);
										x = ((NI)chckRange64(T63_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(j) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(j,((*b).sons ? (*b).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*b).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 1)) >= (NU)((*(*b).sons->data[j]).sons ? (*(*b).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*b).sons->data[j]).sons ? (*(*b).sons->data[j]).sons->Sup.len : 0)-1);
										T64_ = (NI64)0;
										T64_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*(*b).sons->data[j]).sons->data[((NI) 1)]);
										y = ((NI)chckRange64(T64_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
										{
											while (1) {
												tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T67_;
												tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
												NI TM_MQdRN7fpbG7rPm4JpVVAhA_213;
												if (!(x <= y)) goto LA66;
												nimZeroMem((void*)T67_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
												T67_[0] = tmp_2;
												T67_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (x)));
												T67_[2] = tmp2_2;
												T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
												T68_ = percent__H3xXuIFdbz4MNb5T6BSfcQ(T67_, 3);
												add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T68_);
												TM_MQdRN7fpbG7rPm4JpVVAhA_213 = addInt(x, ((NI) 1));
												x = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_213);
											} LA66: ;
										}
									}
									goto LA59_;
									LA61_: ;
									{
										tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T70_;
										NI64 T71_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
										nimZeroMem((void*)T70_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
										T70_[0] = tmp_2;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(j) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(j,((*b).sons ? (*b).sons->Sup.len : 0)-1);
										T71_ = (NI64)0;
										T71_ = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*b).sons->data[j]);
										T70_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T71_);
										T70_[2] = tmp2_2;
										T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T72_ = percent__H3xXuIFdbz4MNb5T6BSfcQ(T70_, 3);
										add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T72_);
									}
									LA59_: ;
									TM_MQdRN7fpbG7rPm4JpVVAhA_214 = addInt(res, ((NI) 1));
									res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_214);
								} LA58: ;
							}
						}
					}
					break;
					case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88):
					{
						tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T74_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
						nimZeroMem((void*)T74_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
						T74_[0] = tmp_2;
						T74_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(L_2);
						T74_[2] = tmp2_2;
						T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T75_ = percent__H3xXuIFdbz4MNb5T6BSfcQ(T74_, 3);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T75_);
					}
					break;
					default:
					{
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_215));
					}
					break;
					}
					TM_MQdRN7fpbG7rPm4JpVVAhA_216 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_216);
				} LA47: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field_2;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field_2 = (*n).sym;
		{
			NIM_BOOL T80_;
			T80_ = (NIM_BOOL)0;
			T80_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*field_2).typ);
			if (!T80_) goto LA81_;
			goto BeforeRet_;
		}
		LA81_: ;
		{
			tyArray_duFhZXIIlrbrM62cWjNekg T96_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
			if (!(((2622208 &(1U<<((NU)((*field_2).kind)&31U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_162));
			if (!((*field_2).bitsize == ((NI) 0))) goto LA85_;
			{
				if (!((*field_2).loc.r == NIM_NIL)) goto LA89_;
				fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2(m, typ);
			}
			LA89_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T93_;
				T93_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T93_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*field_2).loc);
				if (!(T93_ == NIM_NIL)) goto LA94_;
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_209));
			}
			LA94_: ;
			nimZeroMem((void*)T96_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
			T96_[0] = expr;
			T96_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, origType);
			T96_[2] = (*field_2).loc.r;
			T96_[3] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, (*field_2).typ, info);
			T96_[4] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*field_2).name).s);
			T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T97_ = percent__HSAgkeH84eiEd8MfKIuBQA(T96_, 5);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T97_);
		}
		LA85_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_209));
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genObjectInfo_DVDUKxJo5CvrWtAaM2iHCw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA3_;
		{
			NIM_BOOL T7_;
			NimStringDesc* T11_;
			NimStringDesc* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*typ).sym == NIM_NIL));
			if (!(T7_)) goto LA8_;
			T7_ = ((272 & (*(*typ).sym).flags) == 16);
			LA8_: ;
			if (!T7_) goto LA9_;
			T11_ = (NimStringDesc*)0;
			T12_ = (NimStringDesc*)0;
			T12_ = typeToString_QlvraUan7WbHowhAbvDvdA(typ, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T11_ = rawNewString((T12_ ? T12_->Sup.len : 0) + 51);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_201));
appendString(T11_, T12_);
			localError_NF6kBGchnhQYPbCedyefVA((*(*m).g).config, info, T11_);
		}
		LA9_: ;
		genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, typ, origType, name, info);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
		genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, typ, origType, name, T14_, info);
	}
	LA1_: ;
	tmp = getNimNode_ao6gUnuVfQLtZ89c4kaIKfg_3(m);
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(typ);
		if (!!(T17_)) goto LA18_;
		genObjectFields_TSbjDRI5MCd36QpIuSTshg(m, typ, origType, (*typ).n, tmp, info);
	}
	LA18_: ;
	nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T20_[0] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, name);
	T20_[1] = tmp;
	T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = percent__MALQXTKXJv7x9a9c247satLQ(T20_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T21_);
	if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	t = (*typ).sons->data[((NI) 0)];
	{
		while (1) {
			if (!!((t == NIM_NIL))) goto LA23;
			t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087638268176));
			(*t).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5)) & 63);
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			t = (*t).sons->data[((NI) 0)];
		} LA23: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genDeepCopyProc_hi0Gu9bcBd9a9cO4KStt3d7iw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result) {
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	genProc_HbYPOpwLApFuBkISFGrmEQ(m, s);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = result;
	T1_[1] = (*s).loc.r;
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__1AD3Wp47Hcdfg6PO2ac0NQ(T1_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T2_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTypeInfo_BeEYMOjEPJinzbFpsfTaZg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NimStringDesc* prefixTI;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
	tyTuple_Iz0jrTw3w7v6sMzjrqs0nA marker;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
	NimStringDesc* T24_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* owner;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
	tyTuple_Iz0jrTw3w7v6sMzjrqs0nA T40_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	origType = t;
	t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origType, IL64(1202566653625249296));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		prefixTI = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	}
	goto LA1_;
	LA4_: ;
	{
		prefixTI = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97));
	}
	LA1_: ;
	nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_UdooXLclXL8uld7qLI5JRw(origType, 2, sig);
	result = getOrDefault_tD8SQMueXhdfvpBnagcsKg((*m).typeInfoMarker, sig);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		if (!!((result == NIM_NIL))) goto LA9_;
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope_yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T11_, result);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T12_, T13_);
		goto BeforeRet_;
	}
	LA9_: ;
	nimZeroMem((void*)(&marker), sizeof(tyTuple_Iz0jrTw3w7v6sMzjrqs0nA));
	getOrDefault_qISsmXPGy0MStH2gg2BcOA((*(*m).g).typeInfoMarker, sig, (&marker));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		if (!!((marker.Field0 == NIM_NIL))) goto LA16_;
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
		(void)(T18_);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
		(void)(T19_);
		declareNimType_w2jZebce9cvMAGUdQoJVOuA(m, marker.Field0, marker.Field1);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeInfoMarker), sig, marker.Field0);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T20_, marker.Field0);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T21_, T22_);
		goto BeforeRet_;
	}
	LA16_: ;
	nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T24_ = (NimStringDesc*)0;
	T24_ = dollar__0A9bslyIJ49bWrftLGh13rvg(sig);
	T23_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T24_);
	result = percent__nlZFDYB4M9bmBbYqEropRVw(T23_, 1);
	X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeInfoMarker), sig, result);
	T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T25_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t_2, IL64(36275087638309136));
	owner = getModule_xfh8ar7fDxVX2A4OO9b5sqQ((*T25_).owner);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		if (!!((owner == (*m).module))) goto LA28_;
		{
			if ((NU)((*owner).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)) raiseIndexError2((*owner).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1);
			if (!!(!(((*(*m).g).modules->data[(*owner).position] == NIM_NIL)))) goto LA32_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_104));
		}
		LA32_: ;
		if ((NU)((*owner).position) >= (NU)((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)) raiseIndexError2((*owner).position,((*(*m).g).modules ? (*(*m).g).modules->Sup.len : 0)-1);
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*(*m).g).modules->data[(*owner).position], origType, info);
		(void)(T34_);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
		(void)(T35_);
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
		(void)(T36_);
		declareNimType_w2jZebce9cvMAGUdQoJVOuA(m, result, owner);
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = rope_yShmEg9cffWxI7s5XzEKBow(prefixTI);
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T37_, result);
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T38_, T39_);
		goto BeforeRet_;
	}
	LA28_: ;
	nimZeroMem((void*)(&T40_), sizeof(tyTuple_Iz0jrTw3w7v6sMzjrqs0nA));
	T40_.Field0 = result;
	T40_.Field1 = owner;
	X5BX5Deq__e9czpY4GXpbU9cznliOfqQ1Q((&(*(*m).g).typeInfoMarker), sig, T40_);
	switch ((*t_2).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	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):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
		genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, t_2, t_2, result, T43_, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T49_;
			if (!!(((*t_2).n == NIM_NIL))) goto LA47_;
			T49_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T49_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t_2);
			result = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, T49_, info);
		}
		goto LA45_;
		LA47_: ;
		{
			NimStringDesc* T51_;
			T51_ = (NimStringDesc*)0;
			T51_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T51_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_111));
appendString(T51_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T51_, 41);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T51_);
		}
		LA45_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		{
			NimStringDesc* T57_;
			if (!!((((*t_2).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0))) goto LA55_;
			T57_ = (NimStringDesc*)0;
			T57_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_112);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T57_);
		}
		LA55_: ;
		T58_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t_2);
		result = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, T58_, info);
		goto BeforeRet_;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
			if (!!(((*t_2).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA62_;
			T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T64_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
			genTypeInfoAuxBase_7TeHWriUy9a9aRQ1EAhsSN1w(m, t_2, t_2, result, T64_, info);
		}
		goto LA60_;
		LA62_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* x;
			x = fakeClosureType_OVHn4Lx3T69a1BHJ0KreWYw(m, (*t_2).owner);
			genTupleInfo_DVDUKxJo5CvrWtAaM2iHCw(m, x, x, result, info);
		}
		LA60_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
		{
			if (!!(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4)))) goto LA69_;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* markerProc;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T75_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
				if (!(((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 3) <= (*(*(*m).g).config).selectedGC)) goto LA73_;
				markerProc = genTraverseProc_6ja22UmHW9bFsLaOtztGpHQ(m, origType, sig);
				nimZeroMem((void*)T75_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T75_[0] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, result);
				T75_[1] = markerProc;
				T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T76_ = percent__NtQEfuK9bXszNTfYU57z19bw(T75_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T76_);
			}
			LA73_: ;
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* markerProc_2;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T82_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
			if (!(((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 3) <= (*(*(*m).g).config).selectedGC)) goto LA80_;
			markerProc_2 = genTraverseProc_6ja22UmHW9bFsLaOtztGpHQ(m, origType, sig);
			nimZeroMem((void*)T82_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T82_[0] = TINameForHcr_oXvL9aGYxIh9cO59b845ZGKcA(m, result);
			T82_[1] = markerProc_2;
			T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T83_ = percent__NtQEfuK9bXszNTfYU57z19bw(T82_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T83_);
		}
		LA80_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		genTypeInfoAux_DVDUKxJo5CvrWtAaM2iHCw_2(m, t_2, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		genArrayInfo_TiBDnY33G5Ca1p0Z3BOA9bg(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		genSetInfo_TiBDnY33G5Ca1p0Z3BOA9bg_2(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		genEnumInfo_TiBDnY33G5Ca1p0Z3BOA9bg_3(m, t_2, result, info);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA91_;
			genObjectInfoV2_TDEOLqqwXHVFJ9cWxDq6Nww(m, t_2, origType, result, info);
		}
		goto LA89_;
		LA91_: ;
		{
			genObjectInfo_DVDUKxJo5CvrWtAaM2iHCw_3(m, t_2, origType, result, info);
		}
		LA89_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleInfo_DVDUKxJo5CvrWtAaM2iHCw(m, t_2, origType, result, info);
	}
	break;
	default:
	{
		NimStringDesc* T96_;
		T96_ = (NimStringDesc*)0;
		T96_ = rawNewString((reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T96_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_111));
appendString(T96_, reprEnum((NI)(*t_2).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T96_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T96_);
	}
	break;
	}
	{
		if (!!(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 3))- 0] == NIM_NIL))) goto LA99_;
		genDeepCopyProc_hi0Gu9bcBd9a9cO4KStt3d7iw(m, (*t_2).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 3))- 0], result);
	}
	goto LA97_;
	LA99_: ;
	{
		if (!!(((*origType).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 3))- 0] == NIM_NIL))) goto LA102_;
		genDeepCopyProc_hi0Gu9bcBd9a9cO4KStt3d7iw(m, (*origType).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 3))- 0], result);
	}
	goto LA97_;
	LA102_: ;
	LA97_: ;
	T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T104_ = rope_yShmEg9cffWxI7s5XzEKBow(prefixTI);
	T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T105_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T104_, result);
	T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T106_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T105_, T106_);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, localDebugInfo_9aFEJaMCg37I5D9b15sgctsw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T16_;
	tyArray_f7nG5LD47BH5K9c6mASit3g T17_;
	NimStringDesc* T18_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_217;
	NI T22_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_218;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_219;
{	{
		if (!!(((327680 & (*p).options) == 327680))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*s).typ, IL64(36275087632017680));
		if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	a = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96), (*s).loc.r);
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*s).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3));
		if (!(T12_)) goto LA13_;
		T12_ = ccgIntroducedPtr_W9aw79b629bysnh3DDOpE3OTg((*(*(*p).module).g).config, s, retType);
		LA13_: ;
		if (!T12_) goto LA14_;
		a = (*s).loc.r;
	}
	LA14_: ;
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T16_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	nimZeroMem((void*)T17_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T17_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).maxFrameLen)));
	T18_ = (NimStringDesc*)0;
	T18_ = nsuNormalize((*(*s).name).s);
	T17_[1] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T18_);
	T17_[2] = a;
	T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T19_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
	T17_[3] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T19_, (*s).info);
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = percent__Wnuty4XNM9aTTuuxAY51daQ(T17_, 4);
	T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T16_, T21_);
	TM_MQdRN7fpbG7rPm4JpVVAhA_217 = addInt((*p).maxFrameLen, ((NI) 1));
	(*p).maxFrameLen = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_217);
	T22_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_218 = subInt(T22_, ((NI) 1));
	if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_218)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_218),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	TM_MQdRN7fpbG7rPm4JpVVAhA_219 = addInt((*p).blocks->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_218)].frameLen, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_219 < -32768 || TM_MQdRN7fpbG7rPm4JpVVAhA_219 > 32767) raiseOverflow();
	(*p).blocks->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_218)].frameLen = (NI16)(TM_MQdRN7fpbG7rPm4JpVVAhA_219);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, assignLocalVar_UtJx89cn0a8CNSWWmaj6raA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NimStringDesc* nl;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	{
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0)) goto LA3_;
		nl = ((NimStringDesc*) NIM_NIL);
	}
	goto LA1_;
	LA3_: ;
	{
		nl = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA1_: ;
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, n);
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T6_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	decl = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, nl);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T8_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, decl);
	add_IM4kcMNkkOLJtqdEqSxR8A(T8_, T9_);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	localDebugInfo_9aFEJaMCg37I5D9b15sgctsw(p, (*n).sym, NIM_NIL);
}

N_LIB_PRIVATE N_NIMCALL(void, initLocalVar_EpeofNfMJPurx0duaALCaA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, NIM_BOOL immediateAsgn) {
	{
		if (!!((((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0))) goto LA3_;
		{
			if (!!(immediateAsgn)) goto LA7_;
			constructLoc_UnMShnfXExBqkSCjaZsFdw(p, (*v).loc, NIM_FALSE);
		}
		LA7_: ;
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, fillResult_p9cP79bBkRq6WIT5fOHMaTzQ)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* param) {
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__T11tCz9bIGT2CcftAwrDXZw(T1_, 0);
	fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*(*param).sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 4), param, T2_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	t = (*(*param).sym).typ;
	{
		NIM_BOOL T5_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T6_;
		T5_ = (NIM_BOOL)0;
		T6_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T6_ = mapReturnType_K9aceyVl15zb9aYN9b6YJ8TnA_3(conf, t);
		T5_ = !((T6_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		if (!(T5_)) goto LA7_;
		T5_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag(conf, t);
		LA7_: ;
		if (!T5_) goto LA8_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		(*(*param).sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*param).kind)>>3] &(1U<<((NU)((*param).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		(*(*param).sym).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
	}
	LA8_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, scopeMangledParam_8o8k31aDRiyxRXKGzZbQIQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param) {
	NimStringDesc* key;
	key = mangle_GxzvEIRbrShQbyJNboTw7A((*(*param).name).s);
	shallow_cnzwaZQQIa73ryXE31wijQsystem((&key));
	inc_cue4X8ebEalt3pWXvkS49cw((&(*p).sigConflicts), key, ((NI) 1));
}

N_LIB_PRIVATE N_NIMCALL(void, assignParam_9aFEJaMCg37I5D9b15sgctsw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* retType) {
	{
		if (!!(!(((*s).loc.r == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_222));
	}
	LA3_: ;
	scopeMangledParam_8o8k31aDRiyxRXKGzZbQIQ(p, s);
	localDebugInfo_9aFEJaMCg37I5D9b15sgctsw(p, s, retType);
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg, allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg result;
{	result = (tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg)0;
	result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_223;
						if (!(i_2 < colontmp_)) goto LA5;
						i = i_2;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						it = (*n).sons->data[i];
						result = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(it);
						{
							if (!!((result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0)))) goto LA8_;
							goto BeforeRet_;
						}
						LA8_: ;
						TM_MQdRN7fpbG7rPm4JpVVAhA_223 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_223);
					} LA5: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T13_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T13_)) goto LA14_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T13_ = ((*(*(*n).sons->data[((NI) 0)]).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11));
			LA14_: ;
			if (!T13_) goto LA15_;
			{
				NIM_BOOL T19_;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T19_ = (NIM_BOOL)0;
				T19_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag((*n).sons->data[((NI) 1)]);
				if (!!(T19_)) goto LA20_;
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
			}
			goto LA17_;
			LA20_: ;
			{
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
			}
			LA17_: ;
		}
		goto LA11_;
		LA15_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag(n);
			if (!T24_) goto LA25_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
		}
		goto LA11_;
		LA25_: ;
		LA11_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		{
			NI T30_;
			T30_ = (NI)0;
			T30_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(((NI) 0) < T30_)) goto LA31_;
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T35_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
				if (!(T35_)) goto LA36_;
				T35_ = !((result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1)));
				LA36_: ;
				if (!T35_) goto LA37_;
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
			}
			goto LA33_;
			LA37_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				result = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ((*n).sons->data[((NI) 0)]);
			}
			LA33_: ;
		}
		LA31_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		NIM_BOOL exhaustive;
		exhaustive = NIM_FALSE;
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
			it_2 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T57_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_224;
						if (!(i_4 < colontmp__2)) goto LA44;
						i_3 = i_4;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						it_2 = (*n).sons->data[i_3];
						{
							NIM_BOOL T47_;
							NI T48_;
							T47_ = (NIM_BOOL)0;
							T48_ = (NI)0;
							T48_ = len_P89cqdlERShb9alU3iC0yj8wast(it_2);
							T47_ = (T48_ == ((NI) 2));
							if (!(T47_)) goto LA49_;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*it_2).sons ? (*it_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it_2).sons ? (*it_2).sons->Sup.len : 0)-1);
							T47_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag((*it_2).sons->data[((NI) 0)]);
							LA49_: ;
							if (!T47_) goto LA50_;
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
							goto BeforeRet_;
						}
						LA50_: ;
						{
							NI T54_;
							T54_ = (NI)0;
							T54_ = len_P89cqdlERShb9alU3iC0yj8wast(it_2);
							if (!(T54_ == ((NI) 1))) goto LA55_;
							exhaustive = NIM_TRUE;
						}
						LA55_: ;
						T57_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T57_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it_2);
						a = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(T57_);
						switch (a) {
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
						{
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
							goto BeforeRet_;
						}
						break;
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
						{
						}
						break;
						case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
						{
							result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
						}
						break;
						}
						TM_MQdRN7fpbG7rPm4JpVVAhA_224 = addInt(i_4, ((NI) 1));
						i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_224);
					} LA44: ;
				}
			}
		}
		{
			if (!!(exhaustive)) goto LA63_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA63_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		NIM_BOOL exhaustive_2;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T71_;
		{
			NIM_BOOL T68_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T68_ = (NIM_BOOL)0;
			T68_ = containsResult_fNMD7OWzxZVWuSQ9cYs2S9ag((*n).sons->data[((NI) 0)]);
			if (!T68_) goto LA69_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
			goto BeforeRet_;
		}
		LA69_: ;
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T71_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T71_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350144710672));
		exhaustive_2 = !(((*T71_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*T71_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*T71_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28)));
		{
			NI i_5;
			NI colontmp__3;
			NI i_6;
			i_5 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len_P89cqdlERShb9alU3iC0yj8wast(n);
			i_6 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_3;
					tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_2;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T75_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_225;
					if (!(i_6 < colontmp__3)) goto LA74;
					i_5 = i_6;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_5) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_5,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					it_3 = (*n).sons->data[i_5];
					T75_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T75_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it_3);
					a_2 = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(T75_);
					switch (a_2) {
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
					{
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
					}
					break;
					}
					{
						if (!((*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 88))) goto LA81_;
						exhaustive_2 = NIM_TRUE;
					}
					LA81_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_225 = addInt(i_6, ((NI) 1));
					i_6 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_225);
				} LA74: ;
			}
		}
		{
			if (!!(exhaustive_2)) goto LA85_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
		}
		LA85_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ((*n).sons->data[((NI) 0)]);
		{
			if (!(result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0))) goto LA90_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ((*n).sons->data[((NI) 1)]);
			{
				if (!(result == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA94_;
				result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
			}
			LA94_: ;
		}
		LA90_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			if (!((*(*n).sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11))) goto LA101_;
			result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
		}
		LA101_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_4;
			it_4 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_7;
				NI colontmp__4;
				NI i_8;
				i_7 = (NI)0;
				colontmp__4 = (NI)0;
				colontmp__4 = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_8 = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_226;
						if (!(i_8 < colontmp__4)) goto LA107;
						i_7 = i_8;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_7) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_7,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						it_4 = (*n).sons->data[i_7];
						{
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T112_;
							if (!((*it_4).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA110_;
							T112_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T112_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it_4);
							result = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(T112_);
						}
						goto LA108_;
						LA110_: ;
						{
							tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_3;
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T114_;
							T114_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
							T114_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it_4);
							a_3 = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(T114_);
							switch (a_3) {
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
							{
								result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
								goto BeforeRet_;
							}
							break;
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
							{
							}
							break;
							case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
							{
								result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
							}
							break;
							}
						}
						LA108_: ;
						TM_MQdRN7fpbG7rPm4JpVVAhA_226 = addInt(i_8, ((NI) 1));
						i_8 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_226);
					} LA107: ;
				}
			}
		}
	}
	break;
	default:
	{
		{
			NI i_9;
			NI colontmp__5;
			NI i_10;
			i_9 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_10 = ((NI) 0);
			{
				while (1) {
					tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg a_4;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_227;
					if (!(i_10 < colontmp__5)) goto LA121;
					i_9 = i_10;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_9) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_9,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					a_4 = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ((*n).sons->data[i_9]);
					switch (a_4) {
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 2);
						goto BeforeRet_;
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1):
					{
					}
					break;
					case ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0):
					{
						result = ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 0);
					}
					break;
					}
					TM_MQdRN7fpbG7rPm4JpVVAhA_227 = addInt(i_10, ((NI) 1));
					i_10 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_227);
				} LA121: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 5) <= (*conf).selectedGC);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genRefAssign_jdslQ8TsNpkTt8SvBLJjEA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = (dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
		if (!(T4_)) goto LA5_;
		T4_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7)));
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA6_;
		T7_ = (NIM_BOOL)0;
		T7_ = usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
		T3_ = !(T7_);
		LA6_: ;
		if (!T3_) goto LA8_;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA19_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA19_: ;
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T21_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T22_);
	}
	goto LA1_;
	LA8_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		if (!(dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA24_;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA29_: ;
		res_2 = rawNewString(((NI) 80));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_229));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA36_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA36_: ;
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T38_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T39_);
	}
	goto LA1_;
	LA24_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T41_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T41_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA44_: ;
		res_3 = rawNewString(((NI) 80));
		T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T46_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T46_);
		res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
		T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T47_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA51_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA51_: ;
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T41_, T54_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* loc) {
	NIM_BOOL containsGcRef;
	NIM_BOOL T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
{	T1_ = (NIM_BOOL)0;
	T1_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4)));
	if (!(T1_)) goto LA2_;
	T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
	T1_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T3_);
	LA2_: ;
	containsGcRef = T1_;
	T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T4_, IL64(36134350144710928));
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(typ);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NIM_BOOL T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4));
		if (!(T12_)) goto LA13_;
		T12_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24));
		LA13_: ;
		if (!T12_) goto LA14_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*loc));
			if (!!(!((T18_ == NIM_NIL)))) goto LA19_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_228));
		}
		LA19_: ;
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T21_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA24_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA24_: ;
		res = rawNewString(((NI) 80));
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_123));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*loc));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_124));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T21_, T33_);
	}
	goto LA10_;
	LA14_: ;
	{
		NIM_BOOL T35_;
		T35_ = (NIM_BOOL)0;
		T35_ = isComplexValueType_Fl17jclCP5VEr9a7Ycym1awcgen(typ);
		if (!!(T35_)) goto LA36_;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA nilLoc;
			if (!containsGcRef) goto LA40_;
			nimZeroMem((void*)(&nilLoc), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_qlujIAW86QclHYUVxlHRiQ((&nilLoc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), (*loc).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			nilLoc.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_171));
			genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, (*loc), nilLoc);
		}
		goto LA38_;
		LA40_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T43_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T43_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA46_: ;
			res_2 = rawNewString(((NI) 80));
			T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*loc));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
			res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_232));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA51_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA51_: ;
			T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T53_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T43_, T54_);
		}
		LA38_: ;
	}
	goto LA10_;
	LA36_: ;
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T60_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0)) goto LA58_;
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T60_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA63_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA63_: ;
			res_3 = rawNewString(((NI) 80));
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_233));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T65_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T66_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA69_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA69_: ;
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T71_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T60_, T72_);
		}
		LA58_: ;
		{
			NIM_BOOL T75_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T79_;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T86_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T94_;
			T75_ = (NIM_BOOL)0;
			T75_ = !(((*loc).storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2)));
			if (!(T75_)) goto LA76_;
			T75_ = containsGcRef;
			LA76_: ;
			if (!T75_) goto LA77_;
			T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T79_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA82_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA82_: ;
			res_4 = rawNewString(((NI) 80));
			T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T84_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_234));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T84_);
			res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T85_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T86_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T86_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T86_, (*(*loc).lode).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T87_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA90_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA90_: ;
			T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T92_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T93_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T92_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T79_, T93_);
			T94_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T94_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T94_, (*loc), NIM_TRUE);
		}
		goto LA73_;
		LA77_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T96_;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T101_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T103_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T110_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T111_;
			T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T96_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA99_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA99_: ;
			res_5 = rawNewString(((NI) 80));
			T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T101_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_127));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T101_);
			res_5 = resizeString(res_5, 8);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*loc));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T102_);
			res_5 = resizeString(res_5, 9);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			T103_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T103_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T103_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T104_);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA107_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA107_: ;
			T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T109_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T110_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T110_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T109_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T96_, T110_);
			T111_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T111_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*loc));
			genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), T111_, (*loc), NIM_TRUE);
		}
		LA73_: ;
	}
	LA10_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, closureSetup_PDMGXd7Yn9cB79asQW3arukQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ls;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* env;
{	{
		if (!!((((*(*prc).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 3)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
	ls = lastSon_UPSW0jLTX5qJL51YMUAHgw((*(*prc).ast).sons->data[((NI) 3)]);
	{
		if (!!(((*ls).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_236));
	}
	LA7_: ;
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*ls).kind)>>3] &(1U<<((NU)((*ls).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	env = (*ls).sym;
	assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, ls);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T13_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7))) goto LA11_;
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T13_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*env).loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_237));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*env).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_238));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA23_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA23_: ;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T13_, T26_);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T28_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T28_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA31_: ;
		res_2 = rawNewString(((NI) 80));
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*env).loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*env).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_239));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA37_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA37_: ;
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T28_, T40_);
	}
	LA9_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = (*p).gcFrameType;
		result = percent__M3h9cTlVBrj2vakKBqQRlMA(T5_, 1);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrame_hSB0mXJGcFil9bvrhp0Qm5g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NI)0;
		T3_ = len_9b0YRltzV3kNSE9aQTsG82wg((*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_246));
		res = resizeString(res, 125);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_247));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_249));
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_246));
		res = resizeString(res, 232);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_250));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 20);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_251));
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_246));
		res = resizeString(res, 70);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_252));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0], T12_);
	}
	LA4_: ;
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248));
	(void)(T13_);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		NimStringDesc* res_2;
		if (!(((NI) 0) < (*p).maxFrameLen)) goto LA16_;
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_253));
		(void)(T18_);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA21_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_254));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), procname);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), filename);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*p).maxFrameLen)));
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*p).blocks->data[((NI) 0)].frameLen)));
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA25_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA25_: ;
		result = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	goto LA14_;
	LA16_: ;
	{
		NimStringDesc* res_3;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA30_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_255));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), procname);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), filename);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA34_: ;
		result = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
	}
	LA14_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		if (!(((NI) 0) < ((NI) ((*p).gcFrameId)))) goto LA3_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 28);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_258));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_259));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_260));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA12_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA12_: ;
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_261));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA8_: ;
	result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getProcTypeCast_kjPRfLdGk3b78KhSOOjbOA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
	result = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T1_);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
		tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
		initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&check));
		genProcParams_uApDq1rn2zPxULBMpTSrxQ(m, (*prc).typ, &rettype, &params, (&check), NIM_TRUE, NIM_FALSE);
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = rettype;
		T6_[1] = params;
		result = percent__tgUnLdPVK0vRqC0pWxMClQ(T6_, 2);
	}
	LA4_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcAux_HbYPOpwLApFuBkISFGrmEQ_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* returnStmt;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* procBody;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	p = newProc_r9c9cj4fW68RhY7ht9btSvB8w(prc, m);
	header = genProcHeader_OWG529cW3RTHLgDJuQoIH8A(m, prc, NIM_FALSE);
	returnStmt = NIM_NIL;
	{
		if (!!(!(((*prc).ast == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_85));
	}
	LA3_: ;
	procBody = transformBody_gFZW9bFffCiuUrdu3Rnih2g((*(*m).g).graph, prc, NIM_FALSE, NIM_FALSE);
	{
		NIM_BOOL T7_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* resNode;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* res;
		T7_ = (NIM_BOOL)0;
		T7_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		if (!(T7_)) goto LA8_;
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1);
		T7_ = !(((*(*prc).typ).sons->data[((NI) 0)] == NIM_NIL));
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			NI T13_;
			T13_ = (NI)0;
			T13_ = len_P89cqdlERShb9alU3iC0yj8wast((*prc).ast);
			if (!(T13_ <= ((NI) 7))) goto LA14_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_86));
		}
		LA14_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 7)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 7),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		resNode = (*(*prc).ast).sons->data[((NI) 7)];
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*resNode).kind)>>3] &(1U<<((NU)((*resNode).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		res = (*resNode).sym;
		{
			NIM_BOOL T18_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1);
			T18_ = (NIM_BOOL)0;
			T18_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*m).g).config, (*(*prc).typ).sons->data[((NI) 0)]);
			if (!!(T18_)) goto LA19_;
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA23_;
				(*res).flags |= ((NU64)1)<<((((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12)) & 63);
			}
			LA23_: ;
			{
				NIM_BOOL T27_;
				NIM_BOOL T28_;
				NIM_BOOL T30_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* val;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T35_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
				T27_ = (NIM_BOOL)0;
				T28_ = (NIM_BOOL)0;
				T28_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
				if (!(T28_)) goto LA29_;
				T30_ = (NIM_BOOL)0;
				T30_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T30_) goto LA31_;
				T30_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA31_: ;
				T28_ = T30_;
				LA29_: ;
				T27_ = T28_;
				if (!(T27_)) goto LA32_;
				val = easyResultAsgn_oKhRC9bEKTxG5epdNiNWZ0w(procBody);
				T27_ = !((val == NIM_NIL));
				LA32_: ;
				if (!T27_) goto LA33_;
				decl = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, resNode);
				nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, val, (&a));
				T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T35_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA38_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA38_: ;
				res_2 = rawNewString(((NI) 80));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), decl);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T40_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T40_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA43_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA43_: ;
				T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T45_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T35_, T46_);
			}
			goto LA25_;
			LA33_: ;
			{
				assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, resNode);
				{
					if (!!(!(((*res).loc.r == NIM_NIL)))) goto LA50_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_220));
				}
				LA50_: ;
				initLocalVar_EpeofNfMJPurx0duaALCaA(p, res, NIM_FALSE);
			}
			LA25_: ;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA54_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_221));
			T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*res).loc);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA59_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA59_: ;
			returnStmt = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		}
		goto LA16_;
		LA19_: ;
		{
			fillResult_p9cP79bBkRq6WIT5fOHMaTzQ((*(*(*p).module).g).config, resNode);
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1);
			assignParam_9aFEJaMCg37I5D9b15sgctsw_2(p, res, (*(*prc).typ).sons->data[((NI) 0)]);
			{
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA64_;
			}
			goto LA62_;
			LA64_: ;
			{
				tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg T67_;
				T67_ = (tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg)0;
				T67_ = allPathsAsgnResult_3E19a9b4Xsk8ypT9b1MEmPyCQ(procBody);
				if (!(T67_ == ((tyEnum_InitResultEnum_9c9csRan2YP9boKbiUR9cP6PNg) 1))) goto LA68_;
			}
			goto LA62_;
			LA68_: ;
			{
				resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*res).loc));
			}
			LA62_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T73_;
				T73_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T73_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*res).typ, IL64(36134350135273744));
				if (!((*T73_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA74_;
				(*res).loc.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			LA74_: ;
		}
		LA16_: ;
	}
	LA9_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*(*prc).typ).n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_235;
				if (!(i_2 < colontmp_)) goto LA78;
				i = i_2;
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*prc).typ).n).kind)>>3] &(1U<<((NU)((*(*(*prc).typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*(*prc).typ).n).sons ? (*(*(*prc).typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*(*prc).typ).n).sons ? (*(*(*prc).typ).n).sons->Sup.len : 0)-1);
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*(*prc).typ).n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*(*prc).typ).n).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
					param = (*(*(*(*prc).typ).n).sons->data[i]).sym;
					{
						NIM_BOOL T82_;
						T82_ = (NIM_BOOL)0;
						T82_ = isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types((*param).typ);
						if (!T82_) goto LA83_;
						goto LA79;
					}
					LA83_: ;
					if ((NU)(((NI) 0)) >= (NU)((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).typ).sons ? (*(*prc).typ).sons->Sup.len : 0)-1);
					assignParam_9aFEJaMCg37I5D9b15sgctsw_2(p, param, (*(*prc).typ).sons->data[((NI) 0)]);
				} LA79: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_235 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_235);
			} LA78: ;
		}
	}
	closureSetup_PDMGXd7Yn9cB79asQW3arukQ(p, prc);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, procBody);
	generatedProc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0)) goto LA87_;
		{
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA91_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_240), header);
		}
		LA91_: ;
	}
	LA87_: ;
	{
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T109_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T110_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T111_;
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA95_;
		{
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0)) goto LA99_;
			header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_241), header);
		}
		LA99_: ;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA103_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA103_: ;
		res_4 = rawNewString(((NI) 80));
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), header);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA107_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA107_: ;
		T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T109_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T109_));
		T110_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T110_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T110_));
		T111_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T111_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*T111_));
		res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_243));
		generatedProc = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
	}
	goto LA93_;
	LA95_: ;
	{
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T117_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T146_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T147_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T154_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T160_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T161_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA115_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA115_: ;
		res_5 = rawNewString(((NI) 80));
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), header);
		res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244));
		generatedProc = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		T117_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T117_ = initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3(p);
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T117_);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T122_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T123_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T124_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA120_;
			T122_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T122_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T122_));
			procname = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*prc).name).s);
			T123_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T123_ = quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*prc).info);
			T124_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = initFrame_hSB0mXJGcFil9bvrhp0Qm5g(p, procname, T123_);
			add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T124_);
		}
		goto LA118_;
		LA120_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T126_;
			T126_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T126_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T126_));
		}
		LA118_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T131_;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T136_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T141_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0)) goto LA129_;
			T131_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T131_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA134_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA134_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
			T136_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T136_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T136_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA139_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA139_: ;
			T141_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T141_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			add_IM4kcMNkkOLJtqdEqSxR8A(T131_, T141_);
		}
		LA129_: ;
		{
			if (!(*p).beforeRetNeeded) goto LA144_;
			add_yG4AKzsBRS1W4MANDlXQeg(&generatedProc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
		}
		LA144_: ;
		T146_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T146_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T146_));
		T147_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T147_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, (*T147_));
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T152_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T153_;
			if (!(*p).beforeRetNeeded) goto LA150_;
			nimZeroMem((void*)T152_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T153_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T153_ = percent__BBAyGuVoK6QA7nXfPUIYKA(T152_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T153_);
		}
		LA150_: ;
		T154_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T154_ = deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4(p);
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T154_);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T159_;
			if (!(((*prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA157_;
			T159_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T159_ = deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5(p);
			add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T159_);
		}
		LA157_: ;
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, returnStmt);
		nimZeroMem((void*)T160_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T161_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T161_ = percent__g9b9arp3BWCGRHDe21SJso6w(T160_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&generatedProc, T161_);
	}
	LA93_: ;
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	{
		NIM_BOOL T164_;
		tyArray_f7nG5LD47BH5K9c6mASit3g T167_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T168_;
		T164_ = (NIM_BOOL)0;
		T164_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, prc);
		if (!T164_) goto LA165_;
		nimZeroMem((void*)T167_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T167_[0] = (*prc).loc.r;
		T167_[1] = amp__Z7W1o5nPSc3ExfO5f7j1Gg((*prc).loc.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71));
		T167_[2] = getProcTypeCast_kjPRfLdGk3b78KhSOOjbOA(m, prc);
		T167_[3] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, prc);
		T168_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T168_ = percent__09aVguRR64dWfw4b6fKBcqg(T167_, 4);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T168_);
	}
	LA165_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGetProcAddr_SYG8r9a6ANje3aBM5rYzaeg)(tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib) {
	NIM_BOOL result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	n = (*lib).path;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	T2_ = !(((*n).typ == NIM_NIL));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26) || (*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, loadDynamicLib_Q3RS49c6kF7OS9bmwvFHRQJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib) {
	{
		if (!!(!((lib == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_262));
	}
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		if (!!((*lib).generated)) goto LA7_;
		(*lib).generated = NIM_TRUE;
		tmp = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		{
			if (!!(((*lib).name == NIM_NIL))) goto LA11_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_263));
		}
		LA11_: ;
		asgnRef((void**) (&(*lib).name), tmp);
		nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = tmp;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent__FBNsdfF5FNrY4P9cYQIfvZQ(T13_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T14_);
		{
			tySequence_sM4lkSb7zS6F7OVMvW9cffQ* s;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* loadlib;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
			if (!((*(*lib).path).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*lib).path).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA17_;
			s = NIM_NIL;
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*lib).path).kind)>>3] &(1U<<((NU)((*(*lib).path).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
			libCandidates_TEY9aqiaMWVK2l0NzZy7BwQ((*(*lib).path).strVal, (&s));
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*lib).path).kind)>>3] &(1U<<((NU)((*(*lib).path).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 62), (*(*lib).path).strVal);
			loadlib = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI T20_;
				NI res;
				i = (NI)0;
				colontmp_ = (NI)0;
				T20_ = ((s ? s->Sup.len : 0)-1);
				colontmp_ = T20_;
				res = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_264;
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
						NimStringDesc* res_2;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_268;
						if (!(res <= colontmp_)) goto LA22;
						i = res;
						TM_MQdRN7fpbG7rPm4JpVVAhA_264 = addInt((*m).labels, ((NI) 1));
						if (TM_MQdRN7fpbG7rPm4JpVVAhA_264 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_264 > 2147483647) raiseOverflow();
						(*m).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_264);
						{
							if (!(((NI) 0) < i)) goto LA25_;
							add_yG4AKzsBRS1W4MANDlXQeg(&loadlib, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_265));
						}
						LA25_: ;
						if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
						n = newStrNode_zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), s->data[i]);
						(*n).info = (*(*lib).path).info;
						{
							if (!!(!((m == NIM_NIL)))) goto LA29_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
						}
						LA29_: ;
						res_2 = rawNewString(((NI) 80));
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), tmp);
						res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
						T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
						T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T32_ = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw(m, n);
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA35_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA35_: ;
						T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T37_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
						add_IM4kcMNkkOLJtqdEqSxR8A(&loadlib, T37_);
						TM_MQdRN7fpbG7rPm4JpVVAhA_268 = addInt(res, ((NI) 1));
						res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_268);
					} LA22: ;
				}
			}
			{
				if (!!(!((m == NIM_NIL)))) goto LA40_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA40_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 6);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_269));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), loadlib);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T42_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw(m, (*lib).path);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T43_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA46_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA46_: ;
			T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T48_);
		}
		goto LA15_;
		LA17_: ;
		{
			tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T61_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T63_;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
			p = newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
			(*p).options = ((*p).options & ~ 327680);
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_qlujIAW86QclHYUVxlHRiQ((&dest), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), (*lib).path, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			dest.r = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
			{
				if (!!(!((m == NIM_NIL)))) goto LA52_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA52_: ;
			res_4 = rawNewString(((NI) 80));
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*(*lib).path).typ);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T54_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T55_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA58_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T60_);
			expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*lib).path, (&dest));
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T61_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], (*T61_));
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T62_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], (*T62_));
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T63_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], (*T63_));
			{
				if (!!(!((m == NIM_NIL)))) goto LA66_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA66_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 6);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_269));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), tmp);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T68_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T69_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_272));
			T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T70_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T71_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA74_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA74_: ;
			T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T76_);
		}
		LA15_: ;
	}
	LA7_: ;
	{
		if (!((*lib).name == NIM_NIL)) goto LA79_;
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_273));
	}
	LA79_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow((*(*sym).name).s);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		T6_ = (NimStringDesc*)0;
		T6_ = nimIntToStr((*sym).Sup.id);
		T7_ = (NimStringDesc*)0;
		T7_ = nsuFormatSingleElem(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_274), T6_);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T7_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	initLoc_qlujIAW86QclHYUVxlHRiQ(result, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, e, result);
}

N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	NIM_BOOL isCall;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_275;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T52_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
	lib = (*sym).annex;
	isCall = isGetProcAddr_SYG8r9a6ANje3aBM5rYzaeg(lib);
	extname = (*sym).loc.r;
	{
		if (!!(isCall)) goto LA3_;
		loadDynamicLib_Q3RS49c6kF7OS9bmwvFHRQJQ(m, lib);
	}
	LA3_: ;
	tmp = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRef((void**) (&(*sym).loc.r), tmp);
	asgnRef((void**) (&(*(*sym).typ).sym), NIM_NIL);
	TM_MQdRN7fpbG7rPm4JpVVAhA_275 = addInt((*m).labels, ((NI) 2));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_275 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_275 > 2147483647) raiseOverflow();
	(*m).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_275);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* load;
		tyArray_f7nG5LD47BH5K9c6mASit3g T15_;
		NimStringDesc* T16_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* last;
		NimStringDesc* idx;
		if (!isCall) goto LA7_;
		n = (*lib).path;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n).sons->data[((NI) 0)], (&a));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		params = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_276;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			TM_MQdRN7fpbG7rPm4JpVVAhA_276 = subInt(T11_, ((NI) 2));
			colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_276);
			res = ((NI) 1);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_277;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2((*m).initProc, (*n).sons->data[i], (&a));
					T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					add_IM4kcMNkkOLJtqdEqSxR8A(&params, T14_);
					add_yG4AKzsBRS1W4MANDlXQeg(&params, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					TM_MQdRN7fpbG7rPm4JpVVAhA_277 = addInt(res, ((NI) 1));
					res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_277);
				} LA13: ;
			}
		}
		nimZeroMem((void*)T15_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T15_[0] = tmp;
		T15_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
		T15_[2] = params;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__mZ66tEveFIQokq3arf8Klw(extname);
		T15_[3] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T16_);
		load = percent__cB7zULPbG5vWWdCukRjdqg(T15_, 4);
		last = lastSon_UPSW0jLTX5qJL51YMUAHgw(n);
		{
			if (!((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58))) goto LA19_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*last).kind)>>3] &(1U<<((NU)((*last).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*last).sons ? (*last).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*last).sons ? (*last).sons->Sup.len : 0)-1);
			last = (*last).sons->data[((NI) 1)];
		}
		LA19_: ;
		{
			NimStringDesc* T25_;
			if (!!(((*last).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20)))) goto LA23_;
			T25_ = (NimStringDesc*)0;
			T25_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_278);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T25_);
		}
		LA23_: ;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*last).kind)>>3] &(1U<<((NU)((*last).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		idx = (*last).strVal;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
			if (!((idx ? idx->Sup.len : 0) == ((NI) 0))) goto LA28_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_IM4kcMNkkOLJtqdEqSxR8A(T30_, load);
		}
		goto LA26_;
		LA28_: ;
		{
			NIM_BOOL T32_;
			T32_ = (NIM_BOOL)0;
			T32_ = ((idx ? idx->Sup.len : 0) == ((NI) 1));
			if (!(T32_)) goto LA33_;
			if ((NU)(((NI) 0)) >= (NU)(idx ? idx->Sup.len : 0)) raiseIndexError2(((NI) 0),(idx ? idx->Sup.len : 0)-1);
			T32_ = (((NU8)(idx->data[((NI) 0)])) >= ((NU8)(48)) && ((NU8)(idx->data[((NI) 0)])) <= ((NU8)(57)));
			LA33_: ;
			if (!T32_) goto LA34_;
			if ((NU)(((NI) 0)) >= (NU)(idx ? idx->Sup.len : 0)) raiseIndexError2(((NI) 0),(idx ? idx->Sup.len : 0)-1);
			if (((NU8)(idx->data[((NI) 0)])) < 48 || ((NU8)(idx->data[((NI) 0)])) > 57) raiseIndexError3(((NU8)(idx->data[((NI) 0)])), 48, 57);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).extensionLoaders[(((NU8)(idx->data[((NI) 0)])))- 48], load);
		}
		goto LA26_;
		LA34_: ;
		{
			NimStringDesc* T37_;
			T37_ = (NimStringDesc*)0;
			T37_ = rawNewString((idx ? idx->Sup.len : 0) + 13);
appendString(T37_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_280));
appendString(T37_, idx);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*sym).info, T37_);
		}
		LA26_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		NimStringDesc* T45_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA41_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA41_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), tmp);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*lib).name);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T45_ = (NimStringDesc*)0;
		T45_ = dollar__mZ66tEveFIQokq3arf8Klw(extname);
		T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T46_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T45_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA49_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA49_: ;
		T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T51_);
	}
	LA5_: ;
	nimZeroMem((void*)T52_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T52_[0] = (*sym).loc.r;
	T53_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T53_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
	T52_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T53_);
	T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T54_ = percent__dpzmcz9a6kXbhFacdElIMOw(T52_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T54_);
}

N_LIB_PRIVATE N_NIMCALL(void, symInDynamicLibPartial_TAVDUakAwQnRHDK9cFe6L7g_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	asgnRef((void**) (&(*sym).loc.r), mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym));
	asgnRef((void**) (&(*(*sym).typ).sym), NIM_NIL);
}

N_LIB_PRIVATE N_NIMCALL(void, genProcNoForward_HbYPOpwLApFuBkISFGrmEQ_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 7))&15U)))!=0)) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast).sons->data[((NI) 0)]);
		useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, prc);
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, (*(*prc).name).s);
		(void)(T5_);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast).sons->data[((NI) 0)]);
		genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(m, prc);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA11_;
		{
			NIM_BOOL T15_;
			tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* T18_;
			T15_ = (NIM_BOOL)0;
			T15_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*prc).Sup.id);
			if (!!(T15_)) goto LA16_;
			T18_ = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
			T18_ = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA(m, prc);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
			fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(T18_, (*(*prc).ast).sons->data[((NI) 0)]);
			genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(m, prc);
			genProcAux_HbYPOpwLApFuBkISFGrmEQ_4(m, prc);
		}
		LA16_: ;
	}
	goto LA6_;
	LA11_: ;
	{
		tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* q;
		if (!(((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA20_;
		q = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA(m, prc);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(q, (*(*prc).ast).sons->data[((NI) 0)]);
		genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		{
			NIM_BOOL T24_;
			NIM_BOOL T26_;
			T24_ = (NIM_BOOL)0;
			T24_ = !((q == NIM_NIL));
			if (!(T24_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*prc).Sup.id);
			T24_ = !(T26_);
			LA25_: ;
			if (!T24_) goto LA27_;
			symInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_3(q, prc);
			{
				NIM_BOOL T31_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T34_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
				T31_ = (NIM_BOOL)0;
				T31_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(q, prc);
				if (!T31_) goto LA32_;
				nimZeroMem((void*)T34_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T34_[0] = (*prc).loc.r;
				T35_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T35_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
				T34_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(q, T35_);
				T34_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*q).module);
				T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = percent__AWFBEodxoi9a61KDUc9aiw1w(T34_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*q).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T36_);
			}
			LA32_: ;
		}
		goto LA22_;
		LA27_: ;
		{
			symInDynamicLibPartial_TAVDUakAwQnRHDK9cFe6L7g_4(m, prc);
		}
		LA22_: ;
	}
	goto LA6_;
	LA20_: ;
	{
		tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* q_2;
		if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0))) goto LA39_;
		q_2 = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA(m, prc);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(q_2, (*(*prc).ast).sons->data[((NI) 0)]);
		{
			NIM_BOOL T43_;
			NIM_BOOL T44_;
			NIM_BOOL T45_;
			NIM_BOOL T47_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T52_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
			T43_ = (NIM_BOOL)0;
			T44_ = (NIM_BOOL)0;
			T45_ = (NIM_BOOL)0;
			T45_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, prc);
			if (!(T45_)) goto LA46_;
			T47_ = (NIM_BOOL)0;
			T47_ = contains_R6uRTGpl30Ofaw4Ni3vawA((&(*m).declaredProtos), (*prc).Sup.id);
			T45_ = !(T47_);
			LA46_: ;
			T44_ = T45_;
			if (!(T44_)) goto LA48_;
			T44_ = !((q_2 == NIM_NIL));
			LA48_: ;
			T43_ = T44_;
			if (!(T43_)) goto LA49_;
			T43_ = !(((*(*q_2).module).Sup.id == (*(*m).module).Sup.id));
			LA49_: ;
			if (!T43_) goto LA50_;
			nimZeroMem((void*)T52_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T52_[0] = (*prc).loc.r;
			T52_[1] = getProcTypeCast_kjPRfLdGk3b78KhSOOjbOA(m, prc);
			T52_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, prc);
			T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = percent__vHbYzYlzLPcurSm0Hu8InQ(T52_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T53_);
		}
		LA50_: ;
		genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		{
			NIM_BOOL T56_;
			NIM_BOOL T58_;
			T56_ = (NIM_BOOL)0;
			T56_ = !((q_2 == NIM_NIL));
			if (!(T56_)) goto LA57_;
			T58_ = (NIM_BOOL)0;
			T58_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*q_2).declaredThings), (*prc).Sup.id);
			T56_ = !(T58_);
			LA57_: ;
			if (!T56_) goto LA59_;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, prc);
				if (!T63_) goto LA64_;
				genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(q_2, prc);
			}
			LA64_: ;
			genProcAux_HbYPOpwLApFuBkISFGrmEQ_4(q_2, prc);
		}
		LA59_: ;
	}
	goto LA6_;
	LA39_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast).sons->data[((NI) 0)]);
		useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, prc);
		{
			if (!!((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0))) goto LA69_;
			genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g(m, prc);
		}
		LA69_: ;
	}
	LA6_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genProc_HbYPOpwLApFuBkISFGrmEQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc) {
{	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isActivated_FP3Xc9c0yhzvB6NLyfQJkYw(prc);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA10_;
		addForwardedProc_HbYPOpwLApFuBkISFGrmEQ_2(m, prc);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
		fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast).sons->data[((NI) 0)]);
	}
	goto LA8_;
	LA10_: ;
	{
		genProcNoForward_HbYPOpwLApFuBkISFGrmEQ_3(m, prc);
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = ((65600 & (*prc).flags) == 64);
			if (!(T16_)) goto LA17_;
			T16_ = !(((*(*m).g).generatedHeader == NIM_NIL));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0));
			LA18_: ;
			if (!T15_) goto LA19_;
			genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g((*(*m).g).generatedHeader, prc);
			{
				if (!((*(*prc).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5))) goto LA23_;
				{
					NIM_BOOL T27_;
					T27_ = (NIM_BOOL)0;
					T27_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*(*(*m).g).generatedHeader).declaredThings), (*prc).Sup.id);
					if (!!(T27_)) goto LA28_;
					genProcAux_HbYPOpwLApFuBkISFGrmEQ_4((*(*m).g).generatedHeader, prc);
				}
				LA28_: ;
			}
			LA23_: ;
		}
		LA19_: ;
	}
	LA8_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
{	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	if (!(T2_)) goto LA3_;
	T2_ = ((8388616 & (*s).flags) == 8);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((72 & (*s).loc.flags) == 0);
	LA4_: ;
	result = T1_;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((35651584 & ~ (*conf).globalOptions)==0);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, declareThreadVar_wDT42Iy4l3KGL9cd8rMjKRA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, NIM_BOOL isExtern) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
			NI T12_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T13_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
			T8_ = (NIM_BOOL)0;
			T8_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*(*m).g).nimtvDeclared), (*s).Sup.id);
			if (!!(T8_)) goto LA9_;
			T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T11_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			asgnRef((void**) (&(*(*m).g).nimtvDeps), (tySequence_Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*(*m).g).nimtvDeps), (&NTI_Ef05srmQTDulnBdXR4Ja6Q_)));
			T12_ = (*(*m).g).nimtvDeps->Sup.len++;
			asgnRef((void**) (&(*(*m).g).nimtvDeps->data[T12_]), T11_);
			nimZeroMem((void*)T13_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T14_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			T13_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T14_);
			T13_[1] = (*s).loc.r;
			T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T15_ = percent__vzbf0XksfaFTXNoTT6BCwA(T13_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*m).g).nimtv, T15_);
		}
		LA9_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		{
			if (!isExtern) goto LA19_;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283));
		}
		LA19_: ;
		{
			if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 21))&63U)))!=0)) goto LA23_;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_284));
		}
		LA23_: ;
		T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T25_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T25_);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T26_);
		nimZeroMem((void*)T27_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T27_[0] = (*s).loc.r;
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = percent__nzT6Rke9c7tkW9b3XMmld2LA(T27_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T28_);
	}
	LA1_: ;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**, procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg s) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	result = &(*p).blocks->data[((NI) 0)].sections[(s)- 0];
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarPrototype_t9a9a9bxmaOztYOfsfhQUOXXw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
{	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	sym = (*n).sym;
	useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, sym);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = mangleName_RaNE9b8A430I9bfpgZmdrC1w(m, sym);
	fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), n, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw(m, sym);
		if (!T4_) goto LA5_;
		(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
	}
	LA5_: ;
	{
		NIM_BOOL T9_;
		T9_ = (NIM_BOOL)0;
		T9_ = (((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0);
		if (T9_) goto LA10_;
		T9_ = contains_R6uRTGpl30Ofaw4Ni3vawA((&(*m).declaredThings), (*sym).Sup.id);
		LA10_: ;
		if (!T9_) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!!(((*(*sym).owner).Sup.id == (*(*m).module).Sup.id))) goto LA15_;
		{
			if (!!(!(((*sym).loc.r == NIM_NIL)))) goto LA19_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_282));
		}
		LA19_: ;
		{
			if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA23_;
			declareThreadVar_wDT42Iy4l3KGL9cd8rMjKRA(m, sym, NIM_TRUE);
		}
		goto LA21_;
		LA23_: ;
		{
			NimStringDesc* T26_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T52_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
			incl_jENnK9c9bPE73pKmo2vYjpqg((&(*m).declaredThings), (*sym).Sup.id);
			T26_ = (NimStringDesc*)0;
			{
				NIM_BOOL T29_;
				T29_ = (NIM_BOOL)0;
				T29_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T29_) goto LA30_;
				T26_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
			}
			goto LA27_;
			LA30_: ;
			{
				T26_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283));
			}
			LA27_: ;
			add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T26_);
			T33_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T33_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T33_);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T34_);
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T37_) goto LA38_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
			}
			LA38_: ;
			{
				if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA42_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
			}
			LA42_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA46_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
			}
			LA46_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA50_;
				add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93));
			}
			LA50_: ;
			nimZeroMem((void*)T52_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T52_[0] = (*sym).loc.r;
			T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = percent__nzT6Rke9c7tkW9b3XMmld2LA(T52_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T53_);
			{
				NIM_BOOL T56_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T59_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T60_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T61_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
				T56_ = (NIM_BOOL)0;
				T56_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T56_) goto LA57_;
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T59_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
				nimZeroMem((void*)T60_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T60_[0] = (*sym).loc.r;
				T61_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T61_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T60_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T61_);
				T60_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, sym);
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = percent__9cCc2iMcL3MEBZTTL3LCW1w(T60_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(T59_, T62_);
			}
			LA57_: ;
		}
		LA21_: ;
	}
	LA15_: ;
	}BeforeRet_: ;
}

static N_INLINE(NIM_BOOL, contains_qHGsA9c3St7G1nwMx4AqqdAsystem)(tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg s, tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw 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_Q0OJ6Fbbaym5ZPcTINdkvg, dotdot__0wIRQwb39b5pamdesRscOZAsystem)(tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw a, tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw b) {
	tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg));
	chckNil((void*)(&result));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg));
	result.a = a;
	result.b = b;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addActualPrefixForHCR_Mns9bHWQy2Dza12fE8Mjw9aw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** res, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* module, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*sym).flags & IL64(17179869216)) == 0);
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*(*sym).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5));
		if (T5_) goto LA6_;
		T5_ = ((*(*sym).owner).Sup.id == (*module).Sup.id);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_71));
		unsureAsgnRef((void**) (&(*res)), amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*res), T9_));
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, cgsym_arLmPq9aJc9b7GpWTbo6dvHg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* name) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	sym = getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, name);
	{
		if (!!((sym == NIM_NIL))) goto LA3_;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		{
			genProc_HbYPOpwLApFuBkISFGrmEQ(m, sym);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T7_;
			T7_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T7_ = newSymNode_I2DV2TmmOysY1ZEGW19b9bRg(sym);
			genVarPrototype_t9a9a9bxmaOztYOfsfhQUOXXw_2(m, T7_);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
			(void)(T9_);
		}
		break;
		default:
		{
			NimStringDesc* T11_;
			T11_ = (NimStringDesc*)0;
			T11_ = rawNewString((name ? name->Sup.len : 0) + (reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 9);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_285));
appendString(T11_, name);
appendString(T11_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_286));
appendString(T11_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T11_);
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* T13_;
		T13_ = (NimStringDesc*)0;
		T13_ = rawNewString((name ? name->Sup.len : 0) + 21);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_287));
appendString(T13_, name);
		rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 9), T13_);
	}
	LA1_: ;
	result = (*sym).loc.r;
	{
		NIM_BOOL T16_;
		NIM_BOOL T17_;
		tyObject_HSlice_Q0OJ6Fbbaym5ZPcTINdkvg T20_;
		T16_ = (NIM_BOOL)0;
		T17_ = (NIM_BOOL)0;
		T17_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!(T17_)) goto LA18_;
		T17_ = !((sym == NIM_NIL));
		LA18_: ;
		T16_ = T17_;
		if (!(T16_)) goto LA19_;
		T20_ = dotdot__0wIRQwb39b5pamdesRscOZAsystem(((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12), ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15));
		T16_ = contains_qHGsA9c3St7G1nwMx4AqqdAsystem(T20_, (*sym).kind);
		LA19_: ;
		if (!T16_) goto LA21_;
		addActualPrefixForHCR_Mns9bHWQy2Dza12fE8Mjw9aw(&result, (*m).module, sym);
	}
	LA21_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, addAbiCheck_SaA9bA11X42SNop9bW9cVLmng)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name) {
	{
		NIM_BOOL T3_;
		NI64 size;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_307));
		if (!(T3_)) goto LA4_;
		size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
		T3_ = !((size == IL64(-3)));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = name;
		T7_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(size);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__ahBYcGrhpPvM5dTdzCQBrQ(T7_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 7))- 0], T8_);
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	{
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_38));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = detectStrVersion_V25kMWfh1jWVNQQI5BNfLg(m);
		switch (T3_) {
		case ((NI) 2):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
			T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
			(void)(T5_);
			T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178));
			(void)(T6_);
			result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178));
		}
		break;
		default:
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
			T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T8_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_173));
			(void)(T8_);
			result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_288));
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_289));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_290));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_291));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_38));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		if ((*typ).kind < 31 || (*typ).kind > 44) raiseIndexError3((*typ).kind, 31, 44);
		result = typeNameOrLiteral_HJRyQju7CXfTTxFyPP3IJQ(m, typ, NumericalTypeToStr_do7KqFuyalEFiD7s8tBisg[((*typ).kind)- 31]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		result = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2(m, (*typ).sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			if (!!(((*typ).n == NIM_NIL))) goto LA18_;
			T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
			result = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2(m, T20_);
		}
		goto LA16_;
		LA18_: ;
		{
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_306));
		}
		LA16_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		T23_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		result = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2(m, T23_);
	}
	break;
	default:
	{
		result = NIM_NIL;
	}
	break;
	}
	{
		NIM_BOOL T27_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
		T27_ = (NIM_BOOL)0;
		T27_ = !((result == NIM_NIL));
		if (!(T27_)) goto LA28_;
		T27_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(typ);
		LA28_: ;
		if (!T27_) goto LA29_;
		nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		hashType_UdooXLclXL8uld7qLI5JRw(typ, 2, sig);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
			if (!(T33_ == NIM_NIL)) goto LA34_;
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			addAbiCheck_SaA9bA11X42SNop9bW9cVLmng(m, typ, result);
		}
		LA34_: ;
	}
	LA29_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypePre_zLenRlTUJy0Mn9b8JKwzEcQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyArray_qtqsWM5aXmcpMIVmvq3kAA sig) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(typ == NIM_NIL)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_37));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2(m, typ);
		{
			if (!(result == NIM_NIL)) goto LA8_;
			result = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, scanCppGenericSlot_YRbO0Zq30XmyAQjpf1Mi6g)(NimStringDesc* pat, NI* cursor, NI* outIdx, NI* outStars) {
	NIM_BOOL result;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_324;
	NI begin;
{	result = (NIM_BOOL)0;
	TM_MQdRN7fpbG7rPm4JpVVAhA_324 = addInt((*cursor), ((NI) 1));
	(*cursor) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_324);
	begin = (*cursor);
	{
		while (1) {
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_325;
			if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1);
			if (!((NU8)(pat->data[(*cursor)]) == (NU8)(42))) goto LA2;
			TM_MQdRN7fpbG7rPm4JpVVAhA_325 = addInt((*cursor), ((NI) 1));
			(*cursor) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_325);
		} LA2: ;
	}
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_326;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_327;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_328;
		if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1);
		if (!(((NU8)(pat->data[(*cursor)])) >= ((NU8)(48)) && ((NU8)(pat->data[(*cursor)])) <= ((NU8)(57)))) goto LA5_;
		if ((NU)((*cursor)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((*cursor),(pat ? pat->Sup.len : 0)-1);
		TM_MQdRN7fpbG7rPm4JpVVAhA_326 = subInt(((NU8)(pat->data[(*cursor)])), ((NI) 48));
		(*outIdx) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_326);
		TM_MQdRN7fpbG7rPm4JpVVAhA_327 = subInt((*cursor), begin);
		(*outStars) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_327);
		TM_MQdRN7fpbG7rPm4JpVVAhA_328 = addInt((*cursor), ((NI) 1));
		(*cursor) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_328);
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA3_;
	LA5_: ;
	{
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, resolveStarsInCppType_dTa9cSuyNlFVdzNe1dV0rag)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, NI idx, NI stars) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(typ);
		if (!(T3_ <= idx)) goto LA4_;
		{
			if (!NIM_TRUE) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_329));
		}
		LA8_: ;
	}
	LA4_: ;
	if ((NU)(idx) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(idx,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	result = (*typ).sons->data[idx];
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_330;
				if (!(res <= stars)) goto LA12;
				i = res;
				{
					NIM_BOOL T15_;
					NI T17_;
					T15_ = (NIM_BOOL)0;
					T15_ = !((result == NIM_NIL));
					if (!(T15_)) goto LA16_;
					T17_ = (NI)0;
					T17_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(result);
					T15_ = (((NI) 0) < T17_);
					LA16_: ;
					if (!T15_) goto LA18_;
					{
						if (!((*result).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11))) goto LA22_;
						if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
						result = (*result).sons->data[((NI) 1)];
					}
					goto LA20_;
					LA22_: ;
					{
						result = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(result);
					}
					LA20_: ;
				}
				LA18_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_330 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_330);
			} LA12: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRecordDesc_HJhu9cCeHNnnn2AMyLicEaw)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NIM_BOOL hasField;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	hasField = NIM_FALSE;
	{
		if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
			if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
			if (!((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0)) goto LA7_;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T9_ = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_340));
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
			T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T11_ = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
			result = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_341), T11_);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		result = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
	}
	LA1_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, name);
	{
		if (!((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA15_;
		{
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			if (!((*typ).sons->data[((NI) 0)] == NIM_NIL)) goto LA19_;
			{
				NIM_BOOL T23_;
				NIM_BOOL T24_;
				NimStringDesc* res;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
				T23_ = (NIM_BOOL)0;
				T24_ = (NIM_BOOL)0;
				T24_ = !(((*typ).sym == NIM_NIL));
				if (!(T24_)) goto LA25_;
				T24_ = (((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				LA25_: ;
				T23_ = T24_;
				if (T23_) goto LA26_;
				T23_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
				LA26_: ;
				if (!T23_) goto LA27_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA31_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
				}
				LA31_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA35_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA35_: ;
				T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T37_);
			}
			goto LA21_;
			LA27_: ;
			{
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA41_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
				}
				LA41_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA45_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA45_: ;
				T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T47_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
				res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_342));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA50_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA50_: ;
				T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T52_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T52_);
				hasField = NIM_TRUE;
			}
			LA21_: ;
		}
		goto LA17_;
		LA19_: ;
		{
			NIM_BOOL T54_;
			NimStringDesc* res_3;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			T54_ = (NIM_BOOL)0;
			T54_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T54_) goto LA55_;
			T54_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA55_: ;
			if (!T54_) goto LA56_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA60_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA60_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_343));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36275087638268176));
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T62_, check);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T63_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA66_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA66_: ;
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&result, T68_);
			{
				NIM_BOOL T71_;
				NimStringDesc* res_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
				T71_ = (NIM_BOOL)0;
				T71_ = isException_YPjOkGV9axAnGR3UfLeWZ1g_9(typ);
				if (!T71_) goto LA72_;
				{
					if (!!(!((m == NIM_NIL)))) goto LA76_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
				}
				LA76_: ;
				res_4 = rawNewString(((NI) 80));
				res_4 = resizeString(res_4, 37);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_344));
				{
					if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA80_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA80_: ;
				T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T82_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T82_);
				{
					NimStringDesc* res_5;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
					NimStringDesc* res_6;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
					if (!((*(*typ).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 290))) goto LA85_;
					{
						if (!!(!((m == NIM_NIL)))) goto LA89_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
					}
					LA89_: ;
					res_5 = rawNewString(((NI) 80));
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_345));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), name);
					res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA93_;
						res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA93_: ;
					T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T95_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T95_);
					{
						if (!!(!((m == NIM_NIL)))) goto LA98_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
					}
					LA98_: ;
					res_6 = rawNewString(((NI) 80));
					res_6 = resizeString(res_6, 7);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_346));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), name);
					res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_347));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), name);
					res_6 = resizeString(res_6, 22);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_348));
					T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T100_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_349));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T100_);
					res_6 = resizeString(res_6, 17);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_350));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA103_;
						res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA103_: ;
					T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T105_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T105_);
				}
				LA85_: ;
			}
			LA72_: ;
			hasField = NIM_TRUE;
		}
		goto LA17_;
		LA56_: ;
		{
			NimStringDesc* res_7;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T115_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T116_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T121_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA109_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA109_: ;
			res_7 = rawNewString(((NI) 80));
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA113_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA113_: ;
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T115_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T115_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[((NI) 0)], IL64(36275087638268176));
			T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T116_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T115_, check);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T116_);
			res_7 = resizeString(res_7, 5);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_321));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA119_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA119_: ;
			T121_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T121_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
			add_IM4kcMNkkOLJtqdEqSxR8A(&result, T121_);
			hasField = NIM_TRUE;
		}
		LA17_: ;
	}
	goto LA13_;
	LA15_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T123_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T124_;
		nimZeroMem((void*)T123_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T123_[0] = name;
		T124_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T124_ = percent__0ul9cDZYl7YkH1RhZBTd9c6A(T123_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T124_);
	}
	LA13_: ;
	desc = getRecordFields_1Yw0f9bM6njBLDchKVMziZw(m, typ, check);
	{
		NIM_BOOL T127_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T131_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
		T127_ = (NIM_BOOL)0;
		T127_ = (desc == NIM_NIL);
		if (!(T127_)) goto LA128_;
		T127_ = !(hasField);
		LA128_: ;
		if (!T127_) goto LA129_;
		nimZeroMem((void*)T131_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T132_ = percent__QFf4DPoOk6Jy59cL2OASJzw(T131_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T132_);
	}
	goto LA125_;
	LA129_: ;
	{
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, desc);
	}
	LA125_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_351));
	{
		NIM_BOOL T136_;
		T136_ = (NIM_BOOL)0;
		T136_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 22))&63U)))!=0);
		if (!(T136_)) goto LA137_;
		if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
		T136_ = !(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0));
		LA137_: ;
		if (!T136_) goto LA138_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_352));
	}
	LA138_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTupleDesc_HJhu9cCeHNnnn2AMyLicEaw_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = structOrUnion_TLFDupRCidtMx8175pusWQ(typ);
	T1_[1] = name;
	result = percent__q7DaQZqCe0lRO0rhBWzM0w(T1_, 2);
	desc = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_354;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				T5_[0] = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*typ).sons->data[i], check);
				T5_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T6_ = percent__hGIvKp3CGssDQ2vSvfksxQ(T5_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&desc, T6_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_354 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_354);
			} LA4: ;
		}
	}
	{
		if (!(desc == NIM_NIL)) goto LA9_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_355));
	}
	goto LA7_;
	LA9_: ;
	{
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, desc);
	}
	LA7_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_351));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* origTyp, tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg* check) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA sig;
{	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(1189020670371048976));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg(check, (*t).Sup.id);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			NimStringDesc* T12_;
			NimStringDesc* T13_;
			T8_ = (NIM_BOOL)0;
			T8_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(origTyp);
			if (T8_) goto LA9_;
			T8_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(t);
			LA9_: ;
			if (!!(T8_)) goto LA10_;
			T12_ = (NimStringDesc*)0;
			T13_ = (NimStringDesc*)0;
			T13_ = typeToString_QlvraUan7WbHowhAbvDvdA(origTyp, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T12_ = rawNewString((T13_ ? T13_->Sup.len : 0) + 28);
appendString(T12_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_36));
appendString(T12_, T13_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T12_);
		}
		LA10_: ;
	}
	LA4_: ;
	{
		if (!!(((*t).sym == NIM_NIL))) goto LA16_;
		useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, (*t).sym);
	}
	LA16_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = !((t == origTyp));
		if (!(T20_)) goto LA21_;
		T20_ = !(((*origTyp).sym == NIM_NIL));
		LA21_: ;
		if (!T20_) goto LA22_;
		useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, (*origTyp).sym);
	}
	LA22_: ;
	nimZeroMem((void*)sig, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_UdooXLclXL8uld7qLI5JRw(origTyp, 2, sig);
	result = getTypePre_zLenRlTUJy0Mn9b8JKwzEcQ(m, t, sig);
	{
		if (!!((result == NIM_NIL))) goto LA26_;
		excl_jENnK9c9bPE73pKmo2vYjpqg_2(check, (*t).Sup.id);
		goto BeforeRet_;
	}
	LA26_: ;
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		NimStringDesc* star;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* et;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etB;
		{
			NIM_BOOL T31_;
			NIM_BOOL T32_;
			NIM_BOOL T35_;
			T31_ = (NIM_BOOL)0;
			T32_ = (NIM_BOOL)0;
			T32_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T32_)) goto LA33_;
			T32_ = !((((*origTyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA33_: ;
			T31_ = T32_;
			if (!(T31_)) goto LA34_;
			T35_ = (NIM_BOOL)0;
			T35_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T35_) goto LA36_;
			T35_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA36_: ;
			T31_ = T35_;
			LA34_: ;
			if (!T31_) goto LA37_;
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96));
		}
		goto LA29_;
		LA37_: ;
		{
			star = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
		}
		LA29_: ;
		T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(origTyp, IL64(36134350135273744));
		et = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(T40_);
		etB = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(et, IL64(36134350135273744));
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T43_;
			T43_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T43_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*m).g).config, t);
			if (!(T43_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18))) goto LA44_;
			{
				tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T50_;
				if (!((*etB).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA48_;
				T50_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
				et = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*m).g).graph, T50_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41));
			}
			goto LA46_;
			LA48_: ;
			{
				et = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(etB);
			}
			LA46_: ;
			etB = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(et, IL64(36134350135273744));
			if ((NU)(((NI) 0)) >= (NU)(star ? star->Sup.len : 0)) raiseIndexError2(((NI) 0),(star ? star->Sup.len : 0)-1);
			star->data[((NI) 0)] = 42;
		}
		LA44_: ;
		switch ((*etB).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
		{
			{
				NIM_BOOL T55_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
				T55_ = (NIM_BOOL)0;
				T55_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(etB);
				if (!(T55_)) goto LA56_;
				T55_ = ((*et).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
				LA56_: ;
				if (!T55_) goto LA57_;
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, et, check);
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T59_, star);
			}
			goto LA53_;
			LA57_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name;
				tyArray_qtqsWM5aXmcpMIVmvq3kAA T61_;
				nimZeroMem((void*)T61_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
				hashType_UdooXLclXL8uld7qLI5JRw(et, 2, T61_);
				name = getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2(m, et, T61_);
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(name, star);
				X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			}
			LA53_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* name_2;
			tyArray_qtqsWM5aXmcpMIVmvq3kAA T63_;
			NimStringDesc* T64_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			nimZeroMem((void*)T63_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
			hashType_UdooXLclXL8uld7qLI5JRw(et, 2, T63_);
			name_2 = getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2(m, et, T63_);
			T64_ = (NimStringDesc*)0;
			T64_ = seqStar_hiFj6GH2C6Qv8bI0r9caT5A(m);
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(name_2, T64_);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T65_, star);
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			pushType_4q3XOfd3NI3C8cSNkaF9cWA(m, et);
		}
		break;
		default:
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, et, check);
			result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T67_, star);
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T69_ = getTypeDescWeak_zbGAk3tbGBemhAx4n61z3g(m, (*t).sons->data[((NI) 0)], check);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T69_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	{
		result = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA73_;
			result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
			{
				NIM_BOOL T77_;
				NIM_BOOL T79_;
				NI size;
				T77_ = (NIM_BOOL)0;
				T77_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(t);
				if (T77_) goto LA78_;
				T79_ = (NIM_BOOL)0;
				T79_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0);
				if (!(T79_)) goto LA80_;
				T79_ = ((*(*t).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
				LA80_: ;
				T77_ = T79_;
				LA78_: ;
				if (!!(T77_)) goto LA81_;
				X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
				size = (NI)0;
				{
					NI64 T85_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T88_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
					T85_ = (NI64)0;
					T85_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*m).g).config, t);
					if (!(T85_ < IL64(0))) goto LA86_;
					nimZeroMem((void*)T88_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T88_[0] = result;
					T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T89_ = percent__XI9awM9a9aQ9cB9bcS7uDRsa1Rw(T88_, 1);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T89_);
					size = ((NI) 4);
				}
				goto LA83_;
				LA86_: ;
				{
					NI64 T91_;
					T91_ = (NI64)0;
					T91_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
					size = ((NI)chckRange64(T91_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
					switch (size) {
					case ((NI) 1):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T93_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
						nimZeroMem((void*)T93_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T93_[0] = result;
						T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T94_ = percent__9cWNaGuyEpBbdBlD9b5nY1ug(T93_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T94_);
					}
					break;
					case ((NI) 2):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T96_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
						nimZeroMem((void*)T96_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T96_[0] = result;
						T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T97_ = percent__6P67I9czJ9aa9aZzVyYWUiGlw(T96_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T97_);
					}
					break;
					case ((NI) 4):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T99_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
						nimZeroMem((void*)T99_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T99_[0] = result;
						T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T100_ = percent__XI9awM9a9aQ9cB9bcS7uDRsa1Rw(T99_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T100_);
					}
					break;
					case ((NI) 8):
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T102_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
						nimZeroMem((void*)T102_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T102_[0] = result;
						T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T103_ = percent__S4jE5dFDtcCC8ODzxaJk6A(T102_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T103_);
					}
					break;
					default:
					{
						internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*(*t).sym).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_308));
					}
					break;
					}
				}
				LA83_: ;
			}
			LA81_: ;
		}
		LA73_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
		result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		desc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		genProcParams_uApDq1rn2zPxULBMpTSrxQ(m, t, &rettype, &desc, check, NIM_TRUE, NIM_TRUE);
		{
			NIM_BOOL T108_;
			T108_ = (NIM_BOOL)0;
			T108_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T108_)) goto LA109_;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T115_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T116_;
				if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA113_;
				nimZeroMem((void*)T115_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T115_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
				T115_[1] = rettype;
				T115_[2] = result;
				T115_[3] = desc;
				T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T116_ = percent__Msid9awGKVeVe7p3v7WfNQA(T115_, 4);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T116_);
			}
			goto LA111_;
			LA113_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T118_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
				nimZeroMem((void*)T118_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T118_[0] = result;
				T118_[1] = rettype;
				T118_[2] = desc;
				T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T119_ = percent__xyRsdWsGY1DVVispyn0Xeg(T118_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T119_);
			}
			LA111_: ;
		}
		LA109_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		NimStringDesc* T136_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T137_;
		NimStringDesc* T229_;
		result = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
		{
			if (!(result == NIM_NIL)) goto LA123_;
			result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
			{
				NIM_BOOL T127_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T130_;
				T127_ = (NIM_BOOL)0;
				T127_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
				if (!!(T127_)) goto LA128_;
				T130_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T130_ = structOrUnion_TLFDupRCidtMx8175pusWQ(t);
				addForwardStructFormat_pzRGCZRDAEWnDSHC2tztFg(m, T130_, result);
			}
			LA128_: ;
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
		}
		LA123_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T133_;
			T133_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T133_ = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).typeCache, sig);
			if (!!((T133_ == NIM_NIL))) goto LA134_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_309));
		}
		LA134_: ;
		T136_ = (NimStringDesc*)0;
		T136_ = seqStar_hiFj6GH2C6Qv8bI0r9caT5A(m);
		T137_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T137_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(result, T136_);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, T137_);
		{
			NIM_BOOL T140_;
			T140_ = (NIM_BOOL)0;
			T140_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T140_)) goto LA141_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T145_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
				T145_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T145_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36134350135273744));
				if (!!(((*T145_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3)))) goto LA146_;
				{
					NimStringDesc* res;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T156_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T157_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T174_;
					if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA150_;
					{
						if (!!(!((m == NIM_NIL)))) goto LA154_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
					}
					LA154_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 23);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_310));
					T156_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T156_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_311));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T156_);
					res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_312));
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T157_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T157_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T157_);
					res = resizeString(res, 22);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_313));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
					res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_314));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA160_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA160_: ;
					res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA164_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA164_: ;
					res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_316));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
					res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_317));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA168_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA168_: ;
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
					{
						if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA172_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA172_: ;
					T174_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T174_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T174_);
				}
				goto LA148_;
				LA150_: ;
				{
					{
						NIM_BOOL T178_;
						NimStringDesc* res_2;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T186_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T191_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T200_;
						T178_ = (NIM_BOOL)0;
						T178_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
						if (T178_) goto LA179_;
						T178_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
						LA179_: ;
						if (!T178_) goto LA180_;
						{
							if (!!(!((m == NIM_NIL)))) goto LA184_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
						}
						LA184_: ;
						res_2 = rawNewString(((NI) 80));
						res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), result);
						res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_319));
						T186_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T186_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T186_);
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA189_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA189_: ;
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
						T191_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T191_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T191_);
						res_2 = resizeString(res_2, 21);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_320));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA194_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA194_: ;
						res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA198_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA198_: ;
						T200_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T200_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T200_);
					}
					goto LA176_;
					LA180_: ;
					{
						NimStringDesc* res_3;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T210_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T215_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T224_;
						{
							if (!!(!((m == NIM_NIL)))) goto LA204_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
						}
						LA204_: ;
						res_3 = rawNewString(((NI) 80));
						res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_315));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), result);
						res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_242));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA208_;
							res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA208_: ;
						res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
						T210_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T210_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T210_);
						res_3 = resizeString(res_3, 5);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_321));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA213_;
							res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA213_: ;
						res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
						if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
						T215_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T215_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T215_);
						res_3 = resizeString(res_3, 21);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_320));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA218_;
							res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA218_: ;
						res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
						{
							if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA222_;
							res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA222_: ;
						T224_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T224_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
						add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T224_);
					}
					LA176_: ;
				}
				LA148_: ;
			}
			goto LA143_;
			LA146_: ;
			{
				if (!((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA226_;
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_322));
			}
			goto LA143_;
			LA226_: ;
			{
				result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
			}
			LA143_: ;
		}
		LA141_: ;
		T229_ = (NimStringDesc*)0;
		T229_ = seqStar_hiFj6GH2C6Qv8bI0r9caT5A(m);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, T229_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T233_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* foo;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T236_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T237_;
			T233_ = (NIM_BOOL)0;
			T233_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T233_)) goto LA234_;
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			foo = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 0)], check);
			nimZeroMem((void*)T236_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T236_[0] = foo;
			T236_[1] = result;
			T237_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T237_ = percent__EPABzhs2B9atAvHV4CUTw2Q(T236_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T237_);
		}
		LA234_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		NI64 n;
		n = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, t);
		{
			if (!(n <= IL64(0))) goto LA241_;
			n = IL64(1);
		}
		LA241_: ;
		result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T245_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* foo_2;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T248_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T249_;
			T245_ = (NIM_BOOL)0;
			T245_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T245_)) goto LA246_;
			if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			foo_2 = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*t).sons->data[((NI) 1)], check);
			nimZeroMem((void*)T248_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T248_[0] = foo_2;
			T248_[1] = result;
			T248_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(n);
			T249_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T249_ = percent__2MhCcipNmSHgcDtN4cr8ng(T248_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T249_);
		}
		goto LA243_;
		LA246_: ;
		{
			addAbiCheck_SaA9bA11X42SNop9bW9cVLmng(m, t, result);
		}
		LA243_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			NIM_BOOL T254_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cppName;
			NI i;
			NI chunkStart;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T327_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* typedefName;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T328_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T329_;
			NimStringDesc* T330_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T331_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T332_;
			T254_ = (NIM_BOOL)0;
			T254_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(t);
			if (!(T254_)) goto LA255_;
			T254_ = ((*origTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11));
			LA255_: ;
			if (!T254_) goto LA256_;
			cppName = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, t, sig);
			i = ((NI) 0);
			chunkStart = ((NI) 0);
			{
				while (1) {
					if (!(i < ((*cppName).data ? (*cppName).data->Sup.len : 0))) goto LA259;
					{
						NI chunkEnd;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_323;
						NI idx;
						NI stars;
						if ((NU)(i) >= (NU)((*cppName).data ? (*cppName).data->Sup.len : 0)) raiseIndexError2(i,((*cppName).data ? (*cppName).data->Sup.len : 0)-1);
						if (!((NU8)((*cppName).data->data[i]) == (NU8)(39))) goto LA262_;
						TM_MQdRN7fpbG7rPm4JpVVAhA_323 = subInt(i, ((NI) 1));
						chunkEnd = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_323);
						idx = (NI)0;
						stars = (NI)0;
						{
							NIM_BOOL T266_;
							NimStringDesc* T269_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInSlot;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_331;
							T266_ = (NIM_BOOL)0;
							T266_ = scanCppGenericSlot_YRbO0Zq30XmyAQjpf1Mi6g((*cppName).data, (&i), (&idx), (&stars));
							if (!T266_) goto LA267_;
							T269_ = (NimStringDesc*)0;
							T269_ = substr_2yh9cer0ymNRHlOOg8P7IuA((*cppName).data, chunkStart, chunkEnd);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, T269_);
							chunkStart = i;
							TM_MQdRN7fpbG7rPm4JpVVAhA_331 = addInt(idx, ((NI) 1));
							typeInSlot = resolveStarsInCppType_dTa9cSuyNlFVdzNe1dV0rag(origTyp, (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_331), stars);
							{
								NIM_BOOL T272_;
								tyArray_qTjAvTvKF9anytN1At69aJMQ T276_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T277_;
								T272_ = (NIM_BOOL)0;
								T272_ = (typeInSlot == NIM_NIL);
								if (T272_) goto LA273_;
								T272_ = ((*typeInSlot).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA273_: ;
								if (!T272_) goto LA274_;
								nimZeroMem((void*)T276_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T277_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T277_ = percent__G9aA37gQrW88KHzpCAwhgjQ(T276_, 0);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T277_);
							}
							goto LA270_;
							LA274_: ;
							{
								NimStringDesc* T286_;
								if (!((*typeInSlot).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA279_;
								{
									NimStringDesc* T285_;
									if (!!(!(((*typeInSlot).n == NIM_NIL)))) goto LA283_;
									T285_ = (NimStringDesc*)0;
									T285_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_332);
									internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T285_);
								}
								LA283_: ;
								T286_ = (NimStringDesc*)0;
								T286_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*typeInSlot).n, 0);
								add_yG4AKzsBRS1W4MANDlXQeg(&result, T286_);
							}
							goto LA270_;
							LA279_: ;
							{
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T288_;
								T288_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T288_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, typeInSlot, check);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T288_);
							}
							LA270_: ;
						}
						LA267_: ;
					}
					goto LA260_;
					LA262_: ;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_333;
						TM_MQdRN7fpbG7rPm4JpVVAhA_333 = addInt(i, ((NI) 1));
						i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_333);
					}
					LA260_: ;
				} LA259: ;
			}
			{
				NimStringDesc* T294_;
				if (!!((chunkStart == ((NI) 0)))) goto LA292_;
				T294_ = (NimStringDesc*)0;
				T294_ = substr_iGg0RIKceRvsmvq8FUHOEw((*cppName).data, chunkStart);
				add_yG4AKzsBRS1W4MANDlXQeg(&result, T294_);
			}
			goto LA290_;
			LA292_: ;
			{
				result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(cppName, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_334));
				{
					NI i_2;
					NI colontmp_;
					NI T297_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_335;
					NI res_4;
					i_2 = (NI)0;
					colontmp_ = (NI)0;
					T297_ = (NI)0;
					T297_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(origTyp);
					TM_MQdRN7fpbG7rPm4JpVVAhA_335 = subInt(T297_, ((NI) 2));
					colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_335);
					res_4 = ((NI) 1);
					{
						while (1) {
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_337;
							if (!(res_4 <= colontmp_)) goto LA299;
							i_2 = res_4;
							{
								if (!(((NI) 1) < i_2)) goto LA302_;
								add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_336));
							}
							LA302_: ;
							{
								NIM_BOOL T306_;
								tyArray_qTjAvTvKF9anytN1At69aJMQ T310_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T311_;
								T306_ = (NIM_BOOL)0;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
								T306_ = ((*origTyp).sons->data[i_2] == NIM_NIL);
								if (T306_) goto LA307_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
								T306_ = ((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63));
								LA307_: ;
								if (!T306_) goto LA308_;
								nimZeroMem((void*)T310_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T311_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T311_ = percent__G9aA37gQrW88KHzpCAwhgjQ(T310_, 0);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T311_);
							}
							goto LA304_;
							LA308_: ;
							{
								NimStringDesc* T320_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
								if (!((*(*origTyp).sons->data[i_2]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60))) goto LA313_;
								{
									NimStringDesc* T319_;
									if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
									if (!!(!(((*(*origTyp).sons->data[i_2]).n == NIM_NIL)))) goto LA317_;
									T319_ = (NimStringDesc*)0;
									T319_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_332);
									internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T319_);
								}
								LA317_: ;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
								T320_ = (NimStringDesc*)0;
								T320_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*(*origTyp).sons->data[i_2]).n, 0);
								add_yG4AKzsBRS1W4MANDlXQeg(&result, T320_);
							}
							goto LA304_;
							LA313_: ;
							{
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T322_;
								if ((NU)(i_2) >= (NU)((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*origTyp).sons ? (*origTyp).sons->Sup.len : 0)-1);
								T322_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T322_ = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, (*origTyp).sons->data[i_2], check);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T322_);
							}
							LA304_: ;
							TM_MQdRN7fpbG7rPm4JpVVAhA_337 = addInt(res_4, ((NI) 1));
							res_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_337);
						} LA299: ;
					}
				}
				add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_338));
			}
			LA290_: ;
			{
				if (!!(!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))))) goto LA325_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_339));
			}
			LA325_: ;
			T327_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T327_ = getRecordDesc_HJhu9cCeHNnnn2AMyLicEaw(m, t, result, check);
			(void)(T327_);
			nimZeroMem((void*)T328_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T329_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T329_ = percent__7yDHbEsisDNKcqQHIRgOuQ(T328_, 0);
			T330_ = (NimStringDesc*)0;
			T330_ = dollar__0A9bslyIJ49bWrftLGh13rvg(sig);
			typedefName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T329_, T330_);
			nimZeroMem((void*)T331_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T331_[0] = result;
			T331_[1] = typedefName;
			T332_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T332_ = percent__GwVmUG4AZCEAP8dBk4TGHg(T331_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T332_);
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, typedefName);
			result = typedefName;
		}
		goto LA252_;
		LA256_: ;
		{
			result = cacheGetType_2wgznvEs9bt7XaKJgVohBCw((*m).forwTypeCache, sig);
			{
				if (!(result == NIM_NIL)) goto LA336_;
				result = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, origTyp, sig);
				X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).forwTypeCache), sig, result);
				{
					NIM_BOOL T340_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T343_;
					T340_ = (NIM_BOOL)0;
					T340_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T340_)) goto LA341_;
					T343_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T343_ = structOrUnion_TLFDupRCidtMx8175pusWQ(t);
					addForwardStructFormat_pzRGCZRDAEWnDSHC2tztFg(m, T343_, result);
				}
				LA341_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T346_;
					T346_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T346_ = X5BX5D__KricVWBSqqSbgxpQ5up3Ig((&(*m).forwTypeCache), sig);
					if (!!(((*T346_) == result))) goto LA347_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_353));
				}
				LA347_: ;
			}
			LA336_: ;
			X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
			{
				NIM_BOOL T351_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* recdesc;
				T351_ = (NIM_BOOL)0;
				T351_ = !(((*t).sym == NIM_NIL));
				if (!(T351_)) goto LA352_;
				T351_ = ((272 & (*(*t).sym).flags) == 16);
				LA352_: ;
				if (!!(T351_)) goto LA353_;
				{
					if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA357_;
					recdesc = getRecordDesc_HJhu9cCeHNnnn2AMyLicEaw(m, t, result, check);
				}
				goto LA355_;
				LA357_: ;
				{
					recdesc = getTupleDesc_HJhu9cCeHNnnn2AMyLicEaw_2(m, t, result, check);
				}
				LA355_: ;
				{
					NIM_BOOL T362_;
					T362_ = (NIM_BOOL)0;
					T362_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
					if (!!(T362_)) goto LA363_;
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], recdesc);
				}
				goto LA360_;
				LA363_: ;
				{
					if (!!((((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA366_;
					addAbiCheck_SaA9bA11X42SNop9bW9cVLmng(m, t, result);
				}
				goto LA360_;
				LA366_: ;
				LA360_: ;
			}
			LA353_: ;
		}
		LA252_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* T369_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T370_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T371_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA T372_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T373_;
		T369_ = (NimStringDesc*)0;
		T369_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 1);
appendString(T369_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T369_, 95);
		T370_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T370_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		T371_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T371_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		nimZeroMem((void*)T372_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		hashType_UdooXLclXL8uld7qLI5JRw(T371_, 2, T372_);
		T373_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T373_ = getTypeName_zLenRlTUJy0Mn9b8JKwzEcQ_3(m, T370_, T372_);
		result = amp__4cYKitaHx6RQ9azRtQsZp6w(T369_, T373_);
		X5BX5Deq__zhbvOVNN6tTRFgZkPDZOmA((&(*m).typeCache), sig, result);
		{
			NIM_BOOL T376_;
			NI s;
			NI64 T379_;
			T376_ = (NIM_BOOL)0;
			T376_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
			if (!!(T376_)) goto LA377_;
			T379_ = (NI64)0;
			T379_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
			s = ((NI)chckRange64(T379_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
			switch (s) {
			case ((NI) 1):
			case ((NI) 2):
			case ((NI) 4):
			case ((NI) 8):
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T381_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_356;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T382_;
				nimZeroMem((void*)T381_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T381_[0] = result;
				TM_MQdRN7fpbG7rPm4JpVVAhA_356 = mulInt(s, ((NI) 8));
				T381_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_356))));
				T382_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T382_ = percent__9c1P82lz6H9anMKDbz1vYNpg(T381_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T382_);
			}
			break;
			default:
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T384_;
				NI64 T385_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T386_;
				nimZeroMem((void*)T384_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T384_[0] = result;
				T385_ = (NI64)0;
				T385_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*m).g).config, t);
				T384_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T385_);
				T386_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T386_ = percent__dbg9bsMENUwtF9aO45wEGG3Q(T384_, 2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T386_);
			}
			break;
			}
		}
		LA377_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 11):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 13):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 4):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 46):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 45):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 55):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T388_;
		T388_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T388_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
		result = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, T388_, check);
	}
	break;
	default:
	{
		NimStringDesc* T390_;
		T390_ = (NimStringDesc*)0;
		T390_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 16);
appendString(T390_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_357));
appendString(T390_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T390_, 41);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*m).g).config, T390_);
		result = NIM_NIL;
	}
	break;
	}
	excl_jENnK9c9bPE73pKmo2vYjpqg_2(check, (*t).Sup.id);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTypeDesc_jXUNYqSX189axAU8O9bJBgpA)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&check));
	result = getTypeDescAux_BpNtboTsUfmvl9cmcZf9bOSQ(m, typ, (&check));
	return result;
}

static N_INLINE(NIM_BOOL, requiresExternC_axmagSzN10JTkqlmiAFoqQcgen)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T5_;
	NIM_BOOL T8_;
	NIM_BOOL T9_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T5_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	T5_ = getModule_xfh8ar7fDxVX2A4OO9b5sqQ(sym);
	T3_ = !((((*T5_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA6_;
	T2_ = !(((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2)));
	LA6_: ;
	T1_ = T2_;
	if (T1_) goto LA7_;
	T8_ = (NIM_BOOL)0;
	T9_ = (NIM_BOOL)0;
	T9_ = (((*sym).flags & 268501024) == 32);
	if (!(T9_)) goto LA10_;
	T9_ = ((*sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
	LA10_: ;
	T8_ = T9_;
	if (!(T8_)) goto LA11_;
	T8_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
	LA11_: ;
	T1_ = T8_;
	LA7_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
{	useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, sym);
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA7_;
		{
			NIM_BOOL T11_;
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T12_;
			NIM_BOOL T14_;
			NimStringDesc* res;
			NimStringDesc* T21_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
			T11_ = (NIM_BOOL)0;
			T12_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
			T12_ = getModule_xfh8ar7fDxVX2A4OO9b5sqQ(sym);
			T11_ = !(((*T12_).Sup.id == (*(*m).module).Sup.id));
			if (!(T11_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*sym).Sup.id);
			T11_ = !(T14_);
			LA13_: ;
			if (!T11_) goto LA15_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA19_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA19_: ;
			res = rawNewString(((NI) 80));
			T21_ = (NimStringDesc*)0;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, sym);
				if (!T24_) goto LA25_;
				T21_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_30));
			}
			goto LA22_;
			LA25_: ;
			{
				T21_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_31));
			}
			LA22_: ;
			cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), T21_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			T28_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T28_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T28_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T29_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA33_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA33_: ;
			T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T35_);
			{
				NIM_BOOL T38_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T41_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
				T38_ = (NIM_BOOL)0;
				T38_ = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, sym);
				if (!T38_) goto LA39_;
				nimZeroMem((void*)T41_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T41_[0] = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
				T42_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T42_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T41_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T42_);
				T41_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, sym);
				T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = percent__vHbYzYlzLPcurSm0Hu8InQ(T41_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T43_);
			}
			LA39_: ;
		}
		LA15_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NIM_BOOL T45_;
		NIM_BOOL asPtr;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
		T45_ = (NIM_BOOL)0;
		T45_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredProtos), (*sym).Sup.id);
		if (!!(T45_)) goto LA46_;
		asPtr = isReloadable_bilAk8nY4d5fxUpVg9bnphQ(m, sym);
		header = genProcHeader_OWG529cW3RTHLgDJuQoIH8A(m, sym, asPtr);
		{
			if (!!(asPtr)) goto LA50_;
			{
				NIM_BOOL T54_;
				T54_ = (NIM_BOOL)0;
				T54_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
				if (!(T54_)) goto LA55_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
				T54_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 6))&7U)))!=0);
				LA55_: ;
				if (!T54_) goto LA56_;
				header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_240), header);
			}
			LA56_: ;
			{
				NIM_BOOL T60_;
				T60_ = (NIM_BOOL)0;
				T60_ = !(((*(*sym).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 5)));
				if (!(T60_)) goto LA61_;
				T60_ = requiresExternC_axmagSzN10JTkqlmiAFoqQcgen(m, sym);
				LA61_: ;
				if (!T60_) goto LA62_;
				header = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_358), header);
			}
			LA62_: ;
			{
				NIM_BOOL T66_;
				T66_ = (NIM_BOOL)0;
				T66_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0);
				if (!(T66_)) goto LA67_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
				T66_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
				LA67_: ;
				if (!T66_) goto LA68_;
				add_yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_359));
			}
			LA68_: ;
			{
				NIM_BOOL T72_;
				T72_ = (NIM_BOOL)0;
				T72_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
				if (!(T72_)) goto LA73_;
				if ((*(*(*m).g).config).cCompiler < 1 || (*(*(*m).g).config).cCompiler > 15) raiseIndexError3((*(*(*m).g).config).cCompiler, 1, 15);
				T72_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*m).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 7))&7U)))!=0);
				LA73_: ;
				if (!T72_) goto LA74_;
				add_yG4AKzsBRS1W4MANDlXQeg(&header, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_360));
			}
			LA74_: ;
		}
		LA50_: ;
		{
			if (!!(!((m == NIM_NIL)))) goto LA78_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA78_: ;
		res_2 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), header);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361));
		T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T80_);
	}
	goto LA5_;
	LA46_: ;
	LA5_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA14_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA14_: ;
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T16_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T17_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T19_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
		T19_ = (NIM_BOOL)0;
		T19_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
		if (T19_) goto LA20_;
		T21_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T21_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T22_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T21_, IL64(36134350144710928));
		T19_ = (((*T22_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0);
		LA20_: ;
		if (!T19_) goto LA23_;
		{
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			NIM_BOOL T31_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T34_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = (dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
			if (!(T28_)) goto LA29_;
			T28_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7)));
			LA29_: ;
			T27_ = T28_;
			if (T27_) goto LA30_;
			T31_ = (NIM_BOOL)0;
			T31_ = usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
			T27_ = !(T31_);
			LA30_: ;
			if (!T27_) goto LA32_;
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T34_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA37_: ;
			res_2 = rawNewString(((NI) 80));
			T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
			res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T40_);
			res_2 = resizeString(res_2, 19);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363));
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T41_);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA45_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA45_: ;
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T34_, T48_);
		}
		goto LA25_;
		LA32_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T50_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T50_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA53_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA53_: ;
			res_3 = rawNewString(((NI) 80));
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_364));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
			res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365));
			T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T58_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T58_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T58_, (*dest.lode).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA62_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA62_: ;
			T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T64_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T50_, T65_);
		}
		LA25_: ;
	}
	goto LA1_;
	LA23_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T67_;
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T75_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
		T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T67_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA70_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA70_: ;
		res_4 = rawNewString(((NI) 80));
		T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T72_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_366));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T72_);
		res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T73_);
		res_4 = resizeString(res_4, 9);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365));
		T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T74_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T75_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T75_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T76_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T75_, (*dest.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T76_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA79_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA79_: ;
		T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T81_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T67_, T82_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canMove_b5Hq2LPdi5DP1QFBXQYNdA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			NI T10_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3(n);
			T7_ = !(T8_);
			if (T7_) goto LA9_;
			T10_ = (NI)0;
			T10_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T7_ = (T10_ == ((NI) 0));
			LA9_: ;
			if (!T7_) goto LA11_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
				T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T15_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350144710928));
				if (!((*T15_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA16_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA16_: ;
		}
		LA11_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T20_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0));
		if (!(T20_)) goto LA21_;
		T20_ = ((*n).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		LA21_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA22_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		T19_ = (((*n).strVal ? (*n).strVal->Sup.len : 0) == ((NI) 0));
		LA22_: ;
		if (!T19_) goto LA23_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	goto LA1_;
	LA23_: ;
	LA1_: ;
	result = ((*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));
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* Result) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	{
		if (!!(!((field == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_372));
	}
	LA3_: ;
	(*Result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 5);
	(*Result).storage = a.storage;
	unsureAsgnRef((void**) (&(*Result).lode), lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(t));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T5_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
	unsureAsgnRef((void**) (&(*Result).r), amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T6_, field));
}

N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw newflags;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	{
		if (!(src.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA3_;
		newflags = (flags | 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		if (!(((*T6_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA7_;
		newflags = (flags & ~ 1);
	}
	goto LA1_;
	LA7_: ;
	{
		newflags = flags;
	}
	LA1_: ;
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T10_, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(t);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* field;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T15_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T16_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_376;
				if (!(i_2 < colontmp_)) goto LA13;
				i = i_2;
				if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
				t_2 = (*t).sons->data[i];
				nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
				field = percent__ym0Pr6z8A9ajyOAgotpd9a9bw(T14_, 1);
				nimZeroMem((void*)(&T15_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, t_2, field, (&T15_));
				nimZeroMem((void*)(&T16_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, t_2, field, (&T16_));
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, T15_, T16_, newflags);
				TM_MQdRN7fpbG7rPm4JpVVAhA_376 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_376);
			} LA13: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NI, asgnComplexity_jQZhYDteQXOIUBRG4iLXPQ)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!!((n == NIM_NIL))) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			result = ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
		{
			result = ((NI) 100);
		}
		break;
		case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
		{
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t;
				t = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI T12_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_377;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_378;
							if (!(i_2 < colontmp_)) goto LA11;
							i = i_2;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
							t = (*n).sons->data[i];
							T12_ = (NI)0;
							T12_ = asgnComplexity_jQZhYDteQXOIUBRG4iLXPQ(t);
							TM_MQdRN7fpbG7rPm4JpVVAhA_377 = addInt(result, T12_);
							result = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_377);
							TM_MQdRN7fpbG7rPm4JpVVAhA_378 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_378);
						} LA11: ;
					}
				}
			}
		}
		break;
		default:
		{
		}
		break;
		}
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw newflags;
{	{
		if (!(t == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(src.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1))) goto LA7_;
		newflags = (flags | 1);
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		if (!(((*T10_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 6))&63U)))!=0)) goto LA11_;
		newflags = (flags & ~ 1);
	}
	goto LA5_;
	LA11_: ;
	{
		newflags = flags;
	}
	LA5_: ;
	switch ((*t).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T19_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T20_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field = (*t).sym;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA17_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, typ);
		}
		LA17_: ;
		nimZeroMem((void*)(&T19_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, (*field).typ, (*field).loc.r, (&T19_));
		nimZeroMem((void*)(&T20_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, (*field).typ, (*field).loc.r, (&T20_));
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, T19_, T20_, newflags);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(t);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_381;
						if (!(i_2 < colontmp_)) goto LA25;
						i = i_2;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						child = (*t).sons->data[i];
						genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, newflags, child, typ);
						TM_MQdRN7fpbG7rPm4JpVVAhA_381 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_381);
					} LA25: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}

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

N_LIB_PRIVATE N_NIMCALL(NI, safeLineNm_cb5f0VvvxoagMath9ay3UuQ)(tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NI result;
	result = (NI)0;
	result = toLinenumber_6D4Rmpw7LpcRI1j7CMqEsAmsgs(info);
	{
		if (!(result < ((NI) 0))) goto LA3_;
		result = ((NI) 0);
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAssignment_BtucsTdHw7orsXIL75hNVg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src, tySet_tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw flags) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
{	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = t_XNOXh7uniWNgiq58C9bW49awcgen(src);
		T3_ = !((T4_ == NIM_NIL));
		if (!(T3_)) goto LA5_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t_XNOXh7uniWNgiq58C9bW49awcgen(src);
		T3_ = ((*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
		LA5_: ;
		if (!T3_) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T9_, T21_);
		goto BeforeRet_;
	}
	LA7_: ;
	T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T22_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T22_, IL64(1202566653625280784));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	{
		genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA27_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA25_;
		LA27_: ;
		{
			NIM_BOOL T30_;
			NIM_BOOL T31_;
			T30_ = (NIM_BOOL)0;
			T31_ = (NIM_BOOL)0;
			T31_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T31_)) goto LA32_;
			T31_ = !((src.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA32_: ;
			T30_ = T31_;
			if (T30_) goto LA33_;
			T30_ = canMove_b5Hq2LPdi5DP1QFBXQYNdA(p, src.lode, dest);
			LA33_: ;
			if (!T30_) goto LA34_;
			genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
		}
		goto LA25_;
		LA34_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T37_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA40_: ;
			res_2 = rawNewString(((NI) 80));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_367));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T45_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T45_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T45_, (*dest.lode).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA49_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA49_: ;
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T37_, T52_);
		}
		LA25_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA56_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA54_;
		LA56_: ;
		{
			NIM_BOOL T59_;
			NIM_BOOL T60_;
			T59_ = (NIM_BOOL)0;
			T60_ = (NIM_BOOL)0;
			T60_ = !(((flags &(1U<<((NU)(((tyEnum_TAssignmentFlag_Kd9aFyBNhxSsWFh1Km9a2hMw) 0))&7U)))!=0));
			if (!(T60_)) goto LA61_;
			T60_ = !((src.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1)));
			LA61_: ;
			T59_ = T60_;
			if (T59_) goto LA62_;
			T59_ = canMove_b5Hq2LPdi5DP1QFBXQYNdA(p, src.lode, dest);
			LA62_: ;
			if (!T59_) goto LA63_;
			genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, dest, src);
		}
		goto LA54_;
		LA63_: ;
		{
			{
				NIM_BOOL T68_;
				NIM_BOOL T69_;
				NIM_BOOL T72_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T75_;
				NimStringDesc* res_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
				T68_ = (NIM_BOOL)0;
				T69_ = (NIM_BOOL)0;
				T69_ = (dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (!(T69_)) goto LA70_;
				T69_ = !(((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7)));
				LA70_: ;
				T68_ = T69_;
				if (T68_) goto LA71_;
				T72_ = (NIM_BOOL)0;
				T72_ = usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
				T68_ = !(T72_);
				LA71_: ;
				if (!T68_) goto LA73_;
				T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T75_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA78_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA78_: ;
				res_3 = rawNewString(((NI) 80));
				T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T80_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T81_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T82_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T82_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA85_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA85_: ;
				T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
				T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T88_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T87_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T75_, T88_);
			}
			goto LA66_;
			LA73_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T92_;
				NimStringDesc* res_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T101_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T108_;
				NimStringDesc* res_5;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T115_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T120_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T121_;
				if (!(dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3))) goto LA90_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, ty, (&tmp), NIM_FALSE);
				T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T92_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA95_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA95_: ;
				res_4 = rawNewString(((NI) 80));
				T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T97_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T97_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T98_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T98_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
				T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T99_);
				res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_369));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T100_);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T101_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T101_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA104_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA104_: ;
				T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
				T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T107_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T106_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T92_, T107_);
				T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T108_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA111_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA111_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T113_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T113_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T114_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_371));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T114_);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T115_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T115_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T115_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA118_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA118_: ;
				T120_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T120_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
				T121_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T121_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T120_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T108_, T121_);
			}
			goto LA66_;
			LA90_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T123_;
				NimStringDesc* res_6;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T128_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T129_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T130_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T131_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T136_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T137_;
				T123_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T123_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA126_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA126_: ;
				res_6 = rawNewString(((NI) 80));
				T128_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T128_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T128_);
				res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
				T129_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T129_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T129_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T130_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T130_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_368));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T130_);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T131_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T131_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T131_);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA134_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA134_: ;
				T136_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T136_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
				T137_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T137_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T136_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T123_, T137_);
			}
			LA66_: ;
		}
		LA54_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T141_;
			NIM_BOOL T142_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T145_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T146_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T147_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T148_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T149_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA T150_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T151_;
			NimStringDesc* res_7;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T156_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T157_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T162_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T163_;
			T141_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T141_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T142_ = (NIM_BOOL)0;
			T142_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T141_);
			if (!T142_) goto LA143_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T145_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T145_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T146_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T146_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_373));
			nimZeroMem((void*)(&T147_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(dest, T145_, T146_, (&T147_));
			nimCopyMem((void*)(&a), (NIM_CONST void*)(&T147_), sizeof(a));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T148_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T148_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T149_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T149_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_373));
			nimZeroMem((void*)(&T150_), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			optAsgnLoc_BudZ9caWLs3siCMYU9bVcDKw(src, T148_, T149_, (&T150_));
			nimCopyMem((void*)(&b), (NIM_CONST void*)(&T150_), sizeof(b));
			genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, a, b);
			T151_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T151_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA154_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA154_: ;
			res_7 = rawNewString(((NI) 80));
			T156_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T156_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T156_);
			res_7 = resizeString(res_7, 9);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_374));
			T157_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T157_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T157_);
			res_7 = resizeString(res_7, 7);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_375));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA160_;
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA160_: ;
			T162_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T162_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
			T163_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T163_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T162_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T151_, T163_);
		}
		goto LA139_;
		LA143_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T165_;
			NimStringDesc* res_8;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T170_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T171_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T176_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T177_;
			T165_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T165_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA168_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA168_: ;
			res_8 = rawNewString(((NI) 80));
			T170_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T170_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T170_);
			res_8 = resizeString(res_8, 3);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T171_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T171_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T171_);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA174_;
				res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA174_: ;
			T176_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T176_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
			T177_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T177_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T176_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T165_, T177_);
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T181_;
			NIM_BOOL T182_;
			T181_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T181_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T182_ = (NIM_BOOL)0;
			T182_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T181_);
			if (!T182_) goto LA183_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T187_;
				NI T188_;
				T187_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T187_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
				T188_ = (NI)0;
				T188_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(T187_);
				if (!(T188_ <= ((NI) 4))) goto LA189_;
				genOptAsgnTuple_BtucsTdHw7orsXIL75hNVg_3(p, dest, src, flags);
			}
			goto LA185_;
			LA189_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
			}
			LA185_: ;
		}
		goto LA179_;
		LA183_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T193_;
			NimStringDesc* res_9;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T198_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T199_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T204_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T205_;
			T193_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T193_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA196_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA196_: ;
			res_9 = rawNewString(((NI) 80));
			T198_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T198_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T198_);
			res_9 = resizeString(res_9, 3);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T199_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T199_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T199_);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA202_;
				res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA202_: ;
			T204_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T204_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
			T205_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T205_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T204_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T193_, T205_);
		}
		LA179_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T209_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T212_;
			NimStringDesc* res_10;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T217_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T218_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T223_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T224_;
			T209_ = (NIM_BOOL)0;
			T209_ = isImportedCppType_IafZhvqpthq9b9c13SFhzAOw(ty);
			if (!T209_) goto LA210_;
			T212_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T212_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA215_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA215_: ;
			res_10 = rawNewString(((NI) 80));
			T217_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T217_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T217_);
			res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T218_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T218_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T218_);
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA221_;
				res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA221_: ;
			T223_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T223_ = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
			T224_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T224_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T223_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T212_, T224_);
		}
		goto LA207_;
		LA210_: ;
		{
			NIM_BOOL T226_;
			T226_ = (NIM_BOOL)0;
			T226_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(ty);
			if (!!(T226_)) goto LA227_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA207_;
		LA227_: ;
		{
			NIM_BOOL T230_;
			T230_ = (NIM_BOOL)0;
			T230_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(ty);
			if (!T230_) goto LA231_;
			{
				NIM_BOOL T235_;
				NI T237_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T240_;
				T235_ = (NIM_BOOL)0;
				if ((NU)(((NI) 0)) >= (NU)((*ty).sons ? (*ty).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ty).sons ? (*ty).sons->Sup.len : 0)-1);
				T235_ = ((*ty).sons->data[((NI) 0)] == 0);
				if (!(T235_)) goto LA236_;
				T237_ = (NI)0;
				T237_ = asgnComplexity_jQZhYDteQXOIUBRG4iLXPQ((*ty).n);
				T235_ = (T237_ <= ((NI) 4));
				LA236_: ;
				if (!T235_) goto LA238_;
				T240_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T240_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, ty);
				(void)(T240_);
				{
					NimStringDesc* T245_;
					if (!!(!(((*ty).n == NIM_NIL)))) goto LA243_;
					T245_ = (NimStringDesc*)0;
					T245_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_379);
					internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T245_);
				}
				LA243_: ;
				genOptAsgnObject_9aKtDk9aj0NeiT1dC7eBiRKw(p, dest, src, flags, (*ty).n, ty);
			}
			goto LA233_;
			LA238_: ;
			{
				genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
			}
			LA233_: ;
		}
		goto LA207_;
		LA231_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T248_;
			NimStringDesc* res_11;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T253_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T254_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T259_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T260_;
			T248_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T248_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA251_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA251_: ;
			res_11 = rawNewString(((NI) 80));
			T253_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T253_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T253_);
			res_11 = resizeString(res_11, 3);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T254_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T254_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T254_);
			res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA257_;
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA257_: ;
			T259_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T259_ = rope_yShmEg9cffWxI7s5XzEKBow(res_11);
			T260_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T260_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T259_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T248_, T260_);
		}
		LA207_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T264_;
			NIM_BOOL T265_;
			T264_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T264_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T265_ = (NIM_BOOL)0;
			T265_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T264_);
			if (!T265_) goto LA266_;
			genGenericAsgn_BtucsTdHw7orsXIL75hNVg_2(p, dest, src, flags);
		}
		goto LA262_;
		LA266_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T269_;
			NimStringDesc* res_12;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T274_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T275_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T276_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T277_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T278_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T283_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T284_;
			T269_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T269_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA272_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA272_: ;
			res_12 = rawNewString(((NI) 80));
			T274_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T274_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T274_);
			res_12 = resizeString(res_12, 8);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T275_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T275_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T275_);
			res_12 = resizeString(res_12, 19);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363));
			T276_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T276_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T276_);
			res_12 = resizeString(res_12, 9);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			T277_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T277_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T278_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T278_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T277_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T278_);
			res_12 = resizeString(res_12, 3);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA281_;
				res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA281_: ;
			T283_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T283_ = rope_yShmEg9cffWxI7s5XzEKBow(res_12);
			T284_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T284_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T283_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T269_, T284_);
		}
		LA262_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T288_;
			NIM_BOOL T289_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T292_;
			NimStringDesc* res_13;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T297_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T298_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T299_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T300_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T301_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T302_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T307_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T308_;
			T288_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T288_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T289_ = (NIM_BOOL)0;
			T289_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T288_);
			if (!T289_) goto LA290_;
			T292_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T292_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA295_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA295_: ;
			res_13 = rawNewString(((NI) 80));
			T297_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T297_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_382));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T297_);
			res_13 = resizeString(res_13, 8);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T298_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T298_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T298_);
			res_13 = resizeString(res_13, 9);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365));
			T299_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T299_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T299_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T300_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T300_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T300_);
			res_13 = resizeString(res_13, 7);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_383));
			T301_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T301_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T302_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T302_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T301_, (*dest.lode).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T302_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA305_;
				res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA305_: ;
			T307_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T307_ = rope_yShmEg9cffWxI7s5XzEKBow(res_13);
			T308_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T308_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T307_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T292_, T308_);
		}
		goto LA286_;
		LA290_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T310_;
			NimStringDesc* res_14;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T315_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T316_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T321_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T322_;
			T310_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T310_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA313_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA313_: ;
			res_14 = rawNewString(((NI) 80));
			T315_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T315_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T315_);
			res_14 = resizeString(res_14, 3);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T316_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T316_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T316_);
			res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA319_;
				res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA319_: ;
			T321_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T321_ = rope_yShmEg9cffWxI7s5XzEKBow(res_14);
			T322_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T322_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T321_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T310_, T322_);
		}
		LA286_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T326_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T329_;
			NimStringDesc* res_15;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T334_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T335_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T336_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T337_;
			NI64 T338_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T343_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T344_;
			T326_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T326_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T326_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA327_;
			T329_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T329_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA332_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA332_: ;
			res_15 = rawNewString(((NI) 80));
			T334_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T334_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T334_);
			res_15 = resizeString(res_15, 8);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T335_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T335_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T335_);
			res_15 = resizeString(res_15, 19);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363));
			T336_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T336_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T336_);
			res_15 = resizeString(res_15, 2);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T337_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T337_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T338_ = (NI64)0;
			T338_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T337_);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_15), T338_);
			res_15 = resizeString(res_15, 2);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA341_;
				res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA341_: ;
			T343_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T343_ = rope_yShmEg9cffWxI7s5XzEKBow(res_15);
			T344_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T344_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T343_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T329_, T344_);
		}
		goto LA324_;
		LA327_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T346_;
			NimStringDesc* res_16;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T351_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T352_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T357_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T358_;
			T346_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T346_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA349_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA349_: ;
			res_16 = rawNewString(((NI) 80));
			T351_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T351_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T351_);
			res_16 = resizeString(res_16, 3);
appendString(res_16, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T352_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T352_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T352_);
			res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA355_;
				res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA355_: ;
			T357_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T357_ = rope_yShmEg9cffWxI7s5XzEKBow(res_16);
			T358_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T358_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T357_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T346_, T358_);
		}
		LA324_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T360_;
		NimStringDesc* res_17;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T365_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T366_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T371_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T372_;
		T360_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T360_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA363_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA363_: ;
		res_17 = rawNewString(((NI) 80));
		T365_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T365_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T365_);
		res_17 = resizeString(res_17, 3);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T366_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T366_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T366_);
		res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA369_;
			res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA369_: ;
		T371_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T371_ = rope_yShmEg9cffWxI7s5XzEKBow(res_17);
		T372_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T372_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T371_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T360_, T372_);
	}
	break;
	default:
	{
		NimStringDesc* T374_;
		T374_ = (NimStringDesc*)0;
		T374_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 15);
appendString(T374_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_384));
appendString(T374_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T374_);
	}
	break;
	}
	{
		NIM_BOOL T377_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T381_;
		NimStringDesc* res_18;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T386_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T387_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T388_;
		NI64 T389_;
		NimStringDesc* T390_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T391_;
		NI T392_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T397_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T398_;
		T377_ = (NIM_BOOL)0;
		T377_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 23))&31U)))!=0);
		if (!(T377_)) goto LA378_;
		T377_ = ((9 &(1U<<((NU)(dest.storage)&7U)))!=0);
		LA378_: ;
		if (!T377_) goto LA379_;
		T381_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T381_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA384_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA384_: ;
		res_18 = rawNewString(((NI) 80));
		T386_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T386_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_385));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T386_);
		res_18 = resizeString(res_18, 8);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		T387_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T387_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T387_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T388_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T388_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T389_ = (NI64)0;
		T389_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T388_);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_18), T389_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T390_ = (NimStringDesc*)0;
		T390_ = toFullPath_VW1RaR1l9c9bPnJxr1KuvIrg((*(*(*p).module).g).config, (*p).currLineInfo.fileIndex);
		T391_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T391_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T390_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T391_);
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T392_ = (NI)0;
		T392_ = safeLineNm_cb5f0VvvxoagMath9ay3UuQ((*p).currLineInfo);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_18), ((NI64) (T392_)));
		res_18 = resizeString(res_18, 2);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA395_;
			res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA395_: ;
		T397_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T397_ = rope_yShmEg9cffWxI7s5XzEKBow(res_18);
		T398_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T398_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T397_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T381_, T398_);
	}
	LA379_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA s) {
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), s, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), s, 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		genericAssign((void*)(&(*d)), (void*)(&s), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSimpleConst_y9bTRtTAknVsv9apXKbpJYJA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087632017680));
	T1_ = (NIM_BOOL)0;
	T1_ = !(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24)));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T3_)) goto LA4_;
	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
	LA4_: ;
	T1_ = !(T3_);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, putIntoDest_6NyA5DzsDGY17BhjidN65Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r, tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw s) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_qlujIAW86QclHYUVxlHRiQ((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), n, s);
		a.r = r;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a, 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6);
		unsureAsgnRef((void**) (&(*d).lode), n);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

static N_INLINE(NI, modInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		if (!(b == ((NI) 0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	result = (NI)(a % b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI64, bitSetToWord_N7LtJ6JfsQts6D1Lt9bpAaw)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* s, NI size) {
	NI64 result;
	result = (NI64)0;
	result = IL64(0);
	{
		NI j;
		NI i;
		j = (NI)0;
		i = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_394;
				if (!(i < size)) goto LA3;
				j = i;
				{
					NI T6_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_393;
					T6_ = (s ? s->Sup.len : 0);
					if (!(j < T6_)) goto LA7_;
					if ((NU)(j) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(j,(s ? s->Sup.len : 0)-1);
					TM_MQdRN7fpbG7rPm4JpVVAhA_393 = mulInt(j, ((NI) 8));
					result = (NI64)(result | (NI64)((NU64)(((NI64)(NU64)(NU8)(s->data[j]))) << (NU64)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_393))));
				}
				LA7_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_394 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_394);
			} LA3: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genRawSetData_lBnyc1f1M4k1nDKRQRL0HA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs, NI size) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T5_;
		if (!(((NI) 8) < size)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		result = percent__gdRHKHO8CLHZjlFjzVssIA(T5_, 0);
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_392;
					if (!(i_2 < size)) goto LA8;
					i = i_2;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_389;
						TM_MQdRN7fpbG7rPm4JpVVAhA_389 = subInt(size, ((NI) 1));
						if (!(i < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_389))) goto LA11_;
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_390;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_391;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T17_;
							NimStringDesc* T18_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
							TM_MQdRN7fpbG7rPm4JpVVAhA_390 = addInt(i, ((NI) 1));
							TM_MQdRN7fpbG7rPm4JpVVAhA_391 = modInt((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_390), ((NI) 8));
							if (!((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_391) == ((NI) 0))) goto LA15_;
							nimZeroMem((void*)T17_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							if ((NU)(i) >= (NU)(cs ? cs->Sup.len : 0)) raiseIndexError2(i,(cs ? cs->Sup.len : 0)-1);
							T18_ = (NimStringDesc*)0;
							T18_ = nsuToHex(((NI64)(NU64)(NU8)(cs->data[i])), ((NI) 2));
							T17_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T18_);
							T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T19_ = percent__8F9beWGEEhmch2jKYVl6O9aQ(T17_, 1);
							add_IM4kcMNkkOLJtqdEqSxR8A(&result, T19_);
						}
						goto LA13_;
						LA15_: ;
						{
							tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
							NimStringDesc* T22_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
							nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							if ((NU)(i) >= (NU)(cs ? cs->Sup.len : 0)) raiseIndexError2(i,(cs ? cs->Sup.len : 0)-1);
							T22_ = (NimStringDesc*)0;
							T22_ = nsuToHex(((NI64)(NU64)(NU8)(cs->data[i])), ((NI) 2));
							T21_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T22_);
							T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T23_ = percent__e2iAIDEoF9aBms0Kttr6gkQ(T21_, 1);
							add_IM4kcMNkkOLJtqdEqSxR8A(&result, T23_);
						}
						LA13_: ;
					}
					goto LA9_;
					LA11_: ;
					{
						tyArray_JiWwrsTRC6xqNlGcBthSVA T25_;
						NimStringDesc* T26_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
						nimZeroMem((void*)T25_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						if ((NU)(i) >= (NU)(cs ? cs->Sup.len : 0)) raiseIndexError2(i,(cs ? cs->Sup.len : 0)-1);
						T26_ = (NimStringDesc*)0;
						T26_ = nsuToHex(((NI64)(NU64)(NU8)(cs->data[i])), ((NI) 2));
						T25_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T26_);
						T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T27_ = percent__s4a1VwhxBAKO22LFS4Q9bnw(T25_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&result, T27_);
					}
					LA9_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_392 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_392);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NI64 T29_;
		T29_ = (NI64)0;
		T29_ = bitSetToWord_N7LtJ6JfsQts6D1Lt9bpAaw(cs, size);
		result = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T29_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_qtqsWM5aXmcpMIVmvq3kAA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
	hashType_UdooXLclXL8uld7qLI5JRw(t, 2, T1_);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = getTypeForward_zLenRlTUJy0Mn9b8JKwzEcQ_2(m, t, T1_);
	result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_405));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeqV2_knXDbAconJZRQ7C8XTIrzw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* payload;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	NI T21_;
	NI T26_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
	tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T32_;
	NI T33_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	data = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_396;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					tyArray_qTjAvTvKF9anytN1At69aJMQ T8_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
					if (!(((NI) 0) < i)) goto LA6_;
					nimZeroMem((void*)T8_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = percent__rouofEnBX1ok9aMXmOsKdHg(T8_, 0);
					add_IM4kcMNkkOLJtqdEqSxR8A(&data, T9_);
				}
				LA6_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T10_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n).sons->data[i]);
				add_IM4kcMNkkOLJtqdEqSxR8A(&data, T10_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_396 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_396);
			} LA3: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
	payload = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T11_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	if ((NU)(((NI) 0)) >= (NU)((*T11_).sons ? (*T11_).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*T11_).sons ? (*T11_).sons->Sup.len : 0)-1);
	base = (*T11_).sons->data[((NI) 0)];
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA14_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 21);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_398));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA18_: ;
	res = resizeString(res, 27);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_399));
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, base);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_400));
	T21_ = (NI)0;
	T21_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T21_)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA24_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA24_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_402));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), payload);
	res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_403));
	T26_ = (NI)0;
	T26_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T26_)));
	res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_404));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), data);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_318));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA29_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA29_: ;
	T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T31_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T31_);
	nimZeroMem((void*)T32_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
	T33_ = (NI)0;
	T33_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	T32_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T33_)));
	T32_[1] = getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, t);
	T32_[2] = payload;
	result = percent__C3GQZbey70223GyG307UFg(T32_, 3);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSeq_knXDbAconJZRQ7C8XTIrzw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* data;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	NI T2_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
	NI T33_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T43_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_ = (NI)0;
	T2_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (T2_)));
	data = percent__yxmLIVRKySYknm2wSBp9cpg(T1_, 1);
	{
		NI T5_;
		T5_ = (NI)0;
		T5_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T5_)) goto LA6_;
		add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_406));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_407;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T15_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
						if (!(((NI) 0) < i)) goto LA13_;
						nimZeroMem((void*)T15_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T16_ = percent__rouofEnBX1ok9aMXmOsKdHg(T15_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&data, T16_);
					}
					LA13_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n).sons->data[i]);
					add_IM4kcMNkkOLJtqdEqSxR8A(&data, T17_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_407 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_407);
				} LA10: ;
			}
		}
		add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
	}
	LA6_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&data, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
	result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	T18_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T18_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	if ((NU)(((NI) 0)) >= (NU)((*T18_).sons ? (*T18_).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*T18_).sons ? (*T18_).sons->Sup.len : 0)-1);
	base = (*T18_).sons->data[((NI) 0)];
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA21_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_408));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA25_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA25_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
	T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T27_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_176));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
	res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_321));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA30_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA30_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
	T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T32_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, base);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T32_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_400));
	T33_ = (NI)0;
	T33_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
	cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T33_)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA36_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA36_: ;
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_402));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), result);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), data);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA40_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA40_: ;
	T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T42_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T42_);
	nimZeroMem((void*)T43_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T43_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	T43_[1] = result;
	result = percent__8u7UPO7ZpaMkWoJRtZLlYQ(T43_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getClosureType_lWDfUH9cj8K8DjyEqo9cmP3A)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw kind) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg check;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rettype;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* desc;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_409));
	}
	LA3_: ;
	nimZeroMem((void*)(&check), sizeof(tyObject_IntSet_PQrmFm4BXFkFSVOUl1ojSg));
	initIntSet_n8oDZMn19bEdodSnrBQB9a1Q((&check));
	result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	rettype = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	desc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	genProcParams_uApDq1rn2zPxULBMpTSrxQ(m, t, &rettype, &desc, (&check), !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0))), NIM_FALSE);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isImportedType_IafZhvqpthq9b9c13SFhzAOw_2(t);
		if (!!(T7_)) goto LA8_;
		{
			NIM_BOOL T12_;
			tyArray_f7nG5LD47BH5K9c6mASit3g T16_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
			T12_ = (NIM_BOOL)0;
			T12_ = !(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
			if (T12_) goto LA13_;
			T12_ = !((kind == ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 2)));
			LA13_: ;
			if (!T12_) goto LA14_;
			nimZeroMem((void*)T16_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T16_[0] = rope_yShmEg9cffWxI7s5XzEKBow(CallingConvToStr_A7GdKVVGtI3pvj9cV9adydpw[((*t).callConv)- 0]);
			T16_[1] = rettype;
			T16_[2] = result;
			T16_[3] = desc;
			T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T17_ = percent__Msid9awGKVeVe7p3v7WfNQA(T16_, 4);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T17_);
		}
		goto LA10_;
		LA14_: ;
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T19_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
			nimZeroMem((void*)T19_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T19_[0] = result;
			T19_[1] = rettype;
			T19_[2] = desc;
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = percent__xyRsdWsGY1DVVispyn0Xeg(T19_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4))- 0], T20_);
		}
		LA10_: ;
	}
	LA8_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n).sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA3_: ;
	{
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI length;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
	result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	{
		NI i;
		NI colontmp_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_410;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_410 = subInt(length, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_410);
		res = ((NI) 0);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T4_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_411;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				nimZeroMem((void*)T4_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T4_[0] = genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5(p, (*n).sons->data[i]);
				T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T5_ = percent__77dMna2dOod5LqwYkRMZGg(T4_, 1);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T5_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_411 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_411);
			} LA3: ;
		}
	}
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_412;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!(((NI) 0) < length)) goto LA8_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		TM_MQdRN7fpbG7rPm4JpVVAhA_412 = subInt(length, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_412)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_412),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = genNamedConstExpr_NYI5fC69aIqZGRakncXv9cNQ_5(p, (*n).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_412)]);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T10_);
	}
	LA8_: ;
	nimZeroMem((void*)T11_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = percent__BYiowJAm8zF7RBRISElaLg(T11_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T12_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDefaultValue_6MJ4xodlafi9aSG537L79bpw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350136322064));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_418));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_419));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 60):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_420));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA8_;
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_420));
		}
		goto LA6_;
		LA8_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_421));
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		{
			NIM_BOOL T14_;
			NIM_BOOL T15_;
			NIM_BOOL T17_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NIM_BOOL)0;
			T15_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(t);
			T14_ = !(T15_);
			if (!(T14_)) goto LA16_;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T17_) goto LA18_;
			T17_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA18_: ;
			T14_ = !(T17_);
			LA16_: ;
			if (!T14_) goto LA19_;
			nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T21_[0] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, info);
			result = percent__zldA3DCxzpAhONjlfz7iIg(T21_, 1);
		}
		goto LA12_;
		LA19_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_422));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_395));
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_eY4T6kWJb9a9aTWUufrTLjXg_2(typ);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_423;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					{
						if (!(((NI) 0) < i)) goto LA29_;
						add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					}
					LA29_: ;
					if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = getDefaultValue_6MJ4xodlafi9aSG537L79bpw(p, (*typ).sons->data[i], info);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T31_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_423 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_423);
				} LA26: ;
			}
		}
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_422));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T36_;
			T36_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T36_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, t);
			if (!(T36_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA37_;
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_422));
		}
		goto LA34_;
		LA37_: ;
		{
			result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_105));
		}
		LA34_: ;
	}
	break;
	default:
	{
		NimStringDesc* T41_;
		T41_ = (NimStringDesc*)0;
		T41_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T41_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_424));
appendString(T41_, reprEnum((NI)(*t).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, info, T41_);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count) {
{	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T3_;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			colontmp_ = (*obj).sons;
			i = ((NI) 0);
			T3_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T3_;
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_414;
					if (!(i < L)) goto LA5;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
					it = colontmp_->data[i];
					getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, it, cons, result, count);
					TM_MQdRN7fpbG7rPm4JpVVAhA_414 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_414);
					{
						NI T8_;
						T8_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T8_ == L))) goto LA9_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA9_: ;
				} LA5: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
		getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, (*obj).sons->data[((NI) 0)], cons, result, count);
		{
			NI i_2;
			NI colontmp__2;
			NI i_3;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(obj);
			i_3 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_415;
					if (!(i_3 < colontmp__2)) goto LA14;
					i_2 = i_3;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_2) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(i_2,((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
					T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T15_ = lastSon_UPSW0jLTX5qJL51YMUAHgw((*obj).sons->data[i_2]);
					getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, T15_, cons, result, count);
					TM_MQdRN7fpbG7rPm4JpVVAhA_415 = addInt(i_3, ((NI) 1));
					i_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_415);
				} LA14: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_416;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		{
			if (!(((NI) 0) < (*count))) goto LA19_;
			add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		}
		LA19_: ;
		TM_MQdRN7fpbG7rPm4JpVVAhA_416 = addInt((*count), ((NI) 1));
		(*count) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_416);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		field = (*obj).sym;
		{
			NI i_4;
			NI colontmp__3;
			NI i_5;
			i_4 = (NI)0;
			colontmp__3 = (NI)0;
			colontmp__3 = len_P89cqdlERShb9alU3iC0yj8wast(cons);
			i_5 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_417;
					if (!(i_5 < colontmp__3)) goto LA23;
					i_4 = i_5;
					{
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*cons).kind)>>3] &(1U<<((NU)((*cons).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_4) >= (NU)((*cons).sons ? (*cons).sons->Sup.len : 0)) raiseIndexError2(i_4,((*cons).sons ? (*cons).sons->Sup.len : 0)-1);
						if (!((*(*cons).sons->data[i_4]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA26_;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*cons).kind)>>3] &(1U<<((NU)((*cons).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(i_4) >= (NU)((*cons).sons ? (*cons).sons->Sup.len : 0)) raiseIndexError2(i_4,((*cons).sons ? (*cons).sons->Sup.len : 0)-1);
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*cons).sons->data[i_4]).kind)>>3] &(1U<<((NU)((*(*cons).sons->data[i_4]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*(*cons).sons->data[i_4]).sons ? (*(*cons).sons->data[i_4]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*cons).sons->data[i_4]).sons ? (*(*cons).sons->data[i_4]).sons->Sup.len : 0)-1);
							if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*cons).sons->data[i_4]).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*cons).sons->data[i_4]).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
							if (!((*(*(*(*(*cons).sons->data[i_4]).sons->data[((NI) 0)]).sym).name).Sup.id == (*(*field).name).Sup.id)) goto LA30_;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*cons).kind)>>3] &(1U<<((NU)((*cons).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(i_4) >= (NU)((*cons).sons ? (*cons).sons->Sup.len : 0)) raiseIndexError2(i_4,((*cons).sons ? (*cons).sons->Sup.len : 0)-1);
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*cons).sons->data[i_4]).kind)>>3] &(1U<<((NU)((*(*cons).sons->data[i_4]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 1)) >= (NU)((*(*cons).sons->data[i_4]).sons ? (*(*cons).sons->data[i_4]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*cons).sons->data[i_4]).sons ? (*(*cons).sons->data[i_4]).sons->Sup.len : 0)-1);
							T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T32_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*(*cons).sons->data[i_4]).sons->data[((NI) 1)]);
							add_IM4kcMNkkOLJtqdEqSxR8A(result, T32_);
							goto BeforeRet_;
						}
						LA30_: ;
					}
					goto LA24_;
					LA26_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
						if (!(i_4 == (*field).position)) goto LA34_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*cons).kind)>>3] &(1U<<((NU)((*cons).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_4) >= (NU)((*cons).sons ? (*cons).sons->Sup.len : 0)) raiseIndexError2(i_4,((*cons).sons ? (*cons).sons->Sup.len : 0)-1);
						T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T36_ = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*cons).sons->data[i_4]);
						add_IM4kcMNkkOLJtqdEqSxR8A(result, T36_);
						goto BeforeRet_;
					}
					goto LA24_;
					LA34_: ;
					LA24_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_417 = addInt(i_5, ((NI) 1));
					i_5 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_417);
				} LA23: ;
			}
		}
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = getDefaultValue_6MJ4xodlafi9aSG537L79bpw(p, (*field).typ, (*cons).info);
		add_IM4kcMNkkOLJtqdEqSxR8A(result, T37_);
	}
	break;
	default:
	{
		NimStringDesc* T39_;
		NimStringDesc* T40_;
		T39_ = (NimStringDesc*)0;
		T40_ = (NimStringDesc*)0;
		T40_ = dollar__qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T39_ = rawNewString((T40_ ? T40_->Sup.len : 0) + 32);
appendString(T39_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_424));
appendString(T39_, T40_);
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*cons).info, T39_);
	}
	break;
	}
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* orig, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* cons, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, NI* count) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* base;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* oldRes;
	NI oldcount;
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	base = (*t).sons->data[((NI) 0)];
	oldRes = (*result);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	}
	LA5_: ;
	oldcount = (*count);
	{
		if (!!((base == NIM_NIL))) goto LA9_;
		base = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(base, IL64(36275087638268176));
		getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA(p, orig, base, (*base).n, cons, result, count);
	}
	goto LA7_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		NIM_BOOL T13_;
		NIM_BOOL T15_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_413;
		T12_ = (NIM_BOOL)0;
		T13_ = (NIM_BOOL)0;
		T13_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(t);
		T12_ = !(T13_);
		if (!(T12_)) goto LA14_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T15_) goto LA16_;
		T15_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA16_: ;
		T12_ = !(T15_);
		LA14_: ;
		if (!T12_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T19_[0] = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, orig, (*obj).info);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent__QXMcmOst45ThYFLo9cOKDiQ(T19_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(result, T20_);
		TM_MQdRN7fpbG7rPm4JpVVAhA_413 = addInt((*count), ((NI) 1));
		(*count) = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_413);
	}
	goto LA7_;
	LA17_: ;
	LA7_: ;
	getNullValueAux_9aYyM7xTezJepPjt10b9aKiQ(p, t, obj, cons, result, count);
	{
		if (!(oldcount == (*count))) goto LA23_;
		unsureAsgnRef((void**) (&(*result)), oldRes);
	}
	goto LA21_;
	LA23_: ;
	{
		NIM_BOOL T26_;
		T26_ = (NIM_BOOL)0;
		T26_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T26_) goto LA27_;
		T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA27_: ;
		if (!!(T26_)) goto LA28_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
	}
	goto LA21_;
	LA28_: ;
	LA21_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI count;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = NIM_NIL;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
	count = ((NI) 0);
	getNullValueAuxT_FPktsDLidTVMBFvUyMAhXA(p, t, t, (*t).n, n, &result, (&count));
	{
		NIM_BOOL T3_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = result;
		result = percent__dnB3So2xw9c189c09a9cc9b4hxA(T7_, 1);
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genStringLiteralV2Const_SO73hKlDdl5sMaSHTbOJLw_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI id;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pureLit;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*m).dataCache), n, ((NI) ((*m).labels)));
	pureLit = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(id == ((NI) ((*m).labels)))) goto LA3_;
		pureLit = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_177));
		(void)(T5_);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_178));
		(void)(T6_);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		genStringLiteralDataOnlyV2_Audays6K31pmxRIYbD09cLw(m, (*n).strVal, pureLit);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		pureLit = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*m).tmpBase, T8_);
	}
	LA1_: ;
	nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
	T9_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (((*n).strVal ? (*n).strVal->Sup.len : 0))));
	T9_[1] = pureLit;
	result = percent__r2gXVULKoAtQjkgjf0Z4wg(T9_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, (*n).sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
		NI64 T3_;
		cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
		toBitSet_NZsBRVngLBw9c79cEt9a4qOHg((*(*(*p).module).g).config, n, (&cs));
		T3_ = (NI64)0;
		T3_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
		result = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, ((NI)chckRange64(T3_, ((NI) (-2147483647 -1)), ((NI) 2147483647))));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA7_;
			{
				if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA11_;
				result = genConstSeqV2_knXDbAconJZRQ7C8XTIrzw(p, n, (*n).typ);
			}
			goto LA9_;
			LA11_: ;
			{
				result = genConstSeq_knXDbAconJZRQ7C8XTIrzw_2(p, n, (*n).typ);
			}
			LA9_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			NI T20_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T17_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			if (!(T17_)) goto LA18_;
			T17_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
			LA18_: ;
			T16_ = T17_;
			if (!(T16_)) goto LA19_;
			T20_ = (NI)0;
			T20_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T16_ = (((NI) 1) < T20_);
			LA19_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA21_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T15_ = ((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
			LA21_: ;
			if (!T15_) goto LA22_;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T28_;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA26_;
				nimZeroMem((void*)T28_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				result = percent__xXT7cKE1NTiL4U2MdlA2yQ(T28_, 0);
			}
			goto LA24_;
			LA26_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T30_;
				nimZeroMem((void*)(&d), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&d));
				nimZeroMem((void*)T30_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T30_[0] = getClosureType_lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, t, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 1));
				T30_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(d);
				result = percent__44q9ak51X9b9bmuZ9cK4LsFWOg(T30_, 2);
			}
			LA24_: ;
		}
		goto LA5_;
		LA22_: ;
		{
			result = genConstSimpleList_NYI5fC69aIqZGRakncXv9cNQ_4(p, n);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		result = genConstObjConstr_NYI5fC69aIqZGRakncXv9cNQ_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA36_;
			result = genStringLiteralV2Const_SO73hKlDdl5sMaSHTbOJLw_4((*p).module, n);
		}
		goto LA34_;
		LA36_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d_2;
			nimZeroMem((void*)(&d_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d_2));
			result = rdLoc_xidyzuHqIciXbQyEOKahDg(d_2);
		}
		LA34_: ;
	}
	break;
	default:
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d_3;
		nimZeroMem((void*)(&d_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&d_3));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg(d_3);
	}
	break;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, requestConstImpl_POVv0myAK3ae9cYA55o72Fw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m;
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* q;
{	m = (*p).module;
	useHeader_TAVDUakAwQnRHDK9cFe6L7g_2(m, sym);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_RaNE9b8A430I9bfpgZmdrC1w((*p).module, sym);
		fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), (*sym).ast, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	LA3_: ;
	{
		if (!(((*sym).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	q = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA(m, sym);
	{
		NIM_BOOL T12_;
		NIM_BOOL T14_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		T12_ = (NIM_BOOL)0;
		T12_ = !((q == NIM_NIL));
		if (!(T12_)) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*sym).Sup.id);
		T12_ = !(T14_);
		LA13_: ;
		if (!T12_) goto LA15_;
		{
			if (!!(((*(*q).initProc).module == q))) goto LA19_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_388));
		}
		LA19_: ;
		nimZeroMem((void*)T21_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T21_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(q, (*sym).typ);
		T21_[1] = (*sym).loc.r;
		T21_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3((*q).initProc, (*sym).ast);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent__izqbVTMtpY7kMiTK4bPJ6Q(T21_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*q).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T22_);
	}
	LA15_: ;
	{
		NIM_BOOL T25_;
		NIM_BOOL T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* headerDecl;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T34_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T35_;
		T25_ = (NIM_BOOL)0;
		T25_ = !((q == m));
		if (!(T25_)) goto LA26_;
		T27_ = (NIM_BOOL)0;
		T27_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*sym).Sup.id);
		T25_ = !(T27_);
		LA26_: ;
		if (!T25_) goto LA28_;
		{
			if (!!(!(((*sym).loc.r == NIM_NIL)))) goto LA32_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_425));
		}
		LA32_: ;
		nimZeroMem((void*)T34_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T35_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T35_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
		T34_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T35_);
		T34_[1] = (*sym).loc.r;
		headerDecl = percent__VsLzrOz1nS9cRBBz9ccZfETQ(T34_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], headerDecl);
		{
			NIM_BOOL T38_;
			T38_ = (NIM_BOOL)0;
			T38_ = (((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T38_)) goto LA39_;
			T38_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA39_: ;
			if (!T38_) goto LA40_;
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*(*(*p).module).g).generatedHeader).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], headerDecl);
		}
		LA40_: ;
	}
	LA28_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	requestConstImpl_POVv0myAK3ae9cYA55o72Fw(p, sym);
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*sym).loc.r == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
		T3_ = !((T5_ == NIM_NIL));
		LA4_: ;
		if (!!(T3_)) goto LA6_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_426));
	}
	LA6_: ;
	putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
}

N_LIB_PRIVATE N_NIMCALL(void, accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (NIM_BOOL)0;
		T3_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
		if (!(T3_)) goto LA4_;
		T3_ = !((*p).threadVarAccessed);
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).threadVarAccessed = NIM_TRUE;
		(*(*p).module).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1)) & 7);
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T7_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		nimZeroMem((void*)T8_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = percent__sb2NV56uvmvOtYkgVsaVQQ(T8_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(T7_, T9_);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 27);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_428));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_429));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T20_);
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, putDataIntoDest_fYECstGN5jPehhn5p8Iclg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		initLoc_qlujIAW86QclHYUVxlHRiQ((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
		a.r = r;
		{
			if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2))&15U)))!=0)) goto LA7_;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a, 0);
		}
		goto LA5_;
		LA7_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a, 1);
		}
		LA5_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8);
		unsureAsgnRef((void**) (&(*d).lode), n);
		unsureAsgnRef((void**) (&(*d).r), r);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, NimStringDesc* filename, NI line, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	{
		if (!!((((NI) 0) <= line))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_435));
	}
	LA3_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T9_;
		NimStringDesc* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		if (!(((*conf).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0)) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T10_ = (NimStringDesc*)0;
		T10_ = makeSingleLineCString_rMRFcrOdLs9cBLwxpf0jLag(filename);
		T9_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T10_);
		T9_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (line)));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = percent__lS9bA1j3Ue6pp7sCliDsT8g(T9_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(r, T11_);
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, freshLineInfo_7ClJaTgavvBeZEMW4B6fYA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*p).lastLineInfo.line == info.line));
		if (T3_) goto LA4_;
		T3_ = !(((*p).lastLineInfo.fileIndex == info.fileIndex));
		LA4_: ;
		if (!T3_) goto LA5_;
		(*p).lastLineInfo.line = info.line;
		(*p).lastLineInfo.fileIndex = info.fileIndex;
		result = NIM_TRUE;
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI line;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
	NimStringDesc* T12_;
	line = safeLineNm_cb5f0VvvxoagMath9ay3UuQ((*t).info);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		NimStringDesc* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 27))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__Ng8dczn37bLzoM9bsVdPwjQ(T6_, 0);
		T8_ = (NimStringDesc*)0;
		T8_ = sourceLine_b49bYNvmBdG6RP9cHaZGFhvQ((*(*(*p).module).g).config, (*t).info);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T7_, T8_);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T10_);
	}
	LA3_: ;
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T12_ = (NimStringDesc*)0;
	T12_ = toFullPath_VW1RaR1l9c9bPnJxr1KuvIrg((*(*(*p).module).g).config, (*t).info.fileIndex);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(T11_, T12_, line, (*(*(*p).module).g).config);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((327680 & (*p).options) == 327680);
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*p).prc == NIM_NIL);
		if (T17_) goto LA18_;
		T17_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA18_: ;
		T15_ = T17_;
		LA16_: ;
		if (!T15_) goto LA19_;
		{
			NIM_BOOL T23_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
			NimStringDesc* T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			T23_ = (NIM_BOOL)0;
			T23_ = freshLineInfo_7ClJaTgavvBeZEMW4B6fYA(p, (*t).info);
			if (!T23_) goto LA24_;
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA29_: ;
			res = rawNewString(((NI) 80));
			T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_436));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T31_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (line)));
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T32_ = (NimStringDesc*)0;
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				T35_ = ((*t).info.fileIndex < ((NI32) 0));
				if (T35_) goto LA36_;
				T35_ = ((*(*(*p).module).g).config == NIM_NIL);
				LA36_: ;
				if (!T35_) goto LA37_;
				T32_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437));
			}
			goto LA33_;
			LA37_: ;
			{
				{
					if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0)) goto LA42_;
					if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
					T32_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].fullPath);
				}
				goto LA40_;
				LA42_: ;
				{
					if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
					T32_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].projPath);
				}
				LA40_: ;
			}
			LA33_: ;
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T32_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T45_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T46_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T47_);
		}
		LA24_: ;
	}
	goto LA13_;
	LA19_: ;
	{
		NIM_BOOL T49_;
		NIM_BOOL T50_;
		NIM_BOOL T52_;
		T49_ = (NIM_BOOL)0;
		T50_ = (NIM_BOOL)0;
		T50_ = ((196608 & (*p).options) == 196608);
		if (!(T50_)) goto LA51_;
		T52_ = (NIM_BOOL)0;
		T52_ = ((*p).prc == NIM_NIL);
		if (T52_) goto LA53_;
		T52_ = !((((*(*p).prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0));
		LA53_: ;
		T50_ = T52_;
		LA51_: ;
		T49_ = T50_;
		if (!(T49_)) goto LA54_;
		T49_ = !(((*t).info.fileIndex == ((NI32) -1)));
		LA54_: ;
		if (!T49_) goto LA55_;
		{
			NIM_BOOL T59_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
			T59_ = (NIM_BOOL)0;
			T59_ = freshLineInfo_7ClJaTgavvBeZEMW4B6fYA(p, (*t).info);
			if (!T59_) goto LA60_;
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T62_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA65_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_439));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) (line)));
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*t).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T67_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA70_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA70_: ;
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T73_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T62_, T73_);
		}
		LA60_: ;
	}
	goto LA13_;
	LA55_: ;
	LA13_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getLabel_3AsTOpq9crZUYBL9aD1lXBng_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_441;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	TM_MQdRN7fpbG7rPm4JpVVAhA_441 = addInt((*p).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_441 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_441 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_441);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T1_);
	result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = labl;
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__ZpwWwpfBXgcQ6xoLOH4CJw(T2_, 1);
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T3_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, T4_);
}

N_LIB_PRIVATE N_NIMCALL(void, genAndOr_yX5yxw6c9agMF4ZvIHKAZvg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* L;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_440;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_443;
	L = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, (&tmp), NIM_FALSE);
	TM_MQdRN7fpbG7rPm4JpVVAhA_440 = addInt((*p).splitDecls, ((NI) 1));
	(*p).splitDecls = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_440);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 1)], (&tmp));
	L = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!(m == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T6_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T6_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
		T6_[1] = L;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__sGnLi1DjaBomQ9c9a6MOCA5g(T6_, 2);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T7_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T8_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
		T11_[1] = L;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__bEKtSmboScaCP8PPnlOWqw(T11_, 2);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T13_);
	}
	LA1_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 2)], (&tmp));
	fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, L);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA16_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA14_;
	LA16_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
	}
	LA14_: ;
	TM_MQdRN7fpbG7rPm4JpVVAhA_443 = subInt((*p).splitDecls, ((NI) 1));
	(*p).splitDecls = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_443);
}

N_LIB_PRIVATE N_NIMCALL(void, unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_444));
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T6_;
		NI64 T7_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_445;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		nimZeroMem((void*)T6_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T6_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T7_ = (NI64)0;
		T7_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_445 = mulInt64(T7_, IL64(8));
		T6_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_445));
		T6_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__GHW5yjG8N9c2BQBun6aBJzQ(T6_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 105):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T10_;
		NI64 T11_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_446;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		nimZeroMem((void*)T10_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T11_ = (NI64)0;
		T11_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_446 = mulInt64(T11_, IL64(8));
		T10_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_446));
		T10_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__QXMcmOst45ThYFLo9cOKDiQ(T10_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 106):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T14_;
		NI64 T15_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_447;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		nimZeroMem((void*)T14_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T14_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T15_ = (NI64)0;
		T15_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_447 = mulInt64(T15_, IL64(8));
		T14_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_447));
		T14_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent__Yup67SPGRVcwMdmZwc9cSag(T14_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T16_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 107):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T18_;
		NI64 T19_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_448;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		nimZeroMem((void*)T18_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T19_ = (NI64)0;
		T19_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_448 = mulInt64(T19_, IL64(8));
		T18_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_448));
		T18_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent__QXMcmOst45ThYFLo9cOKDiQ(T18_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 108):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T22_;
		NI64 T23_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_449;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		nimZeroMem((void*)T22_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T22_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T23_ = (NI64)0;
		T23_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_449 = mulInt64(T23_, IL64(8));
		T22_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_449));
		T22_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = percent__ec65mR1N7BSL9cmUa3z9czvA(T22_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T24_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 109):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T26_;
		NI64 T27_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_450;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		nimZeroMem((void*)T26_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T26_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T27_ = (NI64)0;
		T27_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_450 = mulInt64(T27_, IL64(8));
		T26_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_450));
		T26_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = percent__bhgXbeM5JQfUijWaQ1qxsQ(T26_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T28_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 110):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T30_;
		NI64 T31_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_451;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		nimZeroMem((void*)T30_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T30_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T31_ = (NI64)0;
		T31_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_451 = mulInt64(T31_, IL64(8));
		T30_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_451));
		T30_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = percent__tFyian2BoPSR4OpT1TLvxw(T30_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T32_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 111):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T34_;
		NI64 T35_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_452;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		nimZeroMem((void*)T34_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T34_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T35_ = (NI64)0;
		T35_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_452 = mulInt64(T35_, IL64(8));
		T34_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_452));
		T34_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = percent__lstDFo9arIum6fdAXNDzYqQ(T34_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 112):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T38_;
		NI64 T39_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_453;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		nimZeroMem((void*)T38_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T38_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T39_ = (NI64)0;
		T39_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_453 = mulInt64(T39_, IL64(8));
		T38_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_453));
		T38_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = percent__vloJZRdHw3BkBitD19a41NQ(T38_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T40_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 113):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T42_;
		NI64 T43_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_454;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		nimZeroMem((void*)T42_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T42_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T43_ = (NI64)0;
		T43_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_454 = mulInt64(T43_, IL64(8));
		T42_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_454));
		T42_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = percent__IW8HlDdKcjoyDD9aedPrY3w(T42_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T44_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 114):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T46_;
		NI64 T47_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_455;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		nimZeroMem((void*)T46_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T46_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T47_ = (NI64)0;
		T47_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_455 = mulInt64(T47_, IL64(8));
		T46_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_455));
		T46_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = percent__DUxtYbinntJf2OjJeQFG5w(T46_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T48_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 115):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T50_;
		NI64 T51_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_456;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
		nimZeroMem((void*)T50_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T50_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T51_ = (NI64)0;
		T51_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_456 = mulInt64(T51_, IL64(8));
		T50_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_456));
		T50_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = percent__E79b9b9azxAg7A3Bp07EawUSA(T50_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T52_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 116):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T54_;
		NI64 T55_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_457;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
		nimZeroMem((void*)T54_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T54_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T55_ = (NI64)0;
		T55_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_457 = mulInt64(T55_, IL64(8));
		T54_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_457));
		T54_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = percent__Z9aK26lplmBflSsthWiVgGQ(T54_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T56_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 117):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T58_;
		NI64 T59_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_458;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
		nimZeroMem((void*)T58_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T58_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T59_ = (NI64)0;
		T59_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_458 = mulInt64(T59_, IL64(8));
		T58_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_458));
		T58_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = percent__qoCzqD9b4akUSZt1uif9bo3w(T58_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T60_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 118):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T62_;
		NI64 T63_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_459;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
		nimZeroMem((void*)T62_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T62_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T63_ = (NI64)0;
		T63_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_459 = mulInt64(T63_, IL64(8));
		T62_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_459));
		T62_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T64_ = percent__xg9aKYYJnrtDL5QhyCCrG0Q(T62_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T64_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 119):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T66_;
		NI64 T67_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_460;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
		nimZeroMem((void*)T66_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T66_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T67_ = (NI64)0;
		T67_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_460 = mulInt64(T67_, IL64(8));
		T66_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_460));
		T66_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = percent__oSkpLVCRqCK7137pMlquDg(T66_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T68_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 120):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T70_;
		NI64 T71_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_461;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
		nimZeroMem((void*)T70_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T70_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T71_ = (NI64)0;
		T71_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_461 = mulInt64(T71_, IL64(8));
		T70_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_461));
		T70_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T72_ = percent__oSkpLVCRqCK7137pMlquDg(T70_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T72_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 121):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T74_;
		NI64 T75_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_462;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
		nimZeroMem((void*)T74_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T74_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T75_ = (NI64)0;
		T75_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_462 = mulInt64(T75_, IL64(8));
		T74_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_462));
		T74_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T76_ = percent__IEcO8wIVN2VV9bKM6z9arfPg(T74_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T76_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	{
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T78_;
		NI64 T79_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_463;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
		nimZeroMem((void*)T78_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T78_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T79_ = (NI64)0;
		T79_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_463 = mulInt64(T79_, IL64(8));
		T78_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_463));
		T78_[2] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = percent__gYTXmJhiFbKYpjWklBzghw(T78_, 3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T80_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T86_;
			if (!NIM_TRUE) goto LA84_;
			T86_ = (NimStringDesc*)0;
			T86_ = rawNewString((reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 123);
appendString(T86_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_464));
appendString(T86_, reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T86_);
		}
		LA84_: ;
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_465));
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		NI64 T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0)) goto LA7_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T9_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466));
		T15_ = (NI64)0;
		T15_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, t);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T15_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_467));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA20_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA20_: ;
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T9_, T23_);
	}
	LA7_: ;
	switch (m) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
		NI64 T26_;
		NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_468;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T25_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T26_ = (NI64)0;
		T26_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_468 = mulInt64(T26_, IL64(8));
		T25_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_468));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = percent__ibyK70G44kCK9cN8nAkxyGA(T25_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T27_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 102):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		nimZeroMem((void*)T29_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T29_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = percent__ec65mR1N7BSL9cmUa3z9czvA(T29_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T30_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 103):
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T32_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = percent__H9b69aGZGrLOiKWQdd30yQ9bg(T32_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T33_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T39_;
			if (!NIM_TRUE) goto LA37_;
			T39_ = (NimStringDesc*)0;
			T39_ = rawNewString((reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 123);
appendString(T39_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_469));
appendString(T39_, reprEnum((NI)m, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T39_);
		}
		LA37_: ;
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	NI64 s;
	NI64 k;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	NI64 T10_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
	NI64 T12_;
	NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_480;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
	NI64 T14_;
	NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_481;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	s = (NI64)0;
	k = (NI64)0;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_478));
	}
	LA3_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_479));
	}
	LA7_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	T10_ = (NI64)0;
	T10_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T9_);
	T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T11_ = t_XNOXh7uniWNgiq58C9bW49awcgen(b);
	T12_ = (NI64)0;
	T12_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T11_);
	TM_MQdRN7fpbG7rPm4JpVVAhA_480 = mulInt64(((T10_ >= T12_) ? T10_ : T12_), IL64(8));
	s = (NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_480);
	T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T13_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	T14_ = (NI64)0;
	T14_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T13_);
	TM_MQdRN7fpbG7rPm4JpVVAhA_481 = mulInt64(T14_, IL64(8));
	k = (NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_481);
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 56):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		nimZeroMem((void*)T16_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T16_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T16_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T16_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T16_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = percent__Te7bvH18PbGe5siNJ9aDTTA(T16_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T17_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 57):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		nimZeroMem((void*)T19_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T19_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T19_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T19_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T19_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T19_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent__MUaBvSw0MHw3qQi9bYavAmg(T19_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 58):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		nimZeroMem((void*)T22_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T22_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T22_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T22_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T22_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T22_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = percent__bWYxjLMocXEvYgQQcC63rw(T22_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T23_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 59):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		nimZeroMem((void*)T25_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T25_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T25_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T25_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T25_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T25_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = percent__ZpcNBrQMfioSvQNxKHhu9aw(T25_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T26_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 60):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		nimZeroMem((void*)T28_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T28_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T28_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T28_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T28_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T28_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent__gywCjjjPZobIva6liQWNLQ(T28_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T29_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 61):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		nimZeroMem((void*)T31_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T31_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T31_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T31_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T31_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T31_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = percent__6PDHoyz05lEjxGNE0k0ikw(T31_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T32_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 62):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		nimZeroMem((void*)T34_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T34_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T34_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T34_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T34_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T34_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = percent__AXGsBlGV5DoEOwPJSl9bdJw(T34_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T35_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 63):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		nimZeroMem((void*)T37_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T37_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T37_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T37_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T37_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T37_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = percent__ygzR9aJ6oM1bZTq4Z2lNO3Q(T37_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T38_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 64):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T40_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		nimZeroMem((void*)T40_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T40_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T40_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T40_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T40_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T40_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = percent__uYVc6UX8hcaEdrHosUQAOw(T40_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T41_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 65):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		nimZeroMem((void*)T43_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T43_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T43_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T43_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T43_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T43_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = percent__AlV8xJkjCXujAUesHxezgw(T43_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T44_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 66):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T46_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
		nimZeroMem((void*)T46_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T46_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T46_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T46_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T46_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T46_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = percent__L9asecuKwevQN2h9cWzyv6oA(T46_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T47_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 67):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
		nimZeroMem((void*)T49_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T49_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T49_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T49_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T49_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T49_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = percent__nZD9cadh12dcqTFsXBHbCRg(T49_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T50_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 68):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T52_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		nimZeroMem((void*)T52_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T52_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T52_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T52_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T52_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T52_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = percent__L9asecuKwevQN2h9cWzyv6oA(T52_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T53_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 69):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T55_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
		nimZeroMem((void*)T55_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T55_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T55_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T55_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T55_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T55_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = percent__nZD9cadh12dcqTFsXBHbCRg(T55_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T56_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 70):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T58_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
		nimZeroMem((void*)T58_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T58_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T58_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T58_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T58_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T58_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = percent__dz1JHdrf1p9bPB9ad2dZBtYw(T58_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T59_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 71):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T61_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
		nimZeroMem((void*)T61_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T61_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T61_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T61_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T61_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T61_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = percent__0MUu7DVBoaLHTVUZe9bKoIA(T61_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T62_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 72):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T64_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
		nimZeroMem((void*)T64_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T64_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T64_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T64_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T64_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T64_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = percent__29aIWEGnJW0wnITIeSKWfFg(T64_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T65_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 73):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T67_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
		nimZeroMem((void*)T67_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T67_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T67_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T67_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T67_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T67_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = percent__n2CigWG38YNInkiL4n8g7A(T67_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T68_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 74):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T70_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
		nimZeroMem((void*)T70_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T70_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T70_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T70_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T70_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T70_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T71_ = percent__bb3v9bDRLv9c9bcQzGH9c5H4Gw(T70_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T71_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 75):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T73_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
		nimZeroMem((void*)T73_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T73_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T73_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T73_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T73_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T73_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T73_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T74_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 76):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
		nimZeroMem((void*)T76_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T76_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T76_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T76_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T76_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T76_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent__oyQkqbRkRzo43y6iRevkaA(T76_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T77_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 77):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T79_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
		nimZeroMem((void*)T79_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T79_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T79_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T79_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T79_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T79_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = percent__YuphtPwdJHG6BUJOVa9bX3w(T79_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T80_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 78):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T82_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
		nimZeroMem((void*)T82_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T82_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T82_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T82_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T82_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T82_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T82_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T83_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 79):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T85_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
		nimZeroMem((void*)T85_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T85_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T85_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T85_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T85_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T85_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T86_ = percent__oyQkqbRkRzo43y6iRevkaA(T85_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T86_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 80):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T88_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
		nimZeroMem((void*)T88_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T88_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T88_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T88_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T88_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T88_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = percent__YuphtPwdJHG6BUJOVa9bX3w(T88_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T89_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 81):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T91_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
		nimZeroMem((void*)T91_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T91_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T91_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T91_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T91_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T91_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = percent__EQxs5xa4FNWtMfcvmFZ9cMA(T91_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T92_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 82):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T94_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
		nimZeroMem((void*)T94_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T94_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T94_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T94_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T94_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T94_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = percent__5YbjRZxm0g3SrdnL73aQaw(T94_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T95_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 83):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T97_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
		nimZeroMem((void*)T97_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T97_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T97_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T97_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T97_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T97_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T98_ = percent__MEALpIIbc0cKMcjQ7Xckzg(T97_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T98_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 84):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T100_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T101_;
		nimZeroMem((void*)T100_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T100_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T100_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T100_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T100_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T100_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T101_ = percent__yUc5o9ax9c9asIVNkfprLRPpA(T100_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T101_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 85):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T103_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
		nimZeroMem((void*)T103_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T103_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T103_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T103_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T103_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T103_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T104_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T103_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T104_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 86):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T106_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
		nimZeroMem((void*)T106_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T106_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T106_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T106_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T106_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T106_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T107_ = percent__oyQkqbRkRzo43y6iRevkaA(T106_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T107_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 87):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T109_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T110_;
		nimZeroMem((void*)T109_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T109_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T109_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T109_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T109_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T109_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T110_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T110_ = percent__YuphtPwdJHG6BUJOVa9bX3w(T109_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T110_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 88):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T112_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
		nimZeroMem((void*)T112_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T112_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T112_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T112_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T112_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T112_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T113_ = percent__4JrnABFfF3UTQ3nO9a6mXzQ(T112_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T113_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 89):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T115_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T116_;
		nimZeroMem((void*)T115_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T115_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T115_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T115_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T115_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T115_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T116_ = percent__bkAwkKoaz09cAQo9arQjGA0A(T115_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T116_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 90):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T118_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
		nimZeroMem((void*)T118_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T118_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T118_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T118_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T118_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T118_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T119_ = percent__7N9bV9cjVBHs9ciAhz7vgdI9aw(T118_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T119_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 91):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T121_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T122_;
		nimZeroMem((void*)T121_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T121_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T121_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T121_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T121_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T121_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T122_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T122_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T121_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T122_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 92):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T124_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T125_;
		nimZeroMem((void*)T124_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T124_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T124_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T124_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T124_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T124_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T125_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T125_ = percent__oyQkqbRkRzo43y6iRevkaA(T124_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T125_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 93):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T127_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T128_;
		nimZeroMem((void*)T127_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T127_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T127_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T127_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T127_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T127_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T128_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T128_ = percent__YuphtPwdJHG6BUJOVa9bX3w(T127_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T128_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 94):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T130_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T131_;
		nimZeroMem((void*)T130_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T130_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T130_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T130_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T130_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T130_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T131_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T131_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T130_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T131_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 95):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T133_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T134_;
		nimZeroMem((void*)T133_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T133_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T133_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T133_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T133_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T133_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T134_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T134_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T133_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T134_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 96):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T136_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T137_;
		nimZeroMem((void*)T136_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T136_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T136_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T136_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T136_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T136_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T137_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T137_ = percent__oyQkqbRkRzo43y6iRevkaA(T136_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T137_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 97):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T139_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T140_;
		nimZeroMem((void*)T139_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T139_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T139_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T139_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T139_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T139_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T140_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T140_ = percent__YuphtPwdJHG6BUJOVa9bX3w(T139_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T140_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T142_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T143_;
		nimZeroMem((void*)T142_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T142_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T142_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T142_[2] = rope_KOisMGxcPhz6CcSmxgwEQQ(s);
		T142_[3] = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*e).typ);
		T142_[4] = rope_KOisMGxcPhz6CcSmxgwEQQ(k);
		T143_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = percent__QX9cU2fNK0jJrZNDQKnAycA(T142_, 5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T143_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		{
			NimStringDesc* T149_;
			if (!NIM_TRUE) goto LA147_;
			T149_ = (NimStringDesc*)0;
			T149_ = rawNewString((reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 123);
appendString(T149_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_482));
appendString(T149_, reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T149_);
		}
		LA147_: ;
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!!(((384 & (*p).options) == 0))) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_470));
		}
		LA7_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA11_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_471));
		}
		LA11_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA15_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA15_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*(*e).sons->data[((NI) 1)]).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		if (m < 56 || m > 59) raiseIndexError3(m, 56, 59);
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), opr_jSXnH9c8YRRwSdXyVdSg9acA[(m)- 56]);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_475));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = getSimpleTypeDesc_jXUNYqSX189axAU8O9bJBgpA_2((*p).module, (*(*e).sons->data[((NI) 1)]).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_472));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T21_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 7))&31U)))!=0)) goto LA24_;
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA29_: ;
			res_2 = rawNewString(((NI) 80));
			T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_476));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T32_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA35_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA35_: ;
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T38_);
		}
		LA24_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T43_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 8))&31U)))!=0)) goto LA41_;
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T43_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA46_: ;
			res_3 = rawNewString(((NI) 80));
			T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_477));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T49_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA52_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA52_: ;
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T54_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T43_, T55_);
		}
		LA41_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, m);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genEqProc_BKdMcfvryaJLplX0oFPcAQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_483));
	}
	LA3_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_484));
	}
	LA7_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T11_, IL64(36134350135273744));
		if (!((*T12_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA13_;
		nimZeroMem((void*)T15_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T15_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T15_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = percent__vTbVjc6faJqdBrTckFLLWQ(T15_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T16_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA9_;
	LA13_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		nimZeroMem((void*)T18_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T18_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = percent__tkJq8W3gQVDjuu9aT3THC6Q(T18_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T19_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA9_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdCharLoc_xidyzuHqIciXbQyEOKahDg_2)(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T4_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T3_, IL64(36134350136322320));
		if (!((*T4_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = result;
		result = percent__TmT2Gs9cB7RN9cmo9c9cBpfKsA(T7_, 1);
	}
	LA5_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg m) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_485));
	}
	LA3_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_486));
	}
	LA7_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
		tyArray_f7nG5LD47BH5K9c6mASit3g T13_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA11_;
		nimZeroMem((void*)T13_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T13_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T13_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		if (m < 49 || m > 55) raiseIndexError3(m, 49, 55);
		T13_[2] = rope_yShmEg9cffWxI7s5XzEKBow(opr_UAWyVnvyQoWbplounFNlGg[(m)- 49]);
		T13_[3] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		res = percent__v4k9cDtOUzGyUHJbnJ7kQKg(T13_, 4);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, res, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res_2;
		NI64 size;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* storage;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T20_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T31_;
		NimStringDesc* res_4;
		NimStringDesc* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T73_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
		size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, t);
		{
			if (!(size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)))) goto LA17_;
			storage = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_292));
		}
		goto LA15_;
		LA17_: ;
		{
			storage = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		}
		LA15_: ;
		result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T20_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA23_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA23_: ;
		res_3 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), storage);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), result);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T20_, T30_);
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T31_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA34_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA34_: ;
		res_4 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), result);
		res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T36_ = (NimStringDesc*)0;
		{
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA39_;
			if (m < 49 || m > 55) raiseIndexError3(m, 49, 55);
			T36_ = copyString(prc64_9bTptLAKOOYdunqlEwXM6PQ[(m)- 49]);
		}
		goto LA37_;
		LA39_: ;
		{
			if (m < 49 || m > 55) raiseIndexError3(m, 49, 55);
			T36_ = copyString(prc_8UqUr1y9abLbrO1vSUF2CqQ[(m)- 49]);
		}
		LA37_: ;
		T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T36_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T42_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T43_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T44_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA47_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA47_: ;
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T50_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T49_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T31_, T50_);
		{
			NIM_BOOL T53_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T57_;
			NimStringDesc* res_5;
			NI64 T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			NI64 T64_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
			T53_ = (NIM_BOOL)0;
			T53_ = (size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)));
			if (T53_) goto LA54_;
			T53_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14));
			LA54_: ;
			if (!T53_) goto LA55_;
			T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T57_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA60_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA60_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), result);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
			T62_ = (NI64)0;
			T62_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, t);
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T62_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T63_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), result);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
			T64_ = (NI64)0;
			T64_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, t, NIM_FALSE);
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T64_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T65_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_467));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T66_);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA69_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA69_: ;
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T71_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T57_, T72_);
		}
		LA55_: ;
		res_2 = result;
		nimZeroMem((void*)T73_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T73_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T73_[1] = res_2;
		T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = percent__0ym49cR6ES8k9bYWsnh1fELA(T73_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T74_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA9_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, gcUsage_Faz6su3hXrHmiSECd9c9a6Pg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!((*conf).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
		message_mMj7lrOf3zBP9bl69amiKu5g(conf, (*n).info, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 35), T5_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRepr_BKdMcfvryaJLplX0oFPcAQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_500));
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350144710928));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_501));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_502));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res_2 = rawNewString(((NI) 80));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_503));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T20_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	{
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA24_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA24_: ;
		res_3 = rawNewString(((NI) 80));
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_504));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T26_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T27_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T28_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	{
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA32_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA32_: ;
		res_4 = rawNewString(((NI) 80));
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_505));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T34_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T35_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 15):
	{
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA40_: ;
		res_5 = rawNewString(((NI) 80));
		T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_506));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T42_);
		res_5 = resizeString(res_5, 5);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_507));
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T43_);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T44_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T45_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		NimStringDesc* res_6;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA49_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA49_: ;
		res_6 = rawNewString(((NI) 80));
		T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T51_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_508));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T51_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T52_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T53_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		NimStringDesc* res_7;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA57_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA57_: ;
		res_7 = rawNewString(((NI) 80));
		T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_509));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T59_);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T60_);
		res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T61_);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T62_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T62_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T64_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T65_;
		NimStringDesc* res_8;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T84_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T64_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T64_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T65_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T65_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T64_, IL64(36134350144710928));
		switch ((*T65_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T67_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			nimZeroMem((void*)T67_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T67_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = percent__L3AeZ1n9aK4C1jsBCeaCmlQ(T67_, 1);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T68_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			nimZeroMem((void*)T70_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T70_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T70_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
			T70_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = percent__qE1JtEDDOvP6J49a9cv9aK1Dg(T70_, 3);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T71_, a.storage);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T73_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
			NI64 T75_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
			nimZeroMem((void*)T73_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T73_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T74_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T74_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			T75_ = (NI64)0;
			T75_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T74_);
			T73_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T75_);
			T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = percent__ctvQ2lU9b9bnVVpNP4GhIo2Q(T73_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&b), e, T76_, a.storage);
		}
		break;
		default:
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*(*e).sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_510));
		}
		break;
		}
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA80_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA80_: ;
		res_8 = rawNewString(((NI) 80));
		T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_511));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T82_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T83_);
		res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T84_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T84_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(t);
		T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T85_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T84_, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T85_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T86_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T86_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		NimStringDesc* res_9;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA90_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA90_: ;
		res_9 = rawNewString(((NI) 80));
		T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_512));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T92_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T93_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T93_);
		res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T94_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T94_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T95_, a.storage);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 3):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 63):
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_513));
	}
	break;
	default:
	{
		NimStringDesc* res_10;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA100_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA100_: ;
		res_10 = rawNewString(((NI) 80));
		T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T102_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_512));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T102_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T103_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T103_);
		res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T104_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T104_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T105_ = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T105_, a.storage);
	}
	break;
	}
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	t = (*(*e).sons->data[((NI) 1)]).typ;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*e).info);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T1_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genSwap_BKdMcfvryaJLplX0oFPcAQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T1_, (&tmp), NIM_FALSE);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, tmp, a, 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, b, tmp, 0);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryStmt_FWB0HmRDLgoWdgSy9bfL9b5w)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_516));
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA8_: ;
	res = rawNewString(((NI) 80));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), op);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA14_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA14_: ;
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T16_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T17_);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, byRefLoc_Xfvxpx3W1zkiCqENsur9ckg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = a.r;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T7_;
		NIM_BOOL T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		if (!(T4_)) goto LA5_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T7_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T7_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, T6_);
		T4_ = !((T7_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17)));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA8_;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T9_) goto LA10_;
		T9_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA10_: ;
		T3_ = !(T9_);
		LA8_: ;
		if (!T3_) goto LA11_;
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97), result);
		result = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	}
	LA11_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, strLoc_09c8G9aj7c6ktd6DIBLVcdnw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		result = byRefLoc_Xfvxpx3W1zkiCqENsur9ckg_2(p, d);
	}
	goto LA1_;
	LA3_: ;
	{
		result = rdLoc_xidyzuHqIciXbQyEOKahDg(d);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	NI L;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* appends;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lens;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T41_;
	NimStringDesc* res_4;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T53_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, (&tmp), NIM_FALSE);
	L = ((NI) 0);
	appends = NIM_NIL;
	lens = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_521;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(e);
		TM_MQdRN7fpbG7rPm4JpVVAhA_521 = subInt(T2_, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_521);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_522;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_531;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				TM_MQdRN7fpbG7rPm4JpVVAhA_522 = addInt(i, ((NI) 1));
				if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_522)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_522),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_522)], (&a));
				{
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_523;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_524;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					TM_MQdRN7fpbG7rPm4JpVVAhA_523 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_523)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_523),((*e).sons ? (*e).sons->Sup.len : 0)-1);
					T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T7_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_523)]).typ, IL64(36134350144710928));
					if (!((*T7_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA8_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_524 = addInt(L, ((NI) 1));
					L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_524);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA12_: ;
					res_2 = rawNewString(((NI) 80));
					T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T14_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_525));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T14_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T15_ = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, tmp);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T15_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T16_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA19_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA19_: ;
					T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T21_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					add_IM4kcMNkkOLJtqdEqSxR8A(&appends, T21_);
				}
				goto LA5_;
				LA8_: ;
				{
					NimStringDesc* res_3;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_526;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_527;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_528;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						TM_MQdRN7fpbG7rPm4JpVVAhA_526 = addInt(i, ((NI) 1));
						if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_526)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_526),((*e).sons ? (*e).sons->Sup.len : 0)-1);
						if (!((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_526)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_526)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA25_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						TM_MQdRN7fpbG7rPm4JpVVAhA_527 = addInt(i, ((NI) 1));
						if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527),((*e).sons ? (*e).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
						TM_MQdRN7fpbG7rPm4JpVVAhA_528 = addInt(L, ((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527)]).strVal ? (*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_527)]).strVal->Sup.len : 0));
						L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_528);
					}
					goto LA23_;
					LA25_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
						T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T28_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
						add_IM4kcMNkkOLJtqdEqSxR8A(&lens, T28_);
						add_yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
					}
					LA23_: ;
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA31_: ;
					res_3 = rawNewString(((NI) 80));
					T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_530));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T33_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T34_ = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, tmp);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T34_);
					res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T35_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T35_);
					res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA38_;
						res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA38_: ;
					T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T40_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
					add_IM4kcMNkkOLJtqdEqSxR8A(&appends, T40_);
				}
				LA5_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_531 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_531);
			} LA4: ;
		}
	}
	T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T41_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA44_: ;
	res_4 = rawNewString(((NI) 80));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), tmp.r);
	res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
	T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T46_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_532));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T46_);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), lens);
	cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (L)));
	res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA49_;
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA49_: ;
	T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T51_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
	T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T52_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T41_, T52_);
	T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T53_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_IM4kcMNkkOLJtqdEqSxR8A(T53_, appends);
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA56_;
		genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
	}
	goto LA54_;
	LA56_: ;
	{
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
	}
	LA54_: ;
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, binaryStmtAddr_vxeaiXjty5M8JXT1fo429aQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* cpname) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_533));
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA8_: ;
	res = rawNewString(((NI) 80));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, cpname);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = byRefLoc_Xfvxpx3W1zkiCqENsur9ckg_2(p, a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA15_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA15_: ;
	T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T18_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T17_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T18_);
}

N_LIB_PRIVATE N_NIMCALL(void, genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* appends;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lens;
	NI L;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T69_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	appends = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	lens = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_536));
	}
	LA3_: ;
	L = ((NI) 0);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&dest));
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_537;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(e);
		TM_MQdRN7fpbG7rPm4JpVVAhA_537 = subInt(T6_, ((NI) 3));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_537);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_538;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_544;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				TM_MQdRN7fpbG7rPm4JpVVAhA_538 = addInt(i, ((NI) 2));
				if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_538)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_538),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_538)], (&a));
				{
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_539;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_540;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					TM_MQdRN7fpbG7rPm4JpVVAhA_539 = addInt(i, ((NI) 2));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_539)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_539),((*e).sons ? (*e).sons->Sup.len : 0)-1);
					T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T11_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_539)]).typ, IL64(36134350144710928));
					if (!((*T11_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2))) goto LA12_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_540 = addInt(L, ((NI) 1));
					L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_540);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA16_: ;
					res_2 = rawNewString(((NI) 80));
					T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_525));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T19_ = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, dest);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T20_);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA23_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA23_: ;
					T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T25_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					add_IM4kcMNkkOLJtqdEqSxR8A(&appends, T25_);
				}
				goto LA9_;
				LA12_: ;
				{
					NimStringDesc* res_3;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_541;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_542;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_543;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						TM_MQdRN7fpbG7rPm4JpVVAhA_541 = addInt(i, ((NI) 2));
						if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_541)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_541),((*e).sons ? (*e).sons->Sup.len : 0)-1);
						if (!((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_541)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_541)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22))) goto LA29_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						TM_MQdRN7fpbG7rPm4JpVVAhA_542 = addInt(i, ((NI) 2));
						if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542),((*e).sons ? (*e).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
						TM_MQdRN7fpbG7rPm4JpVVAhA_543 = addInt(L, ((*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542)]).strVal ? (*(*e).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_542)]).strVal->Sup.len : 0));
						L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_543);
					}
					goto LA27_;
					LA29_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
						T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T32_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
						add_IM4kcMNkkOLJtqdEqSxR8A(&lens, T32_);
						add_yG4AKzsBRS1W4MANDlXQeg(&lens, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_529));
					}
					LA27_: ;
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA35_: ;
					res_3 = rawNewString(((NI) 80));
					T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_530));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T37_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = strLoc_09c8G9aj7c6ktd6DIBLVcdnw(p, dest);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T38_);
					res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T39_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T39_);
					res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA42_;
						res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA42_: ;
					T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T44_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
					add_IM4kcMNkkOLJtqdEqSxR8A(&appends, T44_);
				}
				LA9_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_544 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_544);
			} LA8: ;
		}
	}
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T49_;
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA47_;
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T49_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA52_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA52_: ;
		res_4 = rawNewString(((NI) 80));
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_545));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T54_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T55_ = byRefLoc_Xfvxpx3W1zkiCqENsur9ckg_2(p, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T55_);
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), lens);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (L)));
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA58_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA58_: ;
		T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T60_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T49_, T61_);
	}
	goto LA45_;
	LA47_: ;
	{
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
		initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA65_: ;
		res_5 = rawNewString(((NI) 80));
		T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T67_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_546));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T67_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T68_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T68_);
		res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), lens);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_5), ((NI64) (L)));
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, dest, call, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA45_: ;
	T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T69_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_IM4kcMNkkOLJtqdEqSxR8A(T69_, appends);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType_W0UItHZuQBLie8iFE3EjmA)(tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType_SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21), (*baseType).owner);
	addSonSkipIntLit_2IwAMgUJgjdjR7Qyvt9bjCQ(result, baseType);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, makeAddr_oKhRC9bEKTxG5epdNiNWZ0w_2)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyArray_jlWPjgtbdjE069arIWHC9c9bg T1_;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray_jlWPjgtbdjE069arIWHC9c9bg));
	T1_[0] = n;
	result = newTree_FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64), T1_, 1);
	asgnRef((void**) (&(*result).typ), makePtrType_W0UItHZuQBLie8iFE3EjmA((*n).typ));
	return result;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_550));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(arr);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA6_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_551));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_552));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(arr);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 15);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_553));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_552));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(arr);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_554));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_555));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T20_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* first;
		NI64 T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		NI64 T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		NI64 T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
		T22_ = (NI64)0;
		T22_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
		first = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T22_);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T23_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA26_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA26_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474));
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
		res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_556));
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_557));
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
		T34_ = (NI64)0;
		T34_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T34_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
		T38_ = (NI64)0;
		T38_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T38_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270));
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_555));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T40_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA43_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA43_: ;
		T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T46_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T45_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T23_, T46_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T48_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T48_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA51_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA51_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T53_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_474));
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
		res_3 = resizeString(res_3, 16);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_551));
		T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T55_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T55_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558));
		T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T56_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, arr);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T56_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_559));
		T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558));
		T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T58_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, arr);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
		res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270));
		T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_555));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
		res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA62_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA62_: ;
		T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T64_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T48_, T65_);
	}
	break;
	default:
	{
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* q;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	q = skipConv_BH9abOhPX8pH0DnEWlRxmlw(n);
	{
		tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA c;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		T3_ = (tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg)0;
		T3_ = getMagic_4W1ZJaFiusqlhViRx9cbM9bw(q);
		if (!(T3_ == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 144))) goto LA4_;
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&c), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*q).sons ? (*q).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*q).sons ? (*q).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).sons->data[((NI) 1)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*q).sons ? (*q).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*q).sons ? (*q).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).sons->data[((NI) 2)], (&b));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*q).kind)>>3] &(1U<<((NU)((*q).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 3)) >= (NU)((*q).sons ? (*q).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*q).sons ? (*q).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*q).sons->data[((NI) 3)], (&c));
		{
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA8_;
			genBoundsCheck_Hw9c2IcxFuX7vhYGTZsoSPA(p, a, b, c);
		}
		LA8_: ;
		T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T10_, IL64(36275087634114832));
		switch ((*ty).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			NI64 first;
			first = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T16_;
				if (!(first == IL64(0))) goto LA14_;
				nimZeroMem((void*)T16_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T16_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				T16_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				result = percent__vqIFMTTP8O9b9c4EsAri31BQ(T16_, 3);
			}
			goto LA12_;
			LA14_: ;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T18_;
				nimZeroMem((void*)T18_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T18_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				T18_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				T18_[3] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(first);
				result = percent__ML5hzh8w7tNOJMECHdXA4Q(T18_, 4);
			}
			LA12_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
		{
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T20_;
			nimZeroMem((void*)T20_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T20_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			T20_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
			result = percent__vqIFMTTP8O9b9c4EsAri31BQ(T20_, 3);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T24_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
				NIM_BOOL T27_;
				tyArray_f7nG5LD47BH5K9c6mASit3g T31_;
				T24_ = (NIM_BOOL)0;
				T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T25_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
				T24_ = ((*T25_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T24_)) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T27_) goto LA28_;
				T27_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA28_: ;
				T24_ = !(T27_);
				LA26_: ;
				if (!T24_) goto LA29_;
				nimZeroMem((void*)T31_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T31_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T31_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				T31_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				T31_[3] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__EzpkPkzs39aBICgncroQyOw(T31_, 4);
			}
			goto LA22_;
			LA29_: ;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T33_;
				nimZeroMem((void*)T33_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T33_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T33_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				T33_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				T33_[3] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__hNV2ZHUBotfPVQ9c9chIhpNQ(T33_, 4);
			}
			LA22_: ;
		}
		break;
		default:
		{
			NimStringDesc* T35_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T36_;
			NimStringDesc* T37_;
			T35_ = (NimStringDesc*)0;
			T36_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T36_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			T37_ = (NimStringDesc*)0;
			T37_ = typeToString_QlvraUan7WbHowhAbvDvdA(T36_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T35_ = rawNewString((T37_ ? T37_->Sup.len : 0) + 14);
appendString(T35_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_560));
appendString(T35_, T37_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T35_);
		}
		break;
		}
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		T39_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T39_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T40_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T39_, IL64(36275087632017680));
		switch ((*T40_).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T42_;
			nimZeroMem((void*)T42_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T42_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			result = percent__L3AeZ1n9aK4C1jsBCeaCmlQ(T42_, 1);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			{
				NIM_BOOL T46_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T47_;
				NIM_BOOL T49_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA t;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T53_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T54_;
				T46_ = (NIM_BOOL)0;
				T47_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T47_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
				T46_ = ((*T47_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T46_)) goto LA48_;
				T49_ = (NIM_BOOL)0;
				T49_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T49_) goto LA50_;
				T49_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA50_: ;
				T46_ = !(T49_);
				LA48_: ;
				if (!T46_) goto LA51_;
				nimZeroMem((void*)(&t), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T53_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T53_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				t.r = percent__TbMwXzwNL7txOQADiTjwKA(T53_, 1);
				nimZeroMem((void*)T54_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T54_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T54_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, t);
				T54_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__ebmRHYtM9cCbYF6WvKDfQ9cg(T54_, 3);
			}
			goto LA44_;
			LA51_: ;
			{
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T56_;
				nimZeroMem((void*)T56_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T56_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T56_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
				T56_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__qE1JtEDDOvP6J49a9cv9aK1Dg(T56_, 3);
			}
			LA44_: ;
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T58_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
			NI64 T60_;
			nimZeroMem((void*)T58_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T58_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T59_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T59_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			T60_ = (NI64)0;
			T60_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T59_);
			T58_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T60_);
			result = percent__ctvQ2lU9b9bnVVpNP4GhIo2Q(T58_, 2);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
			T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T62_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			T63_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T63_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(T62_);
			switch ((*T63_).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA t_2;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T65_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T66_;
				nimZeroMem((void*)(&t_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)T65_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T65_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				t_2.r = percent__TbMwXzwNL7txOQADiTjwKA(T65_, 1);
				nimZeroMem((void*)T66_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T66_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T66_[1] = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, t_2);
				T66_[2] = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				result = percent__ebmRHYtM9cCbYF6WvKDfQ9cg(T66_, 3);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
			{
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T68_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T70_;
				NI64 T71_;
				nimZeroMem((void*)T68_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T68_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				T69_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T69_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
				T70_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T70_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(T69_);
				T71_ = (NI64)0;
				T71_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, T70_);
				T68_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T71_);
				result = percent__ctvQ2lU9b9bnVVpNP4GhIo2Q(T68_, 2);
			}
			break;
			default:
			{
				NimStringDesc* T73_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T74_;
				NimStringDesc* T75_;
				T73_ = (NimStringDesc*)0;
				T74_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T74_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
				T75_ = (NimStringDesc*)0;
				T75_ = typeToString_QlvraUan7WbHowhAbvDvdA(T74_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
				T73_ = rawNewString((T75_ ? T75_->Sup.len : 0) + 14);
appendString(T73_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_560));
appendString(T73_, T75_);
				internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T73_);
			}
			break;
			}
		}
		break;
		default:
		{
			NimStringDesc* T77_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T78_;
			NimStringDesc* T79_;
			T77_ = (NimStringDesc*)0;
			T78_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T78_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			T79_ = (NimStringDesc*)0;
			T79_ = typeToString_QlvraUan7WbHowhAbvDvdA(T78_, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T77_ = rawNewString((T79_ ? T79_->Sup.len : 0) + 14);
appendString(T77_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_560));
appendString(T77_, T79_);
			internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T77_);
		}
		break;
		}
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArg_DHNxWzRy19cVFA89bbFHabxg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*param).typ, IL64(36275087632017680));
		if (!((*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA7_;
		{
			if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64)))) goto LA11_;
			n_2 = n;
		}
		goto LA9_;
		LA11_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			n_2 = (*n).sons->data[((NI) 0)];
		}
		LA9_: ;
		result = openArrayLoc_NYI5fC69aIqZGRakncXv9cNQ_7(p, n_2);
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T15_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*call).sons ? (*call).sons->Sup.len : 0)-1);
		if ((NU)(((NI) 0)) >= (NU)((*(*(*call).sons->data[((NI) 0)]).typ).sons ? (*(*(*call).sons->data[((NI) 0)]).typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*(*call).sons->data[((NI) 0)]).typ).sons ? (*(*(*call).sons->data[((NI) 0)]).typ).sons->Sup.len : 0)-1);
		T15_ = (NIM_BOOL)0;
		T15_ = ccgIntroducedPtr_W9aw79b629bysnh3DDOpE3OTg((*(*(*p).module).g).config, param, (*(*(*call).sons->data[((NI) 0)]).typ).sons->data[((NI) 0)]);
		if (!T15_) goto LA16_;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a));
		result = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
	}
	goto LA1_;
	LA16_: ;
	{
		NIM_BOOL T19_;
		NIM_BOOL T20_;
		NIM_BOOL T21_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* callee;
		T19_ = (NIM_BOOL)0;
		T20_ = (NIM_BOOL)0;
		T21_ = (NIM_BOOL)0;
		T21_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T21_) goto LA22_;
		T21_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA22_: ;
		T20_ = T21_;
		if (!(T20_)) goto LA23_;
		T20_ = ((*(*param).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
		LA23_: ;
		T19_ = T20_;
		if (!(T19_)) goto LA24_;
		T19_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
		LA24_: ;
		if (!T19_) goto LA25_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*n).sons->data[((NI) 0)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*call).sons ? (*call).sons->Sup.len : 0)-1);
		callee = (*call).sons->data[((NI) 0)];
		{
			NIM_BOOL T29_;
			NIM_BOOL T30_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NIM_BOOL)0;
			T30_ = ((*callee).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T30_)) goto LA31_;
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*callee).kind)>>3] &(1U<<((NU)((*callee).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T30_ = ((268501024 & (*(*callee).sym).flags) == 32);
			LA31_: ;
			T29_ = T30_;
			if (!(T29_)) goto LA32_;
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*callee).kind)>>3] &(1U<<((NU)((*callee).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T29_ = !(((72 & (*(*callee).sym).loc.flags) == 0));
			LA32_: ;
			if (!T29_) goto LA33_;
			result = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		}
		goto LA27_;
		LA33_: ;
		{
			result = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		}
		LA27_: ;
	}
	goto LA1_;
	LA25_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71))) goto LA3_;
		result = genArgStringToCString_yOhPG2oQOpNhI6KfbLI1XQcgen(p, n);
	}
	goto LA1_;
	LA3_: ;
	{
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, n, (&a));
		result = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getRawProcType_pQ3A543K4YxeaNh48yoUog)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getClosureType_lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, t, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((le == NIM_NIL))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(ri);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* r;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_562;
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
					r = (*ri).sons->data[i];
					{
						tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T10_;
						T10_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
						T10_ = isPartOf_1otDDZAmvFsmbqPyFytXFg(le, r);
						if (!!((T10_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)))) goto LA11_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA11_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_562 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_562);
				} LA7: ;
			}
		}
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, hasNoInit_XO14mevzEVVwQTyfj9cMewwcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*call).sons ? (*call).sons->Sup.len : 0)-1);
	T1_ = ((*(*call).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*call).sons ? (*call).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*call).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*call).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	T1_ = (((*(*(*call).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, addComma_WAlh7NpO6KFA22Kxnp9aoaw)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(r == NIM_NIL)) goto LA3_;
		result = r;
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T6_, 0);
		result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(r, T7_);
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* rawProc;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).sons->data[((NI) 0)], (&op));
	pl = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_547));
	}
	LA3_: ;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_561;
				if (!(i_2 < length)) goto LA7;
				i = i_2;
				{
					NI T10_;
					NI T11_;
					T10_ = (NI)0;
					T10_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
					T11_ = (NI)0;
					T11_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
					if (!!((T10_ == T11_))) goto LA12_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_548));
				}
				LA12_: ;
				{
					NI T16_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T16_ = (NI)0;
					T16_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
					if (!(i < T16_)) goto LA17_;
					{
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
						if (!!(((*(*(*typ).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA21_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_549));
					}
					LA21_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
					paramType = (*(*typ).n).sons->data[i];
					{
						NIM_BOOL T25_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
						T25_ = (NIM_BOOL)0;
						T25_ = isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
						if (!!(T25_)) goto LA26_;
						{
							tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
							if (!!((pl == NIM_NIL))) goto LA30_;
							nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
							T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T33_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T32_, 0);
							add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T33_);
						}
						LA30_: ;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*paramType).kind)>>3] &(1U<<((NU)((*paramType).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T34_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[i], (*paramType).sym, ri);
						add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T34_);
					}
					LA26_: ;
				}
				goto LA14_;
				LA17_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!!((pl == NIM_NIL))) goto LA38_;
						nimZeroMem((void*)T40_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T40_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T41_);
					}
					LA38_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
					T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri).sons->data[i]);
					add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T42_);
				}
				LA14_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_561 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_561);
			} LA7: ;
		}
	}
	rawProc = getRawProcType_pQ3A543K4YxeaNh48yoUog(p, typ);
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA45_;
		{
			NIM_BOOL T49_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T49_ = (NIM_BOOL)0;
			T49_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T49_) goto LA50_;
			{
				NI T54_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T57_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
				T54_ = (NI)0;
				T54_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
				if (!(((NI) 1) < T54_)) goto LA55_;
				nimZeroMem((void*)T57_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T57_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T58_);
			}
			LA55_: ;
			{
				NIM_BOOL T61_;
				NIM_BOOL T63_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
				T61_ = (NIM_BOOL)0;
				T61_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T61_) goto LA62_;
				T63_ = (NIM_BOOL)0;
				T63_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T61_ = !(T63_);
				LA62_: ;
				if (!T61_) goto LA64_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA68_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA66_;
				LA68_: ;
				{
					NIM_BOOL T71_;
					NIM_BOOL T73_;
					T71_ = (NIM_BOOL)0;
					T71_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T71_)) goto LA72_;
					T73_ = (NIM_BOOL)0;
					T73_ = hasNoInit_XO14mevzEVVwQTyfj9cMewwcgen(ri);
					T71_ = !(T73_);
					LA72_: ;
					if (!T71_) goto LA74_;
				}
				goto LA66_;
				LA74_: ;
				LA66_: ;
				T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T76_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T76_);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T81_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T82_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
					if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA79_;
					T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T81_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T82_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T82_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
					T82_[1] = pl;
					T82_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T82_[3] = rawProc;
					T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T83_ = percent__8bHx2qDxS2yWIId1X52mqg(T82_, 4);
					T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T84_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T83_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T81_, T84_);
				}
				goto LA77_;
				LA79_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T86_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T87_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
					T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T86_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T87_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T87_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
					T87_[1] = pl;
					T87_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T87_[3] = rawProc;
					T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T88_ = percent__kTDR7D9c9aomjcaUQOmKJ9csg(T87_, 4);
					T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T89_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T88_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T86_, T89_);
				}
				LA77_: ;
			}
			goto LA59_;
			LA64_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T91_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T91_);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T96_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T97_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
					if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA94_;
					T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T96_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T97_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T97_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
					T97_[1] = pl;
					T97_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T97_[3] = rawProc;
					T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T98_ = percent__8bHx2qDxS2yWIId1X52mqg(T97_, 4);
					T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T99_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T98_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T96_, T99_);
				}
				goto LA92_;
				LA94_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T101_;
					tyArray_f7nG5LD47BH5K9c6mASit3g T102_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
					T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T101_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T102_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
					T102_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
					T102_[1] = pl;
					T102_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
					T102_[3] = rawProc;
					T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T103_ = percent__kTDR7D9c9aomjcaUQOmKJ9csg(T102_, 4);
					T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T104_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T103_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T101_, T104_);
				}
				LA92_: ;
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA59_: ;
		}
		goto LA47_;
		LA50_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA108_;
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA108_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T112_;
				T112_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T112_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*d));
				if (!!(!((T112_ == NIM_NIL)))) goto LA113_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_563));
			}
			LA113_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T119_;
				if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA117_;
				nimZeroMem((void*)T119_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T119_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
				T119_[1] = pl;
				T119_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T119_[3] = rawProc;
				list.r = percent__1tj59chZC08k4TWYeZiqDnQ(T119_, 4);
			}
			goto LA115_;
			LA117_: ;
			{
				tyArray_f7nG5LD47BH5K9c6mASit3g T121_;
				nimZeroMem((void*)T121_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
				T121_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
				T121_[1] = pl;
				T121_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
				T121_[3] = rawProc;
				list.r = percent__533QKY9a8quvLM1SsLE1JfQ(T121_, 4);
			}
			LA115_: ;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
		}
		LA47_: ;
	}
	goto LA43_;
	LA45_: ;
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T127_;
			tyArray_f7nG5LD47BH5K9c6mASit3g T128_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T129_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T130_;
			if (!(((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0)) goto LA125_;
			T127_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T127_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T128_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T128_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
			T128_[1] = pl;
			T128_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
			T128_[3] = rawProc;
			T129_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T129_ = percent__8bHx2qDxS2yWIId1X52mqg(T128_, 4);
			T130_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T130_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T129_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T127_, T130_);
		}
		goto LA123_;
		LA125_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T132_;
			tyArray_f7nG5LD47BH5K9c6mASit3g T133_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T134_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T135_;
			T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T132_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T133_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
			T133_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
			T133_[1] = pl;
			T133_[2] = addComma_WAlh7NpO6KFA22Kxnp9aoaw(pl);
			T133_[3] = rawProc;
			T134_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T134_ = percent__kTDR7D9c9aomjcaUQOmKJ9csg(T133_, 4);
			T135_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T135_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T134_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T132_, T135_);
		}
		LA123_: ;
	}
	LA43_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOtherArg_9a86z5oGsAZjkB52zPdLZJQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
		T3_ = (NI)0;
		T3_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		if (!(i < T3_)) goto LA4_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
		paramType = (*(*typ).n).sons->data[i];
		{
			if (!!(((*paramType).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_569));
		}
		LA8_: ;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
			if (!T12_) goto LA13_;
			result = NIM_NIL;
		}
		goto LA10_;
		LA13_: ;
		{
			NIM_BOOL T16_;
			T16_ = (NIM_BOOL)0;
			if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T16_ = ((*(*typ).sons->data[i]).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T16_)) goto LA17_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			T16_ = ((*(*ri).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA17_: ;
			if (!T16_) goto LA18_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*ri).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*ri).sons->data[i]).sons ? (*(*ri).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*ri).sons->data[i]).sons ? (*(*ri).sons->data[i]).sons->Sup.len : 0)-1);
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*(*ri).sons->data[i]).sons->data[((NI) 0)]);
		}
		goto LA10_;
		LA18_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri).sons->data[i]);
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			if (!!((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA24_;
			localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_570));
			result = NIM_NIL;
		}
		goto LA22_;
		LA24_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri).sons->data[i]);
		}
		LA22_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddrDeref_vMC9cau6W2PcQ0Z0zO9cDXMA)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* node) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL isAddr;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	n = node;
	isAddr = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		n = (*n).sons->data[((NI) 0)];
		isAddr = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		n = (*n).sons->data[((NI) 0)];
	}
	break;
	default:
	{
		result = n;
		goto BeforeRet_;
	}
	break;
	}
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA6_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		n = (*n).sons->data[((NI) 0)];
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = isAddr;
		if (!(T10_)) goto LA11_;
		T10_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
		LA11_: ;
		if (!T10_) goto LA12_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = (*n).sons->data[((NI) 0)];
	}
	goto LA8_;
	LA12_: ;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA15_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = (*n).sons->data[((NI) 0)];
	}
	goto LA8_;
	LA15_: ;
	{
		result = node;
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NI i, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		if (!!((i < T3_))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_583);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
		if (!!(((*(*(*typ).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA9_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_584));
	}
	LA9_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	ri_2 = (*ri).sons->data[i];
	{
		while (1) {
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA12;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
			ri_2 = (*ri_2).sons->data[((NI) 0)];
		} LA12: ;
	}
	if ((NU)(i) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(i,((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*typ).sons->data[i], IL64(70368744179728));
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA15_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA19_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
			x = (*ri_2).sons->data[((NI) 0)];
		}
		goto LA17_;
		LA19_: ;
		{
			x = ri_2;
		}
		LA17_: ;
		{
			if (!((*(*x).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA24_;
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, x);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585));
		}
		goto LA22_;
		LA24_: ;
		{
			NIM_BOOL T27_;
			T27_ = (NIM_BOOL)0;
			T27_ = ((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47));
			if (!(T27_)) goto LA28_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			T27_ = ((*(*(*x).sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21));
			LA28_: ;
			if (!T27_) goto LA29_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*x).sons->data[((NI) 0)]);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585));
		}
		goto LA22_;
		LA29_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, x);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
		}
		LA22_: ;
	}
	goto LA13_;
	LA15_: ;
	{
		if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA33_;
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA37_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri_2).sons->data[((NI) 0)]);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
		}
		goto LA35_;
		LA37_: ;
		{
			result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, ri_2);
			add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585));
		}
		LA35_: ;
	}
	goto LA13_;
	LA33_: ;
	{
		ri_2 = skipAddrDeref_vMC9cau6W2PcQ0Z0zO9cDXMA(ri_2);
		{
			if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA43_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
			ri_2 = (*ri_2).sons->data[((NI) 0)];
		}
		LA43_: ;
		result = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, ri_2);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
	}
	LA13_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* pat, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NI i;
	NI j;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	i = ((NI) 0);
	j = ((NI) 1);
	{
		while (1) {
			if (!(i < (pat ? pat->Sup.len : 0))) goto LA2;
			if ((NU)(i) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2(i,(pat ? pat->Sup.len : 0)-1);
			switch (((NU8)(pat->data[i]))) {
			case 64:
			{
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_573;
				{
					NI T6_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
					T6_ = (NI)0;
					T6_ = len_P89cqdlERShb9alU3iC0yj8wast(ri);
					if (!(j < T6_)) goto LA7_;
					T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T9_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, j, typ);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T9_);
					{
						NI k;
						NI colontmp_;
						NI colontmp__2;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_571;
						NI i_2;
						k = (NI)0;
						colontmp_ = (NI)0;
						colontmp__2 = (NI)0;
						TM_MQdRN7fpbG7rPm4JpVVAhA_571 = addInt(j, ((NI) 1));
						colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_571);
						colontmp__2 = len_P89cqdlERShb9alU3iC0yj8wast(ri);
						i_2 = colontmp_;
						{
							while (1) {
								tyArray_qTjAvTvKF9anytN1At69aJMQ T13_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
								NI TM_MQdRN7fpbG7rPm4JpVVAhA_572;
								if (!(i_2 < colontmp__2)) goto LA12;
								k = i_2;
								nimZeroMem((void*)T13_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T14_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T13_, 0);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T14_);
								T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T15_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, k, typ);
								add_IM4kcMNkkOLJtqdEqSxR8A(&result, T15_);
								TM_MQdRN7fpbG7rPm4JpVVAhA_572 = addInt(i_2, ((NI) 1));
								i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_572);
							} LA12: ;
						}
					}
				}
				LA7_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_573 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_573);
			}
			break;
			case 35:
			{
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_589;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_590;
				{
					NIM_BOOL T19_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_574;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_575;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri_2;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_580;
					T19_ = (NIM_BOOL)0;
					TM_MQdRN7fpbG7rPm4JpVVAhA_574 = addInt(i, ((NI) 1));
					T19_ = ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_574) < (pat ? pat->Sup.len : 0));
					if (!(T19_)) goto LA20_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_575 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_575)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_575),(pat ? pat->Sup.len : 0)-1);
					T19_ = (((NU8)(pat->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_575)])) == ((NU8)(43)) || ((NU8)(pat->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_575)])) == ((NU8)(64)));
					LA20_: ;
					if (!T19_) goto LA21_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(j) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(j,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
					ri_2 = (*ri).sons->data[j];
					{
						tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T46_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
						if (!((*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ri_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA25_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
						typ_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri_2).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_576;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
							TM_MQdRN7fpbG7rPm4JpVVAhA_576 = addInt(i, ((NI) 1));
							if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_576)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_576),(pat ? pat->Sup.len : 0)-1);
							if (!((NU8)(pat->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_576)]) == (NU8)(43))) goto LA29_;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri_2).kind)>>3] &(1U<<((NU)((*ri_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri_2).sons ? (*ri_2).sons->Sup.len : 0)-1);
							T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T31_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri_2).sons->data[((NI) 0)]);
							add_IM4kcMNkkOLJtqdEqSxR8A(&result, T31_);
						}
						LA29_: ;
						nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T33_ = percent__uFJUSitn9c1Tw6cF9cZf6x6Q(T32_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&result, T33_);
						{
							NI T36_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
							T36_ = (NI)0;
							T36_ = len_P89cqdlERShb9alU3iC0yj8wast(ri_2);
							if (!(((NI) 1) < T36_)) goto LA37_;
							T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T39_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, ((NI) 1), typ_2);
							add_IM4kcMNkkOLJtqdEqSxR8A(&result, T39_);
						}
						LA37_: ;
						{
							NI k_2;
							NI colontmp__3;
							NI colontmp__4;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_577;
							NI i_3;
							k_2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__4 = (NI)0;
							TM_MQdRN7fpbG7rPm4JpVVAhA_577 = addInt(j, ((NI) 1));
							colontmp__3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_577);
							colontmp__4 = len_P89cqdlERShb9alU3iC0yj8wast(ri_2);
							i_3 = colontmp__3;
							{
								while (1) {
									tyArray_qTjAvTvKF9anytN1At69aJMQ T43_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
									NI TM_MQdRN7fpbG7rPm4JpVVAhA_578;
									if (!(i_3 < colontmp__4)) goto LA42;
									k_2 = i_3;
									nimZeroMem((void*)T43_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
									T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T44_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T43_, 0);
									add_IM4kcMNkkOLJtqdEqSxR8A(&result, T44_);
									T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T45_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri_2, k_2, typ_2);
									add_IM4kcMNkkOLJtqdEqSxR8A(&result, T45_);
									TM_MQdRN7fpbG7rPm4JpVVAhA_578 = addInt(i_3, ((NI) 1));
									i_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_578);
								} LA42: ;
							}
						}
						nimZeroMem((void*)T46_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T47_ = percent__G8iCcDovsaw25PkF7wHs0g(T46_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&result, T47_);
					}
					goto LA23_;
					LA25_: ;
					{
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*ri_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_579));
					}
					LA23_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_580 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_580);
				}
				goto LA17_;
				LA21_: ;
				{
					NIM_BOOL T50_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_581;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_582;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_586;
					T50_ = (NIM_BOOL)0;
					TM_MQdRN7fpbG7rPm4JpVVAhA_581 = addInt(i, ((NI) 1));
					T50_ = ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_581) < (pat ? pat->Sup.len : 0));
					if (!(T50_)) goto LA51_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_582 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_582)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_582),(pat ? pat->Sup.len : 0)-1);
					T50_ = ((NU8)(pat->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_582)]) == (NU8)(46));
					LA51_: ;
					if (!T50_) goto LA52_;
					T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T54_ = genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, j, typ);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T54_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_586 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_586);
				}
				goto LA17_;
				LA52_: ;
				{
					NIM_BOOL T56_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_587;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_588;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
					T56_ = (NIM_BOOL)0;
					TM_MQdRN7fpbG7rPm4JpVVAhA_587 = addInt(i, ((NI) 1));
					T56_ = ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_587) < (pat ? pat->Sup.len : 0));
					if (!(T56_)) goto LA57_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_588 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_588)) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_588),(pat ? pat->Sup.len : 0)-1);
					T56_ = ((NU8)(pat->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_588)]) == (NU8)(91));
					LA57_: ;
					if (!T56_) goto LA58_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(j) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(j,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
					arg = skipAddrDeref_vMC9cau6W2PcQ0Z0zO9cDXMA((*ri).sons->data[j]);
					{
						while (1) {
							if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64) || (*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA61;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*arg).kind)>>3] &(1U<<((NU)((*arg).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*arg).sons ? (*arg).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*arg).sons ? (*arg).sons->Sup.len : 0)-1);
							arg = (*arg).sons->data[((NI) 0)];
						} LA61: ;
					}
					T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T62_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, arg);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T62_);
				}
				goto LA17_;
				LA58_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
					T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T64_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, j, typ);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T64_);
				}
				LA17_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_589 = addInt(j, ((NI) 1));
				j = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_589);
				TM_MQdRN7fpbG7rPm4JpVVAhA_590 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_590);
			}
			break;
			case 39:
			{
				NI idx;
				NI stars;
				idx = (NI)0;
				stars = (NI)0;
				{
					NIM_BOOL T68_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					T68_ = (NIM_BOOL)0;
					T68_ = scanCppGenericSlot_YRbO0Zq30XmyAQjpf1Mi6g(pat, (&i), (&idx), (&stars));
					if (!T68_) goto LA69_;
					t = resolveStarsInCppType_dTa9cSuyNlFVdzNe1dV0rag(typ, idx, stars);
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T75_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
						if (!(t == NIM_NIL)) goto LA73_;
						nimZeroMem((void*)T75_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T76_ = percent__G9aA37gQrW88KHzpCAwhgjQ(T75_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&result, T76_);
					}
					goto LA71_;
					LA73_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
						T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T78_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
						add_IM4kcMNkkOLJtqdEqSxR8A(&result, T78_);
					}
					LA71_: ;
				}
				LA69_: ;
			}
			break;
			default:
			{
				NI start;
				start = i;
				{
					while (1) {
						if (!(i < (pat ? pat->Sup.len : 0))) goto LA81;
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_591;
							if ((NU)(i) >= (NU)(pat ? pat->Sup.len : 0)) raiseIndexError2(i,(pat ? pat->Sup.len : 0)-1);
							if (!!((((NU8)(pat->data[i])) == ((NU8)(64)) || ((NU8)(pat->data[i])) == ((NU8)(35)) || ((NU8)(pat->data[i])) == ((NU8)(39))))) goto LA84_;
							TM_MQdRN7fpbG7rPm4JpVVAhA_591 = addInt(i, ((NI) 1));
							i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_591);
						}
						goto LA82_;
						LA84_: ;
						{
							goto LA80;
						}
						LA82_: ;
					} LA81: ;
				} LA80: ;
				{
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_592;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_593;
					NimStringDesc* T91_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_592 = subInt(i, ((NI) 1));
					if (!(start <= (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_592))) goto LA89_;
					TM_MQdRN7fpbG7rPm4JpVVAhA_593 = subInt(i, ((NI) 1));
					T91_ = (NimStringDesc*)0;
					T91_ = substr_2yh9cer0ymNRHlOOg8P7IuA(pat, start, (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_593));
					add_yG4AKzsBRS1W4MANDlXQeg(&result, T91_);
				}
				LA89_: ;
			}
			break;
			}
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, getTempCpp_17YlQRjV7sYeIVr87qv2GA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* value) {
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_597;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	TM_MQdRN7fpbG7rPm4JpVVAhA_597 = addInt((*p).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_597 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_597 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_597);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_122), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), value);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T14_);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(t));
	(*result).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	(*result).flags = 0;
}

N_LIB_PRIVATE N_NIMCALL(void, fixupCall_5AieZFwkpMkLKPnkORd7Cw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* callee, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__uFJUSitn9c1Tw6cF9cZf6x6Q(T1_, 0);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(callee, T2_);
	pl = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ(T3_, params);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA6_;
		{
			NIM_BOOL T10_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T10_ = (NIM_BOOL)0;
			T10_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T10_) goto LA11_;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T17_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
				if (!!((params == NIM_NIL))) goto LA15_;
				nimZeroMem((void*)T17_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T17_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T18_);
			}
			LA15_: ;
			{
				NIM_BOOL T21_;
				NIM_BOOL T23_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T37_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T39_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
				T21_ = (NIM_BOOL)0;
				T21_ = ((3 &(1U<<((NU)((*d).k)&15U)))!=0);
				if (T21_) goto LA22_;
				T23_ = (NIM_BOOL)0;
				T23_ = leftAppearsOnRightSide_vU9b0aggOQwExqsArZPu29aw(le, ri);
				T21_ = !(T23_);
				LA22_: ;
				if (!T21_) goto LA24_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA28_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				goto LA26_;
				LA28_: ;
				{
					NIM_BOOL T31_;
					NIM_BOOL T33_;
					T31_ = (NIM_BOOL)0;
					T31_ = !(((2 &(1U<<((NU)((*d).k)&15U)))!=0));
					if (!(T31_)) goto LA32_;
					T33_ = (NIM_BOOL)0;
					T33_ = hasNoInit_XO14mevzEVVwQTyfj9cMewwcgen(ri);
					T31_ = !(T33_);
					LA32_: ;
					if (!T31_) goto LA34_;
				}
				goto LA26_;
				LA34_: ;
				LA26_: ;
				T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T36_);
				nimZeroMem((void*)T37_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T38_ = percent__bhkFYKbURxGcJnKpswdr2Q(T37_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T38_);
				T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T39_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T40_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add_IM4kcMNkkOLJtqdEqSxR8A(T39_, T40_);
			}
			goto LA19_;
			LA24_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T43_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T42_);
				nimZeroMem((void*)T43_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T44_ = percent__bhkFYKbURxGcJnKpswdr2Q(T43_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T44_);
				T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T46_);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA19_: ;
		}
		goto LA8_;
		LA11_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
			nimZeroMem((void*)T48_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = percent__G8iCcDovsaw25PkF7wHs0g(T48_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T49_);
			{
				NIM_BOOL T52_;
				T52_ = (NIM_BOOL)0;
				T52_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T52_) goto LA53_;
				T52_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA53_: ;
				if (!T52_) goto LA54_;
				{
					if (!(((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0)) goto LA58_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
					unsureAsgnRef((void**) (&(*d).r), pl);
					(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) & 15));
				}
				goto LA56_;
				LA58_: ;
				{
					{
						NIM_BOOL T63_;
						T63_ = (NIM_BOOL)0;
						T63_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
						if (!(T63_)) goto LA64_;
						T63_ = ((*p).splitDecls == ((NI) 0));
						LA64_: ;
						if (!T63_) goto LA65_;
						if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
						getTempCpp_17YlQRjV7sYeIVr87qv2GA(p, (*typ).sons->data[((NI) 0)], d, pl);
					}
					goto LA61_;
					LA65_: ;
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
						{
							if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA70_;
							if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
							getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
						}
						LA70_: ;
						nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						initLoc_qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
						list.r = pl;
						genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
					}
					LA61_: ;
				}
				LA56_: ;
			}
			goto LA50_;
			LA54_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list_2;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA75_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA75_: ;
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T79_;
					T79_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T79_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*d));
					if (!!(!((T79_ == NIM_NIL)))) goto LA80_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_598));
				}
				LA80_: ;
				nimZeroMem((void*)(&list_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc_qlujIAW86QclHYUVxlHRiQ((&list_2), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list_2.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), list_2, 0);
			}
			LA50_: ;
		}
		LA8_: ;
	}
	goto LA4_;
	LA6_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T83_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T85_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
		nimZeroMem((void*)T83_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T84_ = percent__bhkFYKbURxGcJnKpswdr2Q(T83_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T84_);
		T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T85_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T86_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
		add_IM4kcMNkkOLJtqdEqSxR8A(T85_, T86_);
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	NimStringDesc* pat;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).sons->data[((NI) 0)], (&op));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_564));
	}
	LA3_: ;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
	{
		NI T7_;
		NI T8_;
		T7_ = (NI)0;
		T7_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		T8_ = (NI)0;
		T8_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
		if (!!((T7_ == T8_))) goto LA9_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_565));
	}
	LA9_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	pat = (*(*(*(*ri).sons->data[((NI) 0)]).sym).loc.r).data;
	{
		NimStringDesc* T15_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T15_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_566);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T15_);
	}
	LA13_: ;
	{
		NIM_BOOL T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ_2;
		T18_ = (NIM_BOOL)0;
		T18_ = contains_wAzSnEu9cCHHjvPQlWBZUeQ(pat, TM_MQdRN7fpbG7rPm4JpVVAhA_568);
		if (!T18_) goto LA19_;
		pl = genPatternCall_n9aN0vqKCBL7B9cV6pjBnGNg(p, ri, pat, typ);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		typ_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		{
			if ((NU)(((NI) 0)) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1);
			if (!!(((*typ_2).sons->data[((NI) 0)] == NIM_NIL))) goto LA23_;
			{
				NIM_BOOL T27_;
				NIM_BOOL T28_;
				T27_ = (NIM_BOOL)0;
				T28_ = (NIM_BOOL)0;
				T28_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T28_) goto LA29_;
				T28_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA29_: ;
				T27_ = T28_;
				if (!(T27_)) goto LA30_;
				T27_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8))&15U)))!=0);
				LA30_: ;
				if (!T27_) goto LA31_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9);
				unsureAsgnRef((void**) (&(*d).r), pl);
				(*d).flags &= ~(((NU16)1) << ((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 8)) & 15));
			}
			goto LA25_;
			LA31_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA36_;
					if ((NU)(((NI) 0)) >= (NU)((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ_2).sons ? (*typ_2).sons->Sup.len : 0)-1);
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ_2).sons->data[((NI) 0)], d, NIM_FALSE);
				}
				LA36_: ;
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
					T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T40_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*d));
					if (!!(!((T40_ == NIM_NIL)))) goto LA41_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_594));
				}
				LA41_: ;
				nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				initLoc_qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), (*d).lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				list.r = pl;
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
			}
			LA25_: ;
		}
		goto LA21_;
		LA23_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			nimZeroMem((void*)T44_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent__SY4U2QvmoQxocaG8MOmyHA(T44_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T45_);
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T46_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
			add_IM4kcMNkkOLJtqdEqSxR8A(T46_, T47_);
		}
		LA21_: ;
	}
	goto LA16_;
	LA19_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
		pl_2 = NIM_NIL;
		{
			NI T51_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			T51_ = (NI)0;
			T51_ = len_P89cqdlERShb9alU3iC0yj8wast(ri);
			if (!(((NI) 1) < T51_)) goto LA52_;
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = genThisArg_9a86z5oGsAZjkB52zPdLZJQ_2(p, ri, ((NI) 1), typ);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl_2, T54_);
		}
		LA52_: ;
		add_IM4kcMNkkOLJtqdEqSxR8A(&pl_2, op.r);
		params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 2);
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_596;
					if (!(i_2 < length)) goto LA57;
					i = i_2;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T62_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
						if (!!((params == NIM_NIL))) goto LA60_;
						nimZeroMem((void*)T62_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T63_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T62_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&params, T63_);
					}
					LA60_: ;
					{
						NI T66_;
						NI T67_;
						T66_ = (NI)0;
						T66_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
						T67_ = (NI)0;
						T67_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
						if (!!((T66_ == T67_))) goto LA68_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_595));
					}
					LA68_: ;
					T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T70_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, ri, i, typ);
					add_IM4kcMNkkOLJtqdEqSxR8A(&params, T70_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_596 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_596);
				} LA57: ;
			}
		}
		fixupCall_5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, pl_2, params);
	}
	LA16_: ;
}

static N_INLINE(NI, find_31wM5Ui9c8jnrQ5QD4oPxOQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
	NI result;
{	result = (NI)0;
	{
		NIM_CHAR i;
		NI i_2;
		i = (NIM_CHAR)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_602;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_603;
				if (!(i_2 < aLen_0)) goto LA3;
				if ((NU)(i_2) >= (NU)(aLen_0)) raiseIndexError2(i_2,aLen_0-1);
				i = a[i_2];
				{
					if (!((NU8)(i) == (NU8)(item))) goto LA6_;
					goto BeforeRet_;
				}
				LA6_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_602 = addInt(result, ((NI) 1));
				result = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_602);
				TM_MQdRN7fpbG7rPm4JpVVAhA_603 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_603);
			} LA3: ;
		}
	}
	result = ((NI) -1);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NIM_BOOL, contains_Pa9a8m0kZYH6LC8N1EcZJdQsystem)(NIM_CHAR* a, NI aLen_0, NIM_CHAR item) {
	NIM_BOOL result;
	NI T1_;
{	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = find_31wM5Ui9c8jnrQ5QD4oPxOQsystem(a, aLen_0, item);
	result = (((NI) 0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* pl;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	NimStringDesc* pat;
	NI start;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).sons->data[((NI) 0)], (&op));
	nimZeroMem((void*)T1_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	pl = percent__lTsL0bi6njxzDh9c8A32r2w(T1_, 0);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_599));
	}
	LA4_: ;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
	{
		NI T8_;
		NI T9_;
		T8_ = (NI)0;
		T8_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		T9_ = (NI)0;
		T9_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
		if (!!((T8_ == T9_))) goto LA10_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_600));
	}
	LA10_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	pat = (*(*(*(*ri).sons->data[((NI) 0)]).sym).loc.r).data;
	{
		NimStringDesc* T16_;
		if (!!((((NI) 0) < (pat ? pat->Sup.len : 0)))) goto LA14_;
		T16_ = (NimStringDesc*)0;
		T16_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_601);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T16_);
	}
	LA14_: ;
	start = ((NI) 3);
	{
		NIM_BOOL T19_;
		T19_ = (NIM_BOOL)0;
		T19_ = contains_Pa9a8m0kZYH6LC8N1EcZJdQsystem(pat->data, (pat ? pat->Sup.len : 0), 32);
		if (!T19_) goto LA20_;
		start = ((NI) 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&pl, op.r);
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T26_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			if (!(((NI) 1) < length)) goto LA24_;
			nimZeroMem((void*)T26_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = percent__k4VEB3kaBL72FRQN8buzSg(T26_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T27_);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*typ).n).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[((NI) 1)], (*(*(*typ).n).sons->data[((NI) 1)]).sym, ri);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T28_);
			start = ((NI) 2);
		}
		LA24_: ;
	}
	goto LA17_;
	LA20_: ;
	{
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
			if (!(((NI) 1) < length)) goto LA32_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*typ).n).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[((NI) 1)], (*(*(*typ).n).sons->data[((NI) 1)]).sym, ri);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T34_);
			nimZeroMem((void*)T35_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = percent__gMbiWAc0IjihIq46IYhmAw(T35_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T36_);
		}
		LA32_: ;
		add_IM4kcMNkkOLJtqdEqSxR8A(&pl, op.r);
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T41_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			if (!(((NI) 2) < length)) goto LA39_;
			nimZeroMem((void*)T41_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = percent__k4VEB3kaBL72FRQN8buzSg(T41_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T42_);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*typ).n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*(*typ).n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[((NI) 2)], (*(*(*typ).n).sons->data[((NI) 2)]).sym, ri);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T43_);
		}
		LA39_: ;
	}
	LA17_: ;
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = start;
		{
			while (1) {
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* param;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T62_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T64_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_607;
				if (!(i_2 < length)) goto LA46;
				i = i_2;
				{
					NI T49_;
					NI T50_;
					T49_ = (NI)0;
					T49_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
					T50_ = (NI)0;
					T50_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
					if (!!((T49_ == T50_))) goto LA51_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_604));
				}
				LA51_: ;
				{
					NI T55_;
					T55_ = (NI)0;
					T55_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
					if (!(T55_ <= i)) goto LA56_;
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*ri).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_605));
				}
				LA56_: ;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
					if (!!(((*(*(*typ).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA60_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_606));
				}
				LA60_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*typ).n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*(*typ).n).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				param = (*(*(*typ).n).sons->data[i]).sym;
				nimZeroMem((void*)T62_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T63_ = percent__gMbiWAc0IjihIq46IYhmAw(T62_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T63_);
				add_yG4AKzsBRS1W4MANDlXQeg(&pl, (*(*param).name).s);
				nimZeroMem((void*)T64_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = percent__k4VEB3kaBL72FRQN8buzSg(T64_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T65_);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
				T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[i], param, ri);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T66_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_607 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_607);
			} LA46: ;
		}
	}
	{
		if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
		if (!!(((*typ).sons->data[((NI) 0)] == NIM_NIL))) goto LA69_;
		{
			NIM_BOOL T73_;
			if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
			T73_ = (NIM_BOOL)0;
			T73_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag((*(*(*p).module).g).config, (*typ).sons->data[((NI) 0)]);
			if (!T73_) goto LA74_;
			{
				NI T78_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T81_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
				T78_ = (NI)0;
				T78_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
				if (!(((NI) 1) < T78_)) goto LA79_;
				nimZeroMem((void*)T81_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T82_ = percent__gMbiWAc0IjihIq46IYhmAw(T81_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T82_);
			}
			LA79_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T91_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T94_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T96_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
				if (!((3 &(1U<<((NU)((*d).k)&15U)))!=0)) goto LA85_;
				{
					if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA89_;
					if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
					getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_TRUE);
				}
				LA89_: ;
				nimZeroMem((void*)T91_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T92_ = percent__YbQIA9cHUESCyYT1WEeIVbA(T91_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T92_);
				T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, (*d));
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T93_);
				nimZeroMem((void*)T94_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T95_ = percent__66KauNYQRukYNgmb6bVXEA(T94_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T95_);
				T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T96_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T97_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add_IM4kcMNkkOLJtqdEqSxR8A(T96_, T97_);
			}
			goto LA83_;
			LA85_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T100_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T101_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T102_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
				nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], (&tmp), NIM_TRUE);
				T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T99_);
				nimZeroMem((void*)T100_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T101_ = percent__66KauNYQRukYNgmb6bVXEA(T100_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T101_);
				T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T102_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T103_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
				add_IM4kcMNkkOLJtqdEqSxR8A(T102_, T103_);
				genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
			}
			LA83_: ;
		}
		goto LA71_;
		LA74_: ;
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T105_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA list;
			nimZeroMem((void*)T105_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = percent__S550SlHmWbDpD7rs0J2lrA(T105_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T106_);
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA109_;
				if ((NU)(((NI) 0)) >= (NU)((*typ).sons ? (*typ).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*typ).sons ? (*typ).sons->Sup.len : 0)-1);
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*typ).sons->data[((NI) 0)], d, NIM_FALSE);
			}
			LA109_: ;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T113_;
				T113_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T113_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*d));
				if (!!(!((T113_ == NIM_NIL)))) goto LA114_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_608));
			}
			LA114_: ;
			nimZeroMem((void*)(&list), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_qlujIAW86QclHYUVxlHRiQ((&list), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), ri, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			list.r = pl;
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), list, 0);
		}
		LA71_: ;
	}
	goto LA67_;
	LA69_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T117_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T119_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T120_;
		nimZeroMem((void*)T117_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T118_ = percent__66KauNYQRukYNgmb6bVXEA(T117_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&pl, T118_);
		T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T119_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T120_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T120_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, pl);
		add_IM4kcMNkkOLJtqdEqSxR8A(T119_, T120_);
	}
	LA67_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hcrOn_NAlbw3fU59aFdo7L5aQtmkw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hcrOn_UhPXgqyDuuU9cKcS8FM883w((*(*(*p).module).g).config);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA op;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	NI length;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* callee;
	nimZeroMem((void*)(&op), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*ri).sons->data[((NI) 0)], (&op));
	params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_609));
	}
	LA3_: ;
	{
		NI T7_;
		NI T8_;
		T7_ = (NI)0;
		T7_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
		T8_ = (NI)0;
		T8_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
		if (!!((T7_ == T8_))) goto LA9_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_610));
	}
	LA9_: ;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(ri);
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_611;
				if (!(i_2 < length)) goto LA13;
				i = i_2;
				{
					NI T16_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* paramType;
					T16_ = (NI)0;
					T16_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
					if (!(i < T16_)) goto LA17_;
					{
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
						if (!!(((*(*(*typ).n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA21_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_549));
					}
					LA21_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*typ).n).kind)>>3] &(1U<<((NU)((*(*typ).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)) raiseIndexError2(i,((*(*typ).n).sons ? (*(*typ).n).sons->Sup.len : 0)-1);
					paramType = (*(*typ).n).sons->data[i];
					{
						NIM_BOOL T25_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
						T25_ = (NIM_BOOL)0;
						T25_ = isCompileTimeOnly_F9ciDIanrWYqbJ4rgLlNAAg_3types((*paramType).typ);
						if (!!(T25_)) goto LA26_;
						{
							tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
							if (!!((params == NIM_NIL))) goto LA30_;
							nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
							T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T33_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T32_, 0);
							add_IM4kcMNkkOLJtqdEqSxR8A(&params, T33_);
						}
						LA30_: ;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*paramType).kind)>>3] &(1U<<((NU)((*paramType).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T34_ = genArg_DHNxWzRy19cVFA89bbFHabxg(p, (*ri).sons->data[i], (*paramType).sym, ri);
						add_IM4kcMNkkOLJtqdEqSxR8A(&params, T34_);
					}
					LA26_: ;
				}
				goto LA14_;
				LA17_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
					{
						tyArray_qTjAvTvKF9anytN1At69aJMQ T40_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
						if (!!((params == NIM_NIL))) goto LA38_;
						nimZeroMem((void*)T40_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T41_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T40_, 0);
						add_IM4kcMNkkOLJtqdEqSxR8A(&params, T41_);
					}
					LA38_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(i,((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
					T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = genArgNoParam_NYI5fC69aIqZGRakncXv9cNQ_8(p, (*ri).sons->data[i]);
					add_IM4kcMNkkOLJtqdEqSxR8A(&params, T42_);
				}
				LA14_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_611 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_611);
			} LA13: ;
		}
	}
	callee = rdLoc_xidyzuHqIciXbQyEOKahDg(op);
	{
		NIM_BOOL T45_;
		T45_ = (NIM_BOOL)0;
		T45_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
		if (!(T45_)) goto LA46_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		T45_ = ((*(*ri).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA46_: ;
		if (!T45_) goto LA47_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		addActualPrefixForHCR_Mns9bHWQy2Dza12fE8Mjw9aw(&callee, (*(*p).module).module, (*(*ri).sons->data[((NI) 0)]).sym);
	}
	LA47_: ;
	fixupCall_5AieZFwkpMkLKPnkORd7Cw(p, le, ri, d, callee, params);
}

static N_INLINE(void, postStmtActions_hU2pQ4yYkske4uOCGEGfMwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, (*(*p).module).injectStmt);
}

N_LIB_PRIVATE N_NIMCALL(void, genCall_BKdMcfvryaJLplX0oFPcAQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 0)]).typ, IL64(105553116268560));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T7_ = ((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T7_ = (((*(*(*e).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2(p, NIM_NIL, e, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T12_ = ((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T12_ = (((*(*(*e).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g(p, e, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3(p, NIM_NIL, e, d);
	}
	LA1_: ;
	postStmtActions_hU2pQ4yYkske4uOCGEGfMwcgen(p);
}

N_LIB_PRIVATE N_NIMCALL(void, getIntTemp_SrOtkNNSJNR1CbG2n3nFcg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* result) {
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_615;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T14_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
	TM_MQdRN7fpbG7rPm4JpVVAhA_615 = addInt((*p).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_615 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_615 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_615);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_122), T1_);
	unsureAsgnRef((void**) (&(*result).r), amp__Z7W1o5nPSc3ExfO5f7j1Gg(T2_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3)));
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_616));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*result).r);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA10_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA10_: ;
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T13_);
	(*result).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
	(*result).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
	T14_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
	T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T15_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T14_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
	unsureAsgnRef((void**) (&(*result).lode), lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T15_));
	(*result).flags = 0;
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmpL;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T24_;
	NimStringDesc* res_3;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
	NimStringDesc* res_4;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmpL), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	seqType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, 8388608);
	initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T3_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e).sons->data[((NI) 1)]).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_612));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_613));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqType, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA5_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA18_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e).sons->data[((NI) 1)]).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T20_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_612));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T21_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqType, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T23_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	LA1_: ;
	genRefAssign_jdslQ8TsNpkTt8SvBLJjEA(p, a, call);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLoc_qlujIAW86QclHYUVxlHRiQ((&dest), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*e).sons->data[((NI) 2)], ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmpL));
	T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T24_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA27_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA27_: ;
	res_3 = rawNewString(((NI) 80));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), tmpL.r);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T29_);
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_585));
	T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = lenField_3AsTOpq9crZUYBL9aD1lXBng(p);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T30_);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_617));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA33_;
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA33_: ;
	T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T35_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
	T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T36_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T35_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T24_, T36_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA39_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA39_: ;
	res_4 = rawNewString(((NI) 80));
	T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T41_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T41_);
	T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T42_ = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T42_);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), tmpL.r);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	dest.r = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, dest, b, 1);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	a = (*e).sons->data[((NI) 1)];
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	b = (*e).sons->data[((NI) 2)];
	{
		NIM_BOOL T3_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*a).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T3_)) goto LA4_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		T3_ = (((*a).strVal ? (*a).strVal->Sup.len : 0) == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&x));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, x);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_618));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T14_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*b).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*b).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		if (!(T14_)) goto LA15_;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		T14_ = (((*b).strVal ? (*b).strVal->Sup.len : 0) == 0);
		LA15_: ;
		if (!T14_) goto LA16_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&x));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA20_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, x);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_618));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T23_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA16_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_2;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA27_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
		}
		LA27_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA31_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
		}
		LA31_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_2));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA35_: ;
		res_3 = rawNewString(((NI) 80));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T37_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T38_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_2);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T39_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T40_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genIsNil_BKdMcfvryaJLplX0oFPcAQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T3_)) goto LA4_;
		T3_ = ((*t).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA9_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA9_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_625));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_618));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T19_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genEnumToStr_BKdMcfvryaJLplX0oFPcAQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* toStrProc;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350135273744));
	toStrProc = NIM_NIL;
	{
		NI idx;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* p_2;
		tySequence_MvZmat48bhe9b6x9aUD58D5Q* colontmp_;
		NI i;
		NI L;
		NI T2_;
		idx = (NI)0;
		p_2 = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
		colontmp_ = (tySequence_MvZmat48bhe9b6x9aUD58D5Q*)0;
		colontmp_ = (*t).methods;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_632;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				idx = colontmp_->data[i].Field0;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				p_2 = colontmp_->data[i].Field1;
				{
					if (!(idx == ((NI) -4))) goto LA7_;
					toStrProc = p_2;
					goto LA1;
				}
				LA7_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_632 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_632);
				{
					NI T11_;
					T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T11_ == L))) goto LA12_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA12_: ;
			} LA4: ;
		}
	} LA1: ;
	{
		tyTuple_zwpS6d6iewrdlBSTNFoyVA T18_;
		NI T19_;
		if (!(toStrProc == NIM_NIL)) goto LA16_;
		toStrProc = genEnumToStrProc_1dNAvAAONCZJhs8N6saOAw(t, (*e).info, (*(*(*p).module).g).graph);
		nimZeroMem((void*)(&T18_), sizeof(tyTuple_zwpS6d6iewrdlBSTNFoyVA));
		T18_.Field0 = ((NI) -4);
		T18_.Field1 = toStrProc;
		asgnRef((void**) (&(*t).methods), (tySequence_MvZmat48bhe9b6x9aUD58D5Q*) incrSeqV3((TGenericSeq*)((*t).methods), (&NTI_MvZmat48bhe9b6x9aUD58D5Q_)));
		T19_ = (*t).methods->Sup.len++;
		(*t).methods->data[T19_].Field0 = T18_.Field0;
		asgnRef((void**) (&(*t).methods->data[T19_].Field1), T18_.Field1);
	}
	LA16_: ;
	n = copyTree_Dsjo9bte8vGxzhtcSrsTyiQ_2(e);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*n).sons->data[((NI) 0)]), newSymNode_I2DV2TmmOysY1ZEGW19b9bRg(toStrProc));
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genOfHelper_syG9ah9cBD4IpDknTLKkLglQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* a, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA7_: ;
		res = rawNewString(((NI) 80));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_635));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), a);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg((*p).module, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
		ti = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, dest, info);
		{
			NIM_BOOL T14_;
			NIM_BOOL T16_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
			if (T14_) goto LA15_;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*(*p).module).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5))&7U)))!=0);
			if (!(T16_)) goto LA17_;
			T16_ = !((((*dest).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 5))&63U)))!=0));
			LA17_: ;
			T14_ = T16_;
			LA15_: ;
			if (!T14_) goto LA18_;
			nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T20_[0] = a;
			T20_[1] = ti;
			result = percent__s0lnM9cZDB9bOREa4Fx1leBw(T20_, 2);
		}
		goto LA12_;
		LA18_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_637;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* cache;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T24_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
			(void)(T22_);
			TM_MQdRN7fpbG7rPm4JpVVAhA_637 = addInt((*(*p).module).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_637 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_637 > 2147483647) raiseOverflow();
			(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_637);
			T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
			cache = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_638), T23_);
			nimZeroMem((void*)T24_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T24_[0] = cache;
			T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = percent__aT7p9bNEmP3LxrK3OhspnSw(T24_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T25_);
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA28_: ;
			res_2 = rawNewString(((NI) 80));
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_639));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), a);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), ti);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), cache);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			result = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		}
		LA12_: ;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOf_uDNhebNf5Eggw4ZZsc4T9cg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nilCheck;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	dest = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
	r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	nilCheck = NIM_NIL;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350135273744));
	{
		while (1) {
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
			if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA3;
			{
				if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA6_;
				nilCheck = r;
			}
			LA6_: ;
			{
				NIM_BOOL T10_;
				NIM_BOOL T12_;
				NimStringDesc* res;
				T10_ = (NIM_BOOL)0;
				T10_ = !(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47)));
				if (T10_) goto LA11_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T12_) goto LA13_;
				T12_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA13_: ;
				T10_ = !(T12_);
				LA11_: ;
				if (!T10_) goto LA14_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA18_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), r);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				r = rope_yShmEg9cffWxI7s5XzEKBow(res);
			}
			LA14_: ;
			T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T20_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T20_, IL64(36134350135273744));
		} LA3: ;
	}
	T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T21_);
	{
		NIM_BOOL T24_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T24_) goto LA25_;
		T24_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA25_: ;
		if (!!(T24_)) goto LA26_;
		{
			while (1) {
				NIM_BOOL T30_;
				tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
				T30_ = (NIM_BOOL)0;
				T30_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
				if (!(T30_)) goto LA31_;
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
				T30_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
				LA31_: ;
				if (!T30_) goto LA29;
				nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = percent__Jx78R9a9anGvjjocCaP8YgIg(T32_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&r, T33_);
				if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
				t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
			} LA29: ;
		}
	}
	LA26_: ;
	{
		NIM_BOOL T36_;
		T36_ = (NIM_BOOL)0;
		T36_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(t);
		if (!T36_) goto LA37_;
		globalError_NF6kBGchnhQYPbCedyefVA_2((*(*(*p).module).g).config, (*x).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_633));
	}
	LA37_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
		if (!!((nilCheck == NIM_NIL))) goto LA41_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA45_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA45_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), nilCheck);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_634));
		T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = genOfHelper_syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
		r = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	goto LA39_;
	LA41_: ;
	{
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA51_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA51_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = genOfHelper_syG9ah9cBD4IpDknTLKkLglQ(p, dest, r, (*x).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T53_);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		r = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
	}
	LA39_: ;
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, x, r, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genOf_8mAL9ckajemzgfLPfeZVNoQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genOf_uDNhebNf5Eggw4ZZsc4T9cg(p, (*n).sons->data[((NI) 1)], (*(*n).sons->data[((NI) 2)]).typ, d);
}

N_LIB_PRIVATE N_NIMCALL(void, rawGenNew_xJGU3j3G6xInb7v14wgw2Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sizeExpr_2;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* refType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* bt;
	sizeExpr_2 = sizeExpr;
	typ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), a.lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	refType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	{
		if (!!(((*refType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_640));
	}
	LA3_: ;
	bt = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
		if (!(sizeExpr_2 == 0)) goto LA7_;
		nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, bt);
		sizeExpr_2 = percent__mV75vMLuQ8rrQEUzNz6llA(T9_, 1);
	}
	LA7_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA12_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_641));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), sizeExpr_2);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		b.r = rope_yShmEg9cffWxI7s5XzEKBow(res);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
	}
	goto LA10_;
	LA12_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
		ti = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, typ, (*a.lode).info);
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA f;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T31_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			if (!!(((*bt).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL))) goto LA23_;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*(*bt).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ == NIM_NIL);
				if (T27_) goto LA28_;
				T27_ = !(((*(*(*bt).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).typ).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 0)));
				LA28_: ;
				if (!T27_) goto LA29_;
				localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*a.lode).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_202));
			}
			LA29_: ;
			nimZeroMem((void*)(&f), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T31_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T31_ = newSymNode_I2DV2TmmOysY1ZEGW19b9bRg((*bt).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T31_, (&f));
			nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T32_[0] = ti;
			T32_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(f);
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = percent__jhVz7tKuf0heLM2D3nL0gw(T32_, 2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T33_);
		}
		LA23_: ;
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			T36_ = (a.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
			if (!(T36_)) goto LA37_;
			T36_ = usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
			LA37_: ;
			if (!T36_) goto LA38_;
			{
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
				NIM_BOOL T43_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T46_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
				T42_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T42_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
				T43_ = (NIM_BOOL)0;
				T43_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_3(T42_);
				if (!T43_) goto LA44_;
				T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T46_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA49_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA49_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T51_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T51_);
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
				T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T52_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_643));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T52_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T53_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T53_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644));
				T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T54_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T54_);
				res_2 = resizeString(res_2, 13);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA57_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA57_: ;
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T59_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T46_, T60_);
			}
			goto LA40_;
			LA44_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
				NimStringDesc* res_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T62_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA65_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T67_);
				res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
				T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T68_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_371));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T68_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T69_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T69_);
				res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644));
				T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T70_);
				res_3 = resizeString(res_3, 13);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA73_;
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA73_: ;
				T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T75_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
				T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T76_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T62_, T76_);
			}
			LA40_: ;
			{
				NimStringDesc* res_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T87_;
				NimStringDesc* res_5;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
				if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7))) goto LA79_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA83_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA83_: ;
				res_4 = rawNewString(((NI) 80));
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T85_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T85_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T86_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T86_);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), ti);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), sizeExpr_2);
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				b.r = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
				T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T87_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA90_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA90_: ;
				res_5 = rawNewString(((NI) 80));
				T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T92_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T92_);
				res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
				T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T93_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T94_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T94_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA97_;
					res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA97_: ;
				T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T99_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
				T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T100_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T99_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T87_, T100_);
			}
			goto LA77_;
			LA79_: ;
			{
				NimStringDesc* res_6;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T108_;
				NimStringDesc* res_7;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T120_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA104_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA104_: ;
				res_6 = rawNewString(((NI) 80));
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T106_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T106_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T107_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_647));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T107_);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), ti);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), sizeExpr_2);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				b.r = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
				T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T108_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA111_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA111_: ;
				res_7 = rawNewString(((NI) 80));
				T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T113_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T113_);
				res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T114_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T114_);
				res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA117_;
					res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA117_: ;
				T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T119_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
				T120_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T120_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T119_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T108_, T120_);
			}
			LA77_: ;
		}
		goto LA34_;
		LA38_: ;
		{
			NimStringDesc* res_8;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T126_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T127_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA124_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA124_: ;
			res_8 = rawNewString(((NI) 80));
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T126_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T126_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, typ);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T126_);
			res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T127_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T127_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T127_);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), ti);
			res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), sizeExpr_2);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			b.r = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
		}
		LA34_: ;
	}
	LA10_: ;
	genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, a, NIM_FALSE);
}

N_LIB_PRIVATE N_NIMCALL(void, genNew_X9cSqNhqEboci9cdmwBMNcBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	{
		NI T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA se;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (NI)0;
		T3_ = len_P89cqdlERShb9alU3iC0yj8wast(e);
		if (!(T3_ == ((NI) 3))) goto LA4_;
		nimZeroMem((void*)(&se), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&se));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rdLoc_xidyzuHqIciXbQyEOKahDg(se);
		rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, a, T6_);
	}
	goto LA1_;
	LA4_: ;
	{
		rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, a, NIM_NIL);
	}
	LA1_: ;
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA f;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* refType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* bt;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ti;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&f), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	refType = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	bt = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	ti = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	refType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350144710928));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&f));
	initLoc_qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), a.lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	ti = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, refType, (*e).info);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T1_[0] = ti;
	T1_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(f);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__jhVz7tKuf0heLM2D3nL0gw(T1_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 16))- 0], T2_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA5_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA5_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, refType);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T7_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_646));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), ti);
	res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
	T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T9_, IL64(36134350136322320));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T10_);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
	b.r = rope_yShmEg9cffWxI7s5XzEKBow(res);
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, b, 0);
	T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(refType);
	bt = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T12_, IL64(36134350136322320));
	genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), bt, a, NIM_FALSE);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* length, NIM_BOOL lenIsZero) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
	seqtype = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), dest.lode, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (dest.storage == ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		if (!(T4_)) goto LA5_;
		T4_ = usesWriteBarrier_TzsgO9bY9cwAf4hwmbs7dTmg_2options((*(*(*p).module).g).config);
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
			NIM_BOOL T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T14_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T11_ = (NIM_BOOL)0;
			T11_ = canFormAcycle_IVXYI9cxSeivThgKCncHRnA_3(T10_);
			if (!T11_) goto LA12_;
			T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T14_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA17_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA17_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_643));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644));
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 13);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA25_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA25_: ;
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T27_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T14_, T28_);
		}
		goto LA8_;
		LA12_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA33_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA33_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_371));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T37_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T37_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_644));
			T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T38_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
			res_2 = resizeString(res_2, 13);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_645));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA41_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA41_: ;
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T43_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T30_, T44_);
		}
		LA8_: ;
		{
			if (!!(lenIsZero)) goto LA47_;
			{
				NimStringDesc* res_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T60_;
				NimStringDesc* res_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
				if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 7))) goto LA51_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA55_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T57_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_652));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T58_);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
				res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), length);
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
				T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T60_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA63_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA63_: ;
				res_4 = rawNewString(((NI) 80));
				T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_231));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T65_);
				res_4 = resizeString(res_4, 10);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_230));
				T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T66_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T66_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = rdLoc_xidyzuHqIciXbQyEOKahDg(call);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T67_);
				res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA70_;
					res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA70_: ;
				T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T72_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
				T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T73_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T72_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T60_, T73_);
			}
			goto LA49_;
			LA51_: ;
			{
				NimStringDesc* res_5;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T82_;
				NimStringDesc* res_6;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA77_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA77_: ;
				res_5 = rawNewString(((NI) 80));
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T79_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T79_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_653));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T80_);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T81_);
				res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), length);
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
				T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T82_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA85_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA85_: ;
				res_6 = rawNewString(((NI) 80));
				T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T87_);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
				T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T88_ = rdLoc_xidyzuHqIciXbQyEOKahDg(call);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T88_);
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA91_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA91_: ;
				T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T93_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
				T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T94_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T93_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T82_, T94_);
			}
			LA49_: ;
		}
		LA47_: ;
	}
	goto LA2_;
	LA6_: ;
	{
		{
			if (!lenIsZero) goto LA98_;
			call.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_420));
		}
		goto LA96_;
		LA98_: ;
		{
			NimStringDesc* res_7;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA103_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA103_: ;
			res_7 = rawNewString(((NI) 80));
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T105_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_652));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T106_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*dest.lode).info);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T107_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), length);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
		}
		LA96_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, dest, call, 0);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		seqtype = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350144710928));
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_651));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		T16_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T16_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T16_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA20_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA20_: ;
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T23_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL lenIsZero;
		NIM_BOOL T25_;
		NIM_BOOL T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		T25_ = (NIM_BOOL)0;
		T26_ = (NIM_BOOL)0;
		T26_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0));
		if (!(T26_)) goto LA27_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T26_ = ((*(*e).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA27_: ;
		T25_ = T26_;
		if (!(T25_)) goto LA28_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*e).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
		T25_ = ((*(*e).sons->data[((NI) 2)]).intVal == IL64(0));
		LA28_: ;
		lenIsZero = T25_;
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, a, T29_, lenIsZero);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	seqtype = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350144710928));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, seqtype);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_654));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, seqtype, (*e).info);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T7_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T9_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
}

N_LIB_PRIVATE N_NIMCALL(void, genSomeCast_BKdMcfvryaJLplX0oFPcAQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* etyp;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srcTyp;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	etyp = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	srcTyp = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49));
		if (!(T3_)) goto LA4_;
		T3_ = !(((a.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0))&15U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)T7_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T7_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		T7_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__duX6hgjmpJtFFdvJVuoafg(T7_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T8_, a.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T11_)) goto LA12_;
		T11_ = ((*etyp).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8));
		LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		T10_ = !(((*srcTyp).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8)));
		LA13_: ;
		if (!T10_) goto LA14_;
		nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = getClosureType_lWDfUH9cj8K8DjyEqo9cmP3A((*p).module, etyp, ((tyEnum_TClosureTypeKind_cLHRMz1vnpSK0uePy2qbWw) 1));
		T16_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = percent__GNSb4l0oRsR1gu66azz1LQ(T16_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T17_, a.storage);
	}
	goto LA1_;
	LA14_: ;
	{
		{
			NIM_BOOL T21_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T25_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			T21_ = (NIM_BOOL)0;
			T21_ = ((*srcTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*srcTyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26));
			if (!(T21_)) goto LA22_;
			T21_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14) || (*etyp).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) && (*etyp).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35) || (*etyp).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*etyp).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*etyp).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*etyp).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44));
			LA22_: ;
			if (!T21_) goto LA23_;
			nimZeroMem((void*)T25_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T25_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T25_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = percent__LGbUtKnsZL8FcQiQN7sWEA(T25_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T26_, a.storage);
		}
		goto LA19_;
		LA23_: ;
		{
			NIM_BOOL T28_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4));
			if (!(T28_)) goto LA29_;
			T28_ = ((*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*etyp).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28));
			LA29_: ;
			if (!T28_) goto LA30_;
			nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T32_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T32_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = percent__e8Xf9ajw9cRlpuqnFnlEuSpA(T32_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T33_, a.storage);
		}
		goto LA19_;
		LA30_: ;
		{
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
			nimZeroMem((void*)T35_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T35_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			T35_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = percent__GNSb4l0oRsR1gu66azz1LQ(T35_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T36_, a.storage);
		}
		LA19_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genOrd_BKdMcfvryaJLplX0oFPcAQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	a = (*e).sons->data[((NI) 1)];
	{
		if (!((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		a = (*a).sons->data[((NI) 0)];
	}
	LA3_: ;
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*a).typ, IL64(49785886514129168));
	switch ((*typ).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		{
			NIM_BOOL T8_;
			NIM_BOOL T9_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA c;
			T8_ = (NIM_BOOL)0;
			T9_ = (NIM_BOOL)0;
			T9_ = ((*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*a).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T9_)) goto LA10_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T9_ = ((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			LA10_: ;
			T8_ = T9_;
			if (!(T8_)) goto LA11_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*a).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T8_ = ((*(*(*a).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 144));
			LA11_: ;
			if (!T8_) goto LA12_;
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&c), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a).sons->data[((NI) 2)], (&b));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 3)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a).sons->data[((NI) 3)], (&c));
			{
				NimStringDesc* res;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA16_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA20_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T22_ = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
				res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_656));
				T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T23_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T24_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T24_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA14_;
			LA16_: ;
			{
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA28_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T30_ = rdLoc_xidyzuHqIciXbQyEOKahDg(c);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_656));
				T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T31_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_657));
				T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T32_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T32_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA14_: ;
		}
		goto LA6_;
		LA12_: ;
		{
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				NimStringDesc* res_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA36_;
				nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA40_: ;
				res_3 = rawNewString(((NI) 80));
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T42_);
				res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_658));
				T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T43_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA34_;
			LA36_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
				NimStringDesc* res_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
				nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_3));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA47_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA47_: ;
				res_4 = rawNewString(((NI) 80));
				T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T49_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_3);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T49_);
				res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_659));
				T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T50_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T50_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA34_: ;
		}
		LA6_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_4;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA54_;
			nimZeroMem((void*)(&a_4), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_4));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA58_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA58_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_4);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T60_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_660));
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_661));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T61_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T62_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_4);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T62_);
			res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_662));
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T63_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA52_;
		LA54_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_5;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
			nimZeroMem((void*)(&a_5), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_5));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA67_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA67_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_5);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T69_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_663));
			T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_661));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T70_);
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_5);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T71_);
			res_6 = resizeString(res_6, 6);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_664));
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T72_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA52_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_6;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* x;
		nimZeroMem((void*)(&a_6), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_6));
		x = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a_6);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T78_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA76_;
			nimZeroMem((void*)T78_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T78_[0] = x;
			x = percent__nVQhtKHyPC8pvPbUAUBU7A(T78_, 1);
		}
		LA76_: ;
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, x, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_7;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* x_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T85_;
		NimStringDesc* res_7;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
		nimZeroMem((void*)(&a_7), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_7));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		x_2 = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a_7);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T84_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA82_;
			nimZeroMem((void*)T84_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T84_[0] = x_2;
			x_2 = percent__nVQhtKHyPC8pvPbUAUBU7A(T84_, 1);
		}
		LA82_: ;
		T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T85_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA88_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA88_: ;
		res_7 = rawNewString(((NI) 80));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), tmp.r);
		res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), x_2);
		res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA92_;
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA92_: ;
		T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T94_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
		T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T95_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T94_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T85_, T95_);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		{
			NI64 T101_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
			if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8))) goto LA99_;
			T101_ = (NI64)0;
			T101_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, typ, NIM_FALSE);
			T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rope_KOisMGxcPhz6CcSmxgwEQQ(T101_);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T102_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA97_;
		LA99_: ;
		{
			NI64 T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
			T104_ = (NI64)0;
			T104_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, typ);
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = rope_KOisMGxcPhz6CcSmxgwEQQ(T104_);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T105_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA97_: ;
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_665));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		binaryStmtAddr_vxeaiXjty5M8JXT1fo429aQ(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_674));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA8_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_675));
		}
		LA8_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
		initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA12_: ;
		res = rawNewString(((NI) 80));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_676));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, call, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
{	{
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*e).sons->data[((NI) 1)]), makeAddr_oKhRC9bEKTxG5epdNiNWZ0w_2((*e).sons->data[((NI) 1)]));
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_677));
	}
	LA7_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	x = (*e).sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA11_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		x = (*x).sons->data[((NI) 0)];
	}
	LA11_: ;
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, 8388608);
	initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
	{
		NIM_BOOL T15_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		T15_ = (NIM_BOOL)0;
		T15_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T15_) goto LA16_;
		T15_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA16_: ;
		if (!!(T15_)) goto LA17_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA21_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_678));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_679));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_680));
		T26_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T26_, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	goto LA13_;
	LA17_: ;
	{
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA32_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA32_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_678));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T37_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T37_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T38_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T37_, (*e).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T38_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	}
	LA13_: ;
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, call, 0);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* setType;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
	setType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
	{
		if (!!(((*setType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_682));
	}
	LA3_: ;
	{
		NI64 T7_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
		NI64 T11_;
		T7_ = (NI64)0;
		T7_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, setType);
		if (!!((T7_ == IL64(0)))) goto LA8_;
		nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T10_[0] = result;
		T11_ = (NI64)0;
		T11_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ(conf, setType);
		T10_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(T11_);
		result = percent__qTicKO8EMC9cWGOyybIz4WQ(T10_, 2);
	}
	LA8_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fewCmps_vBGSIpCyq29bEZNYsVP3V6w)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!(((*s).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39)))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NI64 T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NI64)0;
		T8_ = getSize_vCG1GF2Iu043oALVyuJfOw(conf, (*s).typ);
		T7_ = (T8_ <= ((NI64) ((*conf).target.intSize)));
		if (!(T7_)) goto LA9_;
		T7_ = (((*s).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0);
		LA9_: ;
		if (!T7_) goto LA10_;
		result = NIM_FALSE;
	}
	goto LA5_;
	LA10_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2((*s).typ);
		if (!((*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) || (*T13_).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 33) && (*T13_).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA14_;
		result = NIM_TRUE;
	}
	goto LA5_;
	LA14_: ;
	{
		NI T17_;
		T17_ = (NI)0;
		T17_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(s);
		result = (T17_ <= ((NI) 8));
	}
	LA5_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genInExprAux_9cclvr8sbqtJj8irRbQQpqQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	NI64 T2_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	T2_ = (NI64)0;
	T2_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T1_);
	switch (((NI)chckRange64(T2_, ((NI) (-2147483647 -1)), ((NI) 2147483647)))) {
	case ((NI) 1):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		nimZeroMem((void*)T4_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T4_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*a));
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T4_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T5_);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent__bIZqgQGMIUCBRFFeiRG0aA(T4_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 2):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T8_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		nimZeroMem((void*)T8_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T8_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*a));
		T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T9_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T8_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T9_);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = percent__HPctrFzseNT2BeQr9aYVqcg(T8_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T10_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 4):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T12_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		nimZeroMem((void*)T12_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T12_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*a));
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T12_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T13_);
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = percent__k5v9c9cMBoWUlAaq59araCfmg(T12_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T14_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((NI) 8):
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*a));
		T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T16_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T17_);
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = percent__Py40oiVtYdIelNuiQQjpjw(T16_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T18_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	default:
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*a));
		T21_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T21_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
		T20_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, (*b), T21_);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent__QzVlk7tEXgagMWC19aLvbkg(T20_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T22_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genInOp_BKdMcfvryaJLplX0oFPcAQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ea;
		NI length;
		T3_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = ((*(*e).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39));
		if (!(T3_)) goto LA4_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = fewCmps_vBGSIpCyq29bEZNYsVP3V6w((*(*(*p).module).g).config, (*e).sons->data[((NI) 1)]);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!((*(*e).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70) || (*(*e).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69))) goto LA9_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*e).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 2)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*e).sons->data[((NI) 2)]).sons ? (*(*e).sons->data[((NI) 2)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*e).sons->data[((NI) 2)]).sons ? (*(*e).sons->data[((NI) 2)]).sons->Sup.len : 0)-1);
			ea = (*(*e).sons->data[((NI) 2)]).sons->data[((NI) 0)];
		}
		goto LA7_;
		LA9_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			ea = (*e).sons->data[((NI) 2)];
		}
		LA7_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, ea, (&a));
		initLoc_qlujIAW86QclHYUVxlHRiQ((&b), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*e).sons->data[((NI) 1)]);
		{
			if (!(((NI) 0) < length)) goto LA14_;
			b.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			{
				NI i;
				NI i_2;
				i = (NI)0;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_697;
						if (!(i_2 < length)) goto LA18;
						i = i_2;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*e).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*(*e).sons->data[((NI) 1)]).sons ? (*(*e).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(i,((*(*e).sons->data[((NI) 1)]).sons ? (*(*e).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
						it = (*(*e).sons->data[((NI) 1)]).sons->data[i];
						{
							tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T23_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
							if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA21_;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).sons->data[((NI) 0)], (&x));
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).sons->data[((NI) 1)], (&y));
							nimZeroMem((void*)T23_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
							T23_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
							T23_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
							T23_[2] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(y);
							T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T24_ = percent__nEiBK88oEGnvYfkiei9cyJA(T23_, 3);
							add_IM4kcMNkkOLJtqdEqSxR8A(&b.r, T24_);
						}
						goto LA19_;
						LA21_: ;
						{
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T26_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&x));
							nimZeroMem((void*)T26_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T26_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
							T26_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
							T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T27_ = percent__Psy1qActyEYmIhrRo2KkJA(T26_, 2);
							add_IM4kcMNkkOLJtqdEqSxR8A(&b.r, T27_);
						}
						LA19_: ;
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_696;
							TM_MQdRN7fpbG7rPm4JpVVAhA_696 = subInt(length, ((NI) 1));
							if (!(i < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_696))) goto LA30_;
							add_yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
						}
						LA30_: ;
						TM_MQdRN7fpbG7rPm4JpVVAhA_697 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_697);
					} LA18: ;
				}
			}
			add_yG4AKzsBRS1W4MANDlXQeg(&b.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		}
		goto LA12_;
		LA14_: ;
		{
			b.r = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
		}
		LA12_: ;
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, b.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA5_: ;
	{
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA36_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_698));
		}
		LA36_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA40_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_699));
		}
		LA40_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
		genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, e, (&a), (&b), d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* setType;
	NI size;
	NI64 T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&i), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	setType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36275087632017680));
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, setType);
	size = ((NI)chckRange64(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	switch (size) {
	case ((NI) 1):
	case ((NI) 2):
	case ((NI) 4):
	case ((NI) 8):
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
		{
			switch (size) {
			case ((NI) 1):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T10_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
				nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA7_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA7_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_2));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_2));
				T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T9_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T10_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T10_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
				T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T11_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_2);
				T10_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_2, T11_);
				T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T12_ = percent__9bI5GhokFUA9bgO9av819cgdBg(T10_, 2);
				T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T9_, T13_);
			}
			break;
			case ((NI) 2):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_3;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T20_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
				nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA17_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA17_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_3));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_3));
				T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T20_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T20_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_3);
				T21_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T21_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_3);
				T20_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_3, T21_);
				T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T22_ = percent__yZHx0qMqBvbhmZ0fMuAP6A(T20_, 2);
				T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T23_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T23_);
			}
			break;
			case ((NI) 4):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_4;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_4;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T29_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T30_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
				nimZeroMem((void*)(&a_4), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_4), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA27_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA27_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_4));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_4));
				T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T29_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T30_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T30_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_4);
				T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T31_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_4);
				T30_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_4, T31_);
				T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T32_ = percent__YQzyPnY5vKAqE2RyLX0cew(T30_, 2);
				T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T33_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T29_, T33_);
			}
			break;
			case ((NI) 8):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_5;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_5;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T39_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T40_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T41_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
				nimZeroMem((void*)(&a_5), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_5), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA37_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA37_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_5));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_5));
				T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T39_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T40_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T40_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_5);
				T41_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T41_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_5);
				T40_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_5, T41_);
				T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T42_ = percent__cIILAsA6BeRrvHfloZIscg(T40_, 2);
				T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T43_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T42_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T39_, T43_);
			}
			break;
			default:
			{
				{
					NimStringDesc* T49_;
					NimStringDesc* T50_;
					if (!NIM_TRUE) goto LA47_;
					T49_ = (NimStringDesc*)0;
					T50_ = (NimStringDesc*)0;
					T50_ = nimIntToStr(size);
					T49_ = rawNewString((T50_ ? T50_->Sup.len : 0) + 124);
appendString(T49_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_683));
appendString(T49_, T50_);
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T49_);
				}
				LA47_: ;
			}
			break;
			}
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
		{
			switch (size) {
			case ((NI) 1):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_6;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_6;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T57_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T58_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
				nimZeroMem((void*)(&a_6), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_6), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA55_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA55_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_6));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_6));
				T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T57_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T58_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T58_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_6);
				T59_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T59_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_6);
				T58_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_6, T59_);
				T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = percent__IwDTuHqkGn7wW16ga2ktSg(T58_, 2);
				T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T57_, T61_);
			}
			break;
			case ((NI) 2):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_7;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_7;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T67_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T68_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T69_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
				nimZeroMem((void*)(&a_7), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_7), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA65_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA65_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_7));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_7));
				T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T67_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T68_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T68_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_7);
				T69_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T69_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_7);
				T68_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_7, T69_);
				T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T70_ = percent__lbkoHJP5AIgE86vP7MmlKw(T68_, 2);
				T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T71_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T67_, T71_);
			}
			break;
			case ((NI) 4):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_8;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_8;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T77_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T78_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T79_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
				nimZeroMem((void*)(&a_8), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_8), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA75_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA75_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_8));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_8));
				T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T77_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T78_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T78_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_8);
				T79_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T79_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_8);
				T78_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_8, T79_);
				T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T80_ = percent__9b84wNYrm79cLYfx9bsPNHjPQ(T78_, 2);
				T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T81_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T80_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T77_, T81_);
			}
			break;
			case ((NI) 8):
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_9;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_9;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T87_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T88_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T89_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
				nimZeroMem((void*)(&a_9), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				nimZeroMem((void*)(&b_9), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				{
					if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA85_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
				}
				LA85_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_9));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_9));
				T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T87_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T88_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T88_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_9);
				T89_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T89_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_9);
				T88_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_9, T89_);
				T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T90_ = percent__K5ihI3kW9cFBh6sKlfEpJwg(T88_, 2);
				T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T91_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T87_, T91_);
			}
			break;
			default:
			{
				{
					NimStringDesc* T97_;
					NimStringDesc* T98_;
					if (!NIM_TRUE) goto LA95_;
					T97_ = (NimStringDesc*)0;
					T98_ = (NimStringDesc*)0;
					T98_ = nimIntToStr(size);
					T97_ = rawNewString((T98_ ? T98_->Sup.len : 0) + 124);
appendString(T97_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_684));
appendString(T97_, T98_);
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(T97_);
				}
				LA95_: ;
			}
			break;
			}
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 45):
		{
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_10;
				NimStringDesc* res;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T108_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T110_;
				if (!(size <= ((NI) 4))) goto LA102_;
				nimZeroMem((void*)(&a_10), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_10));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA106_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA106_: ;
				res = rawNewString(((NI) 80));
				T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T108_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_685));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T108_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T109_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_10);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T109_);
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				T110_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T110_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T110_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			goto LA100_;
			LA102_: ;
			{
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_11;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T116_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T117_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
				nimZeroMem((void*)(&a_11), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_11));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA114_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA114_: ;
				res_2 = rawNewString(((NI) 80));
				T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T116_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_686));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T116_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T117_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T117_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_11);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T117_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
				T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T118_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T118_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
			}
			LA100_: ;
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_12;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_10;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T133_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T134_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T135_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T136_;
			nimZeroMem((void*)(&a_12), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_10), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA122_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_687));
			}
			LA122_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA126_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_688));
			}
			LA126_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_12));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_10));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA130_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA130_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
			T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T132_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_12);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T132_);
			res_3 = resizeString(res_3, 5);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_689));
			T133_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T133_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b_10);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T133_);
			res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_690));
			T134_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T134_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_12);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T134_);
			res_3 = resizeString(res_3, 4);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_691));
			T135_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T135_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b_10);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T135_);
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
			T136_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T136_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T136_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_13;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_11;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T150_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T151_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T152_;
			nimZeroMem((void*)(&a_13), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_11), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA140_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_687));
			}
			LA140_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA144_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_688));
			}
			LA144_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_13));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_11));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA148_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA148_: ;
			res_4 = rawNewString(((NI) 80));
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
			T150_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T150_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_13);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T150_);
			res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_689));
			T151_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T151_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b_11);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T151_);
			res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_692));
			T152_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T152_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T152_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_14;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_12;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T166_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T167_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T168_;
			nimZeroMem((void*)(&a_14), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_12), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA156_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
			}
			LA156_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA160_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
			}
			LA160_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_14));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_12));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA164_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA164_: ;
			res_5 = rawNewString(((NI) 80));
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T166_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T166_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_14);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T166_);
			res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466));
			T167_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T167_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_12);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T167_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T168_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T168_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T168_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_15;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_13;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T182_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T183_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T184_;
			nimZeroMem((void*)(&a_15), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_13), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA172_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
			}
			LA172_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA176_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
			}
			LA176_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_15));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_13));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA180_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA180_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T182_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T182_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_15);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T182_);
			res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_693));
			T183_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T183_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_13);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T183_);
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T184_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T184_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T184_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_16;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_14;
			NimStringDesc* res_7;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T198_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T199_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T200_;
			nimZeroMem((void*)(&a_16), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_14), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA188_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
			}
			LA188_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA192_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
			}
			LA192_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_16));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_14));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA196_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA196_: ;
			res_7 = rawNewString(((NI) 80));
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T198_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T198_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_16);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T198_);
			res_7 = resizeString(res_7, 3);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_694));
			T199_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T199_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_14);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T199_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T200_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T200_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T200_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_17;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_15;
			NimStringDesc* res_8;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T214_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T215_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T216_;
			nimZeroMem((void*)(&a_17), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_15), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA204_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
			}
			LA204_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA208_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
			}
			LA208_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_17));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_15));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA212_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA212_: ;
			res_8 = rawNewString(((NI) 80));
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T214_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T214_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_17);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T214_);
			res_8 = resizeString(res_8, 5);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_689));
			T215_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T215_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_15);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T215_);
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T216_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T216_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T216_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 142):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_18;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_16;
			NimStringDesc* res_9;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T230_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T231_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T232_;
			nimZeroMem((void*)(&a_18), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_16), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA220_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
			}
			LA220_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA224_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
			}
			LA224_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_18));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_16));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA228_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA228_: ;
			res_9 = rawNewString(((NI) 80));
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T230_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T230_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_18);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T230_);
			res_9 = resizeString(res_9, 3);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_695));
			T231_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T231_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_16);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T231_);
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T232_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T232_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T232_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_17(p, e, d);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_700));
		}
		break;
		}
	}
	break;
	default:
	{
		switch (op) {
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_19;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_17;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T241_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T242_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T243_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T244_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T245_;
			nimZeroMem((void*)(&a_19), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_17), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA239_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
			}
			LA239_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_19));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_17));
			T241_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T241_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T242_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T242_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_19);
			T243_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T243_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_19);
			T242_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_17, T243_);
			T244_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T244_ = percent__qxufH5vUl9aY2l9cFq39bnVwA(T242_, 2);
			T245_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T245_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T244_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T241_, T245_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_20;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_18;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T251_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T252_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T253_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T254_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T255_;
			nimZeroMem((void*)(&a_20), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_18), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA249_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_681));
			}
			LA249_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_20));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_18));
			T251_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T251_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T252_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T252_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_20);
			T253_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T253_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a_20);
			T252_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b_18, T253_);
			T254_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T254_ = percent__jiTCvQQpgMU0bTrdVuECiw(T252_, 2);
			T255_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T255_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T254_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T251_, T255_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 45):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_21;
			NimStringDesc* res_10;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T261_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T262_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T263_;
			nimZeroMem((void*)(&a_21), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_21));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA259_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA259_: ;
			res_10 = rawNewString(((NI) 80));
			T261_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T261_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_701));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T261_);
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T262_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T262_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_21);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T262_);
			res_10 = resizeString(res_10, 2);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_10), ((NI64) (size)));
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			T263_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T263_ = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T263_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
		{
			tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T265_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T266_;
			T265_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
			T266_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T266_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T265_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T266_, (&i), NIM_FALSE);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
			{
				tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T271_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T272_;
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA269_;
				T271_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
				T272_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T272_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T271_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1));
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, T272_, d, NIM_FALSE);
			}
			LA269_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T277_;
				NimStringDesc* res_11;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T282_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T283_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T284_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T289_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T290_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T291_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T292_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T293_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T298_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T303_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T304_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T305_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T306_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T307_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T312_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T313_;
				if (!(op == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138))) goto LA275_;
				T277_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T277_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA280_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA280_: ;
				res_11 = rawNewString(((NI) 80));
				res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
				T282_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T282_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T282_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145));
				T283_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T283_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T283_);
				res_11 = resizeString(res_11, 3);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
				cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_11), ((NI64) (size)));
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
				T284_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T284_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T284_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_702));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA287_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA287_: ;
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
				T289_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T289_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T289_);
				res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_703));
				T290_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T290_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T290_);
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
				T291_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T291_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T291_);
				res_11 = resizeString(res_11, 6);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_704));
				T292_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T292_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T292_);
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
				T293_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T293_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T293_);
				res_11 = resizeString(res_11, 9);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_705));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA296_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA296_: ;
				res_11 = resizeString(res_11, 7);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_706));
				T298_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T298_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T298_);
				res_11 = resizeString(res_11, 9);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_707));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA301_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA301_: ;
				res_11 = resizeString(res_11, 4);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T303_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T303_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T303_);
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T304_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T304_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T304_);
				res_11 = resizeString(res_11, 4);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
				T305_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T305_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_708));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T305_);
				res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T306_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T306_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T306_);
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T307_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T307_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T307_);
				res_11 = resizeString(res_11, 2);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_11), ((NI64) (size)));
				res_11 = resizeString(res_11, 8);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_709));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA310_;
					res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA310_: ;
				T312_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T312_ = rope_yShmEg9cffWxI7s5XzEKBow(res_11);
				T313_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T313_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T312_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T277_, T313_);
			}
			goto LA273_;
			LA275_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T315_;
				NimStringDesc* res_12;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T320_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T321_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T322_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T327_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T328_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T329_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T330_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T331_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T336_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T341_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T342_;
				T315_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T315_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA318_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA318_: ;
				res_12 = rawNewString(((NI) 80));
				res_12 = resizeString(res_12, 5);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
				T320_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T320_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T320_);
				res_12 = resizeString(res_12, 6);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145));
				T321_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T321_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T321_);
				res_12 = resizeString(res_12, 3);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
				cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_12), ((NI64) (size)));
				res_12 = resizeString(res_12, 2);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
				T322_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T322_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T322_);
				res_12 = resizeString(res_12, 6);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_702));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA325_;
					res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA325_: ;
				res_12 = resizeString(res_12, 2);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_245));
				T327_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T327_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T327_);
				res_12 = resizeString(res_12, 5);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_703));
				T328_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T328_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T328_);
				res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
				T329_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T329_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T329_);
				res_12 = resizeString(res_12, 6);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_704));
				T330_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T330_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T330_);
				res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
				T331_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T331_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T331_);
				res_12 = resizeString(res_12, 9);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_705));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA334_;
					res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA334_: ;
				res_12 = resizeString(res_12, 7);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_706));
				T336_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T336_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T336_);
				res_12 = resizeString(res_12, 9);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_707));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA339_;
					res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA339_: ;
				T341_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T341_ = rope_yShmEg9cffWxI7s5XzEKBow(res_12);
				T342_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T342_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T341_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T315_, T342_);
			}
			LA273_: ;
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_22;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_19;
			NimStringDesc* res_13;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T356_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T357_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T358_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T359_;
			nimZeroMem((void*)(&a_22), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_19), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA346_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_710));
			}
			LA346_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA350_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_711));
			}
			LA350_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_22));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_19));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA354_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA354_: ;
			res_13 = rawNewString(((NI) 80));
			res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T356_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T356_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_708));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T356_);
			res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T357_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T357_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_22);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T357_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T358_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T358_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b_19);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T358_);
			res_13 = resizeString(res_13, 2);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_13), ((NI64) (size)));
			res_13 = resizeString(res_13, 5);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_692));
			T359_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T359_ = rope_yShmEg9cffWxI7s5XzEKBow(res_13);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T359_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 142):
		{
			tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T361_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T362_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T367_;
			tyArray_dNfZYyzVYdaWfURv4pxodA T368_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T369_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T370_;
			T361_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
			T362_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T362_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T361_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T362_, (&i), NIM_FALSE);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
			{
				if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA365_;
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, setType, d, NIM_FALSE);
			}
			LA365_: ;
			T367_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T367_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T368_, sizeof(tyArray_dNfZYyzVYdaWfURv4pxodA));
			T368_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(i);
			T368_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (size)));
			T368_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
			T368_[3] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T368_[4] = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			if (op < 137 || op > 142) raiseIndexError3(op, 137, 142);
			T368_[5] = rope_yShmEg9cffWxI7s5XzEKBow(lookupOpr_w7WuexLq9cuXtAtqil9csnVQ[(op)- 137]);
			T369_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T369_ = percent__n4OrLXC1r9a83k5wz2NoWxQ(T368_, 6);
			T370_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T370_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T369_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T367_, T370_);
		}
		break;
		case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
		{
			genInOp_BKdMcfvryaJLplX0oFPcAQ_17(p, e, d);
		}
		break;
		default:
		{
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_716));
		}
		break;
		}
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genDefault_8mAL9ckajemzgfLPfeZVNoQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_TRUE);
	}
	goto LA1_;
	LA3_: ;
	{
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genReset_UtJx89cn0a8CNSWWmaj6raA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 1)], (&a));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA4_: ;
	res = rawNewString(((NI) 80));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_234));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T7_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T8_, 8388608);
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T9_, (*n).info);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA13_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA13_: ;
	T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T15_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, T16_);
}

N_LIB_PRIVATE N_NIMCALL(void, genEcho_UtJx89cn0a8CNSWWmaj6raA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_717);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T5_);
	}
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* args;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T32_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
		if (!((*(*(*(*p).module).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA8_;
		args = NIM_NIL;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
			tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T11_;
			it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			colontmp_ = (*n).sons;
			i = ((NI) 0);
			T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T11_;
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_722;
					if (!(i < L)) goto LA13;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
					it = colontmp_->data[i];
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
						T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T16_ = skipConv_BH9abOhPX8pH0DnEWlRxmlw(it);
						if (!((*T16_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA17_;
						add_yG4AKzsBRS1W4MANDlXQeg(&args, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_718));
					}
					goto LA14_;
					LA17_: ;
					{
						NimStringDesc* res;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
						}
						LA22_: ;
						res = rawNewString(((NI) 80));
						res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_719));
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
						res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_720));
						T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T25_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
						res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_721));
						T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T26_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
						add_IM4kcMNkkOLJtqdEqSxR8A(&args, T26_);
					}
					LA14_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_722 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_722);
					{
						NI T29_;
						T29_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T29_ == L))) goto LA30_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA30_: ;
				} LA13: ;
			}
		}
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_723));
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_724));
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T32_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA35_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA35_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 14);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_725));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), args);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA39_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA39_: ;
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T41_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T32_, T42_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T49_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
			NI T55_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			T46_ = (NI)0;
			T46_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T46_ == ((NI) 0))) goto LA47_;
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T49_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA52_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA52_: ;
			res_3 = rawNewString(((NI) 80));
			T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T54_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_726));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T54_);
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_727));
			T55_ = (NI)0;
			T55_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) (T55_)));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA58_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T49_, T61_);
		}
		goto LA44_;
		LA47_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T63_;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
			NI T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, n, (&a_2));
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T63_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA66_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA66_: ;
			res_4 = rawNewString(((NI) 80));
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_726));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T68_);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T69_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T70_ = (NI)0;
			T70_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (T70_)));
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA73_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA73_: ;
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T63_, T76_);
		}
		LA44_: ;
	}
	LA6_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lhsDoesAlias_edSekmjUCfSNOPSuXdUClg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y;
		y = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(b);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_728;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					y = (*b).sons->data[i];
					{
						tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T7_;
						T7_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
						T7_ = isPartOf_1otDDZAmvFsmbqPyFytXFg(a, y);
						if (!!((T7_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)))) goto LA8_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA8_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_728 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_728);
				} LA4: ;
			}
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	NIM_BOOL doesAlias;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* dest;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* l;
	NI T13_;
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	doesAlias = lhsDoesAlias_edSekmjUCfSNOPSuXdUClg((*d).lode, n);
	{
		if (!doesAlias) goto LA3_;
		dest = (&tmp);
	}
	goto LA1_;
	LA3_: ;
	{
		dest = d;
	}
	LA1_: ;
	{
		if (!doesAlias) goto LA8_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, (&tmp), NIM_FALSE);
	}
	goto LA6_;
	LA8_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA11_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	goto LA6_;
	LA11_: ;
	LA6_: ;
	T13_ = (NI)0;
	T13_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
	l = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (T13_)));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T18_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA16_;
		seqtype = (*n).typ;
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T18_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA21_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA21_: ;
		res = rawNewString(((NI) 80));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*dest));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), l);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*dest));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_651));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), l);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		T27_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T27_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T27_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA31_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA31_: ;
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T18_, T34_);
	}
	goto LA14_;
	LA16_: ;
	{
		NIM_BOOL T36_;
		NI T38_;
		T36_ = (NIM_BOOL)0;
		T36_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0));
		if (!(T36_)) goto LA37_;
		T38_ = (NI)0;
		T38_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		T36_ = (T38_ == ((NI) 0));
		LA37_: ;
		genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, (*dest), l, T36_);
	}
	LA14_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_729;
				if (!(i_2 < colontmp_)) goto LA41;
				i = i_2;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				initLoc_qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), (*n).sons->data[i], ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA44_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA44_: ;
				res_2 = rawNewString(((NI) 80));
				T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T46_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*dest));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
				T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T47_ = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T47_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
				T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T48_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T48_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
				arr.r = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				arr.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).sons->data[i], (&arr));
				TM_MQdRN7fpbG7rPm4JpVVAhA_729 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_729);
			} LA41: ;
		}
	}
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
	{
		if (!doesAlias) goto LA51_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA55_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA53_;
		LA55_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
		}
		LA53_: ;
	}
	LA51_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA elem;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	NI L;
	NI64 T9_;
{	nimZeroMem((void*)(&elem), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*n).sons->data[((NI) 1)]).typ), (*n).typ);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_5(p, (*n).sons->data[((NI) 1)], d);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA7_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T9_ = (NI64)0;
	T9_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*(*n).sons->data[((NI) 1)]).typ);
	L = ((NI)chckRange64(T9_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqtype;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T14_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA12_;
		seqtype = (*n).typ;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T14_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA17_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA17_: ;
		res = rawNewString(((NI) 80));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (L)));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_649));
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = getSeqPayloadType_HPYuz9bvVOGBv0EUX9c74xhg_2((*p).module, seqtype);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_651));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (L)));
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
		T23_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(seqtype);
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T23_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T14_, T30_);
	}
	goto LA10_;
	LA12_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		NIM_BOOL T33_;
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (L)));
		T33_ = (NIM_BOOL)0;
		T33_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 25))&31U)))!=0));
		if (!(T33_)) goto LA34_;
		T33_ = (L == ((NI) 0));
		LA34_: ;
		genNewSeqAux_Ri3gLeBVOaUltgSIU2SrQQ(p, (*d), T32_, T33_);
	}
	LA10_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 1)], (&a));
	{
		if (!(L < ((NI) 10))) goto LA37_;
		{
			NI i;
			NI i_2;
			i = (NI)0;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T42_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T43_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T44_;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T52_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T53_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T54_;
					NimStringDesc* res_3;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_730;
					if (!(i_2 < L)) goto LA41;
					i = i_2;
					T42_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T42_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
					T43_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T43_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(T42_);
					T44_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T44_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T43_);
					initLoc_qlujIAW86QclHYUVxlHRiQ((&elem), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T44_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA47_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA47_: ;
					res_2 = rawNewString(((NI) 80));
					T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T49_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T49_);
					T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T50_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
					T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T51_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
					elem.r = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					elem.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T52_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T52_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350135273744));
					T53_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T53_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(T52_);
					T54_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T54_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T53_);
					initLoc_qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T54_, a.storage);
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA57_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA57_: ;
					res_3 = rawNewString(((NI) 80));
					T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T59_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
					T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T60_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T60_);
					res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
					arr.r = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
					genAssignment_BtucsTdHw7orsXIL75hNVg(p, elem, arr, 1);
					TM_MQdRN7fpbG7rPm4JpVVAhA_730 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_730);
				} LA41: ;
			}
		}
	}
	goto LA35_;
	LA37_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA i_3;
		tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T62_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T63_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T64_;
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T75_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T76_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T77_;
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T85_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T86_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T87_;
		NimStringDesc* res_6;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T94_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T95_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T96_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
		nimZeroMem((void*)(&i_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T62_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
		T63_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T63_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T62_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, T63_, (&i_3), NIM_FALSE);
		T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T64_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA67_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA67_: ;
		res_4 = rawNewString(((NI) 80));
		res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_144));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 6);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_145));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) (L)));
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), i_3.r);
		res_4 = resizeString(res_4, 5);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_148));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA71_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA71_: ;
		T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T74_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T73_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T64_, T74_);
		T75_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T75_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
		T76_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T76_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(T75_);
		T77_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T77_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T76_);
		initLoc_qlujIAW86QclHYUVxlHRiQ((&elem), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T77_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA80_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA80_: ;
		res_5 = rawNewString(((NI) 80));
		T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T82_);
		T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T83_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
		T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T84_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i_3);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T84_);
		res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
		elem.r = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		elem.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T85_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T85_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350135273744));
		T86_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T86_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(T85_);
		T87_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T87_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T86_);
		initLoc_qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T87_, a.storage);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA90_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA90_: ;
		res_6 = rawNewString(((NI) 80));
		T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T92_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
		T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T93_ = rdLoc_xidyzuHqIciXbQyEOKahDg(i_3);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T93_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
		arr.r = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, elem, arr, 1);
		T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T94_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T95_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T96_ = percent__BYiowJAm8zF7RBRISElaLg(T95_, 0);
		T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T97_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T96_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T94_, T97_);
	}
	LA35_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(1189055854751557904));
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T3_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T3_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA6_: ;
		res = rawNewString(((NI) 80));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_732));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
			if (!(src.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA13_;
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T15_ = t_XNOXh7uniWNgiq58C9bW49awcgen(src);
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T15_, (&tmp), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, tmp, src, 0);
			T10_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp);
		}
		goto LA11_;
		LA13_: ;
		{
			T10_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA11_: ;
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T17_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T17_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T17_, (*dest.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T23_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T3_, T24_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA29_: ;
		res_2 = rawNewString(((NI) 80));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_733));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T31_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T32_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T33_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T34_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T34_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T34_, (*dest.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA38_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA38_: ;
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T40_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T41_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T43_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T43_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA46_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA46_: ;
		res_3 = rawNewString(((NI) 80));
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_734));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T48_);
		res_3 = resizeString(res_3, 8);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T49_);
		res_3 = resizeString(res_3, 9);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_365));
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T55_;
			if (!(src.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6))) goto LA53_;
			nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			T55_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T55_ = t_XNOXh7uniWNgiq58C9bW49awcgen(src);
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, T55_, (&tmp_2), NIM_FALSE);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, tmp_2, src, 0);
			T50_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, tmp_2);
		}
		goto LA51_;
		LA53_: ;
		{
			T50_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, src);
		}
		LA51_: ;
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T50_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T57_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T57_);
		res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_383));
		T58_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
		T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T59_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, T58_, (*dest.lode).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T59_);
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA62_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA62_: ;
		T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T64_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T65_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T43_, T65_);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		{
			tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T69_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T72_;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T80_;
			NI64 T81_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
			T69_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
			T69_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, ty);
			if (!(T69_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17))) goto LA70_;
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T72_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA75_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA75_: ;
			res_4 = rawNewString(((NI) 80));
			T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T77_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_362));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T77_);
			res_4 = resizeString(res_4, 8);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_128));
			T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T78_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T78_);
			res_4 = resizeString(res_4, 19);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_363));
			T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T79_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T79_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T80_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T80_ = t_XNOXh7uniWNgiq58C9bW49awcgen(dest);
			T81_ = (NI64)0;
			T81_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, T80_);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), T81_);
			res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA84_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA84_: ;
			T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T87_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T86_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T72_, T87_);
		}
		goto LA67_;
		LA70_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T89_;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T101_;
			T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T89_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA92_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA92_: ;
			res_5 = rawNewString(((NI) 80));
			T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T94_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T94_);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T95_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T95_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA98_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA98_: ;
			T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T100_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T101_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T101_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T100_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T89_, T101_);
		}
		LA67_: ;
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T103_;
		NimStringDesc* res_6;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T108_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T115_;
		T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T103_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA106_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA106_: ;
		res_6 = rawNewString(((NI) 80));
		T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T108_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T108_);
		res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
		T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T109_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T109_);
		res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA112_;
			res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA112_: ;
		T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T114_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
		T115_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T115_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T114_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T103_, T115_);
	}
	break;
	default:
	{
		NimStringDesc* T117_;
		T117_ = (NimStringDesc*)0;
		T117_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 13);
appendString(T117_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_735));
appendString(T117_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T117_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = (*n).sons->data[((NI) 0)];
	}
	goto LA1_;
	LA3_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3((*n).sons->data[((NI) 1)]);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T1_, (&a));
	resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
}

N_LIB_PRIVATE N_NIMCALL(void, genMove_8mAL9ckajemzgfLPfeZVNoQ_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3((*n).sons->data[((NI) 1)]);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T1_, (&a));
	{
		NI T4_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA src;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T17_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		T4_ = (NI)0;
		T4_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T4_ == ((NI) 4))) goto LA5_;
		nimZeroMem((void*)(&src), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 2)], (&src));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T7_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA10_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA10_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_737));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_738));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T15_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T7_, T16_);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).sons->data[((NI) 3)]);
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T17_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA20_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA24_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA24_: ;
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T26_);
		res_2 = resizeString(res_2, 7);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_648));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T27_);
		res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_739));
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
		res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_740));
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rdLoc_xidyzuHqIciXbQyEOKahDg(src);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_741));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA32_: ;
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T17_, T35_);
	}
	goto LA2_;
	LA5_: ;
	{
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA39_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA39_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a, 0);
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&a));
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genDestroy_UtJx89cn0a8CNSWWmaj6raA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350135273744));
		switch ((*t).kind) {
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T6_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T7_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T6_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T6_ = skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3((*n).sons->data[((NI) 1)]);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T6_, (&a));
			T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T7_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA10_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA10_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
			res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736));
			T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
			res = resizeString(res, 16);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_742));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA16_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA16_: ;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
			res = resizeString(res, 23);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_743));
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T19_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
			res = resizeString(res, 15);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_744));
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_745));
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
			res = resizeString(res, 44);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_746));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA24_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA24_: ;
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T7_, T27_);
		}
		break;
		case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T29_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T29_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T29_ = skipAddr_oKhRC9bEKTxG5epdNiNWZ0w_3((*n).sons->data[((NI) 1)]);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, T29_, (&a_2));
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T30_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA33_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA33_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T35_);
			res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_736));
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T36_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T36_);
			res_2 = resizeString(res_2, 16);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_742));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA39_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA39_: ;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T41_);
			res_2 = resizeString(res_2, 23);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_743));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 15);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_744));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 5);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_747));
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 17);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_748));
			T45_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T45_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T45_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T46_);
			res_2 = resizeString(res_2, 35);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_749));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA49_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA49_: ;
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T52_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T30_, T52_);
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017680));
		{
			NIM_BOOL T57_;
			T57_ = (NIM_BOOL)0;
			T57_ = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL));
			if (!(T57_)) goto LA58_;
			T57_ = !(((*(*t_2).attachedOps[(((tyEnum_TTypeAttachedOp_Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 171)));
			LA58_: ;
			if (!T57_) goto LA59_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_750));
		}
		LA59_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg op) {
	switch (op) {
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 132):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 131):
	{
		genAndOr_yX5yxw6c9agMF4ZvIHKAZvg(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 122):
	{
		unaryArith_TU9cJnldbmGa9bZDxaR6I4tg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 101) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 103):
	{
		unaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_2(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 56) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 59):
	{
		binaryFloatArith_yX5yxw6c9agMF4ZvIHKAZvg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 60) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 98):
	{
		binaryArith_TU9cJnldbmGa9bZDxaR6I4tg_3(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 100):
	{
		genEqProc_BKdMcfvryaJLplX0oFPcAQ(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 49) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 55):
	{
		binaryArithOverflow_yX5yxw6c9agMF4ZvIHKAZvg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 154):
	{
		genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 284):
	{
		genGetTypeInfo_BKdMcfvryaJLplX0oFPcAQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 161):
	{
		genSwap_BKdMcfvryaJLplX0oFPcAQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 29):
	{
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
			if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0))) goto LA14_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA18_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T20_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
			res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_514));
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T21_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA12_;
		LA14_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA25_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA25_: ;
			res_2 = rawNewString(((NI) 80));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_494));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T27_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_515));
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T29_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA12_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 30):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 31):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* underlying;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		underlying = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(211106241972240));
		{
			NIM_BOOL T33_;
			T33_ = (NIM_BOOL)0;
			T33_ = !((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 5))&31U)))!=0));
			if (T33_) goto LA34_;
			T33_ = ((*underlying).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40) && (*underlying).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44));
			LA34_: ;
			if (!T33_) goto LA35_;
			if (op < 30 || op > 31) raiseIndexError3(op, 30, 31);
			binaryStmt_FWB0HmRDLgoWdgSy9bfL9b5w(p, e, d, opr_O7uP3jzNu3e9auWdRdRa9cJA[(op)- 30]);
		}
		goto LA31_;
		LA35_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_3;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ranged;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res_3;
			NI64 size;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* storage;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T51_;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
			NimStringDesc* res_5;
			NimStringDesc* T67_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
			nimZeroMem((void*)(&a_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA40_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_519));
			}
			LA40_: ;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
				if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA44_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_520));
			}
			LA44_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_3));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			ranged = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(211106240923664));
			size = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, ranged);
			{
				if (!(size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)))) goto LA48_;
				storage = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_292));
			}
			goto LA46_;
			LA48_: ;
			{
				storage = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, ranged);
			}
			LA46_: ;
			result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T51_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA54_: ;
			res_4 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), storage);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), result);
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA58_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T51_, T61_);
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T62_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA65_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA65_: ;
			res_5 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), result);
			res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T67_ = (NimStringDesc*)0;
			{
				if (!((*underlying).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 35))) goto LA70_;
				if (op < 30 || op > 31) raiseIndexError3(op, 30, 31);
				T67_ = copyString(fun64_fjrbodMqcYB619bEDCGfJsA[(op)- 30]);
			}
			goto LA68_;
			LA70_: ;
			{
				if (op < 30 || op > 31) raiseIndexError3(op, 30, 31);
				T67_ = copyString(fun_gOe15RXeJ2duD5In6NwLXA[(op)- 30]);
			}
			LA68_: ;
			T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T73_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T67_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T73_);
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_3);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T74_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T75_);
			res_5 = resizeString(res_5, 2);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA78_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA78_: ;
			T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T80_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T81_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T80_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T62_, T81_);
			{
				NIM_BOOL T84_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T88_;
				NimStringDesc* res_6;
				NI64 T93_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
				NI64 T95_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T96_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
				T84_ = (NIM_BOOL)0;
				T84_ = (size < ((NI64) ((*(*(*(*p).module).g).config).target.intSize)));
				if (T84_) goto LA85_;
				T84_ = ((*ranged).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 20) || (*ranged).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 14));
				LA85_: ;
				if (!T84_) goto LA86_;
				T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T88_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA91_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA91_: ;
				res_6 = rawNewString(((NI) 80));
				res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), result);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
				T93_ = (NI64)0;
				T93_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ranged);
				T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T94_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T93_);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T94_);
				res_6 = resizeString(res_6, 4);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), result);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
				T95_ = (NI64)0;
				T95_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ranged, NIM_FALSE);
				T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T96_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T95_);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T96_);
				res_6 = resizeString(res_6, 2);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T97_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_467));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T97_);
				res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA100_;
					res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA100_: ;
				T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T102_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
				T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T103_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T102_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T88_, T103_);
			}
			LA86_: ;
			res_3 = result;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			nimZeroMem((void*)T104_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T104_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, ranged);
			T104_[1] = res_3;
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = percent__0ym49cR6ES8k9bYWsnh1fELA(T104_, 2);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, (&a_3), (*e).sons->data[((NI) 1)], T105_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA31_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 143):
	{
		genStrConcat_BKdMcfvryaJLplX0oFPcAQ_5(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 149):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA110_;
			binaryStmtAddr_vxeaiXjty5M8JXT1fo429aQ(p, e, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_534));
		}
		goto LA108_;
		LA110_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA dest;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_2;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA call;
			NimStringDesc* res_7;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T117_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
			nimZeroMem((void*)(&dest), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&b_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			nimZeroMem((void*)(&call), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLoc_qlujIAW86QclHYUVxlHRiQ((&call), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 9), e, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&dest));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA115_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA115_: ;
			res_7 = rawNewString(((NI) 80));
			T117_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T117_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_535));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T117_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = rdLoc_xidyzuHqIciXbQyEOKahDg(dest);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T118_);
			res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T119_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_2);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T119_);
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
			call.r = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, dest, call, 0);
		}
		LA108_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 150):
	{
		genStrAppend_BKdMcfvryaJLplX0oFPcAQ_6(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 151):
	{
		{
			if (!((*(*(*(*p).module).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 4))) goto LA124_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*e).sons->data[((NI) 1)]), makeAddr_oKhRC9bEKTxG5epdNiNWZ0w_2((*e).sons->data[((NI) 1)]));
			genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
		}
		goto LA122_;
		LA124_: ;
		{
			genSeqElemAppend_BKdMcfvryaJLplX0oFPcAQ_8(p, e, d);
		}
		LA122_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 133):
	{
		genStrEquals_BKdMcfvryaJLplX0oFPcAQ_9(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 134):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_4;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_3;
		NimStringDesc* res_8;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T141_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T142_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T144_;
		nimZeroMem((void*)(&a_4), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b_3), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA131_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
		}
		LA131_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA135_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
		}
		LA135_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_4));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_3));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA139_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA139_: ;
		res_8 = rawNewString(((NI) 80));
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T141_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T141_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T141_);
		res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T142_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T142_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_4);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T142_);
		res_8 = resizeString(res_8, 2);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T143_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_3);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T143_);
		res_8 = resizeString(res_8, 7);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_623));
		T144_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T144_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T144_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 135):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_5;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_4;
		NimStringDesc* res_9;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T158_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T159_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T160_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T161_;
		nimZeroMem((void*)(&a_5), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b_4), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 1)]).typ == NIM_NIL)))) goto LA148_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_619));
		}
		LA148_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!!(!(((*(*e).sons->data[((NI) 2)]).typ == NIM_NIL)))) goto LA152_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_620));
		}
		LA152_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_5));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_4));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA156_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA156_: ;
		res_9 = rawNewString(((NI) 80));
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T158_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T158_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_622));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T158_);
		res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T159_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T159_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_5);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T159_);
		res_9 = resizeString(res_9, 2);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T160_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T160_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b_4);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_9), T160_);
		res_9 = resizeString(res_9, 6);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_624));
		T161_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T161_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T161_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 162):
	{
		genIsNil_BKdMcfvryaJLplX0oFPcAQ_10(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 125):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_6;
		NimStringDesc* res_10;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T168_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T169_;
		nimZeroMem((void*)(&a_6), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_6));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA166_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA166_: ;
		res_10 = rawNewString(((NI) 80));
		T168_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T168_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_626));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T168_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T169_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T169_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_6);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T169_);
		res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_6.r = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
		a_6.flags = (a_6.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA172_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA172_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_6, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 126):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_7;
		NimStringDesc* res_11;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T179_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T180_;
		nimZeroMem((void*)(&a_7), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_7));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA177_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA177_: ;
		res_11 = rawNewString(((NI) 80));
		T179_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T179_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_627));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T179_);
		res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T180_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T180_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_7);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T180_);
		res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_7.r = rope_yShmEg9cffWxI7s5XzEKBow(res_11);
		a_7.flags = (a_7.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA183_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA183_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_7, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 124):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_8;
		NimStringDesc* res_12;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T190_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T191_;
		nimZeroMem((void*)(&a_8), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_8));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA188_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA188_: ;
		res_12 = rawNewString(((NI) 80));
		T190_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T190_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_628));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T190_);
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T191_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T191_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_8);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_12), T191_);
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_8.r = rope_yShmEg9cffWxI7s5XzEKBow(res_12);
		a_8.flags = (a_8.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA194_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA194_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_8, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 123):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_9;
		NimStringDesc* res_13;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T201_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T202_;
		nimZeroMem((void*)(&a_9), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_9));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA199_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA199_: ;
		res_13 = rawNewString(((NI) 80));
		T201_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T201_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_629));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T201_);
		res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T202_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T202_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_9);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_13), T202_);
		res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_9.r = rope_yShmEg9cffWxI7s5XzEKBow(res_13);
		a_9.flags = (a_9.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA205_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA205_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_9, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 127):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_10;
		NimStringDesc* res_14;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T212_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T213_;
		nimZeroMem((void*)(&a_10), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_10));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA210_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA210_: ;
		res_14 = rawNewString(((NI) 80));
		T212_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T212_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_630));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T212_);
		res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T213_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T213_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_10);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_14), T213_);
		res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_10.r = rope_yShmEg9cffWxI7s5XzEKBow(res_14);
		a_10.flags = (a_10.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA216_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA216_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_10, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 128):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_11;
		NimStringDesc* res_15;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T223_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T224_;
		nimZeroMem((void*)(&a_11), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_11));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA221_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA221_: ;
		res_15 = rawNewString(((NI) 80));
		T223_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T223_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_631));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T223_);
		res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T224_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T224_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_11);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T224_);
		res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a_11.r = rope_yShmEg9cffWxI7s5XzEKBow(res_15);
		a_11.flags = (a_11.flags & ~ 1);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA227_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA227_: ;
		genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), a_11, 0);
		gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 129):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 173):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 130):
	{
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA233_;
			genEnumToStr_BKdMcfvryaJLplX0oFPcAQ_11(p, e, d);
		}
		goto LA231_;
		LA233_: ;
		{
			genRepr_BKdMcfvryaJLplX0oFPcAQ_2(p, e, d);
		}
		LA231_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 14):
	{
		genOf_8mAL9ckajemzgfLPfeZVNoQ_2(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genNew_X9cSqNhqEboci9cdmwBMNcBw(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 34):
	{
		genNewFinalize_X9cSqNhqEboci9cdmwBMNcBw_2(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 35):
	{
		genNewSeq_X9cSqNhqEboci9cdmwBMNcBw_3(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 36):
	{
		genNewSeqOfCap_BKdMcfvryaJLplX0oFPcAQ_12(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 9):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T242_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T243_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, 256);
		nimZeroMem((void*)T242_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T242_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		T243_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T243_ = percent__c4YKWXetPKpaUUF7Qft2gA(T242_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T243_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 10):
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T251_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T252_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		t_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, 256);
		{
			NIM_BOOL T247_;
			T247_ = (NIM_BOOL)0;
			T247_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T247_) goto LA248_;
			T247_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA248_: ;
			if (!!(T247_)) goto LA249_;
			includeHeader_G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_655));
		}
		LA249_: ;
		nimZeroMem((void*)T251_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T251_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t_2);
		T252_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T252_ = percent__rCIIoKC0OrXhpuTFTIZn0g(T251_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T252_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 46):
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 32):
	{
		genOrd_BKdMcfvryaJLplX0oFPcAQ_14(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 8):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 37):
	{
		genArrayLen_TU9cJnldbmGa9bZDxaR6I4tg_4(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 41):
	{
		{
			NIM_BOOL T259_;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_12;
			NimStringDesc* res_16;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T267_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T268_;
			T259_ = (NIM_BOOL)0;
			T259_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T259_) goto LA260_;
			T259_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA260_: ;
			if (!!(T259_)) goto LA261_;
			nimZeroMem((void*)(&a_12), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_12));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA265_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA265_: ;
			res_16 = rawNewString(((NI) 80));
			res_16 = resizeString(res_16, 1);
appendString(res_16, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T267_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T267_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_12);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_16), T267_);
			res_16 = resizeString(res_16, 10);
appendString(res_16, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_666));
			T268_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T268_ = rope_yShmEg9cffWxI7s5XzEKBow(res_16);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T268_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA257_;
		LA261_: ;
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_13;
			NimStringDesc* res_17;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T274_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T275_;
			nimZeroMem((void*)(&a_13), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_13));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA272_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA272_: ;
			res_17 = rawNewString(((NI) 80));
			T274_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T274_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_13);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T274_);
			res_17 = resizeString(res_17, 5);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_667));
			T275_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T275_ = rope_yShmEg9cffWxI7s5XzEKBow(res_17);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T275_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA257_: ;
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 42):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_14;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		nimZeroMem((void*)(&a_14), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_14));
		getIntTemp_SrOtkNNSJNR1CbG2n3nFcg(p, (&tmp));
		{
			NIM_BOOL T279_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T283_;
			NimStringDesc* res_18;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T288_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T293_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T294_;
			T279_ = (NIM_BOOL)0;
			T279_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T279_) goto LA280_;
			T279_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA280_: ;
			if (!!(T279_)) goto LA281_;
			T283_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T283_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA286_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA286_: ;
			res_18 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), tmp.r);
			res_18 = resizeString(res_18, 3);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T288_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T288_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_14);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), T288_);
			res_18 = resizeString(res_18, 10);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_668));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA291_;
				res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA291_: ;
			T293_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T293_ = rope_yShmEg9cffWxI7s5XzEKBow(res_18);
			T294_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T294_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T293_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T283_, T294_);
		}
		goto LA277_;
		LA281_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T296_;
			NimStringDesc* res_19;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T301_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T306_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T307_;
			T296_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T296_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA299_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA299_: ;
			res_19 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_19), tmp.r);
			res_19 = resizeString(res_19, 3);
appendString(res_19, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
			T301_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T301_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_14);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_19), T301_);
			res_19 = resizeString(res_19, 6);
appendString(res_19, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_669));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA304_;
				res_19 = resizeString(res_19, 1);
appendString(res_19, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA304_: ;
			T306_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T306_ = rope_yShmEg9cffWxI7s5XzEKBow(res_19);
			T307_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T307_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T306_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T296_, T307_);
		}
		LA277_: ;
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, tmp.r, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 47):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_15;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T313_;
		NimStringDesc* res_20;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T318_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T319_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T320_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T325_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T326_;
		nimZeroMem((void*)(&a_15), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA311_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_670));
		}
		LA311_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_15));
		T313_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T313_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA316_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA316_: ;
		res_20 = rawNewString(((NI) 80));
		res_20 = resizeString(res_20, 4);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T318_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T318_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_15);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_20), T318_);
		res_20 = resizeString(res_20, 4);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
		T319_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T319_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_671));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_20), T319_);
		res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T320_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T320_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_15);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_20), T320_);
		res_20 = resizeString(res_20, 4);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_672));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA323_;
			res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA323_: ;
		T325_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T325_ = rope_yShmEg9cffWxI7s5XzEKBow(res_20);
		T326_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T326_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T325_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T313_, T326_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 48):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_16;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T332_;
		NimStringDesc* res_21;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T337_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T338_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T339_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T344_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T345_;
		nimZeroMem((void*)(&a_16), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (!!(((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0)))) goto LA330_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_670));
		}
		LA330_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_16));
		T332_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T332_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA335_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA335_: ;
		res_21 = rawNewString(((NI) 80));
		res_21 = resizeString(res_21, 4);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T337_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T337_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_16);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_21), T337_);
		res_21 = resizeString(res_21, 4);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_642));
		T338_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T338_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_673));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_21), T338_);
		res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T339_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T339_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_16);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_21), T339_);
		res_21 = resizeString(res_21, 4);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_672));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA342_;
			res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA342_: ;
		T344_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T344_ = rope_yShmEg9cffWxI7s5XzEKBow(res_21);
		T345_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T345_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T344_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T332_, T345_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 156):
	{
		genSetLengthStr_BKdMcfvryaJLplX0oFPcAQ_15(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 157):
	{
		genSetLengthSeq_BKdMcfvryaJLplX0oFPcAQ_16(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 43):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 44):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 45):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 138):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 137):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 136):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 139):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 140):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 141):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 153):
	{
		genSetOp_TU9cJnldbmGa9bZDxaR6I4tg_5(p, e, d, op);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 164):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 165):
	{
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 166):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 167):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 155):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 168):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* opr;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		opr = (*(*e).sons->data[((NI) 0)]).sym;
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
			NimStringDesc* T355_;
			NIM_BOOL wasDeclared;
			NimStringDesc* T356_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T357_;
			if (!!((((*opr).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0))) goto LA353_;
			T355_ = (NimStringDesc*)0;
			T355_ = dollar__mZ66tEveFIQokq3arf8Klw((*opr).loc.r);
			prc = getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA((*(*(*p).module).g).graph, T355_);
			wasDeclared = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredProtos), (*prc).Sup.id);
			T356_ = (NimStringDesc*)0;
			T356_ = dollar__mZ66tEveFIQokq3arf8Klw((*opr).loc.r);
			T357_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T357_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, T356_);
			(void)(T357_);
			{
				NIM_BOOL T360_;
				tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T364_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T365_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T366_;
				T360_ = (NIM_BOOL)0;
				T360_ = !(wasDeclared);
				if (!(T360_)) goto LA361_;
				T360_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
				LA361_: ;
				if (!T360_) goto LA362_;
				nimZeroMem((void*)T364_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
				T364_[0] = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(prc);
				T365_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T365_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
				T364_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T365_);
				T364_[2] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, prc);
				T366_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T366_ = percent__vHbYzYlzLPcurSm0Hu8InQ(T364_, 3);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T366_);
			}
			LA362_: ;
		}
		LA353_: ;
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 172):
	{
		genDefault_8mAL9ckajemzgfLPfeZVNoQ_3(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 175):
	{
		genReset_UtJx89cn0a8CNSWWmaj6raA_2(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 20):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T370_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T370_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T370_ = skipConv_BH9abOhPX8pH0DnEWlRxmlw((*e).sons->data[((NI) 1)]);
		genEcho_UtJx89cn0a8CNSWWmaj6raA_3(p, T370_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 163):
	{
		genArrToSeq_8mAL9ckajemzgfLPfeZVNoQ_4(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 234) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 282):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 22) ... ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 28):
	{
		NimStringDesc* T373_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T373_ = (NimStringDesc*)0;
		T373_ = nsuFormatSingleElem(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_731), (*(*(*(*e).sons->data[((NI) 0)]).sym).name).s);
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, T373_);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 220):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
		n = wrapProcForSpawn_MJZ4vKNaMfcU6vC2PCi1Ng((*(*(*p).module).g).graph, (*(*p).module).module, e, (*e).typ, NIM_NIL, NIM_NIL);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 160):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n_2;
		n_2 = liftParallel_ndOOzgg7N9cEw3E9bRfkcIDw((*(*(*p).module).g).graph, (*(*p).module).module, e);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, n_2, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 221):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_17;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b_5;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
		nimZeroMem((void*)(&a_17), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b_5), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (!((*(*e).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*(*e).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA379_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*e).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*e).sons->data[((NI) 1)]).sons ? (*(*e).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*e).sons->data[((NI) 1)]).sons ? (*(*e).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			x = (*(*e).sons->data[((NI) 1)]).sons->data[((NI) 0)];
		}
		goto LA377_;
		LA379_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			x = (*e).sons->data[((NI) 1)];
		}
		LA377_: ;
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a_17));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 2)], (&b_5));
		genDeepCopy_jdslQ8TsNpkTt8SvBLJjEA_2(p, a_17, b_5);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 145):
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 99):
	{
		genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 170):
	{
		genWasMoved_UtJx89cn0a8CNSWWmaj6raA_4(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 169):
	{
		genMove_8mAL9ckajemzgfLPfeZVNoQ_6(p, e, d);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 171):
	{
		genDestroy_UtJx89cn0a8CNSWWmaj6raA_5(p, e);
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 174):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_18;
		NimStringDesc* res_22;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T391_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T392_;
		nimZeroMem((void*)(&a_18), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 1)], (&a_18));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA389_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA389_: ;
		res_22 = rawNewString(((NI) 80));
		T391_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T391_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_18);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_22), T391_);
		res_22 = resizeString(res_22, 6);
appendString(res_22, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_190));
		T392_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T392_ = rope_yShmEg9cffWxI7s5XzEKBow(res_22);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T392_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 144):
	{
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_751));
	}
	break;
	default:
	{
		NimStringDesc* T395_;
		T395_ = (NimStringDesc*)0;
		T395_ = rawNewString((reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 14);
appendString(T395_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_752));
appendString(T395_, reprEnum((NI)op, (&NTI_shZhZOdbVC5nnFvcXQAImg_)));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T395_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tySequence_pxbIse2JUQkJU0n9blV9bY5g* cs;
	NI size;
	NI64 T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	cs = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)0;
	T1_ = (NI64)0;
	T1_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*n).typ);
	size = ((NI)chckRange64(T1_, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	toBitSet_NZsBRVngLBw9c79cEt9a4qOHg((*(*(*p).module).g).config, n, (&cs));
	{
		NI id;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!(((NI) 8) < size)) goto LA4_;
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		result = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T6_);
		{
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_753;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA9_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_753 = addInt((*(*p).module).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_753 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_753 > 2147483647) raiseOverflow();
			(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_753);
			nimZeroMem((void*)T11_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T11_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
			T11_[1] = result;
			T11_[2] = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, size);
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent__bJpxHYPJaxWBQn6QxwBA4w(T11_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T12_);
		}
		LA9_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		result = genRawSetData_lBnyc1f1M4k1nDKRQRL0HA(cs, size);
	}
	LA2_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genSetConstr_BKdMcfvryaJLplX0oFPcAQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA idx;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&idx), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!(((*e).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9(p, e);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*e).typ, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI64 T13_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T16_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			T13_ = (NI64)0;
			T13_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			if (!(IL64(8) < T13_)) goto LA14_;
			T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T16_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA19_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA19_: ;
			res = rawNewString(((NI) 80));
			T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T21_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_127));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_129));
			T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T23_);
			res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_130));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA26_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA26_: ;
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T28_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T16_, T29_);
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
				NI i;
				NI L;
				NI T31_;
				it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				colontmp_ = (*e).sons;
				i = ((NI) 0);
				T31_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T31_;
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_754;
						if (!(i < L)) goto LA33;
						if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
						it = colontmp_->data[i];
						{
							tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T38_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T39_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T40_;
							tyArray_f7nG5LD47BH5K9c6mASit3g T41_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
							if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA36_;
							T38_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
							T39_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T39_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T38_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_VjOFVqypINqQv5C3ECnxbw(p, T39_, (&idx), NIM_FALSE);
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).sons->data[((NI) 0)], (&a));
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).sons->data[((NI) 1)], (&b));
							T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T40_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T41_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
							T41_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(idx);
							T41_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
							T41_[2] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T41_[3] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b, (*e).typ);
							T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T42_ = percent__fOn9b5Ij3ytw2Ui9a2CPI5zw(T41_, 4);
							T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T43_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T42_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T40_, T43_);
						}
						goto LA34_;
						LA36_: ;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
							tyArray_mrugoXXRZUEeG9bEXo9auBKw T46_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
							T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T46_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
							T46_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
							T46_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T47_ = percent__zJU3FoYOdJ9bmuODPmqtgdQ(T46_, 2);
							T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T48_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T48_);
						}
						LA34_: ;
						TM_MQdRN7fpbG7rPm4JpVVAhA_754 = addInt(i, ((NI) 1));
						i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_754);
						{
							NI T51_;
							T51_ = (colontmp_ ? colontmp_->Sup.len : 0);
							if (!!((T51_ == L))) goto LA52_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
						}
						LA52_: ;
					} LA33: ;
				}
			}
		}
		goto LA11_;
		LA14_: ;
		{
			NimStringDesc* ts;
			NimStringDesc* T55_;
			NI64 T56_;
			NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_755;
			NimStringDesc* T57_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T58_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T59_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			T55_ = (NimStringDesc*)0;
			T56_ = (NI64)0;
			T56_ = getSize_vCG1GF2Iu043oALVyuJfOw((*(*(*p).module).g).config, (*e).typ);
			TM_MQdRN7fpbG7rPm4JpVVAhA_755 = mulInt64(T56_, IL64(8));
			T57_ = (NimStringDesc*)0;
			T57_ = nimInt64ToStr((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_755));
			T55_ = rawNewString((T57_ ? T57_->Sup.len : 0) + 2);
appendString(T55_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_301));
appendString(T55_, T57_);
			ts = T55_;
			T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T58_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T59_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T59_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = percent__1MXpJAdeOMc2XMg5H7t9aSg(T59_, 1);
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T58_, T61_);
			{
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
				tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
				NI i_2;
				NI L_2;
				NI T63_;
				it_2 = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp__2 = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				colontmp__2 = (*e).sons;
				i_2 = ((NI) 0);
				T63_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
				L_2 = T63_;
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_756;
						if (!(i_2 < L_2)) goto LA65;
						if ((NU)(i_2) >= (NU)(colontmp__2 ? colontmp__2->Sup.len : 0)) raiseIndexError2(i_2,(colontmp__2 ? colontmp__2->Sup.len : 0)-1);
						it_2 = colontmp__2->data[i_2];
						{
							tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q T70_;
							tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T71_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T72_;
							tyArray_duFhZXIIlrbrM62cWjNekg T73_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
							if (!((*it_2).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA68_;
							T70_ = unknownLineInfo_5RSRhtawHi7D6db22wWkzQ();
							T71_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T71_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, T70_, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 31));
							getTemp_VjOFVqypINqQv5C3ECnxbw(p, T71_, (&idx), NIM_FALSE);
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*it_2).sons ? (*it_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it_2).sons ? (*it_2).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2).sons->data[((NI) 0)], (&a));
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 1)) >= (NU)((*it_2).sons ? (*it_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it_2).sons ? (*it_2).sons->Sup.len : 0)-1);
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it_2).sons->data[((NI) 1)], (&b));
							T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T72_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T73_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
							T73_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(idx);
							T73_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
							T73_[2] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T73_[3] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, b, (*e).typ);
							T73_[4] = rope_yShmEg9cffWxI7s5XzEKBow(ts);
							T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T74_ = percent__VNAv31sqVgxrd9aXeFF5wYw(T73_, 5);
							T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T75_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T74_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T72_, T75_);
						}
						goto LA66_;
						LA68_: ;
						{
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T77_;
							tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T78_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
							initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it_2, (&a));
							T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T77_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T78_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
							T78_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
							T78_[1] = rdSetElemLoc_yZiAKtQMz62JmONYJ0rLzg((*(*(*p).module).g).config, a, (*e).typ);
							T78_[2] = rope_yShmEg9cffWxI7s5XzEKBow(ts);
							T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T79_ = percent__MULS9c8dKz2mJ1U9a9cMyTCYw(T78_, 3);
							T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T80_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T79_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T77_, T80_);
						}
						LA66_: ;
						TM_MQdRN7fpbG7rPm4JpVVAhA_756 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_756);
						{
							NI T83_;
							T83_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
							if (!!((T83_ == L_2))) goto LA84_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
						}
						LA84_: ;
					} LA65: ;
				}
			}
		}
		LA11_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	NI id;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	t = (*n).typ;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T1_);
	id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T2_);
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_757;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		if (!(id == ((NI) ((*(*p).module).labels)))) goto LA5_;
		TM_MQdRN7fpbG7rPm4JpVVAhA_757 = addInt((*(*p).module).labels, ((NI) 1));
		if (TM_MQdRN7fpbG7rPm4JpVVAhA_757 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_757 > 2147483647) raiseOverflow();
		(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_757);
		nimZeroMem((void*)T7_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T7_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		T7_[1] = tmp;
		T7_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__izqbVTMtpY7kMiTK4bPJ6Q(T7_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T8_);
	}
	LA5_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA11_;
		fillLoc_o49bXuxJYpCizOgQ54UViIg(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA9_;
	LA11_: ;
	{
		putDataIntoDest_fYECstGN5jPehhn5p8Iclg(p, d, n, tmp);
		{
			if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28)))) goto LA16_;
			(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1);
		}
		LA16_: ;
	}
	LA9_: ;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		NI id;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		T4_ = (((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38)) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3(n);
		LA7_: ;
		if (!T3_) goto LA8_;
		t = (*n).typ;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		(void)(T10_);
		id = nodeTableTestOrSet_tWmKJP7glBWLCISQFGGk2Q((&(*(*p).module).dataCache), n, ((NI) ((*(*p).module).labels)));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = amp__ShdZ6VrAQkY0nWR9a39b9bGdQ((*(*p).module).tmpBase, T11_);
		fillLoc_o49bXuxJYpCizOgQ54UViIg(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 8), n, T12_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
		{
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_758;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T17_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			if (!(id == ((NI) ((*(*p).module).labels)))) goto LA15_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_758 = addInt((*(*p).module).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_758 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_758 > 2147483647) raiseOverflow();
			(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_758);
			nimZeroMem((void*)T17_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T17_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
			T17_[1] = (*d).r;
			T17_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = percent__izqbVTMtpY7kMiTK4bPJ6Q(T17_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T18_);
		}
		LA15_: ;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA8_: ;
	{
		result = NIM_FALSE;
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA arr;
	nimZeroMem((void*)(&arr), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, n, d);
		if (!!(T3_)) goto LA4_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA8_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T15_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T16_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_759;
					if (!(i_2 < colontmp_)) goto LA12;
					i = i_2;
					T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T13_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
					T14_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T14_ = elemType_PfgI9ap7WOnsRfFV4znQ27w_2(T13_);
					T15_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T15_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(T14_);
					initLoc_qlujIAW86QclHYUVxlHRiQ((&arr), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), T15_, (*d).storage);
					nimZeroMem((void*)T16_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T16_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
					T16_[1] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (i)));
					arr.r = percent__jadqNPnY9aM3oxYK6jarLrA(T16_, 2);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).sons->data[i], (&arr));
					TM_MQdRN7fpbG7rPm4JpVVAhA_759 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_759);
				} LA12: ;
			}
		}
	}
	LA4_: ;
}

static N_INLINE(NIM_BOOL, isRoutine_Ye2MiAptq3GrXxTQeyXNeAast)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((520192 &(1U<<((NU)((*s).kind)&31U)))!=0);
	return result;
}

static N_INLINE(NIM_BOOL, isConstClosure_4MUa2M7mDMhaGJLAFrkWDwcgen)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T2_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T2_)) goto LA3_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	T2_ = isRoutine_Ye2MiAptq3GrXxTQeyXNeAast((*(*n).sons->data[((NI) 0)]).sym);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T1_ = ((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23));
	LA4_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosure_8mAL9ckajemzgfLPfeZVNoQ_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_760));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_761;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T7_ = (NIM_BOOL)0;
		T7_ = isConstClosure_4MUa2M7mDMhaGJLAFrkWDwcgen(n);
		if (!T7_) goto LA8_;
		TM_MQdRN7fpbG7rPm4JpVVAhA_761 = addInt((*(*p).module).labels, ((NI) 1));
		if (TM_MQdRN7fpbG7rPm4JpVVAhA_761 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_761 > 2147483647) raiseOverflow();
		(*(*p).module).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_761);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*(*p).module).labels)));
		tmp = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_762), T10_);
		nimZeroMem((void*)T11_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
		T11_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
		T11_[1] = tmp;
		T11_[2] = genConstExpr_NYI5fC69aIqZGRakncXv9cNQ_3(p, n);
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = percent__bJpxHYPJaxWBQn6QxwBA4w(T11_, 3);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 10))- 0], T12_);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, tmp, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
	}
	goto LA5_;
	LA8_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp_2;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		nimZeroMem((void*)(&tmp_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 1)], (&b));
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T16_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T16_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T16_ = skipConv_BH9abOhPX8pH0DnEWlRxmlw((*n).sons->data[((NI) 0)]);
			if (!((*T16_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA17_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_763));
		}
		LA17_: ;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, (&tmp_2), NIM_FALSE);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA22_: ;
		res = rawNewString(((NI) 80));
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp_2);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_374));
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp_2);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_764));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T33_);
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, tmp_2);
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rec;
	nimZeroMem((void*)(&rec), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, n, d);
		if (!!(T3_)) goto LA4_;
		t = (*n).typ;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		(void)(T6_);
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA9_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, t, d, NIM_FALSE);
		}
		LA9_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T18_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_765;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					it = (*n).sons->data[i];
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA16_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						it = (*it).sons->data[((NI) 1)];
					}
					LA16_: ;
					initLoc_qlujIAW86QclHYUVxlHRiQ((&rec), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), it, (*d).storage);
					nimZeroMem((void*)T18_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T18_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
					T18_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
					rec.r = percent__5TB09c2Iz60T0YagbSbI5RQ(T18_, 2);
					rec.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, it, (&rec));
					TM_MQdRN7fpbG7rPm4JpVVAhA_765 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_765);
				} LA13: ;
			}
		}
	}
	LA4_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ** resTyp) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty_2;
	result = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	ty_2 = ty;
	{
		if (!!(!(((*r) == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_766));
	}
	LA3_: ;
	{
		while (1) {
			if (!!((ty_2 == NIM_NIL))) goto LA6;
			ty_2 = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(ty_2, IL64(36275087638268176));
			{
				if (!!(((*ty_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*ty_2).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA9_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_767));
			}
			LA9_: ;
			result = lookupInRecord_gYQxUKQhlRY6yBu3Ll2TYg((*ty_2).n, (*field).name);
			{
				if (!!((result == NIM_NIL))) goto LA13_;
				{
					if (!!((resTyp == NIM_NIL))) goto LA17_;
					unsureAsgnRef((void**) (&(*resTyp)), ty_2);
				}
				LA17_: ;
				goto LA5;
			}
			LA13_: ;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
				if (T21_) goto LA22_;
				T21_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
				LA22_: ;
				if (!!(T21_)) goto LA23_;
				add_yG4AKzsBRS1W4MANDlXQeg(r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
			}
			LA23_: ;
			if ((NU)(((NI) 0)) >= (NU)((*ty_2).sons ? (*ty_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ty_2).sons ? (*ty_2).sons->Sup.len : 0)-1);
			ty_2 = (*ty_2).sons->data[((NI) 0)];
		} LA6: ;
	} LA5: ;
	{
		if (!(result == NIM_NIL)) goto LA27_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*field).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_768));
	}
	LA27_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genFieldCheck_9bUUELnkXphPuPspD3YnKHQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* obj, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA test;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA u;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA v;
	nimZeroMem((void*)(&test), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&u), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&v), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(e);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* op;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disc;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* strLit;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T20_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_774;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(i,((*e).sons ? (*e).sons->Sup.len : 0)-1);
				it = (*e).sons->data[i];
				{
					if (!!(((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA6_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_770));
				}
				LA6_: ;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					if (!!(((*(*it).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_771));
				}
				LA10_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				op = (*(*it).sons->data[((NI) 0)]).sym;
				{
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104))) goto LA14_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					it = (*it).sons->data[((NI) 1)];
				}
				LA14_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 2)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				disc = skipConv_BH9abOhPX8pH0DnEWlRxmlw((*it).sons->data[((NI) 2)]);
				{
					if (!!(((*disc).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA18_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_772));
				}
				LA18_: ;
				initLoc_qlujIAW86QclHYUVxlHRiQ((&test), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), it, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*it).sons->data[((NI) 1)], (&u));
				initLoc_qlujIAW86QclHYUVxlHRiQ((&v), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), disc, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				v.r = obj;
				add_yG4AKzsBRS1W4MANDlXQeg(&v.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				add_IM4kcMNkkOLJtqdEqSxR8A(&v.r, (*(*disc).sym).loc.r);
				genInExprAux_9cclvr8sbqtJj8irRbQQpqQ(p, it, (&u), (&v), (&test));
				T20_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T20_ = newStrNode_zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), (*(*field).name).s);
				strLit = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw((*p).module, T20_);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
					NimStringDesc* res;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
					if (!((*op).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 104))) goto LA23_;
					T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T25_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA28_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
					T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T30_ = rdLoc_xidyzuHqIciXbQyEOKahDg(test);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_773));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T31_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), strLit);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA34_: ;
					T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
					T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T37_);
				}
				goto LA21_;
				LA23_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T39_;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
					T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T39_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA42_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA42_: ;
					res_2 = rawNewString(((NI) 80));
					res_2 = resizeString(res_2, 6);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_269));
					T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T44_ = rdLoc_xidyzuHqIciXbQyEOKahDg(test);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
					res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270));
					T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T45_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_773));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T45_);
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), strLit);
					res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA48_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA48_: ;
					T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T50_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T39_, T51_);
				}
				LA21_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_774 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_774);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genObjConstr_BKdMcfvryaJLplX0oFPcAQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NIM_BOOL isRef;
	NIM_BOOL useTemp;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w T16_;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = handleConstExpr_3euU5r9bcG0Rnz4QchCOUyw(p, e, d);
			if (!T9_) goto LA10_;
			goto BeforeRet_;
		}
		LA10_: ;
	}
	LA5_: ;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350135273744));
	isRef = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22));
	T12_ = (NIM_BOOL)0;
	T13_ = (NIM_BOOL)0;
	T13_ = isRef;
	if (T13_) goto LA14_;
	T13_ = !(((62 &(1U<<((NU)((*d).k)&15U)))!=0));
	LA14_: ;
	T12_ = T13_;
	if (T12_) goto LA15_;
	T16_ = (tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w)0;
	T16_ = isPartOf_1otDDZAmvFsmbqPyFytXFg((*d).lode, e);
	T12_ = !((T16_ == ((tyEnum_TAnalysisResult_p9a9bcrXoRmLT4eUuwrDq9b4w) 0)));
	LA15_: ;
	useTemp = T12_;
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	r = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!useTemp) goto LA19_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, t, (&tmp), NIM_FALSE);
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T25_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T26_;
			if (!isRef) goto LA23_;
			rawGenNew_xJGU3j3G6xInb7v14wgw2Q(p, tmp, NIM_NIL);
			T25_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T25_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
			t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T25_, IL64(36134350135273744));
			nimZeroMem((void*)T26_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T26_[0] = r;
			r = percent__TbMwXzwNL7txOQADiTjwKA(T26_, 1);
			gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, e);
		}
		goto LA21_;
		LA23_: ;
		{
			constructLoc_UnMShnfXExBqkSCjaZsFdw(p, tmp, NIM_FALSE);
		}
		LA21_: ;
	}
	goto LA17_;
	LA19_: ;
	{
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, d);
		r = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
	}
	LA17_: ;
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
	(void)(T29_);
	ty = t;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(e);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp2;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_775;
				if (!(i_2 < colontmp_)) goto LA32;
				i = i_2;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(i,((*e).sons ? (*e).sons->Sup.len : 0)-1);
				it = (*e).sons->data[i];
				nimZeroMem((void*)(&tmp2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				tmp2.r = r;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, (*(*it).sons->data[((NI) 0)]).sym, &tmp2.r, NIM_NIL);
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA35_;
					fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, ty);
				}
				LA35_: ;
				{
					if (!((*field).loc.r == NIM_NIL)) goto LA39_;
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_769));
				}
				LA39_: ;
				{
					NIM_BOOL T43_;
					NI T44_;
					T43_ = (NIM_BOOL)0;
					T44_ = (NI)0;
					T44_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					T43_ = (T44_ == ((NI) 3));
					if (!(T43_)) goto LA45_;
					T43_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0);
					LA45_: ;
					if (!T43_) goto LA46_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 2)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					genFieldCheck_9bUUELnkXphPuPspD3YnKHQ(p, (*it).sons->data[((NI) 2)], r, field);
				}
				LA46_: ;
				add_yG4AKzsBRS1W4MANDlXQeg(&tmp2.r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
				add_IM4kcMNkkOLJtqdEqSxR8A(&tmp2.r, (*field).loc.r);
				{
					if (!useTemp) goto LA50_;
					tmp2.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1);
					{
						if (!isRef) goto LA54_;
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
					}
					goto LA52_;
					LA54_: ;
					{
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
					}
					LA52_: ;
				}
				goto LA48_;
				LA50_: ;
				{
					tmp2.k = (*d).k;
					{
						if (!isRef) goto LA60_;
						tmp2.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
					}
					goto LA58_;
					LA60_: ;
					{
						tmp2.storage = (*d).storage;
					}
					LA58_: ;
				}
				LA48_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				tmp2.lode = (*it).sons->data[((NI) 1)];
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).sons->data[((NI) 1)], (&tmp2));
				TM_MQdRN7fpbG7rPm4JpVVAhA_775 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_775);
			} LA32: ;
		}
	}
	{
		if (!useTemp) goto LA65_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA69_;
			genericAssign((void*)(&(*d)), (void*)(&tmp), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		}
		goto LA67_;
		LA69_: ;
		{
			genAssignment_BtucsTdHw7orsXIL75hNVg(p, (*d), tmp, 0);
		}
		LA67_: ;
	}
	LA65_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCast_BKdMcfvryaJLplX0oFPcAQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destt;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* srct;
	destt = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(36134350136322320));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	srct = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	{
		NIM_BOOL T3_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_776;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lbl;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T8_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*destt).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*destt).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*destt).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*destt).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*destt).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (T3_) goto LA4_;
		T3_ = ((*srct).kind >= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*srct).kind <= ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*srct).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18) || (*srct).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17) || (*srct).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16));
		LA4_: ;
		if (!T3_) goto LA5_;
		TM_MQdRN7fpbG7rPm4JpVVAhA_776 = addInt((*p).labels, ((NI) 1));
		if (TM_MQdRN7fpbG7rPm4JpVVAhA_776 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_776 > 2147483647) raiseOverflow();
		(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_776);
		lbl = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
		nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = lbl;
		tmp.r = percent__NIzUqj4Mr1E3EKy0AkJaXQ(T7_, 1);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T8_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA11_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA11_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_777));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*e).sons->data[((NI) 1)]).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_778));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*e).typ);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_779));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), lbl);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T8_, T20_);
		tmp.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6);
		tmp.lode = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(srct);
		tmp.storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 2);
		tmp.flags = 0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 1)], (&tmp));
		nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T21_[0] = lbl;
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent__yQdCkIARIVr9aqI8oVxi9cQw(T21_, 1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T22_, tmp.storage);
	}
	goto LA1_;
	LA5_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genConv_BKdMcfvryaJLplX0oFPcAQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destType;
	destType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*e).typ, IL64(211106240923664));
	{
		NIM_BOOL T3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = sameBackendType_n70Tq9c0HITdaYm9cT8YLryw(destType, (*(*e).sons->data[((NI) 1)]).typ);
		if (!T3_) goto LA4_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 1)], d);
	}
	goto LA1_;
	LA4_: ;
	{
		genSomeCast_BKdMcfvryaJLplX0oFPcAQ_13(p, e, d);
	}
	LA1_: ;
}

static N_INLINE(NIM_BOOL, isCppRef_Rt7PF9bsOeNWjGFhSpqAlTwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
	if (T3_) goto LA4_;
	T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T6_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	T2_ = ((*T6_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
	LA5_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA7_;
	T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
	T1_ = !((((*T8_).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
	LA7_: ;
	result = T1_;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAddr_BKdMcfvryaJLplX0oFPcAQ_22)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (!((*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T3_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA4_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 0)], (&a));
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96), a.r);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T6_, a.storage);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T8_;
		tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w T9_;
		T8_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T9_ = (tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w)0;
		T9_ = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e).sons->data[((NI) 0)]).typ);
		T8_ = (T9_ == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 17));
		if (T8_) goto LA10_;
		T8_ = isCppRef_Rt7PF9bsOeNWjGFhSpqAlTwcgen(p, (*e).typ);
		LA10_: ;
		if (!T8_) goto LA11_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 0)], (&a_2));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a_2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T14_, a_2.storage);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genUncheckedArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).storage = a.storage;
	}
	LA3_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T11_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* first;
	NI64 T2_;
	NimStringDesc* res_3;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(49785886521469200));
	T2_ = (NI64)0;
	T2_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
	first = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T2_);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = !(((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49)));
		LA6_: ;
		if (!T5_) goto LA7_;
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = isConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ(y);
			if (!!(T11_)) goto LA12_;
			{
				NI64 T16_;
				T16_ = (NI64)0;
				T16_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
				if (!(T16_ == IL64(0))) goto LA17_;
				{
					NIM_BOOL T21_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
					NI64 T23_;
					NI64 T24_;
					NI64 T26_;
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T27_;
					NI64 T28_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T31_;
					NimStringDesc* res;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
					NI64 T37_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
					NI64 T41_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
					T21_ = (NIM_BOOL)0;
					T22_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T22_ = t_XNOXh7uniWNgiq58C9bW49awcgen(b);
					T23_ = (NI64)0;
					T23_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, T22_);
					T24_ = (NI64)0;
					T24_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
					T21_ = (T23_ < T24_);
					if (T21_) goto LA25_;
					T26_ = (NI64)0;
					T26_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
					T27_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T27_ = t_XNOXh7uniWNgiq58C9bW49awcgen(b);
					T28_ = (NI64)0;
					T28_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, T27_, NIM_FALSE);
					T21_ = (T26_ < T28_);
					LA25_: ;
					if (!T21_) goto LA29_;
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T31_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA34_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA34_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_780));
					T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T36_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T36_);
					res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_781));
					T37_ = (NI64)0;
					T37_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
					T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T37_);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T38_);
					res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_270));
					T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T39_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_782));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T39_);
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
					T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T40_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T40_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
					T41_ = (NI64)0;
					T41_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
					T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T42_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T41_);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T42_);
					res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA45_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA45_: ;
					T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T47_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
					T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T48_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T31_, T48_);
				}
				LA29_: ;
			}
			goto LA14_;
			LA17_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T50_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
				NI64 T57_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
				NI64 T61_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
				T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T50_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA53_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA53_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T55_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T55_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_146));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_498));
				T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T56_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T56_);
				res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_499));
				T57_ = (NI64)0;
				T57_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T58_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T57_);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T58_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
				T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T59_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_783));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T59_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T60_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T60_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), first);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T61_ = (NI64)0;
				T61_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(T61_);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T62_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA65_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA65_: ;
				T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T67_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T68_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T67_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T50_, T68_);
			}
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			NI64 idx;
			idx = getOrdValue_MzTDl1zEXJLD4sql7PhCwA(y);
			{
				NIM_BOOL T72_;
				NI64 T73_;
				NI64 T75_;
				NimStringDesc* T78_;
				NimStringDesc* T79_;
				NI64 T80_;
				NimStringDesc* T81_;
				NI64 T82_;
				NimStringDesc* T83_;
				T72_ = (NIM_BOOL)0;
				T73_ = (NI64)0;
				T73_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
				T72_ = (idx < T73_);
				if (T72_) goto LA74_;
				T75_ = (NI64)0;
				T75_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T72_ = (T75_ < idx);
				LA74_: ;
				if (!T72_) goto LA76_;
				T78_ = (NimStringDesc*)0;
				T79_ = (NimStringDesc*)0;
				T79_ = nimInt64ToStr(idx);
				T80_ = (NI64)0;
				T80_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, ty);
				T81_ = (NimStringDesc*)0;
				T81_ = nimInt64ToStr(T80_);
				T82_ = (NI64)0;
				T82_ = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, ty, NIM_FALSE);
				T83_ = (NimStringDesc*)0;
				T83_ = nimInt64ToStr(T82_);
				T78_ = rawNewString((T79_ ? T79_->Sup.len : 0) + (T81_ ? T81_->Sup.len : 0) + (T83_ ? T83_->Sup.len : 0) + 18);
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_784));
appendString(T78_, T79_);
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_785));
appendString(T78_, T81_);
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_786));
appendString(T78_, T83_);
				localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*x).info, T78_);
			}
			LA76_: ;
		}
		LA9_: ;
	}
	LA7_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA86_;
		(*d).storage = a.storage;
	}
	LA86_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA90_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA90_: ;
	res_3 = rawNewString(((NI) 80));
	T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T92_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T92_);
	res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_787));
	T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T93_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T93_);
	res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_788));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), first);
	res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T94_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T94_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	NimStringDesc* res_2;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_780));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_552));
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_789));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_782));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_790));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_791));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA17_: ;
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T20_);
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA23_;
		(*d).storage = a.storage;
	}
	LA23_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA27_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA27_: ;
	res_2 = rawNewString(((NI) 80));
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T29_);
	res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
	T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T30_);
	res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T31_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T31_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	NimStringDesc* res_4;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350144710928));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA4_;
		T6_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(ty);
		ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T6_, IL64(36134350144710928));
	}
	LA4_: ;
	{
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 4))&31U)))!=0)) goto LA9_;
		{
			NIM_BOOL T13_;
			NIM_BOOL T15_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			T13_ = (NIM_BOOL)0;
			T13_ = ((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28));
			if (!(T13_)) goto LA14_;
			T15_ = (NIM_BOOL)0;
			T15_ = NIM_FALSE;
			if (T15_) goto LA16_;
			T15_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 24))&31U)))!=0);
			LA16_: ;
			T13_ = T15_;
			LA14_: ;
			if (!T13_) goto LA17_;
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA22_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_780));
			T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
			res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_792));
			T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T25_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T25_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T26_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_782));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T26_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T27_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_790));
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T28_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA31_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA31_: ;
			T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T33_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T34_);
		}
		goto LA11_;
		LA17_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
			T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T36_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA39_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA39_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_780));
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T41_);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_558));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T42_);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_782));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T43_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = rdLoc_xidyzuHqIciXbQyEOKahDg(b);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T44_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_790));
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = lenExpr_Xfvxpx3W1zkiCqENsur9ckg(p, a);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T45_);
			res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_793));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA48_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA48_: ;
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T50_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T36_, T51_);
		}
		LA11_: ;
	}
	LA9_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA54_;
		(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
	}
	LA54_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T58_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T59_;
		NimStringDesc* res_3;
		T58_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T58_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		T59_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T59_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T58_, IL64(36275087632017680));
		if (!((*T59_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T59_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA60_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA64_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA64_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_82));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), a.r);
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		a.r = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
	}
	LA60_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA68_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA68_: ;
	res_4 = rawNewString(((NI) 80));
	T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T70_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T70_);
	T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T71_ = dataField_3AsTOpq9crZUYBL9aD1lXBng_2(p);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T71_);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
	T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T72_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T72_);
	res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T73_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T73_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA b;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&b), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, x, (&a));
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, y, (&b));
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		(*d).storage = a.storage;
	}
	LA3_: ;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(b);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_151));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T11_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genTupleElem_BKdMcfvryaJLplX0oFPcAQ_23)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI i;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tupType;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T14_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	i = (NI)0;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	tupType = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(36134350143662352));
	{
		if (!!(((*tupType).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_794));
	}
	LA4_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
		(*d).storage = a.storage;
	}
	LA8_: ;
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T10_);
	(void)(T11_);
	r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	switch ((*(*e).sons->data[((NI) 1)]).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*e).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
		i = ((NI)chckRange64((*(*e).sons->data[((NI) 1)]).intVal, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
	}
	break;
	default:
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_795));
	}
	break;
	}
	nimZeroMem((void*)T14_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T14_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i)));
	T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T15_ = percent__WYvjnWcyRjjjI0lasIi1YA(T14_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&r, T15_);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(49645149026822416));
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21))) goto LA3_;
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(ty);
		ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T5_, IL64(36134350144710928));
	}
	LA3_: ;
	switch ((*ty).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 49):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genUncheckedArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ(p, n, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_2(p, n, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 27):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 48):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genOpenArrayElem_BCJD8YW9ak7zQIm4nTPgpMQ_3(p, n, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24):
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genSeqElem_BCJD8YW9ak7zQIm4nTPgpMQ_4(p, n, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genCStringElem_BCJD8YW9ak7zQIm4nTPgpMQ_5(p, n, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		genTupleElem_BKdMcfvryaJLplX0oFPcAQ_23(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T13_;
		T13_ = (NimStringDesc*)0;
		T13_ = rawNewString((reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 21);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_796));
appendString(T13_, reprEnum((NI)(*ty).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
appendChar(T13_, 41);
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T13_);
	}
	break;
	}
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
	(void)(T14_);
}

N_LIB_PRIVATE N_NIMCALL(void, genDeref_BKdMcfvryaJLplX0oFPcAQ_24)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w mt;
{	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	mt = mapType_K9aceyVl15zb9aYN9b6YJ8TnA((*(*(*p).module).g).config, (*(*e).sons->data[((NI) 0)]).typ);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((393216 &(1U<<((NU)(mt)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !((((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9))&15U)))!=0));
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 0)], d);
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T9_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*e).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
			if (!((*T9_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA10_;
			(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
		}
		LA10_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		typ = (*(*e).sons->data[((NI) 0)]).typ;
		{
			NIM_BOOL T15_;
			T15_ = (NIM_BOOL)0;
			T15_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 52) || (*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 53));
			if (!(T15_)) goto LA16_;
			T15_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 10))&63U)))!=0);
			LA16_: ;
			if (!T15_) goto LA17_;
			typ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(typ);
		}
		LA17_: ;
		typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36134350135273744));
		{
			NIM_BOOL T21_;
			NIM_BOOL T22_;
			NIM_BOOL T23_;
			NIM_BOOL T26_;
			T21_ = (NIM_BOOL)0;
			T22_ = (NIM_BOOL)0;
			T23_ = (NIM_BOOL)0;
			T23_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
			if (!(T23_)) goto LA24_;
			T23_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
			LA24_: ;
			T22_ = T23_;
			if (!(T22_)) goto LA25_;
			T26_ = (NIM_BOOL)0;
			T26_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T26_) goto LA27_;
			T26_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA27_: ;
			T22_ = T26_;
			LA25_: ;
			T21_ = T22_;
			if (!(T21_)) goto LA28_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			T21_ = ((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64));
			LA28_: ;
			if (!T21_) goto LA29_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*e).sons->data[((NI) 0)]).sons ? (*(*e).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*e).sons->data[((NI) 0)]).sons ? (*(*e).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*(*e).sons->data[((NI) 0)]).sons->data[((NI) 0)], d);
			goto BeforeRet_;
		}
		goto LA19_;
		LA29_: ;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*e).sons->data[((NI) 0)], (&a));
		}
		LA19_: ;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA34_;
			switch ((*typ).kind) {
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3);
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23):
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
				{
					NIM_BOOL T40_;
					NIM_BOOL T41_;
					NIM_BOOL T43_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
					T40_ = (NIM_BOOL)0;
					T41_ = (NIM_BOOL)0;
					T41_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
					if (!(T41_)) goto LA42_;
					T43_ = (NIM_BOOL)0;
					T43_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T43_) goto LA44_;
					T43_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA44_: ;
					T41_ = T43_;
					LA42_: ;
					T40_ = T41_;
					if (!(T40_)) goto LA45_;
					T40_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
					LA45_: ;
					if (!T40_) goto LA46_;
					T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T48_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T48_, a.storage);
					goto BeforeRet_;
				}
				LA46_: ;
			}
			break;
			case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21):
			{
				(*d).storage = ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0);
			}
			break;
			default:
			{
				NimStringDesc* T51_;
				T51_ = (NimStringDesc*)0;
				T51_ = rawNewString((reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 9);
appendString(T51_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_797));
appendString(T51_, reprEnum((NI)(*typ).kind, (&NTI_9a3YiReNVD0IJHWFKgXRe9ag_)));
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T51_);
			}
			break;
			}
		}
		goto LA32_;
		LA34_: ;
		{
			NIM_BOOL T53_;
			T53_ = (NIM_BOOL)0;
			T53_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T53_) goto LA54_;
			T53_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA54_: ;
			if (!T53_) goto LA55_;
			{
				NIM_BOOL T59_;
				NIM_BOOL T60_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
				T59_ = (NIM_BOOL)0;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23));
				if (!(T60_)) goto LA61_;
				T60_ = !((((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag_x2m5g1NpbmDig4wLT3Ylhw) 19))&63U)))!=0));
				LA61_: ;
				T59_ = T60_;
				if (!(T59_)) goto LA62_;
				T59_ = ((*e).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65));
				LA62_: ;
				if (!T59_) goto LA63_;
				T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T65_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T65_, a.storage);
				goto BeforeRet_;
			}
			LA63_: ;
		}
		goto LA32_;
		LA55_: ;
		LA32_: ;
		{
			NIM_BOOL T68_;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T72_;
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T73_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			T68_ = (NIM_BOOL)0;
			T68_ = (mt == ((tyEnum_TCTypeKind_ceqS9bAmd9bxxuxr8tfIIw5w) 18));
			if (!(T68_)) goto LA69_;
			T68_ = (((*d).flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9))&15U)))!=0);
			LA69_: ;
			if (!T68_) goto LA70_;
			T72_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T72_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			if ((NU)(((NI) 0)) >= (NU)((*T72_).sons ? (*T72_).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*T72_).sons ? (*T72_).sons->Sup.len : 0)-1);
			T73_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			T73_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg((*T72_).sons->data[((NI) 0)]);
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, T73_, T74_, a.storage);
		}
		goto LA66_;
		LA70_: ;
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T76_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
			nimZeroMem((void*)T76_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T76_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T77_ = percent__TbMwXzwNL7txOQADiTjwKA(T76_, 1);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, T77_, a.storage);
		}
		LA66_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 0)], a);
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!!(((*(*e).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_798));
	}
	LA3_: ;
	{
		if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA7_;
		(*d).storage = (*a).storage;
	}
	LA7_: ;
	T9_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T9_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*a));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T9_);
	(void)(T10_);
}

N_LIB_PRIVATE N_NIMCALL(void, genRecordField_BKdMcfvryaJLplX0oFPcAQ_25)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, e, d, (&a));
	r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	f = (*(*e).sons->data[((NI) 1)]).sym;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T1_, IL64(49645149017385232));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!((*ty).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T6_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*f).position)));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = percent__WYvjnWcyRjjjI0lasIi1YA(T6_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&r, T7_);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rtyp;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		rtyp = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, &rtyp);
		{
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = ((*field).loc.r == NIM_NIL);
			if (!(T11_)) goto LA12_;
			T11_ = !((rtyp == NIM_NIL));
			LA12_: ;
			if (!T11_) goto LA13_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, rtyp);
		}
		LA13_: ;
		{
			NimStringDesc* T19_;
			NimStringDesc* T20_;
			if (!((*field).loc.r == NIM_NIL)) goto LA17_;
			T19_ = (NimStringDesc*)0;
			T20_ = (NimStringDesc*)0;
			T20_ = typeToString_QlvraUan7WbHowhAbvDvdA(ty, ((tyEnum_TPreferedDesc_tnd4qt9c4xddV8oKV5zyusw) 0));
			T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 17);
appendString(T19_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_799));
appendString(T19_, T20_);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, T19_);
		}
		LA17_: ;
		nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T21_[0] = (*field).loc.r;
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = percent__hR4oq6WdDjEl0JIvQtvUlg(T21_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&r, T22_);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, e, r, a.storage);
	}
	LA2_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_26)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* ty;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* f;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		genRecordFieldAux_O8nIPJbfEFU0FjR77WG5eA(p, (*e).sons->data[((NI) 0)], d, (&a));
		T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T5_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		ty = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T5_, IL64(49645149017385232));
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*(*e).sons->data[((NI) 0)]).sons ? (*(*e).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*e).sons->data[((NI) 0)]).sons ? (*(*e).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*e).sons->data[((NI) 0)]).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*e).sons->data[((NI) 0)]).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		f = (*(*(*e).sons->data[((NI) 0)]).sons->data[((NI) 1)]).sym;
		field = lookupFieldAgain_x9bTneajlTd1ibxrXw5m2Pw(p, ty, f, &r, NIM_NIL);
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA8_;
			fillObjectFields_4q3XOfd3NI3C8cSNkaF9cWA_2((*p).module, ty);
		}
		LA8_: ;
		{
			if (!((*field).loc.r == NIM_NIL)) goto LA12_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*e).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_768));
		}
		LA12_: ;
		genFieldCheck_9bUUELnkXphPuPspD3YnKHQ(p, e, r, field);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_204));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*field).loc.r);
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(&r, T18_);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, (*e).sons->data[((NI) 0)], r, a.storage);
	}
	goto LA1_;
	LA3_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_25(p, (*e).sons->data[((NI) 0)], d);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBlock_8mAL9ckajemzgfLPfeZVNoQ_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI oldBreakIdx;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			if (!((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA8_;
			getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
		}
		LA8_: ;
		(*d).flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
	}
	LA4_: ;
	oldBreakIdx = (*p).breakIdx;
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA13_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA17_: ;
	T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T20_);
	(*p).breakIdx = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_801;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA23_;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA27_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_800));
		}
		LA27_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		sym = (*(*n).sons->data[((NI) 0)]).sym;
		(*sym).loc.k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10);
		TM_MQdRN7fpbG7rPm4JpVVAhA_801 = addInt((*p).breakIdx, ((NI) 1));
		(*sym).position = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_801);
	}
	LA23_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).sons->data[((NI) 1)], d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* filename, NI line) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	NimStringDesc* res;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_248));
	(void)(T1_);
	if ((NU)(((NI) 0)) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(((NI) 0),((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = frame;
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__84GQPNcrIJtbrzuA7JnMPw(T2_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*p).blocks->data[((NI) 0)].sections[(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0))- 0], T3_);
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA6_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA6_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_805));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), procname);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_806));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), filename);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_807));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_808));
	cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (line)));
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_147));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 21);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_809));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA10_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA10_: ;
	result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frame) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_812));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), frame);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA8_: ;
	result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL hasNimFrame;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frameName;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*p).prc == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = !((((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_802;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_MQdRN7fpbG7rPm4JpVVAhA_802 = subInt(T6_, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_802);
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_810;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_803;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* theMacro;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						T15_ = (NIM_BOOL)0;
						T15_ = hasNimFrame;
						if (!(T15_)) goto LA16_;
						T15_ = (frameName == NIM_NIL);
						LA16_: ;
						if (!T15_) goto LA17_;
						TM_MQdRN7fpbG7rPm4JpVVAhA_803 = addInt((*p).labels, ((NI) 1));
						if (TM_MQdRN7fpbG7rPm4JpVVAhA_803 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_803 > 2147483647) raiseOverflow();
						(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_803);
						T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_804), T19_);
						frameName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						theMacro = (*(*it).sons->data[((NI) 0)]).sym;
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add_IM4kcMNkkOLJtqdEqSxR8A(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_810 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_810);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_811;
		T28_ = (NI)0;
		T28_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T31_ = (NI)0;
		T31_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_MQdRN7fpbG7rPm4JpVVAhA_811 = subInt(T31_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_811)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_811),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_811)], d);
	}
	LA29_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add_IM4kcMNkkOLJtqdEqSxR8A(T36_, T37_);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genStmtList_UtJx89cn0a8CNSWWmaj6raA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL hasNimFrame;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* frameName;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*p).prc == NIM_NIL));
	if (!(T2_)) goto LA3_;
	T2_ = !((((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = (((*(*p).prc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
	LA4_: ;
	hasNimFrame = T1_;
	frameName = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_813;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = (NI)0;
		T6_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_MQdRN7fpbG7rPm4JpVVAhA_813 = subInt(T6_, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_813);
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_815;
				if (!(res <= colontmp_)) goto LA8;
				i = res;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 24))) goto LA11_;
					{
						NIM_BOOL T15_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_814;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* theMacro;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
						T15_ = (NIM_BOOL)0;
						T15_ = hasNimFrame;
						if (!(T15_)) goto LA16_;
						T15_ = (frameName == NIM_NIL);
						LA16_: ;
						if (!T15_) goto LA17_;
						TM_MQdRN7fpbG7rPm4JpVVAhA_814 = addInt((*p).labels, ((NI) 1));
						if (TM_MQdRN7fpbG7rPm4JpVVAhA_814 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_814 > 2147483647) raiseOverflow();
						(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_814);
						T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T19_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_804), T19_);
						frameName = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						theMacro = (*(*it).sons->data[((NI) 0)]).sym;
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T21_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*theMacro).name).s);
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg((*(*(*p).module).g).config, (*theMacro).info);
						T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T24_ = initFrameNoDebug_pzdwBzdMmIm0ZmOmWB6yqA(p, frameName, T22_, T23_, ((NI) ((*it).info.line)));
						add_IM4kcMNkkOLJtqdEqSxR8A(T21_, T24_);
					}
					LA17_: ;
				}
				goto LA9_;
				LA11_: ;
				{
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, it);
				}
				LA9_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_815 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_815);
			} LA8: ;
		}
	}
	{
		NI T28_;
		NI T31_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_816;
		T28_ = (NI)0;
		T28_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T28_)) goto LA29_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T31_ = (NI)0;
		T31_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_MQdRN7fpbG7rPm4JpVVAhA_816 = subInt(T31_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_816)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_816),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_816)]);
	}
	LA29_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		if (!!((frameName == NIM_NIL))) goto LA34_;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T36_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = deinitFrameNoDebug_i9b8wSa9cUkrnf3r9bmZ8OzfA(p, frameName);
		add_IM4kcMNkkOLJtqdEqSxR8A(T36_, T37_);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genIf_8mAL9ckajemzgfLPfeZVNoQ_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lelse;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	lelse = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	lend = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T9_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		colontmp_ = (*n).sons;
		i = ((NI) 0);
		T9_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T9_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_819;
				if (!(i < L)) goto LA11;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				it = colontmp_->data[i];
				{
					NIM_BOOL T14_;
					T14_ = (NIM_BOOL)0;
					T14_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T14_)) goto LA15_;
					T14_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
					LA15_: ;
					if (!T14_) goto LA16_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA16_: ;
				{
					NI T20_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T23_;
					NimStringDesc* res;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
					NI T34_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_817;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T35_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T36_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
					T20_ = (NI)0;
					T20_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T20_ == ((NI) 2))) goto LA21_;
					T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T23_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA26_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA26_: ;
					res = rawNewString(((NI) 80));
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA30_;
						res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA30_: ;
					T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T32_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
					T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T33_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T23_, T33_);
					T34_ = (NI)0;
					T34_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*it).sons->data[((NI) 0)], (&a));
					lelse = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
					TM_MQdRN7fpbG7rPm4JpVVAhA_817 = addInt((*p).labels, ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_817 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_817 > 2147483647) raiseOverflow();
					(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_817);
					T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T35_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T36_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T36_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
					T36_[1] = lelse;
					T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T37_ = percent__SqZEI7bxySjmJX4GsXyvKw(T36_, 2);
					T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T38_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T35_, T38_);
					{
						NIM_BOOL T41_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T46_;
						T41_ = (NIM_BOOL)0;
						T41_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
						if (T41_) goto LA42_;
						T41_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
						LA42_: ;
						if (!T41_) goto LA43_;
						T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_yG4AKzsBRS1W4MANDlXQeg(T45_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).sons->data[((NI) 1)], d);
						T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T46_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						add_yG4AKzsBRS1W4MANDlXQeg(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_397));
					}
					goto LA39_;
					LA43_: ;
					{
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).sons->data[((NI) 1)], d);
					}
					LA39_: ;
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
					{
						NI T50_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T53_;
						tyArray_JiWwrsTRC6xqNlGcBthSVA T54_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
						T50_ = (NI)0;
						T50_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
						if (!(((NI) 1) < T50_)) goto LA51_;
						T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T53_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T54_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T54_[0] = lend;
						T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T55_ = percent__c1f569aWpTd825BTnv9bq4Xg(T54_, 1);
						T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T56_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T53_, T56_);
					}
					LA51_: ;
					fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lelse);
				}
				goto LA18_;
				LA21_: ;
				{
					NI T58_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T61_;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
					NI T72_;
					T58_ = (NI)0;
					T58_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T58_ == ((NI) 1))) goto LA59_;
					T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T61_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA64_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA64_: ;
					res_2 = rawNewString(((NI) 80));
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA68_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA68_: ;
					T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T70_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T71_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T61_, T71_);
					T72_ = (NI)0;
					T72_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*it).sons->data[((NI) 0)], d);
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA18_;
				LA59_: ;
				{
					internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_818));
				}
				LA18_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_819 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_819);
				{
					NI T76_;
					T76_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T76_ == L))) goto LA77_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA77_: ;
			} LA11: ;
		}
	}
	{
		NI T81_;
		T81_ = (NI)0;
		T81_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
		if (!(((NI) 1) < T81_)) goto LA82_;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA82_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, downConv_8mAL9ckajemzgfLPfeZVNoQ_15)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		NIM_BOOL T3_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36275087638309136));
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T7_);
		(void)(T8_);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*n).sons->data[((NI) 0)], d);
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* arg;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		NIM_BOOL isRef;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		dest = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087638309136));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		arg = (*n).sons->data[((NI) 0)];
		{
			while (1) {
				if (!((*arg).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66))) goto LA11;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*arg).kind)>>3] &(1U<<((NU)((*arg).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*arg).sons ? (*arg).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*arg).sons ? (*arg).sons->Sup.len : 0)-1);
				arg = (*arg).sons->data[((NI) 0)];
			} LA11: ;
		}
		src = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36275087638309136));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, src);
		(void)(T12_);
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, arg, (&a));
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T13_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(36134350135273744));
		isRef = ((*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T13_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47));
		{
			if (!isRef) goto LA16_;
			add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_820));
		}
		goto LA14_;
		LA16_: ;
		{
			add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
		}
		LA14_: ;
		{
			NI i;
			NI colontmp_;
			NI T20_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T20_ = (NI)0;
			T20_ = inheritanceDiff_1dM2iQB5qStJfnn3684ijQ_2(dest, src);
			if (T20_ == (-2147483647 -1)) raiseOverflow();
			colontmp_ = (T20_ > 0? (T20_) : -(T20_));
			res = ((NI) 2);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_821;
					if (!(res <= colontmp_)) goto LA22;
					i = res;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
					TM_MQdRN7fpbG7rPm4JpVVAhA_821 = addInt(res, ((NI) 1));
					res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_821);
				} LA22: ;
			}
		}
		{
			if (!isRef) goto LA25_;
			{
				NIM_BOOL T29_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T31_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T34_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
				T29_ = (NIM_BOOL)0;
				T29_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
				if (!(T29_)) goto LA30_;
				T31_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T31_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
				T29_ = ((*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*T31_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47));
				LA30_: ;
				if (!T29_) goto LA32_;
				getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*n).typ, d, NIM_FALSE);
				T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T34_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA37_: ;
				res_2 = rawNewString(((NI) 80));
				T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T39_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*d));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_822));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), r);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA42_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA42_: ;
				T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T44_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T45_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T34_, T45_);
			}
			goto LA27_;
			LA32_: ;
			{
				r = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_96), r);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, r, a.storage);
			}
			LA27_: ;
		}
		goto LA23_;
		LA25_: ;
		{
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, r, a.storage);
		}
		LA23_: ;
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, upConv_8mAL9ckajemzgfLPfeZVNoQ_16)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	dest = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087638309136));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* nilCheck;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* checkFor;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 1))&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isObjLackingTypeField_kS4QQNg40ThwD2ps8HD9aQgcgen(dest);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		r = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		nilCheck = NIM_NIL;
		T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T8_, IL64(36134350135273744));
		{
			while (1) {
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
				if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 21) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA10;
				{
					if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47)))) goto LA13_;
					nilCheck = r;
				}
				LA13_: ;
				{
					NIM_BOOL T17_;
					NIM_BOOL T19_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T23_;
					T17_ = (NIM_BOOL)0;
					T17_ = !(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 23) || (*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 47)));
					if (T17_) goto LA18_;
					T19_ = (NIM_BOOL)0;
					T19_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T19_) goto LA20_;
					T19_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA20_: ;
					T17_ = !(T19_);
					LA18_: ;
					if (!T17_) goto LA21_;
					nimZeroMem((void*)T23_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T23_[0] = r;
					r = percent__TbMwXzwNL7txOQADiTjwKA(T23_, 1);
				}
				LA21_: ;
				T24_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T24_ = lastSon_Bdq9aiV9buvJtPvmOc0OR5JQ(t);
				t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T24_, IL64(36134350135273744));
			} LA10: ;
		}
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, t);
		(void)(T25_);
		{
			NIM_BOOL T28_;
			T28_ = (NIM_BOOL)0;
			T28_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T28_) goto LA29_;
			T28_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA29_: ;
			if (!!(T28_)) goto LA30_;
			{
				while (1) {
					NIM_BOOL T34_;
					T34_ = (NIM_BOOL)0;
					T34_ = ((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17));
					if (!(T34_)) goto LA35_;
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T34_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
					LA35_: ;
					if (!T34_) goto LA33;
					add_yG4AKzsBRS1W4MANDlXQeg(&r, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_135));
					if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
					t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
				} LA33: ;
			}
		}
		LA30_: ;
		{
			if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA38_;
			checkFor = genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg((*p).module, dest);
		}
		goto LA36_;
		LA38_: ;
		{
			checkFor = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, dest, (*n).info);
		}
		LA36_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
			if (!!((nilCheck == NIM_NIL))) goto LA43_;
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA48_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), nilCheck);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_134));
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_823));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T50_);
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), r);
			res = resizeString(res, 9);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), checkFor);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA53_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA53_: ;
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T56_);
		}
		goto LA41_;
		LA43_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T58_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
			T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T58_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA61_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA61_: ;
			res_2 = rawNewString(((NI) 80));
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_823));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T63_);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), r);
			res_2 = resizeString(res_2, 9);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_636));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), checkFor);
			res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA66_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA66_: ;
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T68_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T58_, T69_);
		}
		LA41_: ;
	}
	LA6_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T74_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!!(((*(*(*n).sons->data[((NI) 0)]).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA72_;
		nimZeroMem((void*)T74_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T74_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*n).typ);
		T74_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T75_ = percent__GNSb4l0oRsR1gu66azz1LQ(T74_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T75_, a.storage);
	}
	goto LA70_;
	LA72_: ;
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T77_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
		nimZeroMem((void*)T77_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T77_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, dest);
		T77_[1] = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
		T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T78_ = percent__duX6hgjmpJtFFdvJVuoafg(T77_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T78_, a.storage);
	}
	LA70_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRangeChck_s6WVujc8IISl9b7Y39bTXvlw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NimStringDesc* magic) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dest;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	dest = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017680));
	{
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T5_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 3))&31U)))!=0))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
		nimZeroMem((void*)T5_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T5_[0] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, dest);
		T5_[1] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T6_ = percent__GNSb4l0oRsR1gu66azz1LQ(T5_, 2);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T6_, a.storage);
	}
	goto LA1_;
	LA3_: ;
	{
		NimStringDesc* mm;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T13_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		{
			if (!((*dest).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 43) || (*dest).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 44) || (*dest).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 40))) goto LA10_;
			mm = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_824));
		}
		goto LA8_;
		LA10_: ;
		{
			mm = magic;
		}
		LA8_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
		T13_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T13_ = lodeTyp_Zo4XKVi6BmwOZE51Yogqwg(dest);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA16_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA16_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
		T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T18_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T18_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, mm);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T19_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*n).sons->data[((NI) 1)], dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T21_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*n).sons->data[((NI) 2)], dest);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_267));
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, T13_, T23_, a.storage);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_17)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_550));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T7_, a.storage);
}

N_LIB_PRIVATE N_NIMCALL(void, convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_18)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_631));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T7_, a.storage);
	gcUsage_Faz6su3hXrHmiSECd9c9a6Pg((*(*(*p).module).g).config, n);
}

N_LIB_PRIVATE N_NIMCALL(void, genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI casePos;
	NI arraySize;
	NI id;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_836;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_837;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_838;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T31_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* gotoArray;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T32_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T38_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_842;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T40_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T46_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
{	casePos = ((NI) -1);
	arraySize = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_834;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI64 aSize;
					if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97))) goto LA6_;
					{
						tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T10_;
						T10_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
						T10_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
						if (!!(((*T10_).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA11_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_830));
						goto BeforeRet_;
					}
					LA11_: ;
					casePos = i;
					{
						NIM_BOOL T15_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T15_ = (NIM_BOOL)0;
						T15_ = enumHasHoles_YPjOkGV9axAnGR3UfLeWZ1g_3((*(*it).sons->data[((NI) 0)]).typ);
						if (!T15_) goto LA16_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_831));
						goto BeforeRet_;
					}
					LA16_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					aSize = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*(*it).sons->data[((NI) 0)]).typ);
					{
						if (!(IL64(10000) < aSize)) goto LA20_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_832));
						goto BeforeRet_;
					}
					LA20_: ;
					arraySize = ((NI)chckRange64(aSize, ((NI) (-2147483647 -1)), ((NI) 2147483647)));
					{
						NI64 T24_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T24_ = (NI64)0;
						T24_ = firstOrd_4cSIntenL9aBXY6LAFsvXdQ((*(*(*p).module).g).config, (*(*it).sons->data[((NI) 0)]).typ);
						if (!!((T24_ == IL64(0)))) goto LA25_;
						localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_833));
						goto BeforeRet_;
					}
					LA25_: ;
				}
				LA6_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_834 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_834);
			} LA3: ;
		}
	}
	{
		if (!(casePos < ((NI) 0))) goto LA29_;
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_835));
		goto BeforeRet_;
	}
	LA29_: ;
	TM_MQdRN7fpbG7rPm4JpVVAhA_836 = addInt(((NI) ((*p).labels)), ((NI) 1));
	id = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_836);
	TM_MQdRN7fpbG7rPm4JpVVAhA_837 = addInt(arraySize, ((NI) 1));
	TM_MQdRN7fpbG7rPm4JpVVAhA_838 = addInt((*p).labels, (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_837));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_838 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_838 > 2147483647) raiseOverflow();
	(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_838);
	nimZeroMem((void*)T31_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T31_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (id)));
	tmp = percent__ibl3qMPOrpGT2x8X7vmbeQ(T31_, 1);
	nimZeroMem((void*)T32_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T32_[0] = tmp;
	T32_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (arraySize)));
	gotoArray = percent__bBcuDHMXr6Kz1tr7BzD9aKw(T32_, 2);
	{
		NI i_3;
		NI colontmp__2;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_839;
		NI res;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_839 = subInt(arraySize, ((NI) 1));
		colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_839);
		res = ((NI) 1);
		{
			while (1) {
				tyArray_JiWwrsTRC6xqNlGcBthSVA T36_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_840;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_841;
				if (!(res <= colontmp__2)) goto LA35;
				i_3 = res;
				nimZeroMem((void*)T36_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				TM_MQdRN7fpbG7rPm4JpVVAhA_840 = addInt(id, i_3);
				T36_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_840))));
				T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = percent__aDvifvZOUmduC6Unfm69bKA(T36_, 1);
				add_IM4kcMNkkOLJtqdEqSxR8A(&gotoArray, T37_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_841 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_841);
			} LA35: ;
		}
	}
	nimZeroMem((void*)T38_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	TM_MQdRN7fpbG7rPm4JpVVAhA_842 = addInt(id, arraySize);
	T38_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_842))));
	T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T39_ = percent__5kuxCbMO8PVJc9aJbXScUOQ(T38_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&gotoArray, T39_);
	T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T40_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T41_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, gotoArray);
	add_IM4kcMNkkOLJtqdEqSxR8A(T40_, T41_);
	{
		NI j;
		NI i_4;
		j = (NI)0;
		i_4 = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_843;
				if (!(i_4 < casePos)) goto LA44;
				j = i_4;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(j) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(j,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).sons->data[j]);
				TM_MQdRN7fpbG7rPm4JpVVAhA_843 = addInt(i_4, ((NI) 1));
				i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_843);
			} LA44: ;
		}
	}
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(casePos) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(casePos,((*n).sons ? (*n).sons->Sup.len : 0)-1);
	caseStmt = (*n).sons->data[casePos];
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt).sons->data[((NI) 0)], (&a));
	T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T46_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T46_[0] = tmp;
	T46_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T47_ = percent__Uu9cBz7dxPVDFhF9aLzWecyQ(T46_, 2);
	T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T48_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T48_);
	{
		NI i_5;
		NI colontmp__3;
		NI i_6;
		i_5 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len_P89cqdlERShb9alU3iC0yj8wast(caseStmt);
		i_6 = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T52_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
				NI T63_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_2;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T76_;
				tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T112_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T113_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T115_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_857;
				if (!(i_6 < colontmp__3)) goto LA51;
				i_5 = i_6;
				T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T52_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA55_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA59_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA59_: ;
				T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T61_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T62_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T61_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T52_, T62_);
				T63_ = (NI)0;
				T63_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i_5) >= (NU)((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)) raiseIndexError2(i_5,((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)-1);
				it_2 = (*caseStmt).sons->data[i_5];
				{
					NI j_2;
					NI colontmp__4;
					NI T65_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_844;
					NI res_3;
					j_2 = (NI)0;
					colontmp__4 = (NI)0;
					T65_ = (NI)0;
					T65_ = len_P89cqdlERShb9alU3iC0yj8wast(it_2);
					TM_MQdRN7fpbG7rPm4JpVVAhA_844 = subInt(T65_, ((NI) 2));
					colontmp__4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_844);
					res_3 = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T72_;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T73_;
							NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_846;
							NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_847;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_848;
							if (!(res_3 <= colontmp__4)) goto LA67;
							j_2 = res_3;
							{
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j_2) >= (NU)((*it_2).sons ? (*it_2).sons->Sup.len : 0)) raiseIndexError2(j_2,((*it_2).sons ? (*it_2).sons->Sup.len : 0)-1);
								if (!((*(*it_2).sons->data[j_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA70_;
								localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it_2).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_845));
								goto BeforeRet_;
							}
							LA70_: ;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_2).kind)>>3] &(1U<<((NU)((*it_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(j_2) >= (NU)((*it_2).sons ? (*it_2).sons->Sup.len : 0)) raiseIndexError2(j_2,((*it_2).sons ? (*it_2).sons->Sup.len : 0)-1);
							val = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*it_2).sons->data[j_2]);
							T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T72_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T73_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							TM_MQdRN7fpbG7rPm4JpVVAhA_846 = addInt64(val, ((NI64) (id)));
							TM_MQdRN7fpbG7rPm4JpVVAhA_847 = addInt64((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_846), IL64(1));
							T73_[0] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_847));
							T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T74_ = percent__WWt3il4CHPiYP10KdNLrWw(T73_, 1);
							T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T75_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T74_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T72_, T75_);
							TM_MQdRN7fpbG7rPm4JpVVAhA_848 = addInt(res_3, ((NI) 1));
							res_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_848);
						} LA67: ;
					}
				}
				T76_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T76_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it_2);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T76_);
				{
					NI j_3;
					NI colontmp__5;
					NI colontmp__6;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_849;
					NI T78_;
					NI i_7;
					j_3 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__6 = (NI)0;
					TM_MQdRN7fpbG7rPm4JpVVAhA_849 = addInt(casePos, ((NI) 1));
					colontmp__5 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_849);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					T78_ = ((*n).sons ? (*n).sons->Sup.len : 0);
					colontmp__6 = T78_;
					i_7 = colontmp__5;
					{
						while (1) {
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_850;
							if (!(i_7 < colontmp__6)) goto LA80;
							j_3 = i_7;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(j_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(j_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
							genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).sons->data[j_3]);
							TM_MQdRN7fpbG7rPm4JpVVAhA_850 = addInt(i_7, ((NI) 1));
							i_7 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_850);
						} LA80: ;
					}
				}
				{
					NI j_4;
					NI i_8;
					j_4 = (NI)0;
					i_8 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it_3;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_856;
							if (!(i_8 < casePos)) goto LA83;
							j_4 = i_8;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(j_4) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(j_4,((*n).sons ? (*n).sons->Sup.len : 0)-1);
							it_3 = (*n).sons->data[j_4];
							{
								tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn;
								tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw T88_;
								if (!((*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100) || (*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99))) goto LA86_;
								asgn = copyNode_Dsjo9bte8vGxzhtcSrsTyiQ(it_3);
								T88_ = (tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw)0;
								T88_ = ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73);
								FieldDiscriminantCheck((NI)(NU)((*asgn).kind), (NI)(NU)(T88_), NimDT__bROa11lyF5vxEN9aYNbHmhw_kind, 162);
								(*asgn).kind = T88_;
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								asgnRef((void**) (&(*asgn).sons), (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*asgn).sons)->Sup, (&NTI_ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) 2)));
								{
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* sym;
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value;
									sym = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
									value = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
									{
										if (!!(((*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100) || (*it_3).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99)))) goto LA92_;
										failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_851));
									}
									LA92_: ;
									{
										tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* identDefs;
										identDefs = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
										{
											NI i_9;
											NI colontmp__7;
											NI i_10;
											i_9 = (NI)0;
											colontmp__7 = (NI)0;
											colontmp__7 = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(it_3);
											i_10 = ((NI) 0);
											{
												while (1) {
													NI TM_MQdRN7fpbG7rPm4JpVVAhA_855;
													if (!(i_10 < colontmp__7)) goto LA97;
													i_9 = i_10;
													if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it_3).kind)>>3] &(1U<<((NU)((*it_3).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
													if ((NU)(i_9) >= (NU)((*it_3).sons ? (*it_3).sons->Sup.len : 0)) raiseIndexError2(i_9,((*it_3).sons ? (*it_3).sons->Sup.len : 0)-1);
													identDefs = (*it_3).sons->data[i_9];
													{
														tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* valueSym;
														NI T102_;
														NI TM_MQdRN7fpbG7rPm4JpVVAhA_852;
														if (!((*identDefs).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 35))) goto LA100_;
														if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*identDefs).kind)>>3] &(1U<<((NU)((*identDefs).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
														T102_ = (NI)0;
														T102_ = len_P89cqdlERShb9alU3iC0yj8wast(identDefs);
														TM_MQdRN7fpbG7rPm4JpVVAhA_852 = subInt(T102_, ((NI) 1));
														if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_852)) >= (NU)((*identDefs).sons ? (*identDefs).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_852),((*identDefs).sons ? (*identDefs).sons->Sup.len : 0)-1);
														valueSym = (*identDefs).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_852)];
														{
															NI i_11;
															NI colontmp__8;
															NI T104_;
															NI TM_MQdRN7fpbG7rPm4JpVVAhA_853;
															NI i_12;
															i_11 = (NI)0;
															colontmp__8 = (NI)0;
															T104_ = (NI)0;
															T104_ = len_P89cqdlERShb9alU3iC0yj8wast(identDefs);
															TM_MQdRN7fpbG7rPm4JpVVAhA_853 = subInt(T104_, ((NI) 2));
															colontmp__8 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_853);
															i_12 = ((NI) 0);
															{
																while (1) {
																	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* memberSym;
																	NI TM_MQdRN7fpbG7rPm4JpVVAhA_854;
																	if (!(i_12 < colontmp__8)) goto LA106;
																	i_11 = i_12;
																	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*identDefs).kind)>>3] &(1U<<((NU)((*identDefs).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
																	if ((NU)(i_11) >= (NU)((*identDefs).sons ? (*identDefs).sons->Sup.len : 0)) raiseIndexError2(i_11,((*identDefs).sons ? (*identDefs).sons->Sup.len : 0)-1);
																	memberSym = (*identDefs).sons->data[i_11];
																	sym = memberSym;
																	value = valueSym;
																	{
																		if (!!(((*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA109_;
																		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
																		if ((NU)(((NI) 0)) >= (NU)((*asgn).sons ? (*asgn).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*asgn).sons ? (*asgn).sons->Sup.len : 0)-1);
																		asgnRef((void**) (&(*asgn).sons->data[((NI) 0)]), sym);
																		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
																		if ((NU)(((NI) 1)) >= (NU)((*asgn).sons ? (*asgn).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*asgn).sons ? (*asgn).sons->Sup.len : 0)-1);
																		asgnRef((void**) (&(*asgn).sons->data[((NI) 1)]), value);
																		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, asgn);
																	}
																	LA109_: ;
																	TM_MQdRN7fpbG7rPm4JpVVAhA_854 = addInt(i_12, ((NI) 1));
																	i_12 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_854);
																} LA106: ;
															}
														}
													}
													LA100_: ;
													TM_MQdRN7fpbG7rPm4JpVVAhA_855 = addInt(i_10, ((NI) 1));
													i_10 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_855);
												} LA97: ;
											}
										}
									}
								}
							}
							goto LA84_;
							LA86_: ;
							{
								genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, it_3);
							}
							LA84_: ;
							TM_MQdRN7fpbG7rPm4JpVVAhA_856 = addInt(i_8, ((NI) 1));
							i_8 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_856);
						} LA83: ;
					}
				}
				nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*caseStmt).sons->data[((NI) 0)], (&a_2));
				T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T112_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T113_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T113_[0] = tmp;
				T113_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
				T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T114_ = percent__Uu9cBz7dxPVDFhF9aLzWecyQ(T113_, 2);
				T115_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T115_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T114_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T112_, T115_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				TM_MQdRN7fpbG7rPm4JpVVAhA_857 = addInt(i_6, ((NI) 1));
				i_6 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_857);
			} LA51: ;
		}
	}
	{
		NI j_5;
		NI colontmp__9;
		NI colontmp__10;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_858;
		NI T117_;
		NI i_13;
		j_5 = (NI)0;
		colontmp__9 = (NI)0;
		colontmp__10 = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_858 = addInt(casePos, ((NI) 1));
		colontmp__9 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_858);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T117_ = ((*n).sons ? (*n).sons->Sup.len : 0);
		colontmp__10 = T117_;
		i_13 = colontmp__9;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_859;
				if (!(i_13 < colontmp__10)) goto LA119;
				j_5 = i_13;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(j_5) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(j_5,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*n).sons->data[j_5]);
				TM_MQdRN7fpbG7rPm4JpVVAhA_859 = addInt(i_13, ((NI) 1));
				i_13 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_859);
			} LA119: ;
		}
	}
	}BeforeRet_: ;
}

static N_INLINE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, assignLabel_mIFKIo7g6Echd7EokLhQegcgen)(tyObject_TBlock_GFhahvekTq3dDOkWyhchMA* b) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*b).id)));
	unsureAsgnRef((void**) (&(*b).label), amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T1_));
	result = (*b).label;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_829;
	NI oldBreakIdx;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* loopBody;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_861;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
		if (!!((T3_ == ((NI) 2)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_828));
	}
	LA4_: ;
	TM_MQdRN7fpbG7rPm4JpVVAhA_829 = addInt((*p).withinLoop, ((NI) 1));
	(*p).withinLoop = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_829);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	loopBody = (*t).sons->data[((NI) 1)];
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = stmtsContainPragma_QPJXGOVirAPBlaL8RY5bwA(loopBody, ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 188));
		if (!(T8_)) goto LA9_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
		T8_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 1))&7U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		{
			NIM_BOOL T14_;
			NI T15_;
			T14_ = (NIM_BOOL)0;
			T15_ = (NI)0;
			T15_ = len_P89cqdlERShb9alU3iC0yj8wast(loopBody);
			T14_ = (T15_ == ((NI) 2));
			if (!(T14_)) goto LA16_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*loopBody).kind)>>3] &(1U<<((NU)((*loopBody).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*loopBody).sons ? (*loopBody).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*loopBody).sons ? (*loopBody).sons->Sup.len : 0)-1);
			T14_ = ((*(*loopBody).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA16_: ;
			if (!T14_) goto LA17_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*loopBody).kind)>>3] &(1U<<((NU)((*loopBody).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*loopBody).sons ? (*loopBody).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*loopBody).sons ? (*loopBody).sons->Sup.len : 0)-1);
			loopBody = (*loopBody).sons->data[((NI) 1)];
		}
		LA17_: ;
		genComputedGoto_UtJx89cn0a8CNSWWmaj6raA_7(p, loopBody);
	}
	goto LA6_;
	LA10_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T20_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T20_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA23_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA23_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_860));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T20_, T30_);
		(*p).breakIdx = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
		if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
		(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).sons->data[((NI) 0)], (&a));
		{
			NIM_BOOL T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T37_;
			tyArray_mrugoXXRZUEeG9bEXo9auBKw T38_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
			T33_ = (NIM_BOOL)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			T33_ = !(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6)));
			if (T33_) goto LA34_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*t).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
			T33_ = ((*(*t).sons->data[((NI) 0)]).intVal == IL64(0));
			LA34_: ;
			if (!T33_) goto LA35_;
			if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
			label = assignLabel_mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[(*p).breakIdx]));
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T38_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
			T38_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
			T38_[1] = label;
			T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T39_ = percent__SqZEI7bxySjmJX4GsXyvKw(T38_, 2);
			T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T37_, T40_);
		}
		LA35_: ;
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, loopBody);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T56_;
			if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 20))&31U)))!=0)) goto LA43_;
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA48_: ;
			res_2 = rawNewString(((NI) 80));
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_256));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T50_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA53_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA53_: ;
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			T56_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T56_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T55_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T56_);
		}
		LA43_: ;
		endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA6_: ;
	(*p).breakIdx = oldBreakIdx;
	TM_MQdRN7fpbG7rPm4JpVVAhA_861 = subInt((*p).withinLoop, ((NI) 1));
	(*p).withinLoop = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_861);
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value) {
	{
		if (!!(((*value).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*value).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15)))) goto LA3_;
		localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*value).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_862));
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T6_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T6_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
		T7_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ((*value).intVal);
		T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T8_ = percent__tRSKshYob5uzZE3eBVe59cg(T7_, 1);
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T8_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T6_, T9_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, varInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym) {
	tyObject_TLib_NBMxlJ6g3utqUlplqTTHkA* lib;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* extname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_863;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T6_;
	NimStringDesc* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T14_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	lib = (*sym).annex;
	extname = (*sym).loc.r;
	loadDynamicLib_Q3RS49c6kF7OS9bmwvFHRQJQ(m, lib);
	(*sym).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
	tmp = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(sym);
	asgnRef((void**) (&(*sym).loc.r), tmp);
	TM_MQdRN7fpbG7rPm4JpVVAhA_863 = addInt((*m).labels, ((NI) 2));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_863 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_863 > 2147483647) raiseOverflow();
	(*m).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_863);
	{
		if (!!(!((m == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
	}
	LA3_: ;
	res = rawNewString(((NI) 80));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), tmp);
	res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_125));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*sym).typ);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T5_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_650));
	T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T6_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T6_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*lib).name);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	T7_ = (NimStringDesc*)0;
	T7_ = dollar__mZ66tEveFIQokq3arf8Klw(extname);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T7_);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T8_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA11_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA11_: ;
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 18))- 0], T13_);
	nimZeroMem((void*)T14_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T14_[0] = (*sym).loc.r;
	T15_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T15_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
	T14_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T15_);
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = percent__vcbf2lEZaiSjbAHwgt9aKXw(T14_, 2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T16_);
}

N_LIB_PRIVATE N_NIMCALL(void, assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s;
{	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	s = (*n).sym;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
		if (!((*s).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0))) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T5_ = mangleName_RaNE9b8A430I9bfpgZmdrC1w((*p).module, s);
		fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*s).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 3), n, T5_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 3));
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, s);
			if (!T8_) goto LA9_;
			(*s).loc.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 0)) & 15);
		}
		LA9_: ;
	}
	LA3_: ;
	{
		tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* q;
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0)) goto LA13_;
		q = findPendingModule_Dhy9cmzSsJkQqlfDq047WUA((*p).module, s);
		{
			NIM_BOOL T17_;
			NIM_BOOL T19_;
			T17_ = (NIM_BOOL)0;
			T17_ = !((q == NIM_NIL));
			if (!(T17_)) goto LA18_;
			T19_ = (NIM_BOOL)0;
			T19_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*q).declaredThings), (*s).Sup.id);
			T17_ = !(T19_);
			LA18_: ;
			if (!T17_) goto LA20_;
			varInDynamicLib_TAVDUakAwQnRHDK9cFe6L7g_5(q, s);
		}
		goto LA15_;
		LA20_: ;
		{
			asgnRef((void**) (&(*s).loc.r), mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(s));
		}
		LA15_: ;
		goto BeforeRet_;
	}
	LA13_: ;
	useHeader_TAVDUakAwQnRHDK9cFe6L7g_2((*p).module, s);
	{
		if (!(((*s).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 3))&15U)))!=0)) goto LA25_;
		goto BeforeRet_;
	}
	LA25_: ;
	{
		NIM_BOOL T29_;
		T29_ = (NIM_BOOL)0;
		T29_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredThings), (*s).Sup.id);
		if (!!(T29_)) goto LA30_;
		{
			if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA34_;
			declareThreadVar_wDT42Iy4l3KGL9cd8rMjKRA((*p).module, s, (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0));
		}
		goto LA32_;
		LA34_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* td;
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T37_;
			decl = NIM_NIL;
			T37_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T37_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
			td = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T37_);
			{
				tyArray_JiWwrsTRC6xqNlGcBthSVA T63_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
				if (!((*s).constraint == 0)) goto LA40_;
				{
					NIM_BOOL T44_;
					T44_ = (NIM_BOOL)0;
					T44_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
					if (!T44_) goto LA45_;
					add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
				}
				goto LA42_;
				LA45_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA48_;
					add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283));
				}
				goto LA42_;
				LA48_: ;
				LA42_: ;
				add_IM4kcMNkkOLJtqdEqSxR8A(&decl, td);
				{
					NIM_BOOL T52_;
					T52_ = (NIM_BOOL)0;
					T52_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
					if (!T52_) goto LA53_;
					add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
				}
				LA53_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 8))&63U)))!=0)) goto LA57_;
					add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_92));
				}
				LA57_: ;
				{
					if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 7))&63U)))!=0)) goto LA61_;
					add_yG4AKzsBRS1W4MANDlXQeg(&decl, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_93));
				}
				LA61_: ;
				nimZeroMem((void*)T63_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				T63_[0] = (*s).loc.r;
				T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T64_ = percent__nzT6Rke9c7tkW9b3XMmld2LA(T63_, 1);
				add_IM4kcMNkkOLJtqdEqSxR8A(&decl, T64_);
			}
			goto LA38_;
			LA40_: ;
			{
				NimStringDesc* T66_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T67_;
				T66_ = (NimStringDesc*)0;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*s).constraint).kind)>>3] &(1U<<((NU)((*(*s).constraint).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
				T66_ = rawNewString(((*(*s).constraint).strVal ? (*(*s).constraint).strVal->Sup.len : 0) + 3);
appendString(T66_, (*(*s).constraint).strVal);
appendString(T66_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_864));
				nimZeroMem((void*)T67_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T67_[0] = td;
				T67_[1] = (*s).loc.r;
				decl = runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA(T66_, T67_, 2);
			}
			LA38_: ;
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], decl);
		}
		LA32_: ;
	}
	LA30_: ;
	{
		if (!(((NI) 0) < (*p).withinLoop)) goto LA70_;
		resetLoc_B9bNAYVEwjQtkUkvoOVhV2Q(p, (&(*s).loc));
	}
	LA70_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
		NimStringDesc* T81_;
		NimStringDesc* T82_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T83_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
		if (!(((*(*(*p).module).module).options & 327680) == 327680)) goto LA74_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA78_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA78_: ;
		res = rawNewString(((NI) 80));
		T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T80_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_865));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T80_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T81_ = (NimStringDesc*)0;
		T81_ = rawNewString(((*(*(*s).owner).name).s ? (*(*(*s).owner).name).s->Sup.len : 0) + ((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 1);
appendString(T81_, (*(*(*s).owner).name).s);
appendChar(T81_, 46);
appendString(T81_, (*(*s).name).s);
		T82_ = (NimStringDesc*)0;
		T82_ = nsuNormalize(T81_);
		T83_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T83_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T82_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T83_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_866));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*s).loc.r);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T84_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, (*s).typ, (*n).info);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T84_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA87_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA87_: ;
		T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 17))- 0], T89_);
	}
	LA74_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genTraverseProcForGlobal_N6PVM8zp2L2vM3WsaTEaJQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg c;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* sLoc;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* header;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* generatedProc;
	tyArray_f7nG5LD47BH5K9c6mASit3g T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T14_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg(m, T1_, info);
	(void)(T2_);
	nimZeroMem((void*)(&c), sizeof(tyObject_TTraversalClosure_xQv4a9atAYFpL11GCS9cY9bCg));
	p = newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, m);
	sLoc = rdLoc_xidyzuHqIciXbQyEOKahDg((*s).loc);
	result = getTempName_ao6gUnuVfQLtZ89c4kaIKfg(m);
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
		LA6_: ;
		if (!T5_) goto LA7_;
		accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA(p, s);
		sLoc = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_430), sLoc);
	}
	LA7_: ;
	c.visitorFrmt = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_114));
	c.p = p;
	nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T9_[0] = result;
	header = percent__7STLi75js8HXlmFg7Abt9bQ(T9_, 1);
	T10_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T10_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*s).loc);
	genTraverseProc_LXrm7ZbTiXTVtbB5E60yIA_2(c, sLoc, T10_);
	nimZeroMem((void*)T11_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
	T11_[0] = header;
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
	T11_[1] = (*T12_);
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T13_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
	T11_[2] = (*T13_);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T14_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	T11_[3] = (*T14_);
	generatedProc = percent__5O50gePV9adn3wgFGWjlOLQ(T11_, 4);
	nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T15_[0] = header;
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = percent__9a3Y7eeGNXkOCLUktwxzN9ag(T15_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T16_);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], generatedProc);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getTraverseProc_V1atRcoAv09bVdrCPNlvW8Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((120 &(1U<<((NU)((*(*(*(*p).module).g).config).selectedGC)&7U)))!=0);
		if (!(T4_)) goto LA5_;
		T4_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T7_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*v).loc);
		T3_ = containsGarbageCollectedRef_IVXYI9cxSeivThgKCncHRnA(T7_);
		LA6_: ;
		if (!T3_) goto LA8_;
		result = genTraverseProcForGlobal_N6PVM8zp2L2vM3WsaTEaJQ((*p).module, v, (*v).info);
	}
	LA8_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, registerTraverseProc_BwxixSWhJWbQ369cJZeckHA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* traverseProc) {
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA3_;
		T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T5_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*(*p).module).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA8_: ;
		res = rawNewString(((NI) 80));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA12_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA12_: ;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_867));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), traverseProc);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA17_: ;
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA21_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA21_: ;
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T23_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata((*(*p).module).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA32_: ;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_868));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T34_);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), traverseProc);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA37_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA37_: ;
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA41_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA41_: ;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T43_);
	}
	LA1_: ;
}

static N_INLINE(NIM_BOOL, isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isInvalidReturnType_ugBeCbo3I6LqXHcpCBFN9ag(conf, (*n).typ);
		if (!T7_) goto LA8_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA8_: ;
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		T3_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*ri).sons->data[((NI) 0)]).typ, IL64(105553116268560));
		if (!((*T3_).callConv == ((tyEnum_TCallingConvention_yjAJ8w0h1PBaSwSGJ3P7IA) 8))) goto LA4_;
		genClosureCall_HKkL9adNEIcNHeJ0iZ6uitg(p, le, ri, d);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		T7_ = ((*(*ri).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T7_ = (((*(*(*ri).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA8_: ;
		if (!T7_) goto LA9_;
		genInfixCall_HKkL9adNEIcNHeJ0iZ6uitg_2(p, le, ri, d);
	}
	goto LA1_;
	LA9_: ;
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		T12_ = ((*(*ri).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T12_)) goto LA13_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T12_ = (((*(*(*ri).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 29))&63U)))!=0);
		LA13_: ;
		if (!T12_) goto LA14_;
		genNamedParamCall_9azKdI6vAayTOFEcJtCTo1g(p, ri, d);
	}
	goto LA1_;
	LA14_: ;
	{
		genPrefixCall_HKkL9adNEIcNHeJ0iZ6uitg_3(p, le, ri, d);
	}
	LA1_: ;
	postStmtActions_hU2pQ4yYkske4uOCGEGfMwcgen(p);
}

static N_INLINE(void, loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* a) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*ri).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		T5_ = !(((*(*ri).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T5_) goto LA6_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*ri).kind)>>3] &(1U<<((NU)((*ri).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*ri).sons ? (*ri).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*ri).sons ? (*ri).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*ri).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*ri).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T5_ = ((*(*(*ri).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		genAsgnCall_HKkL9adNEIcNHeJ0iZ6uitg_4(p, le, ri, a);
	}
	goto LA1_;
	LA7_: ;
	{
		(*a).flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, ri, a);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genSingleVar_9c6v9b6B8RZkui111YH4cbEw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* vn;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
	tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* targetProc;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* traverseProc;
	NIM_BOOL forHcr;
{	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
	vn = (*a).sons->data[((NI) 0)];
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*vn).kind)>>3] &(1U<<((NU)((*vn).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	v = (*vn).sym;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0)) goto LA7_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*a).sons->data[((NI) 2)]);
		goto BeforeRet_;
	}
	LA7_: ;
	targetProc = p;
	traverseProc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
		if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA11_;
		{
			NIM_BOOL T15_;
			NIM_BOOL T16_;
			T15_ = (NIM_BOOL)0;
			T16_ = (NIM_BOOL)0;
			T16_ = (((*v).flags & 96) == 32);
			if (!(T16_)) goto LA17_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T16_ = ((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1));
			LA17_: ;
			T15_ = T16_;
			if (!(T15_)) goto LA18_;
			T15_ = !((((*v).loc.flags & 72) == 0));
			LA18_: ;
			if (!T15_) goto LA19_;
			goto BeforeRet_;
		}
		LA19_: ;
		{
			if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 9))&63U)))!=0)) goto LA23_;
			targetProc = (*(*p).module).preInitProc;
		}
		LA23_: ;
		assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_9(targetProc, vn);
		nimZeroMem((void*)(&loc), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		genericAssign((void*)(&loc), (void*)(&(*v).loc), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
		{
			NIM_BOOL T27_;
			NIM_BOOL T28_;
			T27_ = (NIM_BOOL)0;
			T28_ = (NIM_BOOL)0;
			T28_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0);
			if (!(T28_)) goto LA29_;
			T28_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
			LA29_: ;
			T27_ = T28_;
			if (!(T27_)) goto LA30_;
			T27_ = isComplexValueType_Fl17jclCP5VEr9a7Ycym1awcgen((*v).typ);
			LA30_: ;
			if (!T27_) goto LA31_;
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw((*(*p).module).preInitProc, vn, (&loc));
		}
		LA31_: ;
		genObjectInit_pua7psQb9a19bblGZEt9b0ZXA((*(*p).module).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, loc, NIM_TRUE);
		{
			NIM_BOOL T35_;
			T35_ = (NIM_BOOL)0;
			T35_ = (((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
			if (!(T35_)) goto LA36_;
			T35_ = !(((*(*(*p).module).g).generatedHeader == NIM_NIL));
			LA36_: ;
			if (!T35_) goto LA37_;
			genVarPrototype_t9a9a9bxmaOztYOfsfhQUOXXw_2((*(*(*p).module).g).generatedHeader, vn);
		}
		LA37_: ;
		traverseProc = getTraverseProc_V1atRcoAv09bVdrCPNlvW8Q(p, v);
		{
			NIM_BOOL T41_;
			NIM_BOOL T43_;
			T41_ = (NIM_BOOL)0;
			T41_ = !((traverseProc == NIM_NIL));
			if (!(T41_)) goto LA42_;
			T43_ = (NIM_BOOL)0;
			T43_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
			T41_ = !(T43_);
			LA42_: ;
			if (!T41_) goto LA44_;
			registerTraverseProc_BwxixSWhJWbQ369cJZeckHA(p, v, traverseProc);
		}
		LA44_: ;
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* value;
		NIM_BOOL imm;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		value = (*a).sons->data[((NI) 2)];
		imm = isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, value);
		{
			NIM_BOOL T49_;
			NIM_BOOL T50_;
			NIM_BOOL T51_;
			NIM_BOOL T53_;
			NIM_BOOL T57_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* decl;
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
			T49_ = (NIM_BOOL)0;
			T50_ = (NIM_BOOL)0;
			T51_ = (NIM_BOOL)0;
			T51_ = imm;
			if (!(T51_)) goto LA52_;
			T53_ = (NIM_BOOL)0;
			T53_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T53_) goto LA54_;
			T53_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA54_: ;
			T51_ = T53_;
			LA52_: ;
			T50_ = T51_;
			if (!(T50_)) goto LA55_;
			T50_ = ((*p).splitDecls == ((NI) 0));
			LA55_: ;
			T49_ = T50_;
			if (!(T49_)) goto LA56_;
			T57_ = (NIM_BOOL)0;
			T57_ = containsHiddenPointer_IVXYI9cxSeivThgKCncHRnA_4((*v).typ);
			T49_ = !(T57_);
			LA56_: ;
			if (!T49_) goto LA58_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
			decl = localVarDecl_NYI5fC69aIqZGRakncXv9cNQ(p, vn);
			nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T62_;
				NIM_BOOL T63_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* params;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
				T62_ = (NIM_BOOL)0;
				T63_ = (NIM_BOOL)0;
				T63_ = ((*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*value).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32));
				if (!(T63_)) goto LA64_;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*value).sons ? (*value).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*value).sons ? (*value).sons->Sup.len : 0)-1);
				T63_ = ((*(*value).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				LA64_: ;
				T62_ = T63_;
				if (!(T62_)) goto LA65_;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*value).sons ? (*value).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*value).sons ? (*value).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*value).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*value).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				T62_ = (((*(*(*value).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 25))&63U)))!=0);
				LA65_: ;
				if (!T62_) goto LA66_;
				params = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*value).sons ? (*value).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*value).sons ? (*value).sons->Sup.len : 0)-1);
				typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*value).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
				{
					if (!!(((*typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25)))) goto LA70_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_869));
				}
				LA70_: ;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(value);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_871;
							if (!(i_2 < colontmp_)) goto LA74;
							i = i_2;
							{
								tyArray_qTjAvTvKF9anytN1At69aJMQ T79_;
								tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
								if (!!((params == NIM_NIL))) goto LA77_;
								nimZeroMem((void*)T79_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
								T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
								T80_ = percent__PoDv5ydEvGdd9aiIF9cOiAPw(T79_, 0);
								add_IM4kcMNkkOLJtqdEqSxR8A(&params, T80_);
							}
							LA77_: ;
							{
								NI T83_;
								NI T84_;
								T83_ = (NI)0;
								T83_ = sonsLen_eY4T6kWJb9a9aTWUufrTLjXg(typ);
								T84_ = (NI)0;
								T84_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*typ).n);
								if (!!((T83_ == T84_))) goto LA85_;
								failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_870));
							}
							LA85_: ;
							T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T87_ = genOtherArg_9a86z5oGsAZjkB52zPdLZJQ(p, value, i, typ);
							add_IM4kcMNkkOLJtqdEqSxR8A(&params, T87_);
							TM_MQdRN7fpbG7rPm4JpVVAhA_871 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_871);
						} LA74: ;
					}
				}
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T92_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T93_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
					if (!(params == NIM_NIL)) goto LA90_;
					T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T92_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T93_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T93_[0] = decl;
					T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T94_ = percent__boICAAvO1zkTlYDOuEaj6g(T93_, 1);
					T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T95_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T94_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T92_, T95_);
				}
				goto LA88_;
				LA90_: ;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T97_;
					tyArray_mrugoXXRZUEeG9bEXo9auBKw T98_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
					T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T97_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T98_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
					T98_[0] = decl;
					T98_[1] = params;
					T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T99_ = percent__LeuvM3mIc6pSNktpm9cHSVw(T98_, 2);
					T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T100_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T99_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T97_, T100_);
				}
				LA88_: ;
			}
			goto LA60_;
			LA66_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T102_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T103_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
				initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, value, (&tmp));
				T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T102_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T103_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T103_[0] = decl;
				T103_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
				T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T104_ = percent__mxQQ2vwZhwfDagj5SEXeHA(T103_, 2);
				T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T105_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T104_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T102_, T105_);
			}
			LA60_: ;
			goto BeforeRet_;
		}
		LA58_: ;
		assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, vn);
		initLocalVar_EpeofNfMJPurx0duaALCaA(p, v, imm);
	}
	LA9_: ;
	{
		tyArray_qTjAvTvKF9anytN1At69aJMQ T110_;
		if (!(traverseProc == NIM_NIL)) goto LA108_;
		nimZeroMem((void*)T110_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		traverseProc = percent__x2NKZw9brJpylbwEtLfx9a9bg(T110_, 0);
	}
	LA108_: ;
	forHcr = treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, v);
	{
		NIM_BOOL T113_;
		NIM_BOOL T114_;
		NI T116_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T120_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T125_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T126_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T131_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
		T113_ = (NIM_BOOL)0;
		T114_ = (NIM_BOOL)0;
		T114_ = forHcr;
		if (!(T114_)) goto LA115_;
		T116_ = ((*targetProc).blocks ? (*targetProc).blocks->Sup.len : 0);
		T114_ = (((NI) 3) < T116_);
		LA115_: ;
		T113_ = T114_;
		if (!(T113_)) goto LA117_;
		T113_ = ((*(*v).owner).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6));
		LA117_: ;
		if (!T113_) goto LA118_;
		T120_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T120_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA123_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_872));
		}
		LA123_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_873));
		T125_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T125_ = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, v);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T125_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_874));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*v).loc.r);
		res = resizeString(res, 10);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_875));
		T126_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T126_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*v).loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T126_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), traverseProc);
		res = resizeString(res, 11);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_876));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*v).loc.r);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*targetProc).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA129_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA129_: ;
		T131_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T131_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T132_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(targetProc, T131_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T120_, T132_);
		forHcr = NIM_FALSE;
	}
	LA118_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T137_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T142_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T144_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T145_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T146_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T155_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T156_;
		NI T157_;
		if (!forHcr) goto LA135_;
		T137_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T137_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA140_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_872));
		}
		LA140_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 22);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_877));
		T142_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T142_ = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, v);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T142_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_874));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*v).loc.r);
		res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_875));
		T143_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*v).loc);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T143_);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), traverseProc);
		res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_876));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*v).loc.r);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_878));
		T144_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T144_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T145_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T145_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(targetProc, T144_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T137_, T145_);
		T146_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T146_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(targetProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*targetProc).module == NIM_NIL)))) goto LA149_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_872));
		}
		LA149_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
		{
			if (!!((((*(*(*(*targetProc).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA153_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA153_: ;
		T155_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T155_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T156_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T156_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(targetProc, T155_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T146_, T156_);
		T157_ = (NI)0;
		T157_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(targetProc);
	}
	LA135_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (!!(((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA160_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(targetProc, a);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(targetProc, (*a).sons->data[((NI) 0)], (*a).sons->data[((NI) 2)], (&(*v).loc));
	}
	LA160_: ;
	{
		if (!forHcr) goto LA164_;
		endBlock_0dpuY9coTlraj8JXIe2BzVw(targetProc);
	}
	LA164_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* a) {
	NIM_BOOL immediateAsgn;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA v;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
	immediateAsgn = !(((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
	nimZeroMem((void*)(&v), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*a).sons->data[((NI) 0)], (&v));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, a);
	{
		if (!immediateAsgn) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*a).sons->data[((NI) 0)], (*a).sons->data[((NI) 2)], (&v));
	}
	goto LA1_;
	LA3_: ;
	{
		constructLoc_UnMShnfXExBqkSCjaZsFdw(p, v, NIM_FALSE);
	}
	LA1_: ;
}
static N_NIMCALL(void, Marker_tySequence_sno9c9bXUVS2CqhtWOJadaCw)(void* p, NI op) {
	tySequence_sno9c9bXUVS2CqhtWOJadaCw* a;
	NI T1_;
	a = (tySequence_sno9c9bXUVS2CqhtWOJadaCw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0.lode, op);
	nimGCvisit((void*)a->data[T1_].Field0.r, op);
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genVarTuple_UtJx89cn0a8CNSWWmaj6raA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tup;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA field;
	NI L;
	NIM_BOOL forHcr;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* hcrCond;
	tySequence_sno9c9bXUVS2CqhtWOJadaCw* hcrGlobals;
	NIM_BOOL isGlobalInBlock;
	NIM_BOOL T18_;
	NI T20_;
	NIM_BOOL T21_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_882;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T50_;
{	nimZeroMem((void*)(&tup), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&field), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	{
		if (!!(((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 36)))) goto LA3_;
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_879));
	}
	LA3_: ;
	L = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(n);
	{
		NI i;
		NI colontmp_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_880;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_880 = subInt(L, ((NI) 3));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_880);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_881;
				if (!(res <= colontmp_)) goto LA7;
				i = res;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T12_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					if (!!(((*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA10_;
					T12_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = lowerTupleUnpacking_8A4G64HByteFanrMUexmNw((*(*(*p).module).g).graph, n, (*p).prc);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T12_);
					goto BeforeRet_;
				}
				LA10_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_881 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_881);
			} LA7: ;
		}
	}
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	forHcr = treatGlobalDifferentlyForHCR_AaEyY9c5j7G9bThwkB9ajJ8Pw((*p).module, (*(*n).sons->data[((NI) 0)]).sym);
	{
		if (!forHcr) goto LA15_;
		hcrCond = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
	}
	goto LA13_;
	LA15_: ;
	{
		hcrCond = NIM_NIL;
	}
	LA13_: ;
	hcrGlobals = (tySequence_sno9c9bXUVS2CqhtWOJadaCw*)0;
	T18_ = (NIM_BOOL)0;
	T18_ = forHcr;
	if (!(T18_)) goto LA19_;
	T20_ = ((*p).blocks ? (*p).blocks->Sup.len : 0);
	T18_ = (((NI) 2) < T20_);
	LA19_: ;
	isGlobalInBlock = T18_;
	T21_ = (NIM_BOOL)0;
	T21_ = forHcr;
	if (!(T21_)) goto LA22_;
	T21_ = !(isGlobalInBlock);
	LA22_: ;
	forHcr = T21_;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T27_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T38_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
		NI T49_;
		if (!forHcr) goto LA25_;
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T27_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA30_: ;
		res_2 = rawNewString(((NI) 80));
		res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), hcrCond);
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA34_: ;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T27_, T37_);
		T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T38_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA41_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA41_: ;
		res_3 = rawNewString(((NI) 80));
		res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA45_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA45_: ;
		T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T47_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T48_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T47_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T38_, T48_);
		T49_ = (NI)0;
		T49_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA25_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	TM_MQdRN7fpbG7rPm4JpVVAhA_882 = subInt(L, ((NI) 1));
	if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_882)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_882),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_882)], (&tup));
	T50_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T50_ = t_XNOXh7uniWNgiq58C9bW49awcgen(tup);
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(T50_, IL64(36134350135273744));
	{
		NI i_2;
		NI colontmp__2;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_883;
		NI res_4;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_883 = subInt(L, ((NI) 3));
		colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_883);
		res_4 = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_886;
				if (!(res_4 <= colontmp__2)) goto LA53;
				i_2 = res_4;
				{
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* vn;
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* v;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* traverseProc;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_2) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_2,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					vn = (*n).sons->data[i_2];
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*vn).kind)>>3] &(1U<<((NU)((*vn).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
					v = (*vn).sym;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA57_;
						goto LA54;
					}
					LA57_: ;
					traverseProc = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					{
						if (!(((*v).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0)) goto LA61_;
						assignGlobalVar_UtJx89cn0a8CNSWWmaj6raA_9(p, vn);
						genObjectInit_pua7psQb9a19bblGZEt9b0ZXA(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*v).typ, (*v).loc, NIM_TRUE);
						traverseProc = getTraverseProc_V1atRcoAv09bVdrCPNlvW8Q(p, v);
						{
							NIM_BOOL T65_;
							NIM_BOOL T67_;
							T65_ = (NIM_BOOL)0;
							T65_ = !((traverseProc == NIM_NIL));
							if (!(T65_)) goto LA66_;
							T67_ = (NIM_BOOL)0;
							T67_ = hcrOn_NAlbw3fU59aFdo7L5aQtmkw(p);
							T65_ = !(T67_);
							LA66_: ;
							if (!T65_) goto LA68_;
							registerTraverseProc_BwxixSWhJWbQ369cJZeckHA(p, v, traverseProc);
						}
						LA68_: ;
					}
					goto LA59_;
					LA61_: ;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_884;
						NIM_BOOL T71_;
						assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, vn);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						TM_MQdRN7fpbG7rPm4JpVVAhA_884 = subInt(L, ((NI) 1));
						if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_884)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_884),((*n).sons ? (*n).sons->Sup.len : 0)-1);
						T71_ = (NIM_BOOL)0;
						T71_ = isAssignedImmediately_udBNoPxZaHjsWUNp37jAdwcgen((*(*(*p).module).g).config, (*n).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_884)]);
						initLocalVar_EpeofNfMJPurx0duaALCaA(p, v, T71_);
					}
					LA59_: ;
					initLoc_qlujIAW86QclHYUVxlHRiQ((&field), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), vn, tup.storage);
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T76_;
						if (!((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 18))) goto LA74_;
						nimZeroMem((void*)T76_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T76_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(tup);
						T76_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (i_2)));
						field.r = percent__5TB09c2Iz60T0YagbSbI5RQ(T76_, 2);
					}
					goto LA72_;
					LA74_: ;
					{
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T82_;
						{
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(i_2) >= (NU)((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)-1);
							if (!!(((*(*(*t).n).sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA80_;
							internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_879));
						}
						LA80_: ;
						nimZeroMem((void*)T82_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T82_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(tup);
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).n).kind)>>3] &(1U<<((NU)((*(*t).n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_2) >= (NU)((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).n).sons ? (*(*t).n).sons->Sup.len : 0)-1);
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*t).n).sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*(*t).n).sons->data[i_2]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						T82_[1] = mangleRecFieldName_HzLa9cY9ad9bp8c63DnHIEfWA((*p).module, (*(*(*t).n).sons->data[i_2]).sym);
						field.r = percent__paA0sar8RKZqiwEaDfWo2A(T82_, 2);
					}
					LA72_: ;
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, (&(*v).loc), field);
					{
						NIM_BOOL T85_;
						tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA T89_;
						NI T96_;
						T85_ = (NIM_BOOL)0;
						T85_ = forHcr;
						if (T85_) goto LA86_;
						T85_ = isGlobalInBlock;
						LA86_: ;
						if (!T85_) goto LA87_;
						nimZeroMem((void*)(&T89_), sizeof(tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA));
						genericAssign((void*)(&T89_.Field0), (void*)(&(*v).loc), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
						{
							tyArray_qTjAvTvKF9anytN1At69aJMQ T94_;
							if (!(traverseProc == NIM_NIL)) goto LA92_;
							nimZeroMem((void*)T94_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
							T89_.Field1 = percent__x2NKZw9brJpylbwEtLfx9a9bg(T94_, 0);
						}
						goto LA90_;
						LA92_: ;
						{
							T89_.Field1 = traverseProc;
						}
						LA90_: ;
						hcrGlobals = (tySequence_sno9c9bXUVS2CqhtWOJadaCw*) incrSeqV3((TGenericSeq*)(hcrGlobals), (&NTI_sno9c9bXUVS2CqhtWOJadaCw_));
						T96_ = hcrGlobals->Sup.len++;
						genericAssign((void*)(&hcrGlobals->data[T96_].Field0), (void*)(&T89_.Field0), (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_));
						asgnRef((void**) (&hcrGlobals->data[T96_].Field1), T89_.Field1);
					}
					LA87_: ;
				} LA54: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_886 = addInt(res_4, ((NI) 1));
				res_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_886);
			} LA53: ;
		}
	}
	{
		if (!forHcr) goto LA99_;
		endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	}
	LA99_: ;
	{
		NIM_BOOL T103_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T107_;
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T116_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T117_;
		T103_ = (NIM_BOOL)0;
		T103_ = forHcr;
		if (T103_) goto LA104_;
		T103_ = isGlobalInBlock;
		LA104_: ;
		if (!T103_) goto LA105_;
		T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T107_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA110_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA110_: ;
		res_5 = rawNewString(((NI) 80));
		res_5 = resizeString(res_5, 9);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_887));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), hcrCond);
		res_5 = resizeString(res_5, 13);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_888));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA114_;
			res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA114_: ;
		T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T116_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		T117_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T117_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T116_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T107_, T117_);
		{
			tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA curr;
			NI i_3;
			NI L_2;
			NI T119_;
			nimZeroMem((void*)(&curr), sizeof(tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA));
			i_3 = ((NI) 0);
			T119_ = (hcrGlobals ? hcrGlobals->Sup.len : 0);
			L_2 = T119_;
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T122_;
					NimStringDesc* res_6;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T127_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T128_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T129_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T130_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_890;
					if (!(i_3 < L_2)) goto LA121;
					if ((NU)(i_3) >= (NU)(hcrGlobals ? hcrGlobals->Sup.len : 0)) raiseIndexError2(i_3,(hcrGlobals ? hcrGlobals->Sup.len : 0)-1);
					nimCopyMem((void*)(&curr.Field0), (NIM_CONST void*)(&hcrGlobals->data[i_3].Field0), sizeof(curr.Field0));
					curr.Field1 = hcrGlobals->data[i_3].Field1;
					T122_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T122_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA125_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA125_: ;
					res_6 = rawNewString(((NI) 80));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), hcrCond);
					res_6 = resizeString(res_6, 22);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_889));
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
					T127_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T127_ = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3((*p).module, (*(*n).sons->data[((NI) 0)]).sym);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T127_);
					res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_874));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), curr.Field0.r);
					res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_875));
					T128_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T128_ = rdLoc_xidyzuHqIciXbQyEOKahDg(curr.Field0);
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), T128_);
					res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), curr.Field1);
					res_6 = resizeString(res_6, 11);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_876));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), curr.Field0.r);
					res_6 = resizeString(res_6, 3);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
					T129_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T129_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
					T130_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T130_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T129_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T122_, T130_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_890 = addInt(i_3, ((NI) 1));
					i_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_890);
					{
						NI T133_;
						T133_ = (hcrGlobals ? hcrGlobals->Sup.len : 0);
						if (!!((T133_ == L_2))) goto LA134_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA134_: ;
				} LA121: ;
			}
		}
	}
	LA105_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genVarStmt_UtJx89cn0a8CNSWWmaj6raA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* 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;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		colontmp_ = (*n).sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_891;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				it = colontmp_->data[i];
				{
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
						goto LA5;
					}
					LA8_: ;
					{
						if (!((*it).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 35))) goto LA12_;
						{
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
							if (!((*(*it).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA16_;
							genSingleVar_9c6v9b6B8RZkui111YH4cbEw(p, it);
						}
						goto LA14_;
						LA16_: ;
						{
							genClosureVar_9c6v9b6B8RZkui111YH4cbEw_2(p, it);
						}
						LA14_: ;
					}
					goto LA10_;
					LA12_: ;
					{
						genVarTuple_UtJx89cn0a8CNSWWmaj6raA_10(p, it);
					}
					LA10_: ;
				} LA5: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_891 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_891);
				{
					NI T22_;
					T22_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T22_ == L))) goto LA23_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA23_: ;
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA e, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* labl, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** branches, NI branchesLen_0) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
	NI length;
	nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(b);
	{
		NI i;
		NI colontmp_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_899;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_899 = subInt(length, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_899);
		res = ((NI) 0);
		{
			while (1) {
				NI j;
				NI64 T12_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_903;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					if (!!(!(((*(*b).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))))) goto LA6_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_900));
				}
				LA6_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
				initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*b).sons->data[i], (&x));
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					if (!!(((*(*b).sons->data[i]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*b).sons->data[i]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA10_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_901));
				}
				LA10_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*b).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
				T12_ = (NI64)0;
				T12_ = hashString_9acplCwsZ5kwBbm0f7S7DNw((*(*(*p).module).g).config, (*(*b).sons->data[i]).strVal);
				j = ((NI)chckRange64((NI64)(T12_ & ((NI64) ((branchesLen_0-1)))), ((NI) (-2147483647 -1)), ((NI) 2147483647)));
				if ((NU)(j) >= (NU)(branchesLen_0)) raiseIndexError2(j,branchesLen_0-1);
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA15_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA15_: ;
				res_2 = rawNewString(((NI) 80));
				res_2 = resizeString(res_2, 4);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T17_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T17_);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
				T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T18_ = rdLoc_xidyzuHqIciXbQyEOKahDg(e);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T18_);
				res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
				T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T19_ = rdLoc_xidyzuHqIciXbQyEOKahDg(x);
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T19_);
				res_2 = resizeString(res_2, 8);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_902));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), labl);
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA22_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA22_: ;
				T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T24_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				add_IM4kcMNkkOLJtqdEqSxR8A(&branches[j], T24_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_903 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_903);
			} LA3: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, exprBlock_8mAL9ckajemzgfLPfeZVNoQ_19)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	NI T12_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA4_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA8_: ;
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, T11_);
	T12_ = (NI)0;
	T12_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, n, d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d, NI labId, NI until) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	lend = getLabel_3AsTOpq9crZUYBL9aD1lXBng_6(p);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
				tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_911;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_913;
				if (!(res <= until)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T6_)) goto LA7_;
					T6_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
					LA7_: ;
					if (!T6_) goto LA8_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA8_: ;
				T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
				TM_MQdRN7fpbG7rPm4JpVVAhA_911 = addInt(labId, i);
				T11_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_911))));
				T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T12_ = percent__Au81R9a68Rv3gwlPtvDarPg(T11_, 1);
				T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T12_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T13_);
				{
					NI length;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_912;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T18_;
					tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (!((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA16_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).sons->data[i]);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					TM_MQdRN7fpbG7rPm4JpVVAhA_912 = subInt(length, ((NI) 1));
					if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_912)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_912),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_19(p, (*(*t).sons->data[i]).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_912)], d);
					T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T18_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T19_[0] = lend;
					T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T20_ = percent__c1f569aWpTd825BTnv9bq4Xg(T19_, 1);
					T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T18_, T21_);
				}
				goto LA14_;
				LA16_: ;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_19(p, (*(*t).sons->data[i]).sons->data[((NI) 0)], d);
				}
				LA14_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_913 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_913);
			} LA3: ;
		}
	}
	result = lend;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genStringCase_re1pwmyeR32ikwnOC3vvzQ_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI strings;
	strings = ((NI) 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_895;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NI T8_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_893;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_894;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (!((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA6_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T8_ = (NI)0;
					T8_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).sons->data[i]);
					TM_MQdRN7fpbG7rPm4JpVVAhA_893 = subInt(T8_, ((NI) 1));
					TM_MQdRN7fpbG7rPm4JpVVAhA_894 = addInt(strings, (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_893));
					strings = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_894);
				}
				LA6_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_895 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_895);
			} LA3: ;
		}
	}
	{
		NI bitMask;
		NI T13_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_896;
		tySequence_WwUFq9cJ2xKRlsAWVEHyPRg* branches;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_897;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		NI labId;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T50_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T51_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
		NI T63_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_914;
		if (!(((NI) 8) < strings)) goto LA11_;
		T13_ = (NI)0;
		T13_ = nextPowerOfTwo_v2qC0V55wqa9bmqc7eHTz8A(strings);
		TM_MQdRN7fpbG7rPm4JpVVAhA_896 = subInt(T13_, ((NI) 1));
		bitMask = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_896);
		branches = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_897 = addInt(bitMask, ((NI) 1));
		branches = (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI)chckRange((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_897), ((NI) 0), ((NI) 2147483647))));
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).sons->data[((NI) 0)], (&a));
		labId = (*p).labels;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			i_4 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_898;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_904;
					if (!(i_4 < colontmp__2)) goto LA16;
					i_3 = i_4;
					TM_MQdRN7fpbG7rPm4JpVVAhA_898 = addInt((*p).labels, ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_898 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_898 > 2147483647) raiseOverflow();
					(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_898);
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						if (!((*(*t).sons->data[i_3]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA19_;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T21_);
						T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T23_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T22_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
						genCaseStringBranch_P8OJ6tb5bbr0Tp2llps5Rw(p, (*t).sons->data[i_3], a, T23_, branches->data, (branches ? branches->Sup.len : 0));
					}
					goto LA17_;
					LA19_: ;
					{
					}
					LA17_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_904 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_904);
				} LA16: ;
			}
		}
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA28_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 8);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_905));
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_906));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T30_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T31_);
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_907));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (bitMask)));
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_908));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA34_: ;
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T37_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T37_);
		{
			NI j;
			NI colontmp__3;
			NI T39_;
			NI res_2;
			j = (NI)0;
			colontmp__3 = (NI)0;
			T39_ = ((branches ? branches->Sup.len : 0)-1);
			colontmp__3 = T39_;
			res_2 = ((NI) 0);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_909;
					if (!(res_2 <= colontmp__3)) goto LA41;
					j = res_2;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T46_;
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T47_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
						if ((NU)(j) >= (NU)(branches ? branches->Sup.len : 0)) raiseIndexError2(j,(branches ? branches->Sup.len : 0)-1);
						if (!!((branches->data[j] == NIM_NIL))) goto LA44_;
						T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T46_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T47_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						T47_[0] = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg(((NI64) (j)));
						if ((NU)(j) >= (NU)(branches ? branches->Sup.len : 0)) raiseIndexError2(j,(branches ? branches->Sup.len : 0)-1);
						T47_[1] = branches->data[j];
						T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T48_ = percent__hc7hMh137dtaNdd3qw28EQ(T47_, 2);
						T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T49_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T48_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T46_, T49_);
					}
					LA44_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_909 = addInt(res_2, ((NI) 1));
					res_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_909);
				} LA41: ;
			}
		}
		T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T50_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T51_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T52_ = percent__BYiowJAm8zF7RBRISElaLg(T51_, 0);
		T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T53_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T52_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T50_, T53_);
		{
			NI T56_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_910;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T59_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			T56_ = (NI)0;
			T56_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_910 = subInt(T56_, ((NI) 1));
			if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_910)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_910),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (!!(((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_910)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85)))) goto LA57_;
			T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T59_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T60_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T60_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T60_, 1);
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T62_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T61_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T59_, T62_);
		}
		LA57_: ;
		T63_ = (NI)0;
		T63_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_914 = subInt(T63_, ((NI) 1));
		lend = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_914));
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	goto LA9_;
	LA11_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res_3;
		NI labId_2;
		nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).sons->data[((NI) 0)], (&a_2));
		res_3 = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		labId_2 = (*p).labels;
		{
			NI i_5;
			NI colontmp__4;
			NI T66_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_915;
			NI res_4;
			i_5 = (NI)0;
			colontmp__4 = (NI)0;
			T66_ = (NI)0;
			T66_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_915 = subInt(T66_, ((NI) 1));
			colontmp__4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_915);
			res_4 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_916;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_919;
					if (!(res_4 <= colontmp__4)) goto LA68;
					i_5 = res_4;
					TM_MQdRN7fpbG7rPm4JpVVAhA_916 = addInt((*p).labels, ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_916 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_916 > 2147483647) raiseOverflow();
					(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_916);
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
						NI length;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						if (!((*(*t).sons->data[i_5]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA71_;
						nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).sons->data[i_5]);
						{
							NI i_6;
							NI colontmp__5;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_917;
							NI res_5;
							i_6 = (NI)0;
							colontmp__5 = (NI)0;
							TM_MQdRN7fpbG7rPm4JpVVAhA_917 = subInt(length, ((NI) 2));
							colontmp__5 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_917);
							res_5 = ((NI) 0);
							{
								while (1) {
									NI TM_MQdRN7fpbG7rPm4JpVVAhA_918;
									if (!(res_5 <= colontmp__5)) goto LA75;
									i_6 = res_5;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T80_;
										NimStringDesc* res_6;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i_5]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i_5]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_6) >= (NU)((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)) raiseIndexError2(i_6,((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)-1);
										if (!((*(*(*t).sons->data[i_5]).sons->data[i_6]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA78_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i_5]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i_5]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_6) >= (NU)((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)) raiseIndexError2(i_6,((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 0)) >= (NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).sons ? (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*(*t).sons->data[i_5]).sons->data[i_6]).sons ? (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->data[((NI) 0)], (&x));
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i_5]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i_5]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_6) >= (NU)((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)) raiseIndexError2(i_6,((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 1)) >= (NU)((*(*(*t).sons->data[i_5]).sons->data[i_6]).sons ? (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*(*t).sons->data[i_5]).sons->data[i_6]).sons ? (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t).sons->data[i_5]).sons->data[i_6]).sons->data[((NI) 1)], (&y));
										T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T80_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA83_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA83_: ;
										res_6 = rawNewString(((NI) 80));
										T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T85_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
										T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T86_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T85_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T80_, T86_);
									}
									goto LA76_;
									LA78_: ;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T88_;
										NimStringDesc* res_7;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T94_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T95_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T96_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T97_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_5) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_5,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i_5]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i_5]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_6) >= (NU)((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)) raiseIndexError2(i_6,((*(*t).sons->data[i_5]).sons ? (*(*t).sons->data[i_5]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*t).sons->data[i_5]).sons->data[i_6], (&x));
										T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T88_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA91_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA91_: ;
										res_7 = rawNewString(((NI) 80));
										res_7 = resizeString(res_7, 4);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
										T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T93_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_621));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T93_);
										res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
										T94_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T94_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a_2);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T94_);
										res_7 = resizeString(res_7, 2);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
										T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T95_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T95_);
										res_7 = resizeString(res_7, 8);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_902));
										T96_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T96_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T97_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T96_);
										T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T98_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T97_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), T98_);
										res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA101_;
											res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
										}
										LA101_: ;
										T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T103_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
										T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T104_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T103_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T88_, T104_);
									}
									LA76_: ;
									TM_MQdRN7fpbG7rPm4JpVVAhA_918 = addInt(res_5, ((NI) 1));
									res_5 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_918);
								} LA75: ;
							}
						}
					}
					goto LA69_;
					LA71_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T106_;
						tyArray_JiWwrsTRC6xqNlGcBthSVA T107_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T108_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
						T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T106_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T107_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T107_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T108_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T107_, 1);
						T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T109_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T108_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T106_, T109_);
					}
					LA69_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_919 = addInt(res_4, ((NI) 1));
					res_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_919);
				} LA68: ;
			}
		}
		{
			NI T112_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_920;
			NI T113_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_921;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_922;
			NI gotoTarget;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T116_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T117_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
			NI T120_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_923;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T121_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T122_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T123_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T124_;
			T112_ = (NI)0;
			T112_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_920 = subInt(T112_, ((NI) 1));
			T113_ = (NI)0;
			T113_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_921 = subInt(T113_, ((NI) 1));
			if (!((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_920) < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_921))) goto LA114_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_922 = addInt((*p).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_922 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_922 > 2147483647) raiseOverflow();
			(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_922);
			gotoTarget = (*p).labels;
			T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T116_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T117_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T117_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T117_, 1);
			T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T119_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T118_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T116_, T119_);
			T120_ = (NI)0;
			T120_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_923 = subInt(T120_, ((NI) 1));
			res_3 = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId_2)), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_923));
			T121_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T121_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T122_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T122_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T123_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T123_ = percent__Au81R9a68Rv3gwlPtvDarPg(T122_, 1);
			T124_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T123_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T121_, T124_);
		}
		goto LA110_;
		LA114_: ;
		{
			NI T126_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_924;
			T126_ = (NI)0;
			T126_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_924 = subInt(T126_, ((NI) 1));
			res_3 = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId_2)), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_924));
		}
		LA110_: ;
		lend_2 = res_3;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend_2);
	}
	LA9_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* caseStmt) {
{	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(caseStmt);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T4_;
				NimStringDesc* res;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
				NI T15_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T28_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_941;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T4_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA7_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA7_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA11_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA11_: ;
				T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T13_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
				T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T14_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T4_, T14_);
				T15_ = (NI)0;
				T15_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*caseStmt).kind)>>3] &(1U<<((NU)((*caseStmt).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)) raiseIndexError2(i,((*caseStmt).sons ? (*caseStmt).sons->Sup.len : 0)-1);
				it = (*caseStmt).sons->data[i];
				{
					NI j;
					NI colontmp__2;
					NI T17_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_939;
					NI res_2;
					j = (NI)0;
					colontmp__2 = (NI)0;
					T17_ = (NI)0;
					T17_ = len_P89cqdlERShb9alU3iC0yj8wast(it);
					TM_MQdRN7fpbG7rPm4JpVVAhA_939 = subInt(T17_, ((NI) 2));
					colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_939);
					res_2 = ((NI) 0);
					{
						while (1) {
							NI64 val;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T24_;
							tyArray_JiWwrsTRC6xqNlGcBthSVA T25_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_940;
							if (!(res_2 <= colontmp__2)) goto LA19;
							j = res_2;
							{
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
								if (!((*(*it).sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA22_;
								localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*it).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_845));
								goto BeforeRet_;
							}
							LA22_: ;
							if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
							if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
							val = getOrdValue_MzTDl1zEXJLD4sql7PhCwA((*it).sons->data[j]);
							T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
							T24_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
							nimZeroMem((void*)T25_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
							T25_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(val);
							T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T26_ = percent__Yw741acxvsUs9cOX9cuiDj9bw(T25_, 1);
							T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T27_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
							add_IM4kcMNkkOLJtqdEqSxR8A(T24_, T27_);
							TM_MQdRN7fpbG7rPm4JpVVAhA_940 = addInt(res_2, ((NI) 1));
							res_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_940);
						} LA19: ;
					}
				}
				T28_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
				T28_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(it);
				genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, T28_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				TM_MQdRN7fpbG7rPm4JpVVAhA_941 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_941);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}

static N_INLINE(NI64, subInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ (NI64)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, branchHasTooBigRange_FtWqvDVdWg4sJ9aFlt4ZdKg)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_943;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(b);
		TM_MQdRN7fpbG7rPm4JpVVAhA_943 = subInt(T2_, ((NI) 2));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_943);
		res = ((NI) 0);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_945;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_944;
					T7_ = (NIM_BOOL)0;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					T7_ = ((*(*b).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44));
					if (!(T7_)) goto LA8_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*b).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 1)) >= (NU)((*(*b).sons->data[i]).sons ? (*(*b).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*b).sons->data[i]).sons ? (*(*b).sons->data[i]).sons->Sup.len : 0)-1);
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*(*b).sons->data[i]).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*b).sons->data[i]).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*b).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*(*b).sons->data[i]).sons ? (*(*b).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*b).sons->data[i]).sons ? (*(*b).sons->data[i]).sons->Sup.len : 0)-1);
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*(*b).sons->data[i]).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*(*b).sons->data[i]).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
					TM_MQdRN7fpbG7rPm4JpVVAhA_944 = subInt64((*(*(*b).sons->data[i]).sons->data[((NI) 1)]).intVal, (*(*(*b).sons->data[i]).sons->data[((NI) 0)]).intVal);
					T7_ = (IL64(256) < (NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_944));
					LA8_: ;
					if (!T7_) goto LA9_;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA9_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_945 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_945);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI, ifSwitchSplitPoint_sCIDQrEETdL3XXbX8Uzgrg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_942;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		TM_MQdRN7fpbG7rPm4JpVVAhA_942 = subInt(T2_, ((NI) 1));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_942);
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmtBlock;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_946;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				branch = (*n).sons->data[i];
				stmtBlock = lastSon_UPSW0jLTX5qJL51YMUAHgw(branch);
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = stmtsContainPragma_QPJXGOVirAPBlaL8RY5bwA(stmtBlock, ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 187));
					if (!T7_) goto LA8_;
					result = i;
				}
				goto LA5_;
				LA8_: ;
				{
					if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
					if (!!(((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 0))&7U)))!=0))) goto LA11_;
					{
						NIM_BOOL T15_;
						T15_ = (NIM_BOOL)0;
						T15_ = ((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85));
						if (!(T15_)) goto LA16_;
						T15_ = branchHasTooBigRange_FtWqvDVdWg4sJ9aFlt4ZdKg(branch);
						LA16_: ;
						if (!T15_) goto LA17_;
						result = i;
					}
					LA17_: ;
				}
				goto LA5_;
				LA11_: ;
				LA5_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_946 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_946);
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_20)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NI splitPoint;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
	splitPoint = ifSwitchSplitPoint_sCIDQrEETdL3XXbX8Uzgrg(p, n);
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
		NI labId;
		if (!(((NI) 0) < splitPoint)) goto LA3_;
		res = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		labId = (*p).labels;
		{
			NI i;
			NI res_2;
			i = (NI)0;
			res_2 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_947;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_950;
					if (!(res_2 <= splitPoint)) goto LA7;
					i = res_2;
					TM_MQdRN7fpbG7rPm4JpVVAhA_947 = addInt((*p).labels, ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_947 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_947 > 2147483647) raiseOverflow();
					(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_947);
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
						NI length;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						if (!((*(*n).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA10_;
						nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*n).sons->data[i]);
						{
							NI i_2;
							NI colontmp_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_948;
							NI res_3;
							i_2 = (NI)0;
							colontmp_ = (NI)0;
							TM_MQdRN7fpbG7rPm4JpVVAhA_948 = subInt(length, ((NI) 2));
							colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_948);
							res_3 = ((NI) 0);
							{
								while (1) {
									NI TM_MQdRN7fpbG7rPm4JpVVAhA_949;
									if (!(res_3 <= colontmp_)) goto LA14;
									i_2 = res_3;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
										NimStringDesc* res_4;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)-1);
										if (!((*(*(*n).sons->data[i]).sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA17_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*n).sons->data[i]).sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*(*n).sons->data[i]).sons->data[i_2]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 0)) >= (NU)((*(*(*n).sons->data[i]).sons->data[i_2]).sons ? (*(*(*n).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*(*n).sons->data[i]).sons->data[i_2]).sons ? (*(*(*n).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*n).sons->data[i]).sons->data[i_2]).sons->data[((NI) 0)], (&x));
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*n).sons->data[i]).sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*(*n).sons->data[i]).sons->data[i_2]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 1)) >= (NU)((*(*(*n).sons->data[i]).sons->data[i_2]).sons ? (*(*(*n).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*(*n).sons->data[i]).sons->data[i_2]).sons ? (*(*(*n).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*n).sons->data[i]).sons->data[i_2]).sons->data[((NI) 1)], (&y));
										T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA22_: ;
										res_4 = rawNewString(((NI) 80));
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
										T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T24_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T24_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_928));
										T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T25_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T25_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_929));
										T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T26_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T26_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_930));
										T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T27_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(y);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T27_);
										res_4 = resizeString(res_4, 7);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_931));
										T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T28_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T29_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T28_);
										T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T30_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T29_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T30_);
										res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA33_;
											res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
										}
										LA33_: ;
										T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T35_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
										T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T36_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T35_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T36_);
									}
									goto LA15_;
									LA17_: ;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T38_;
										NimStringDesc* res_5;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*n).sons->data[i]).sons ? (*(*n).sons->data[i]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n).sons->data[i]).sons->data[i_2], (&x));
										T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T38_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA41_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA41_: ;
										res_5 = rawNewString(((NI) 80));
										res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
										T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T43_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T43_);
										res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466));
										T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T44_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T44_);
										res_5 = resizeString(res_5, 7);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_931));
										T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T45_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T46_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T45_);
										T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T47_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T46_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T47_);
										res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA50_;
											res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
										}
										LA50_: ;
										T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T52_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
										T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T53_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T52_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T38_, T53_);
									}
									LA15_: ;
									TM_MQdRN7fpbG7rPm4JpVVAhA_949 = addInt(res_3, ((NI) 1));
									res_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_949);
								} LA14: ;
							}
						}
					}
					goto LA8_;
					LA10_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T55_;
						tyArray_JiWwrsTRC6xqNlGcBthSVA T56_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T58_;
						T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T55_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T56_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T56_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T57_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T56_, 1);
						T58_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T58_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T57_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T55_, T58_);
					}
					LA8_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_950 = addInt(res_2, ((NI) 1));
					res_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_950);
				} LA7: ;
			}
		}
		{
			NI T61_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_951;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_952;
			NI gotoTarget;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T64_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T65_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T66_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T68_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T69_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T70_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			T61_ = (NI)0;
			T61_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			TM_MQdRN7fpbG7rPm4JpVVAhA_951 = subInt(T61_, ((NI) 1));
			if (!(splitPoint < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_951))) goto LA62_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_952 = addInt((*p).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_952 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_952 > 2147483647) raiseOverflow();
			(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_952);
			gotoTarget = (*p).labels;
			T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T64_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T65_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T65_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T66_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T65_, 1);
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T66_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T64_, T67_);
			res = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, n, d, ((NI) (labId)), splitPoint);
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T68_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T69_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T69_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T70_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T70_ = percent__Au81R9a68Rv3gwlPtvDarPg(T69_, 1);
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T70_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T68_, T71_);
		}
		goto LA59_;
		LA62_: ;
		{
			res = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, n, d, ((NI) (labId)), splitPoint);
		}
		LA59_: ;
		lend = res;
	}
	goto LA1_;
	LA3_: ;
	{
		lend = NIM_NIL;
	}
	LA1_: ;
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_953;
		NI T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T79_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T80_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T81_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T82_;
		NIM_BOOL hasDefault;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T116_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T117_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
		TM_MQdRN7fpbG7rPm4JpVVAhA_953 = addInt(splitPoint, ((NI) 1));
		T76_ = (NI)0;
		T76_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_953) < T76_)) goto LA77_;
		T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T79_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T80_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T80_[0] = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
		T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T81_ = percent__T9caGByKkBhaXSZ6fCJLIdQ(T80_, 1);
		T82_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T82_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T81_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T79_, T82_);
		hasDefault = NIM_FALSE;
		{
			NI i_3;
			NI colontmp__2;
			NI colontmp__3;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_954;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__3 = (NI)0;
			TM_MQdRN7fpbG7rPm4JpVVAhA_954 = addInt(splitPoint, ((NI) 1));
			colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_954);
			colontmp__3 = len_P89cqdlERShb9alU3iC0yj8wast(n);
			i_4 = colontmp__2;
			{
				while (1) {
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* branch;
					tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T101_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T102_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T103_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_955;
					if (!(i_4 < colontmp__3)) goto LA85;
					i_3 = i_4;
					{
						NIM_BOOL T88_;
						T88_ = (NIM_BOOL)0;
						T88_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
						if (!(T88_)) goto LA89_;
						T88_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
						LA89_: ;
						if (!T88_) goto LA90_;
						(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
					}
					LA90_: ;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					branch = (*n).sons->data[i_3];
					{
						if (!((*branch).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA94_;
						genCaseRange_KUz7NJSCXeUWRl4foF5zfg(p, branch);
					}
					goto LA92_;
					LA94_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T97_;
						tyArray_qTjAvTvKF9anytN1At69aJMQ T98_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
						T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T97_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T98_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
						T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T99_ = percent__TTRh79a14hh1gb0owIP1Y6Q(T98_, 0);
						T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T100_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T99_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T97_, T100_);
						hasDefault = NIM_TRUE;
					}
					LA92_: ;
					T101_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
					T101_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(branch);
					exprBlock_8mAL9ckajemzgfLPfeZVNoQ_19(p, T101_, d);
					T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T102_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T103_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T104_ = percent__TmeCjGna9cPfiHHcfqmKXjw(T103_, 0);
					T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T105_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T104_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T102_, T105_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_955 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_955);
				} LA85: ;
			}
		}
		{
			NIM_BOOL T108_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T112_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T113_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T115_;
			T108_ = (NIM_BOOL)0;
			if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
			T108_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 3))&7U)))!=0);
			if (!(T108_)) goto LA109_;
			T108_ = !(hasDefault);
			LA109_: ;
			if (!T108_) goto LA110_;
			T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T112_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T113_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T114_ = percent__JmTWN8YiVKTZuvCYW2XNZA(T113_, 0);
			T115_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T115_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T114_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T112_, T115_);
		}
		LA110_: ;
		T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T116_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T117_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T118_ = percent__BYiowJAm8zF7RBRISElaLg(T117_, 0);
		T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T119_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T118_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T116_, T119_);
	}
	LA77_: ;
	{
		if (!!((lend == NIM_NIL))) goto LA122_;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	LA122_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genCase_re1pwmyeR32ikwnOC3vvzQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	T8_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T8_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*t).sons->data[((NI) 0)]).typ, IL64(36134350144710928));
	switch ((*T8_).kind) {
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		genStringCase_re1pwmyeR32ikwnOC3vvzQ_2(p, t, d);
	}
	break;
	case ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* lend;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* res;
		NI labId;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*t).sons->data[((NI) 0)], (&a));
		res = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		labId = (*p).labels;
		{
			NI i;
			NI colontmp_;
			NI T12_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_925;
			NI res_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T12_ = (NI)0;
			T12_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_925 = subInt(T12_, ((NI) 1));
			colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_925);
			res_2 = ((NI) 1);
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_926;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_933;
					if (!(res_2 <= colontmp_)) goto LA14;
					i = res_2;
					TM_MQdRN7fpbG7rPm4JpVVAhA_926 = addInt((*p).labels, ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_926 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_926 > 2147483647) raiseOverflow();
					(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_926);
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA x;
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA y;
						NI length;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						if (!((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA17_;
						nimZeroMem((void*)(&x), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						nimZeroMem((void*)(&y), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).sons->data[i]);
						{
							NI i_2;
							NI colontmp__2;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_927;
							NI res_3;
							i_2 = (NI)0;
							colontmp__2 = (NI)0;
							TM_MQdRN7fpbG7rPm4JpVVAhA_927 = subInt(length, ((NI) 2));
							colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_927);
							res_3 = ((NI) 0);
							{
								while (1) {
									NI TM_MQdRN7fpbG7rPm4JpVVAhA_932;
									if (!(res_3 <= colontmp__2)) goto LA21;
									i_2 = res_3;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
										NimStringDesc* res_4;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
										if (!((*(*(*t).sons->data[i]).sons->data[i_2]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA24_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i]).sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i]).sons->data[i_2]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 0)) >= (NU)((*(*(*t).sons->data[i]).sons->data[i_2]).sons ? (*(*(*t).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*(*t).sons->data[i]).sons->data[i_2]).sons ? (*(*(*t).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t).sons->data[i]).sons->data[i_2]).sons->data[((NI) 0)], (&x));
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i]).sons->data[i_2]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i]).sons->data[i_2]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(((NI) 1)) >= (NU)((*(*(*t).sons->data[i]).sons->data[i_2]).sons ? (*(*(*t).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*(*t).sons->data[i]).sons->data[i_2]).sons ? (*(*(*t).sons->data[i]).sons->data[i_2]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*(*t).sons->data[i]).sons->data[i_2]).sons->data[((NI) 1)], (&y));
										T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA29_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA29_: ;
										res_4 = rawNewString(((NI) 80));
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
										T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T31_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T31_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_928));
										T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T32_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T32_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_929));
										T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T33_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T33_);
										res_4 = resizeString(res_4, 4);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_930));
										T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T34_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(y);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T34_);
										res_4 = resizeString(res_4, 7);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_931));
										T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T35_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T36_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T35_);
										T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T37_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T36_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T37_);
										res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA40_;
											res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
										}
										LA40_: ;
										T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T42_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
										T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T43_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T42_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T43_);
									}
									goto LA22_;
									LA24_: ;
									{
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T45_;
										NimStringDesc* res_5;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
										tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
										if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
										if ((NU)(i_2) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(i_2,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
										initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*t).sons->data[i]).sons->data[i_2], (&x));
										T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
										T45_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
										{
											if (!!(!(((*p).module == NIM_NIL)))) goto LA48_;
											failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
										}
										LA48_: ;
										res_5 = rawNewString(((NI) 80));
										res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
										T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T50_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(a);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T50_);
										res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_466));
										T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T51_ = rdCharLoc_xidyzuHqIciXbQyEOKahDg_2(x);
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T51_);
										res_5 = resizeString(res_5, 7);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_931));
										T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T52_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
										T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T53_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_442), T52_);
										T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T54_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T53_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
										cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T54_);
										res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
										{
											if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA57_;
											res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
										}
										LA57_: ;
										T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T59_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
										T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
										T60_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T59_);
										add_IM4kcMNkkOLJtqdEqSxR8A(T45_, T60_);
									}
									LA22_: ;
									TM_MQdRN7fpbG7rPm4JpVVAhA_932 = addInt(res_3, ((NI) 1));
									res_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_932);
								} LA21: ;
							}
						}
					}
					goto LA15_;
					LA17_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T62_;
						tyArray_JiWwrsTRC6xqNlGcBthSVA T63_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
						T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T62_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						nimZeroMem((void*)T63_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						T63_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*p).labels)));
						T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T64_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T63_, 1);
						T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T65_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T64_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T62_, T65_);
					}
					LA15_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_933 = addInt(res_2, ((NI) 1));
					res_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_933);
				} LA14: ;
			}
		}
		{
			NI T68_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_934;
			NI T69_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_935;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_936;
			NI gotoTarget;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T72_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T73_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			NI T76_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_937;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T77_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T78_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T79_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T80_;
			T68_ = (NI)0;
			T68_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_934 = subInt(T68_, ((NI) 1));
			T69_ = (NI)0;
			T69_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_935 = subInt(T69_, ((NI) 1));
			if (!((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_934) < (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_935))) goto LA70_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_936 = addInt((*p).labels, ((NI) 1));
			if (TM_MQdRN7fpbG7rPm4JpVVAhA_936 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_936 > 2147483647) raiseOverflow();
			(*p).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_936);
			gotoTarget = (*p).labels;
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T72_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T73_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T73_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = percent__XWz49cQA2QiZaLkqHBU5L3g(T73_, 1);
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T74_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T72_, T75_);
			T76_ = (NI)0;
			T76_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_937 = subInt(T76_, ((NI) 1));
			res = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_937));
			T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T77_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T78_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T78_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (gotoTarget)));
			T79_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T79_ = percent__Au81R9a68Rv3gwlPtvDarPg(T78_, 1);
			T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T80_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T79_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T77_, T80_);
		}
		goto LA66_;
		LA70_: ;
		{
			NI T82_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_938;
			T82_ = (NI)0;
			T82_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_938 = subInt(T82_, ((NI) 1));
			res = genCaseSecondPass_4DRiNj9aN6Z9aXL9bqOB79czGw(p, t, d, ((NI) (labId)), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_938));
		}
		LA66_: ;
		lend = res;
		fixLabel_z1hx9axqa9cHsmY7bMeZVSrQ(p, lend);
	}
	break;
	default:
	{
		{
			NIM_BOOL T86_;
			T86_ = (NIM_BOOL)0;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			T86_ = ((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T86_)) goto LA87_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*t).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			T86_ = (((*(*(*t).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
			LA87_: ;
			if (!T86_) goto LA88_;
			genGotoForCase_ACGHJp9bbmHaRpjqO8LXrqA(p, t);
		}
		goto LA84_;
		LA88_: ;
		{
			genOrdinalCase_8mAL9ckajemzgfLPfeZVNoQ_20(p, t, d);
		}
		LA84_: ;
	}
	break;
	}
}

static N_INLINE(void, pop_in6U6M9b8kwov18g9cnnpKlAsystem)(tySequence_P9c6Y5h4sjjYLVGti5AELHg** s, tyTuple_aTNxDjHI7v9cq37xS7PT7jA* Result) {
	NI L;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_956;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_956 = subInt(T1_, ((NI) 1));
	L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_956);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)) raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1);
	unsureAsgnRef((void**) (&(*Result).Field0), (*s)->data[L].Field0);
	(*Result).Field1 = (*s)->data[L].Field1;
	unsureAsgnRef((void**) (&(*s)), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) setLengthSeqV2(&((*s))->Sup, (&NTI_P9c6Y5h4sjjYLVGti5AELHg_), ((NI)chckRange(L, ((NI) 0), ((NI) 2147483647)))));
}

N_LIB_PRIVATE N_NIMCALL(void, blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, NI howManyTrys, NI howManyExcepts) {
	tySequence_P9c6Y5h4sjjYLVGti5AELHg* stack;
	stack = newSeq_OaobbyM33hdaUSQLz9cbgqA(((NI) 0));
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 1);
		{
			while (1) {
				tyTuple_aTNxDjHI7v9cq37xS7PT7jA tryStmt;
				NI T28_;
				tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyStmt;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_958;
				if (!(res <= howManyTrys)) goto LA3;
				i = res;
				nimZeroMem((void*)(&tryStmt), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
				pop_in6U6M9b8kwov18g9cnnpKlAsystem((&(*p).nestedTryStmts), (&tryStmt));
				{
					NIM_BOOL T6_;
					NIM_BOOL T7_;
					T6_ = (NIM_BOOL)0;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
					if (T7_) goto LA8_;
					T7_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
					LA8_: ;
					T6_ = !(T7_);
					if (T6_) goto LA9_;
					T6_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&63U)))!=0);
					LA9_: ;
					if (!T6_) goto LA10_;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T16_;
						NimStringDesc* res_2;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
						if (!!(tryStmt.Field1)) goto LA14_;
						T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T16_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA19_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
						}
						LA19_: ;
						res_2 = rawNewString(((NI) 80));
						T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T21_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_957));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T21_);
						res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA24_;
							res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA24_: ;
						T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T26_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
						T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T27_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T16_, T27_);
					}
					LA14_: ;
				}
				LA10_: ;
				stack = (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3((TGenericSeq*)(stack), (&NTI_P9c6Y5h4sjjYLVGti5AELHg_));
				T28_ = stack->Sup.len++;
				asgnRef((void**) (&stack->data[T28_].Field0), tryStmt.Field0);
				stack->data[T28_].Field1 = tryStmt.Field1;
				finallyStmt = lastSon_UPSW0jLTX5qJL51YMUAHgw(tryStmt.Field0);
				{
					if (!((*finallyStmt).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA31_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*finallyStmt).kind)>>3] &(1U<<((NU)((*finallyStmt).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*finallyStmt).sons ? (*finallyStmt).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*finallyStmt).sons ? (*finallyStmt).sons->Sup.len : 0)-1);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*finallyStmt).sons->data[((NI) 0)]);
				}
				LA31_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_958 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_958);
			} LA3: ;
		}
	}
	{
		NI i_2;
		NI colontmp_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_959;
		NI res_3;
		i_2 = (NI)0;
		colontmp_ = (NI)0;
		TM_MQdRN7fpbG7rPm4JpVVAhA_959 = subInt(howManyTrys, ((NI) 1));
		colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_959);
		res_3 = colontmp_;
		{
			while (1) {
				NI T36_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_960;
				if (!(((NI) 0) <= res_3)) goto LA35;
				i_2 = res_3;
				if ((NU)(i_2) >= (NU)(stack ? stack->Sup.len : 0)) raiseIndexError2(i_2,(stack ? stack->Sup.len : 0)-1);
				asgnRef((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
				T36_ = (*p).nestedTryStmts->Sup.len++;
				asgnRef((void**) (&(*p).nestedTryStmts->data[T36_].Field0), stack->data[i_2].Field0);
				(*p).nestedTryStmts->data[T36_].Field1 = stack->data[i_2].Field1;
				TM_MQdRN7fpbG7rPm4JpVVAhA_960 = subInt(res_3, ((NI) 1));
				res_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_960);
			} LA35: ;
		}
	}
	{
		NIM_BOOL T39_;
		NIM_BOOL T40_;
		T39_ = (NIM_BOOL)0;
		T40_ = (NIM_BOOL)0;
		T40_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T40_) goto LA41_;
		T40_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA41_: ;
		T39_ = !(T40_);
		if (T39_) goto LA42_;
		T39_ = (((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&63U)))!=0);
		LA42_: ;
		if (!T39_) goto LA43_;
		{
			if (!!((*p).noSafePoints)) goto LA47_;
			{
				NI i_3;
				NI colontmp__2;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_961;
				NI res_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				TM_MQdRN7fpbG7rPm4JpVVAhA_961 = subInt(howManyExcepts, ((NI) 1));
				colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_961);
				res_4 = colontmp__2;
				{
					while (1) {
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T52_;
						NimStringDesc* res_5;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_963;
						if (!(((NI) 0) <= res_4)) goto LA51;
						i_3 = res_4;
						T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
						T52_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
						{
							if (!!(!(((*p).module == NIM_NIL)))) goto LA55_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
						}
						LA55_: ;
						res_5 = rawNewString(((NI) 80));
						T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T57_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_962));
						cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T57_);
						res_5 = resizeString(res_5, 3);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
						{
							if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA60_;
							res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						LA60_: ;
						T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T62_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
						T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T63_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T62_);
						add_IM4kcMNkkOLJtqdEqSxR8A(T52_, T63_);
						TM_MQdRN7fpbG7rPm4JpVVAhA_963 = subInt(res_4, ((NI) 1));
						res_4 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_963);
					} LA51: ;
				}
			}
		}
		LA47_: ;
	}
	LA43_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI T9_;
	NI T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T31_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T32_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
{	{
		if (!(((*t).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	(*p).beforeRetNeeded = NIM_TRUE;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (!!(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA7_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t).sons->data[((NI) 0)]);
	}
	LA7_: ;
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T10_ = (NI)0;
	T10_ = inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2(p);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, T9_, T10_);
	{
		NIM_BOOL T13_;
		NI T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* safePoint;
		NI T18_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_964;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
		T13_ = (NIM_BOOL)0;
		T14_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		T13_ = (((NI) 0) < T14_);
		if (!(T13_)) goto LA15_;
		T13_ = !((*p).noSafePoints);
		LA15_: ;
		if (!T13_) goto LA16_;
		T18_ = ((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0);
		TM_MQdRN7fpbG7rPm4JpVVAhA_964 = subInt(T18_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_964)) >= (NU)((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_964),((*p).finallySafePoints ? (*p).finallySafePoints->Sup.len : 0)-1);
		safePoint = (*p).finallySafePoints->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_964)];
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T19_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA22_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), safePoint);
		res = resizeString(res, 14);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_965));
		T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T24_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_962));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T24_);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA27_: ;
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T30_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T29_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T30_);
	}
	LA16_: ;
	T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T31_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T32_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T33_ = percent__Kbv8OIo8zpawh7SNMbfgkA(T32_, 0);
	T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T34_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T33_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T31_, T34_);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI idx;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* label;
	NI T24_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_971;
	NI T25_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_972;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T26_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T27_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
	idx = (*p).breakIdx;
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_968;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (!!(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		{
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (!!(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3)))) goto LA7_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_966));
		}
		LA7_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*t).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		sym = (*(*t).sons->data[((NI) 0)]).sym;
		{
			if (!!(((*sym).loc.k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 10)))) goto LA11_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_967));
		}
		LA11_: ;
		TM_MQdRN7fpbG7rPm4JpVVAhA_968 = subInt((*sym).position, ((NI) 1));
		idx = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_968);
	}
	goto LA1_;
	LA3_: ;
	{
		{
			while (1) {
				NIM_BOOL T16_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_969;
				T16_ = (NIM_BOOL)0;
				T16_ = (((NI) 0) <= idx);
				if (!(T16_)) goto LA17_;
				if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
				T16_ = !((*p).blocks->data[idx].isLoop);
				LA17_: ;
				if (!T16_) goto LA15;
				TM_MQdRN7fpbG7rPm4JpVVAhA_969 = subInt(idx, ((NI) 1));
				idx = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_969);
			} LA15: ;
		}
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = (idx < ((NI) 0));
			if (T20_) goto LA21_;
			if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
			T20_ = !((*p).blocks->data[idx].isLoop);
			LA21_: ;
			if (!T20_) goto LA22_;
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*t).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_970));
		}
		LA22_: ;
	}
	LA1_: ;
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	label = assignLabel_mIFKIo7g6Echd7EokLhQegcgen((&(*p).blocks->data[idx]));
	T24_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	TM_MQdRN7fpbG7rPm4JpVVAhA_971 = subInt(T24_, ((NI) ((*p).blocks->data[idx].nestedTryStmts)));
	T25_ = (NI)0;
	T25_ = inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2(p);
	if ((NU)(idx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2(idx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	TM_MQdRN7fpbG7rPm4JpVVAhA_972 = subInt(T25_, ((NI) ((*p).blocks->data[idx].nestedExceptStmts)));
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_971), (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_972));
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T26_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T27_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T27_[0] = label;
	T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T28_ = percent__c1f569aWpTd825BTnv9bq4Xg(T27_, 1);
	T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T29_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T28_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T26_, T29_);
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fieldDiscriminantCheckNeeded_d5oNi1LGrB28KpBLXL9a32Q)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* asgn) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 2))&31U)))!=0)) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*asgn).kind)>>3] &(1U<<((NU)((*asgn).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*asgn).sons ? (*asgn).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*asgn).sons ? (*asgn).sons->Sup.len : 0)-1);
		le = (*asgn).sons->data[((NI) 0)];
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*le).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			field = (*(*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]).sym;
			result = (((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0);
		}
		goto LA5_;
		LA7_: ;
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field_2;
			if (!((*le).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA10_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*le).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			field_2 = (*(*le).sons->data[((NI) 1)]).sym;
			result = (((*field_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 18))&63U)))!=0);
		}
		goto LA5_;
		LA10_: ;
		LA5_: ;
	}
	LA3_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCaseObjDiscMapping_Wc0TPRDzP9a6sdbq2sjsjcA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* theProc;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T20_;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T21_;
	theProc = NIM_NIL;
	{
		NI idx;
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* p_2;
		tySequence_MvZmat48bhe9b6x9aUD58D5Q* colontmp_;
		NI i;
		NI L;
		NI T2_;
		idx = (NI)0;
		p_2 = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
		colontmp_ = (tySequence_MvZmat48bhe9b6x9aUD58D5Q*)0;
		colontmp_ = (*t).methods;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_974;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				idx = colontmp_->data[i].Field0;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				p_2 = colontmp_->data[i].Field1;
				{
					if (!(idx == ((NI) -5))) goto LA7_;
					theProc = p_2;
					goto LA1;
				}
				LA7_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_974 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_974);
				{
					NI T11_;
					T11_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T11_ == L))) goto LA12_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA12_: ;
			} LA4: ;
		}
	} LA1: ;
	{
		tyTuple_zwpS6d6iewrdlBSTNFoyVA T18_;
		NI T19_;
		if (!(theProc == NIM_NIL)) goto LA16_;
		theProc = genCaseObjDiscMapping_vdEMa74K7U684lW2D5bieg(t, field, (*e).info, (*(*(*p).module).g).graph);
		nimZeroMem((void*)(&T18_), sizeof(tyTuple_zwpS6d6iewrdlBSTNFoyVA));
		T18_.Field0 = ((NI) -5);
		T18_.Field1 = theProc;
		asgnRef((void**) (&(*t).methods), (tySequence_MvZmat48bhe9b6x9aUD58D5Q*) incrSeqV3((TGenericSeq*)((*t).methods), (&NTI_MvZmat48bhe9b6x9aUD58D5Q_)));
		T19_ = (*t).methods->Sup.len++;
		(*t).methods->data[T19_].Field0 = T18_.Field0;
		asgnRef((void**) (&(*t).methods->data[T19_].Field1), T18_.Field1);
	}
	LA16_: ;
	T20_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T20_ = getSysType_VcTNc9cK1Ftuh0MFwOC9c0Tg((*(*(*p).module).g).graph, (*e).info, ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 41));
	call = newNodeIT_2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27), (*e).info, T20_);
	T21_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	T21_ = newSymNode_I2DV2TmmOysY1ZEGW19b9bRg(theProc);
	add_P8dDSotTW25BkfbyspojGg(call, T21_);
	add_P8dDSotTW25BkfbyspojGg(call, e);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, call, d);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, discriminatorTableDecl_WpGsd0DJejVIze0ZXr8L3g_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T2_;
	NI64 T3_;
	NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_977;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
	(void)(T1_);
	tmp = discriminatorTableName_WpGsd0DJejVIze0ZXr8L3g(m, objtype, d);
	nimZeroMem((void*)T2_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_[0] = tmp;
	T3_ = (NI64)0;
	T3_ = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*m).g).config, (*d).typ);
	TM_MQdRN7fpbG7rPm4JpVVAhA_977 = addInt64(T3_, IL64(1));
	T2_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_977));
	result = percent__erDe9aYc2BNxzH9brKlmtEBg(T2_, 2);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp, tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objtype, tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field) {
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	NI64 L;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T17_;
	NimStringDesc* res_2;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
	NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_981;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
	t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg(objtype, IL64(36275087632017680));
	{
		if (!!(((*t).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 17)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_976));
	}
	LA3_: ;
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, t, (*a.lode).info);
	(void)(T5_);
	L = lengthOrd_4cSIntenL9aBXY6LAFsvXdQ_2((*(*(*p).module).g).config, (*field).typ);
	{
		NIM_BOOL T8_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		T8_ = (NIM_BOOL)0;
		T8_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*(*p).module).declaredThings), (*field).Sup.id);
		if (!!(T8_)) goto LA9_;
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_283));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = discriminatorTableDecl_WpGsd0DJejVIze0ZXr8L3g_2((*p).module, t, field);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T16_);
	}
	LA9_: ;
	T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T17_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA20_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA20_: ;
	res_2 = rawNewString(((NI) 80));
	T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T22_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_978));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T22_);
	res_2 = resizeString(res_2, 10);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_979));
	T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T23_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T23_);
	res_2 = resizeString(res_2, 12);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_980));
	T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T24_ = rdLoc_xidyzuHqIciXbQyEOKahDg(tmp);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T24_);
	res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_614));
	T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T25_ = discriminatorTableName_WpGsd0DJejVIze0ZXr8L3g((*p).module, t, field);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T25_);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	TM_MQdRN7fpbG7rPm4JpVVAhA_981 = addInt64(L, IL64(1));
	T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T26_ = intLiteral_kQA0lBUvzOSZAw7DHC4Fjg((NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_981));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T26_);
	res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA29_;
		res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA29_: ;
	T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T31_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T32_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T31_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T17_, T32_);
}

N_LIB_PRIVATE N_NIMCALL(void, asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA tmp;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* dotExpr;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* field;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&tmp), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	dotExpr = (*e).sons->data[((NI) 0)];
	{
		if (!((*dotExpr).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)-1);
		dotExpr = (*dotExpr).sons->data[((NI) 0)];
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*e).sons->data[((NI) 0)], (&a));
	T5_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
	getTemp_VjOFVqypINqQv5C3ECnxbw(p, T5_, (&tmp), NIM_FALSE);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*e).sons->data[((NI) 1)], (&tmp));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*dotExpr).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*dotExpr).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	field = (*(*dotExpr).sons->data[((NI) 1)]).sym;
	{
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA oldVal;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA newVal;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
		if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA8_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)-1);
		t = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*dotExpr).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		nimZeroMem((void*)(&oldVal), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		nimZeroMem((void*)(&newVal), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		genCaseObjDiscMapping_Wc0TPRDzP9a6sdbq2sjsjcA(p, (*e).sons->data[((NI) 0)], t, field, (&oldVal));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		genCaseObjDiscMapping_Wc0TPRDzP9a6sdbq2sjsjcA(p, (*e).sons->data[((NI) 1)], t, field, (&newVal));
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA13_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA13_: ;
		res = rawNewString(((NI) 80));
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_975));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T15_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T16_ = rdLoc_xidyzuHqIciXbQyEOKahDg(oldVal);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T16_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
		T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T17_ = rdLoc_xidyzuHqIciXbQyEOKahDg(newVal);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T17_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA20_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA20_: ;
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T22_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T23_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T22_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T10_, T23_);
	}
	goto LA6_;
	LA8_: ;
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*dotExpr).kind)>>3] &(1U<<((NU)((*dotExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*dotExpr).sons ? (*dotExpr).sons->Sup.len : 0)-1);
		genDiscriminantCheck_c1s9cEnyLNclmLP8bBuHmDg(p, a, tmp, (*(*dotExpr).sons->data[((NI) 0)]).typ, field);
	}
	LA6_: ;
	genAssignment_BtucsTdHw7orsXIL75hNVg(p, a, tmp, 0);
}

N_LIB_PRIVATE N_NIMCALL(void, genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* e, NIM_BOOL fastAsgn) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		T3_ = ((*(*e).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*e).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*e).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		T3_ = (((*(*(*e).sons->data[((NI) 0)]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		genGotoVar_4xOIY9bgIMy9bAzg2ZyIieBw(p, (*e).sons->data[((NI) 1)]);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T8_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* le;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ri;
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
		T8_ = (NIM_BOOL)0;
		T8_ = fieldDiscriminantCheckNeeded_d5oNi1LGrB28KpBLXL9a32Q(p, e);
		if (!!(T8_)) goto LA9_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		le = (*e).sons->data[((NI) 0)];
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		ri = (*e).sons->data[((NI) 1)];
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		T11_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T11_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*le).typ, IL64(36275087638268176));
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T12_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T11_);
		(void)(T12_);
		initLoc_qlujIAW86QclHYUVxlHRiQ((&a), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0), le, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 9)) & 15);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, le, (&a));
		{
			if (!fastAsgn) goto LA15_;
			a.flags |= ((NU16)1)<<((((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 2)) & 15);
		}
		LA15_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
			T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T19_ = t_XNOXh7uniWNgiq58C9bW49awcgen(a);
			if (!!(!((T19_ == NIM_NIL)))) goto LA20_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_973));
		}
		LA20_: ;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, ri);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*e).sons ? (*e).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*e).sons ? (*e).sons->Sup.len : 0)-1);
		loadInto_vkEx8Dn9aiGOI04WjvQIHIwcgen(p, (*e).sons->data[((NI) 0)], ri, (&a));
	}
	goto LA1_;
	LA9_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, e);
		asgnFieldDiscriminant_X9cSqNhqEboci9cdmwBMNcBw_4(p, e);
		message_mMj7lrOf3zBP9bl69amiKu5g((*(*(*p).module).g).config, (*e).info, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 40), ((NimStringDesc*) NIM_NIL));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, NIM_BOOL isAsmStmt) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* res;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	res = ((NimStringDesc*) NIM_NIL);
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* it;
		tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		colontmp_ = (*t).sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_984;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				it = colontmp_->data[i];
				switch ((*it).kind) {
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
				{
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
					res = resizeString(res, ((*it).strVal ? (*it).strVal->Sup.len : 0) + 0);
appendString(res, (*it).strVal);
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
					if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
					sym = (*it).sym;
					{
						tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
						NimStringDesc* T12_;
						if (!((61440 &(1U<<((NU)((*sym).kind)&31U)))!=0)) goto LA9_;
						nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
						initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a));
						T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T11_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
						T12_ = (NimStringDesc*)0;
						T12_ = dollar__mZ66tEveFIQokq3arf8Klw(T11_);
						res = resizeString(res, (T12_ ? T12_->Sup.len : 0) + 0);
appendString(res, T12_);
					}
					goto LA7_;
					LA9_: ;
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
						NimStringDesc* T17_;
						if (!((*sym).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 7))) goto LA14_;
						T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T16_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*sym).typ);
						T17_ = (NimStringDesc*)0;
						T17_ = dollar__mZ66tEveFIQokq3arf8Klw(T16_);
						res = resizeString(res, (T17_ ? T17_->Sup.len : 0) + 0);
appendString(res, T17_);
					}
					goto LA7_;
					LA14_: ;
					{
						tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T19_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* r;
						NimStringDesc* T25_;
						T19_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T19_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*sym).typ, IL64(36275087638309136));
						T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T20_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T19_);
						(void)(T20_);
						r = (*sym).loc.r;
						{
							if (!(r == NIM_NIL)) goto LA23_;
							r = mangleName_RaNE9b8A430I9bfpgZmdrC1w((*p).module, sym);
							asgnRef((void**) (&(*sym).loc.r), r);
						}
						LA23_: ;
						T25_ = (NimStringDesc*)0;
						T25_ = dollar__mZ66tEveFIQokq3arf8Klw(r);
						res = resizeString(res, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(res, T25_);
					}
					LA7_: ;
				}
				break;
				case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 132):
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
					NimStringDesc* T28_;
					T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T27_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*it).typ);
					T28_ = (NimStringDesc*)0;
					T28_ = dollar__mZ66tEveFIQokq3arf8Klw(T27_);
					res = resizeString(res, (T28_ ? T28_->Sup.len : 0) + 0);
appendString(res, T28_);
				}
				break;
				default:
				{
					tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
					tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
					NimStringDesc* T33_;
					T30_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T30_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*it).typ, IL64(36275087638309136));
					T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T31_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, T30_);
					(void)(T31_);
					nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
					initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, it, (&a_2));
					T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T32_ = rdLoc_xidyzuHqIciXbQyEOKahDg(a_2);
					T33_ = (NimStringDesc*)0;
					T33_ = dollar__mZ66tEveFIQokq3arf8Klw(T32_);
					res = resizeString(res, (T33_ ? T33_->Sup.len : 0) + 0);
appendString(res, T33_);
				}
				break;
				}
				TM_MQdRN7fpbG7rPm4JpVVAhA_984 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_984);
				{
					NI T36_;
					T36_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T36_ == L))) goto LA37_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA37_: ;
			} LA4: ;
		}
	}
	{
		NIM_BOOL T41_;
		T41_ = (NIM_BOOL)0;
		T41_ = isAsmStmt;
		if (!(T41_)) goto LA42_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
		T41_ = ((CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field19 &(1U<<((NU)(((tyEnum_TInfoCCProp_49cn73TjZ7Rt9b8QCAU8tLNg) 5))&7U)))!=0);
		LA42_: ;
		if (!T41_) goto LA43_;
		{
			NimStringDesc* x;
			NI first;
			NI last;
			NI eolpos;
			x = (NimStringDesc*)0;
			first = ((NI) 0);
			last = ((NI) 0);
			eolpos = ((NI) 0);
			{
				while (1) {
					NI T69_;
					NI j;
					{
						while (1) {
							NIM_BOOL T50_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_985;
							T50_ = (NIM_BOOL)0;
							T50_ = (last < (res ? res->Sup.len : 0));
							if (!(T50_)) goto LA51_;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)) raiseIndexError2(last,(res ? res->Sup.len : 0)-1);
							T50_ = !((((NU8)(res->data[last])) == ((NU8)(13)) || ((NU8)(res->data[last])) == ((NU8)(10))));
							LA51_: ;
							if (!T50_) goto LA49;
							TM_MQdRN7fpbG7rPm4JpVVAhA_985 = addInt(last, ((NI) 1));
							last = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_985);
						} LA49: ;
					}
					eolpos = last;
					{
						if (!(last < (res ? res->Sup.len : 0))) goto LA54_;
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_986;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)) raiseIndexError2(last,(res ? res->Sup.len : 0)-1);
							if (!((NU8)(res->data[last]) == (NU8)(10))) goto LA58_;
							TM_MQdRN7fpbG7rPm4JpVVAhA_986 = addInt(last, ((NI) 1));
							last = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_986);
						}
						goto LA56_;
						LA58_: ;
						{
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_987;
							if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)) raiseIndexError2(last,(res ? res->Sup.len : 0)-1);
							if (!((NU8)(res->data[last]) == (NU8)(13))) goto LA61_;
							TM_MQdRN7fpbG7rPm4JpVVAhA_987 = addInt(last, ((NI) 1));
							last = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_987);
							{
								NIM_BOOL T65_;
								NI TM_MQdRN7fpbG7rPm4JpVVAhA_988;
								T65_ = (NIM_BOOL)0;
								T65_ = (last < (res ? res->Sup.len : 0));
								if (!(T65_)) goto LA66_;
								if ((NU)(last) >= (NU)(res ? res->Sup.len : 0)) raiseIndexError2(last,(res ? res->Sup.len : 0)-1);
								T65_ = ((NU8)(res->data[last]) == (NU8)(10));
								LA66_: ;
								if (!T65_) goto LA67_;
								TM_MQdRN7fpbG7rPm4JpVVAhA_988 = addInt(last, ((NI) 1));
								last = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_988);
							}
							LA67_: ;
						}
						goto LA56_;
						LA61_: ;
						LA56_: ;
					}
					LA54_: ;
					T69_ = (NI)0;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_989;
						if (!NIM_FALSE) goto LA72_;
						TM_MQdRN7fpbG7rPm4JpVVAhA_989 = subInt(last, ((NI) 1));
						T69_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_989);
					}
					goto LA70_;
					LA72_: ;
					{
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_990;
						TM_MQdRN7fpbG7rPm4JpVVAhA_990 = subInt(eolpos, ((NI) 1));
						T69_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_990);
					}
					LA70_: ;
					x = substr_2yh9cer0ymNRHlOOg8P7IuA(res, first, T69_);
					j = ((NI) 0);
					{
						while (1) {
							NIM_BOOL T77_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_991;
							T77_ = (NIM_BOOL)0;
							T77_ = (j < (x ? x->Sup.len : 0));
							if (!(T77_)) goto LA78_;
							if ((NU)(j) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2(j,(x ? x->Sup.len : 0)-1);
							T77_ = (((NU8)(x->data[j])) == ((NU8)(32)) || ((NU8)(x->data[j])) == ((NU8)(9)));
							LA78_: ;
							if (!T77_) goto LA76;
							TM_MQdRN7fpbG7rPm4JpVVAhA_991 = addInt(j, ((NI) 1));
							j = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_991);
						} LA76: ;
					}
					{
						if (!(j < (x ? x->Sup.len : 0))) goto LA81_;
						{
							if ((NU)(j) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2(j,(x ? x->Sup.len : 0)-1);
							if (!(((NU8)(x->data[j])) == ((NU8)(34)) || ((NU8)(x->data[j])) == ((NU8)(58)))) goto LA85_;
							add_yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
						}
						goto LA83_;
						LA85_: ;
						{
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_992));
							add_yG4AKzsBRS1W4MANDlXQeg(&result, x);
							add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_993));
						}
						LA83_: ;
					}
					LA81_: ;
					{
						if (!(eolpos == last)) goto LA90_;
						goto LA46;
					}
					LA90_: ;
					first = last;
				}
			} LA46: ;
		}
	}
	goto LA39_;
	LA43_: ;
	{
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		result = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA39_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	{
		if (!!(((*t).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 89)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_983));
	}
	LA3_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	s = genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw(p, t, NIM_TRUE);
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		if (!((*p).prc == NIM_NIL)) goto LA7_;
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
		nimZeroMem((void*)T9_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T9_[0] = s;
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA(CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T9_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], T10_);
	}
	goto LA5_;
	LA7_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T12_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T15_;
		T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T12_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		if ((*(*(*(*p).module).g).config).cCompiler < 1 || (*(*(*(*p).module).g).config).cCompiler > 15) raiseIndexError3((*(*(*(*p).module).g).config).cCompiler, 1, 15);
		nimZeroMem((void*)T13_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T13_[0] = s;
		T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T14_ = runtimeFormat_9bvKdnhoYI2ta9agQNm3orMA(CC_78I18QZNZFIv9ah7oETc0jg[((*(*(*(*p).module).g).config).cCompiler)- 1].Field17, T13_, 1);
		T15_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T15_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T14_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T12_, T15_);
	}
	LA5_: ;
}

static N_INLINE(tyTuple_aTNxDjHI7v9cq37xS7PT7jA*, X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem)(tyTuple_aTNxDjHI7v9cq37xS7PT7jA* s, NI sLen_0, NI i) {
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* result;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_995;
	result = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	TM_MQdRN7fpbG7rPm4JpVVAhA_995 = subInt(sLen_0, i);
	if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_995)) >= (NU)(sLen_0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_995),sLen_0-1);
	result = (&s[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_995)]);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p) {
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T30_;
		NimStringDesc* res_3;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		if (!(((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0)) goto LA3_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T9_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T19_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T24_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			if (!!((*p).hasCurFramePointer)) goto LA7_;
			(*p).hasCurFramePointer = NIM_TRUE;
			T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T9_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA12_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA12_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 22);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_997));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA16_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA16_: ;
			T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T18_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			add_IM4kcMNkkOLJtqdEqSxR8A(T9_, T18_);
			T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T19_ = procSec_kOyJGmZMM2tMgCKSrvUE3g_2cgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA22_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA22_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 16);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_998));
			T24_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T24_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_999));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T24_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA27_;
				res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA27_: ;
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			add_IM4kcMNkkOLJtqdEqSxR8A(T19_, T29_);
		}
		LA7_: ;
		T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T30_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA33_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA33_: ;
		res_3 = rawNewString(((NI) 80));
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1000));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T35_);
		res_3 = resizeString(res_3, 15);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1001));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA38_;
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA38_: ;
		T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T40_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T40_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T30_, T41_);
	}
	LA3_: ;
}

static N_INLINE(void, genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* stmts) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	NI T12_;
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA4_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA8_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA8_: ;
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T10_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, T11_);
	T12_ = (NI)0;
	T12_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, stmts);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
}

N_LIB_PRIVATE N_NIMCALL(void, genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T9_;
	NI T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
	NI T22_;
	NIM_BOOL catchAllPresent;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T23_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T93_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_349));
	(void)(T8_);
	nimZeroMem((void*)(&T9_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	T9_.Field0 = t;
	T9_.Field1 = NIM_FALSE;
	asgnRef((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
	T10_ = (*p).nestedTryStmts->Sup.len++;
	asgnRef((void**) (&(*p).nestedTryStmts->data[T10_].Field0), T9_.Field0);
	(*p).nestedTryStmts->data[T10_].Field1 = T9_.Field1;
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA14_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_994));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA18_: ;
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T11_, T21_);
	T22_ = (NI)0;
	T22_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t).sons->data[((NI) 0)], d);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	catchAllPresent = NIM_FALSE;
	T23_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	T23_ = X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T23_).Field1 = NIM_TRUE;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1008;
				if (!(i_2 < colontmp_)) goto LA26;
				i = i_2;
				{
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (!!(((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87)))) goto LA29_;
					goto LA24;
				}
				LA29_: ;
				{
					NIM_BOOL T33_;
					T33_ = (NIM_BOOL)0;
					T33_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
					if (!(T33_)) goto LA34_;
					T33_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
					LA34_: ;
					if (!T33_) goto LA35_;
					(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
				}
				LA35_: ;
				{
					NI T39_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T42_;
					NimStringDesc* res_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T52_;
					NI T53_;
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T39_ = (NI)0;
					T39_ = len_P89cqdlERShb9alU3iC0yj8wast((*t).sons->data[i]);
					if (!(T39_ == ((NI) 1))) goto LA40_;
					catchAllPresent = NIM_TRUE;
					T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T42_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA45_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA45_: ;
					res_2 = rawNewString(((NI) 80));
					res_2 = resizeString(res_2, 13);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_996));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA49_;
						res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA49_: ;
					T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T51_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
					T52_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T52_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T51_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T42_, T52_);
					T53_ = (NI)0;
					T53_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
					genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
					expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).sons->data[i]).sons->data[((NI) 0)], d);
					endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				}
				goto LA37_;
				LA40_: ;
				{
					{
						NI j;
						NI colontmp__2;
						NI T56_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_1002;
						NI res_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
						T56_ = (NI)0;
						T56_ = len_P89cqdlERShb9alU3iC0yj8wast((*t).sons->data[i]);
						TM_MQdRN7fpbG7rPm4JpVVAhA_1002 = subInt(T56_, ((NI) 2));
						colontmp__2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1002);
						res_3 = ((NI) 0);
						{
							while (1) {
								NI T59_;
								NI T92_;
								NI TM_MQdRN7fpbG7rPm4JpVVAhA_1006;
								NI TM_MQdRN7fpbG7rPm4JpVVAhA_1007;
								if (!(res_3 <= colontmp__2)) goto LA58;
								j = res_3;
								T59_ = (NI)0;
								{
									NIM_BOOL T62_;
									tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* exvar;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T66_;
									NimStringDesc* res_4;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T78_;
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
									T62_ = (NIM_BOOL)0;
									T62_ = isInfixAs_CZaoTkWCFI9acor4BmYF3Yw((*(*t).sons->data[i]).sons->data[j]);
									if (!T62_) goto LA63_;
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i]).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i]).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(((NI) 2)) >= (NU)((*(*(*t).sons->data[i]).sons->data[j]).sons ? (*(*(*t).sons->data[i]).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*(*t).sons->data[i]).sons->data[j]).sons ? (*(*(*t).sons->data[i]).sons->data[j]).sons->Sup.len : 0)-1);
									exvar = (*(*(*t).sons->data[i]).sons->data[j]).sons->data[((NI) 2)];
									if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
									if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
									T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T65_ = mangleLocalName_VpV5Cmis02zaNlTmLYJNfQ(p, (*exvar).sym);
									fillLoc_o49bXuxJYpCizOgQ54UViIg((&(*(*exvar).sym).loc), ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1), exvar, T65_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
									T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
									T66_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
									{
										if (!!(!(((*p).module == NIM_NIL)))) goto LA69_;
										failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
									}
									LA69_: ;
									res_4 = rawNewString(((NI) 80));
									res_4 = resizeString(res_4, 7);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1003));
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*(*t).sons->data[i]).sons->data[j]).kind)>>3] &(1U<<((NU)((*(*(*t).sons->data[i]).sons->data[j]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(((NI) 1)) >= (NU)((*(*(*t).sons->data[i]).sons->data[j]).sons ? (*(*(*t).sons->data[i]).sons->data[j]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*(*t).sons->data[i]).sons->data[j]).sons ? (*(*(*t).sons->data[i]).sons->data[j]).sons->Sup.len : 0)-1);
									T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T71_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*(*(*t).sons->data[i]).sons->data[j]).sons->data[((NI) 1)]).typ);
									cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T71_);
									res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1004));
									if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*exvar).kind)>>3] &(1U<<((NU)((*exvar).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
									T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T72_ = rdLoc_xidyzuHqIciXbQyEOKahDg((*(*exvar).sym).loc);
									cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T72_);
									res_4 = resizeString(res_4, 3);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_908));
									{
										if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA75_;
										res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
									}
									LA75_: ;
									T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T77_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
									T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T78_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T77_);
									add_IM4kcMNkkOLJtqdEqSxR8A(T66_, T78_);
									T59_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
								}
								goto LA60_;
								LA63_: ;
								{
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T80_;
									NimStringDesc* res_5;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
									tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
									T80_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
									T80_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
									{
										if (!!(!(((*p).module == NIM_NIL)))) goto LA83_;
										failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
									}
									LA83_: ;
									res_5 = rawNewString(((NI) 80));
									res_5 = resizeString(res_5, 7);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1003));
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
									if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
									if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
									T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T85_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA((*p).module, (*(*(*t).sons->data[i]).sons->data[j]).typ);
									cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), T85_);
									res_5 = resizeString(res_5, 4);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1005));
									{
										if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA88_;
										res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
									}
									LA88_: ;
									T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T90_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
									T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
									T91_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
									add_IM4kcMNkkOLJtqdEqSxR8A(T80_, T91_);
									T59_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
								}
								LA60_: ;
								genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								T92_ = (NI)0;
								T92_ = len_P89cqdlERShb9alU3iC0yj8wast((*t).sons->data[i]);
								TM_MQdRN7fpbG7rPm4JpVVAhA_1006 = subInt(T92_, ((NI) 1));
								if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1006)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1006),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
								expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).sons->data[i]).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1006)], d);
								endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
								TM_MQdRN7fpbG7rPm4JpVVAhA_1007 = addInt(res_3, ((NI) 1));
								res_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1007);
							} LA58: ;
						}
					}
				}
				LA37_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_1008 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1008);
			} LA26: ;
		}
	} LA24: ;
	nimZeroMem((void*)(&T93_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	pop_in6U6M9b8kwov18g9cnnpKlAsystem((&(*p).nestedTryStmts), (&T93_));
	(void)(T93_);
	{
		NI T96_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_1009;
		NI T120_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_1011;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T96_ = (NI)0;
		T96_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_1009 = subInt(T96_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1009)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1009),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (!((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1009)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA97_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T103_;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
			NI T114_;
			NI T115_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_1010;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T116_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T117_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T119_;
			if (!!(catchAllPresent)) goto LA101_;
			T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T103_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA106_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA106_: ;
			res_6 = rawNewString(((NI) 80));
			res_6 = resizeString(res_6, 13);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_996));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA110_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA110_: ;
			T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T112_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T113_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T112_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T103_, T113_);
			T114_ = (NI)0;
			T114_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			T115_ = (NI)0;
			T115_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
			TM_MQdRN7fpbG7rPm4JpVVAhA_1010 = subInt(T115_, ((NI) 1));
			if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).sons ? (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).sons ? (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).sons->Sup.len : 0)-1);
			genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1010)]).sons->data[((NI) 0)]);
			T116_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T116_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T117_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = percent__B0OBOTOJQENvDd71LJ9b19bw(T117_, 0);
			T119_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T119_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T118_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T116_, T119_);
			endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
		}
		LA101_: ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T120_ = (NI)0;
		T120_ = len_P89cqdlERShb9alU3iC0yj8wast(t);
		TM_MQdRN7fpbG7rPm4JpVVAhA_1011 = subInt(T120_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).sons ? (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).sons ? (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).sons->Sup.len : 0)-1);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1011)]).sons->data[((NI) 0)]);
	}
	LA97_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTry_re1pwmyeR32ikwnOC3vvzQ_4)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	NIM_BOOL quirkyExceptions;
	NIM_BOOL T8_;
	NIM_BOOL T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* safePoint;
	NI length;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T116_;
	NI T117_;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T189_;
	NI i;
	tyTuple_aTNxDjHI7v9cq37xS7PT7jA T328_;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T3_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0));
		LA5_: ;
		if (!T3_) goto LA6_;
		getTemp_VjOFVqypINqQv5C3ECnxbw(p, (*t).typ, d, NIM_FALSE);
	}
	LA6_: ;
	T8_ = (NIM_BOOL)0;
	T8_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1012));
	if (T8_) goto LA9_;
	T10_ = (NIM_BOOL)0;
	T10_ = ((*t).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 154));
	if (!(T10_)) goto LA11_;
	T10_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0);
	LA11_: ;
	T8_ = T10_;
	LA9_: ;
	quirkyExceptions = T8_;
	{
		if (!!(quirkyExceptions)) goto LA14_;
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1013));
	}
	goto LA12_;
	LA14_: ;
	{
		(*p).noSafePoints = NIM_TRUE;
	}
	LA12_: ;
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T17_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1014));
	(void)(T17_);
	safePoint = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T33_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T34_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T104_;
		NimStringDesc* res_7;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T114_;
		NI T115_;
		if (!!(quirkyExceptions)) goto LA20_;
		safePoint = getTempName_ao6gUnuVfQLtZ89c4kaIKfg((*p).module);
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA25_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA25_: ;
		res = rawNewString(((NI) 80));
		T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T27_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1015));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T27_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), safePoint);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_95));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA30_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA30_: ;
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T33_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T32_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T22_, T33_);
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T34_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA37_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA37_: ;
		res_2 = rawNewString(((NI) 80));
		T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T39_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1016));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T39_);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_97));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), safePoint);
		res_2 = resizeString(res_2, 2);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA42_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA42_: ;
		T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T44_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T45_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T44_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T34_, T45_);
		{
			NIM_BOOL T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T51_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
			T48_ = (NIM_BOOL)0;
			T48_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1017));
			if (!T48_) goto LA49_;
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T51_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA54_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA54_: ;
			res_3 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), safePoint);
			res_3 = resizeString(res_3, 17);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1018));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), safePoint);
			res_3 = resizeString(res_3, 10);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1019));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA58_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA58_: ;
			T60_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T60_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T61_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T60_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T51_, T61_);
		}
		goto LA46_;
		LA49_: ;
		{
			NIM_BOOL T63_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T66_;
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
			T63_ = (NIM_BOOL)0;
			T63_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1020));
			if (!T63_) goto LA64_;
			T66_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T66_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA69_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA69_: ;
			res_4 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), safePoint);
			res_4 = resizeString(res_4, 20);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1021));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), safePoint);
			res_4 = resizeString(res_4, 13);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1022));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA73_;
				res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA73_: ;
			T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T75_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T76_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T75_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T66_, T76_);
		}
		goto LA46_;
		LA64_: ;
		{
			NIM_BOOL T78_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T81_;
			NimStringDesc* res_5;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T90_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T91_;
			T78_ = (NIM_BOOL)0;
			T78_ = isDefined_jkXTnxDf8MX1Pmks3s0XxA((*(*(*p).module).g).config, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1023));
			if (!T78_) goto LA79_;
			T81_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T81_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA84_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA84_: ;
			res_5 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), safePoint);
			res_5 = resizeString(res_5, 18);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1024));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), safePoint);
			res_5 = resizeString(res_5, 10);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1019));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA88_;
				res_5 = resizeString(res_5, 1);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA88_: ;
			T90_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T90_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
			T91_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T91_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T90_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T81_, T91_);
		}
		goto LA46_;
		LA79_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T93_;
			NimStringDesc* res_6;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T102_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T103_;
			T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T93_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA96_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA96_: ;
			res_6 = rawNewString(((NI) 80));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), safePoint);
			res_6 = resizeString(res_6, 17);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1018));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), safePoint);
			res_6 = resizeString(res_6, 10);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1019));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA100_;
				res_6 = resizeString(res_6, 1);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA100_: ;
			T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T102_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
			T103_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T103_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T102_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T93_, T103_);
		}
		LA46_: ;
		T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T104_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA107_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA107_: ;
		res_7 = rawNewString(((NI) 80));
		res_7 = resizeString(res_7, 4);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), safePoint);
		res_7 = resizeString(res_7, 15);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1025));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA111_;
			res_7 = resizeString(res_7, 1);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA111_: ;
		T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T113_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
		T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T114_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T113_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T104_, T114_);
		T115_ = (NI)0;
		T115_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA20_: ;
	length = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
	nimZeroMem((void*)(&T116_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	T116_.Field0 = t;
	T116_.Field1 = quirkyExceptions;
	asgnRef((void**) (&(*p).nestedTryStmts), (tySequence_P9c6Y5h4sjjYLVGti5AELHg*) incrSeqV3((TGenericSeq*)((*p).nestedTryStmts), (&NTI_P9c6Y5h4sjjYLVGti5AELHg_)));
	T117_ = (*p).nestedTryStmts->Sup.len++;
	asgnRef((void**) (&(*p).nestedTryStmts->data[T117_].Field0), T116_.Field0);
	(*p).nestedTryStmts->data[T117_].Field1 = T116_.Field1;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*t).sons->data[((NI) 0)], d);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T122_;
		NimStringDesc* res_8;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T127_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T133_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T134_;
		NimStringDesc* res_9;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T143_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T144_;
		NI T145_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T146_;
		NimStringDesc* res_10;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T151_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T156_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T157_;
		if (!!(quirkyExceptions)) goto LA120_;
		T122_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T122_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA125_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA125_: ;
		res_8 = rawNewString(((NI) 80));
		T127_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T127_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_957));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), T127_);
		res_8 = resizeString(res_8, 3);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA130_;
			res_8 = resizeString(res_8, 1);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA130_: ;
		T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T132_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
		T133_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T133_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T132_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T122_, T133_);
		endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
		T134_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T134_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA137_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA137_: ;
		res_9 = rawNewString(((NI) 80));
		res_9 = resizeString(res_9, 6);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1026));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA141_;
			res_9 = resizeString(res_9, 1);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA141_: ;
		T143_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T143_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
		T144_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T144_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T143_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T134_, T144_);
		T145_ = (NI)0;
		T145_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
		T146_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T146_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA149_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA149_: ;
		res_10 = rawNewString(((NI) 80));
		T151_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T151_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_957));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_10), T151_);
		res_10 = resizeString(res_10, 3);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA154_;
			res_10 = resizeString(res_10, 1);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA154_: ;
		T156_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T156_ = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
		T157_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T157_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T156_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T146_, T157_);
		genRestoreFrameAfterException_0dpuY9coTlraj8JXIe2BzVw_2(p);
	}
	goto LA118_;
	LA120_: ;
	{
		NIM_BOOL T159_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T163_;
		NimStringDesc* res_11;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T168_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T173_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T174_;
		NI T175_;
		T159_ = (NIM_BOOL)0;
		T159_ = (((NI) 1) < length);
		if (!(T159_)) goto LA160_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T159_ = ((*(*t).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
		LA160_: ;
		if (!T159_) goto LA161_;
		T163_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T163_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA166_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA166_: ;
		res_11 = rawNewString(((NI) 80));
		res_11 = resizeString(res_11, 4);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		T168_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T168_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1027));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_11), T168_);
		res_11 = resizeString(res_11, 5);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1028));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA171_;
			res_11 = resizeString(res_11, 1);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA171_: ;
		T173_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T173_ = rope_yShmEg9cffWxI7s5XzEKBow(res_11);
		T174_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T174_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T173_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T163_, T174_);
		T175_ = (NI)0;
		T175_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	}
	goto LA118_;
	LA161_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T177_;
		NimStringDesc* res_12;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T186_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T187_;
		NI T188_;
		T177_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T177_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA180_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA180_: ;
		res_12 = rawNewString(((NI) 80));
		res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA184_;
			res_12 = resizeString(res_12, 1);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA184_: ;
		T186_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T186_ = rope_yShmEg9cffWxI7s5XzEKBow(res_12);
		T187_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T187_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T186_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T177_, T187_);
		T188_ = (NI)0;
		T188_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	}
	LA118_: ;
	T189_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
	T189_ = X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
	(*T189_).Field1 = NIM_TRUE;
	i = ((NI) 1);
	{
		while (1) {
			NIM_BOOL T192_;
			NI blen;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_1038;
			T192_ = (NIM_BOOL)0;
			T192_ = (i < length);
			if (!(T192_)) goto LA193_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
			T192_ = ((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 87));
			LA193_: ;
			if (!T192_) goto LA191;
			{
				NIM_BOOL T196_;
				T196_ = (NIM_BOOL)0;
				T196_ = ((*d).k == ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 1));
				if (!(T196_)) goto LA197_;
				T196_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*t).typ);
				LA197_: ;
				if (!T196_) goto LA198_;
				(*d).k = ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 0);
			}
			LA198_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
			blen = sonsLen_zOB1gNtXypybIzLxxB9cyWQ((*t).sons->data[i]);
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T212_;
				NimStringDesc* res_13;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T221_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T222_;
				NI T223_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T239_;
				NimStringDesc* res_15;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T244_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T249_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T250_;
				if (!(blen == ((NI) 1))) goto LA202_;
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T208_;
					tyArray_qTjAvTvKF9anytN1At69aJMQ T209_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T210_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T211_;
					if (!(((NI) 1) < i)) goto LA206_;
					T208_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T208_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					nimZeroMem((void*)T209_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
					T210_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T210_ = percent__22ELRKd9bDuNug6qvIihS3A(T209_, 0);
					T211_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T211_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T210_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T208_, T211_);
				}
				LA206_: ;
				T212_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T212_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA215_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA215_: ;
				res_13 = rawNewString(((NI) 80));
				res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA219_;
					res_13 = resizeString(res_13, 1);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA219_: ;
				T221_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T221_ = rope_yShmEg9cffWxI7s5XzEKBow(res_13);
				T222_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T222_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T221_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T212_, T222_);
				T223_ = (NI)0;
				T223_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T228_;
					NimStringDesc* res_14;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T237_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T238_;
					if (!!(quirkyExceptions)) goto LA226_;
					T228_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T228_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA231_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA231_: ;
					res_14 = rawNewString(((NI) 80));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_14), safePoint);
					res_14 = resizeString(res_14, 12);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1029));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA235_;
						res_14 = resizeString(res_14, 1);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA235_: ;
					T237_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T237_ = rope_yShmEg9cffWxI7s5XzEKBow(res_14);
					T238_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T238_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T237_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T228_, T238_);
				}
				LA226_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).sons->data[i]).sons->data[((NI) 0)], d);
				T239_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T239_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA242_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA242_: ;
				res_15 = rawNewString(((NI) 80));
				T244_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T244_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_962));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_15), T244_);
				res_15 = resizeString(res_15, 3);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA247_;
					res_15 = resizeString(res_15, 1);
appendString(res_15, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA247_: ;
				T249_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T249_ = rope_yShmEg9cffWxI7s5XzEKBow(res_15);
				T250_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T250_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T249_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T239_, T250_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			goto LA200_;
			LA202_: ;
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* orExpr;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T289_;
				NimStringDesc* res_18;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T298_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T299_;
				NI T300_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1037;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T316_;
				NimStringDesc* res_20;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T321_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T326_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T327_;
				orExpr = NIM_NIL;
				{
					NI j;
					NI colontmp_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1030;
					NI res_16;
					j = (NI)0;
					colontmp_ = (NI)0;
					TM_MQdRN7fpbG7rPm4JpVVAhA_1030 = subInt(blen, ((NI) 2));
					colontmp_ = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1030);
					res_16 = ((NI) 0);
					{
						while (1) {
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* checkFor;
							NimStringDesc* memberName;
							NimStringDesc* res_17;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T279_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T280_;
							tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T281_;
							NI TM_MQdRN7fpbG7rPm4JpVVAhA_1035;
							if (!(res_16 <= colontmp_)) goto LA254;
							j = res_16;
							{
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
								if (!!(((*(*(*t).sons->data[i]).sons->data[j]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA257_;
								failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1031));
							}
							LA257_: ;
							{
								if (!!((orExpr == NIM_NIL))) goto LA261_;
								add_yG4AKzsBRS1W4MANDlXQeg(&orExpr, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_265));
							}
							LA261_: ;
							{
								if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA265_;
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
								checkFor = genTypeInfo2Name_HPYuz9bvVOGBv0EUX9c74xhg((*p).module, (*(*(*t).sons->data[i]).sons->data[j]).typ);
							}
							goto LA263_;
							LA265_: ;
							{
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
								if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
								if ((NU)(j) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(j,((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
								checkFor = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, (*(*(*t).sons->data[i]).sons->data[j]).typ, (*(*(*t).sons->data[i]).sons->data[j]).info);
							}
							LA263_: ;
							{
								NIM_BOOL T270_;
								T270_ = (NIM_BOOL)0;
								T270_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
								if (T270_) goto LA271_;
								T270_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
								LA271_: ;
								if (!T270_) goto LA272_;
								memberName = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1032));
							}
							goto LA268_;
							LA272_: ;
							{
								memberName = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1033));
							}
							LA268_: ;
							{
								if (!!(!(((*p).module == NIM_NIL)))) goto LA277_;
								failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
							}
							LA277_: ;
							res_17 = rawNewString(((NI) 80));
							T279_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T279_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_635));
							cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T279_);
							res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
							T280_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T280_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1027));
							cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), T280_);
							res_17 = resizeString(res_17, 4);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1034));
							cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_17), memberName);
							res_17 = resizeString(res_17, 2);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
							cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_17), checkFor);
							res_17 = resizeString(res_17, 1);
appendString(res_17, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_68));
							T281_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
							T281_ = rope_yShmEg9cffWxI7s5XzEKBow(res_17);
							add_IM4kcMNkkOLJtqdEqSxR8A(&orExpr, T281_);
							TM_MQdRN7fpbG7rPm4JpVVAhA_1035 = addInt(res_16, ((NI) 1));
							res_16 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1035);
						} LA254: ;
					}
				}
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T286_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T287_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T288_;
					if (!(((NI) 1) < i)) goto LA284_;
					T286_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T286_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					T287_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T287_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1036));
					T288_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T288_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T287_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T286_, T288_);
				}
				LA284_: ;
				T289_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T289_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA292_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA292_: ;
				res_18 = rawNewString(((NI) 80));
				res_18 = resizeString(res_18, 4);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_18), orExpr);
				res_18 = resizeString(res_18, 3);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_908));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA296_;
					res_18 = resizeString(res_18, 1);
appendString(res_18, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA296_: ;
				T298_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T298_ = rope_yShmEg9cffWxI7s5XzEKBow(res_18);
				T299_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T299_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T298_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T289_, T299_);
				T300_ = (NI)0;
				T300_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
				{
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T305_;
					NimStringDesc* res_19;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T314_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T315_;
					if (!!(quirkyExceptions)) goto LA303_;
					T305_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T305_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					{
						if (!!(!(((*p).module == NIM_NIL)))) goto LA308_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
					}
					LA308_: ;
					res_19 = rawNewString(((NI) 80));
					cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_19), safePoint);
					res_19 = resizeString(res_19, 12);
appendString(res_19, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1029));
					{
						if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA312_;
						res_19 = resizeString(res_19, 1);
appendString(res_19, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					}
					LA312_: ;
					T314_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T314_ = rope_yShmEg9cffWxI7s5XzEKBow(res_19);
					T315_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T315_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T314_);
					add_IM4kcMNkkOLJtqdEqSxR8A(T305_, T315_);
				}
				LA303_: ;
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				TM_MQdRN7fpbG7rPm4JpVVAhA_1037 = subInt(blen, ((NI) 1));
				if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1037)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1037),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
				expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*t).sons->data[i]).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1037)], d);
				T316_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T316_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA319_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA319_: ;
				res_20 = rawNewString(((NI) 80));
				T321_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T321_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_962));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_20), T321_);
				res_20 = resizeString(res_20, 3);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA324_;
					res_20 = resizeString(res_20, 1);
appendString(res_20, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA324_: ;
				T326_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T326_ = rope_yShmEg9cffWxI7s5XzEKBow(res_20);
				T327_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T327_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T326_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T316_, T327_);
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
			}
			LA200_: ;
			TM_MQdRN7fpbG7rPm4JpVVAhA_1038 = addInt(i, ((NI) 1));
			i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1038);
		} LA191: ;
	}
	nimZeroMem((void*)(&T328_), sizeof(tyTuple_aTNxDjHI7v9cq37xS7PT7jA));
	pop_in6U6M9b8kwov18g9cnnpKlAsystem((&(*p).nestedTryStmts), (&T328_));
	(void)(T328_);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	{
		NIM_BOOL T331_;
		NI T335_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T336_;
		T331_ = (NIM_BOOL)0;
		T331_ = (i < length);
		if (!(T331_)) goto LA332_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T331_ = ((*(*t).sons->data[i]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107));
		LA332_: ;
		if (!T331_) goto LA333_;
		asgnRef((void**) (&(*p).finallySafePoints), (tySequence_WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)((*p).finallySafePoints), (&NTI_WwUFq9cJ2xKRlsAWVEHyPRg_)));
		T335_ = (*p).finallySafePoints->Sup.len++;
		asgnRef((void**) (&(*p).finallySafePoints->data[T335_]), safePoint);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(i) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i,((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*t).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[i]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*t).sons->data[i]).sons ? (*(*t).sons->data[i]).sons->Sup.len : 0)-1);
		genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*(*t).sons->data[i]).sons->data[((NI) 0)]);
		T336_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T336_ = pop_9c4Y4hTtvRqjj2EC8KP9aqDAsystem((&(*p).finallySafePoints));
		(void)(T336_);
	}
	LA333_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T341_;
		NimStringDesc* res_21;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T346_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T351_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T352_;
		if (!!(quirkyExceptions)) goto LA339_;
		T341_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T341_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA344_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA344_: ;
		res_21 = rawNewString(((NI) 80));
		res_21 = resizeString(res_21, 4);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_370));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_21), safePoint);
		res_21 = resizeString(res_21, 14);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_965));
		T346_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T346_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1039));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_21), T346_);
		res_21 = resizeString(res_21, 3);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA349_;
			res_21 = resizeString(res_21, 1);
appendString(res_21, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA349_: ;
		T351_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T351_ = rope_yShmEg9cffWxI7s5XzEKBow(res_21);
		T352_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T352_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T351_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T341_, T352_);
	}
	LA339_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
		if (T3_) goto LA4_;
		T3_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_349));
		(void)(T7_);
	}
	LA5_: ;
	{
		NIM_BOOL T10_;
		NI T11_;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T13_;
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* finallyBlock;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T16_;
		tyTuple_aTNxDjHI7v9cq37xS7PT7jA* T17_;
		NI T18_;
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_1040;
		T10_ = (NIM_BOOL)0;
		T11_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
		T10_ = (((NI) 0) < T11_);
		if (!(T10_)) goto LA12_;
		T13_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T13_ = X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T10_ = (*T13_).Field1;
		LA12_: ;
		if (!T10_) goto LA14_;
		T16_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T16_ = X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*T16_).Field0).kind)>>3] &(1U<<((NU)((*(*T16_).Field0).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		T17_ = (tyTuple_aTNxDjHI7v9cq37xS7PT7jA*)0;
		T17_ = X5BX5D__8gGj4RHMOs9bjhRbloMjbmwsystem((*p).nestedTryStmts->data, ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0), ((NI) 1));
		T18_ = (NI)0;
		T18_ = len_P89cqdlERShb9alU3iC0yj8wast((*T17_).Field0);
		TM_MQdRN7fpbG7rPm4JpVVAhA_1040 = subInt(T18_, ((NI) 1));
		if ((NU)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1040)) >= (NU)((*(*T16_).Field0).sons ? (*(*T16_).Field0).sons->Sup.len : 0)) raiseIndexError2((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1040),((*(*T16_).Field0).sons ? (*(*T16_).Field0).sons->Sup.len : 0)-1);
		finallyBlock = (*(*T16_).Field0).sons->data[(NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1040)];
		{
			if (!((*finallyBlock).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA21_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*finallyBlock).kind)>>3] &(1U<<((NU)((*finallyBlock).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*finallyBlock).sons ? (*finallyBlock).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*finallyBlock).sons ? (*finallyBlock).sons->Sup.len : 0)-1);
			genSimpleBlock_RH6PUsmPRE4ftBMagpWhBQcgen(p, (*finallyBlock).sons->data[((NI) 0)]);
		}
		LA21_: ;
	}
	LA14_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* e;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		if (!!(((*(*t).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA25_;
		nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, (*t).sons->data[((NI) 0)], (&a));
		e = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*t).sons->data[((NI) 0)]).typ, IL64(36275087638309136));
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T29_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T32_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T33_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
			T29_ = (NIM_BOOL)0;
			T29_ = isImportedException_dZW9czpRSiiVl9cyT6tyk84A(typ, (*(*(*p).module).g).config);
			if (!T29_) goto LA30_;
			T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T32_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T33_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T33_[0] = e;
			T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T34_ = percent__ddrHnMlEhcHznkXv27msmQ(T33_, 1);
			T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T32_, T35_);
		}
		goto LA27_;
		LA30_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T37_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T44_;
			NimStringDesc* T45_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
			NimStringDesc* T52_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			NI T66_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T71_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T72_;
			T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T37_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA40_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA40_: ;
			res = rawNewString(((NI) 80));
			T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1041));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T42_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_172));
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1014));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T43_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1042));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), e);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T44_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T44_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*typ).sym).name).s);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T44_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T45_ = (NimStringDesc*)0;
			{
				if (!!(((*p).prc == NIM_NIL))) goto LA48_;
				T45_ = copyString((*(*(*p).prc).name).s);
			}
			goto LA46_;
			LA48_: ;
			{
				T45_ = copyString((*(*(*(*p).module).module).name).s);
			}
			LA46_: ;
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T45_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T51_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T52_ = (NimStringDesc*)0;
			{
				NIM_BOOL T55_;
				T55_ = (NIM_BOOL)0;
				T55_ = ((*t).info.fileIndex < ((NI32) 0));
				if (T55_) goto LA56_;
				T55_ = ((*(*(*p).module).g).config == NIM_NIL);
				LA56_: ;
				if (!T55_) goto LA57_;
				T52_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437));
			}
			goto LA53_;
			LA57_: ;
			{
				{
					if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0)) goto LA62_;
					if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
					T52_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].fullPath);
				}
				goto LA60_;
				LA62_: ;
				{
					if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
					T52_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].projPath);
				}
				LA60_: ;
			}
			LA53_: ;
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T52_);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T65_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
			T66_ = (NI)0;
			T66_ = toLinenumber_6D4Rmpw7LpcRI1j7CMqEsAmsgs((*t).info);
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T66_)));
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA69_;
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA69_: ;
			T71_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T71_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			T72_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T72_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T71_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T37_, T72_);
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T77_;
				NimStringDesc* res_2;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
				if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA75_;
				T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T77_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA80_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA80_: ;
				res_2 = rawNewString(((NI) 80));
				cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), e);
				res_2 = resizeString(res_2, 11);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1043));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA84_;
					res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA84_: ;
				T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T86_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
				T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T87_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T86_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T77_, T87_);
			}
			LA75_: ;
		}
		LA27_: ;
	}
	goto LA23_;
	LA25_: ;
	{
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			NIM_BOOL T91_;
			NIM_BOOL T92_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T97_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T98_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T99_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T100_;
			T91_ = (NIM_BOOL)0;
			T92_ = (NIM_BOOL)0;
			T92_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T92_) goto LA93_;
			T92_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA93_: ;
			T91_ = T92_;
			if (!(T91_)) goto LA94_;
			T91_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&63U)))!=0));
			LA94_: ;
			if (!T91_) goto LA95_;
			T97_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T97_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			nimZeroMem((void*)T98_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T99_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T99_ = percent__B0OBOTOJQENvDd71LJ9b19bw(T98_, 0);
			T100_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T100_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T99_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T97_, T100_);
		}
		goto LA89_;
		LA95_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T102_;
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T113_;
			T102_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T102_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			{
				if (!!(!(((*p).module == NIM_NIL)))) goto LA105_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
			}
			LA105_: ;
			res_3 = rawNewString(((NI) 80));
			T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1039));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T107_);
			res_3 = resizeString(res_3, 3);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_257));
			{
				if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA110_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA110_: ;
			T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T112_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			T113_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T113_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T112_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T102_, T113_);
		}
		LA89_: ;
	}
	LA23_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genTypeSection_t9a9a9bxmaOztYOfsfhQUOXXw_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
}

N_LIB_PRIVATE N_NIMCALL(tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg, determineSection_3f2MBweHSQI3C7jDZiYA2Q)(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg result;
	result = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
	result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8);
	{
		NIM_BOOL T3_;
		NI T4_;
		NimStringDesc* sec;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		T3_ = (((NI) 1) <= T4_);
		if (!(T3_)) goto LA5_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = ((*(*n).sons->data[((NI) 0)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*n).sons->data[((NI) 0)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22));
		LA5_: ;
		if (!T3_) goto LA6_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		sec = (*(*n).sons->data[((NI) 0)]).strVal;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1044));
			if (!T10_) goto LA11_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 4);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1045));
			if (!T14_) goto LA15_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9);
		}
		goto LA8_;
		LA15_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = nsuStartsWith(sec, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1046));
			if (!T18_) goto LA19_;
			result = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1);
		}
		goto LA8_;
		LA19_: ;
		LA8_: ;
	}
	LA6_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genCLineDir_8gOq38UiI9arVxZ9at35m22Q)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** r, tyObject_TLineInfo_WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	NimStringDesc* T1_;
	NI T2_;
	T1_ = (NimStringDesc*)0;
	T1_ = toFullPath_VW1RaR1l9c9bPnJxr1KuvIrg(conf, info.fileIndex);
	T2_ = (NI)0;
	T2_ = safeLineNm_cb5f0VvvxoagMath9ay3UuQ(info);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(r, T1_, T2_, conf);
}

N_LIB_PRIVATE N_NIMCALL(void, genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* s;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	s = genAsmOrEmitStmt_53Pwv51Dxuia7o9bQN4K9agw(p, (*t).sons->data[((NI) 1)], NIM_FALSE);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg section;
		if (!((*p).prc == NIM_NIL)) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		section = determineSection_3f2MBweHSQI3C7jDZiYA2Q((*t).sons->data[((NI) 1)]);
		genCLineDir_8gOq38UiI9arVxZ9at35m22Q(&(*(*p).module).s[(section)- 0], (*t).info, (*(*(*p).module).g).config);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*p).module).s[(section)- 0], s);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		T6_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T6_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, s);
		add_IM4kcMNkkOLJtqdEqSxR8A(T6_, T7_);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NimStringDesc* name;
	name = (NimStringDesc*)0;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		NI T21_;
		NimStringDesc* T22_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
		if (!(((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA3_;
		{
			if (!((*t).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA7_;
			{
				if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
				if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
				if (!!(((*(*t).sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*(*t).sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22)))) goto LA11_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1047));
			}
			LA11_: ;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*t).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
			name = nsuNormalize((*(*t).sons->data[((NI) 1)]).strVal);
		}
		goto LA5_;
		LA7_: ;
		{
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_1048;
			NimStringDesc* T14_;
			NimStringDesc* T15_;
			TM_MQdRN7fpbG7rPm4JpVVAhA_1048 = addInt((*(*(*p).module).g).breakPointId, ((NI) 1));
			(*(*(*p).module).g).breakPointId = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1048);
			T14_ = (NimStringDesc*)0;
			T15_ = (NimStringDesc*)0;
			T15_ = nimIntToStr((*(*(*p).module).g).breakPointId);
			T14_ = rawNewString((T15_ ? T15_->Sup.len : 0) + 2);
appendString(T14_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1049));
appendString(T14_, T15_);
			name = T14_;
		}
		LA5_: ;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA18_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA18_: ;
		res = rawNewString(((NI) 80));
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1050));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T20_);
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
		T21_ = (NI)0;
		T21_ = toLinenumber_6D4Rmpw7LpcRI1j7CMqEsAmsgs((*t).info);
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), ((NI64) (T21_)));
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1051));
		T22_ = (NimStringDesc*)0;
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*t).info.fileIndex < ((NI32) 0));
			if (T25_) goto LA26_;
			T25_ = ((*(*(*p).module).g).config == NIM_NIL);
			LA26_: ;
			if (!T25_) goto LA27_;
			T22_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_437));
		}
		goto LA23_;
		LA27_: ;
		{
			{
				if (!(((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 36))&63U)))!=0)) goto LA32_;
				if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
				T22_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].fullPath);
			}
			goto LA30_;
			LA32_: ;
			{
				if ((NU)((*t).info.fileIndex) >= (NU)((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2((*t).info.fileIndex,((*(*(*(*p).module).g).config).m.fileInfos ? (*(*(*(*p).module).g).config).m.fileInfos->Sup.len : 0)-1);
				T22_ = copyString((*(*(*(*p).module).g).config).m.fileInfos->data[(*t).info.fileIndex].projPath);
			}
			LA30_: ;
		}
		LA23_: ;
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T22_);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T35_);
		res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1051));
		T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T36_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(name);
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T36_);
		res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA39_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA39_: ;
		T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T41_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*(*p).module).g).breakpoints, T41_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_12)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	NimStringDesc* T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
{	{
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 1)], (&a));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	typ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350144710928));
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA8_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA8_: ;
	res = rawNewString(((NI) 80));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*p).module, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1052));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = addrLoc_9b8NbhHc4w1oBKAy127l3xQ((*(*(*p).module).g).config, a);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 12);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1051));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T12_ = (NimStringDesc*)0;
	T12_ = renderTree_ppjdh9aQ5L0SGPF8yz1gZ9cA((*n).sons->data[((NI) 1)], 0);
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T12_);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T13_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_64));
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = genTypeInfo_BeEYMOjEPJinzbFpsfTaZg((*p).module, typ, (*n).info);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T14_);
	res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_139));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA17_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA17_: ;
	T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T19_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T20_);
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genPragma_UtJx89cn0a8CNSWWmaj6raA_11)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* 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;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		colontmp_ = (*n).sons;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw T5_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1053;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				it = colontmp_->data[i];
				T5_ = (tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw)0;
				T5_ = whichPragma_Pjztiiq9bHmTTxDuLd39cNRw(it);
				switch (T5_) {
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 197):
				{
					genEmit_QrTB5DOwbDX9bKAW7PNbuJA_8(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 131):
				{
					genBreakPoint_QrTB5DOwbDX9bKAW7PNbuJA_9(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 182):
				{
					genWatchpoint_UtJx89cn0a8CNSWWmaj6raA_12(p, it);
				}
				break;
				case ((tyEnum_TSpecialWord_ycbpMCRV6Cd2eBh3X9biEiw) 189):
				{
					tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p_2;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T10_;
					p_2 = newProc_r9c9cj4fW68RhY7ht9btSvB8w(NIM_NIL, (*p).module);
					(*p_2).options = ((*p_2).options & ~ 196608);
					if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p_2, (*it).sons->data[((NI) 1)]);
					T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
					T10_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p_2, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
					asgnRef((void**) (&(*(*p_2).module).injectStmt), (*T10_));
				}
				break;
				default:
				{
				}
				break;
				}
				TM_MQdRN7fpbG7rPm4JpVVAhA_1053 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1053);
				{
					NI T14_;
					T14_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T14_ == L))) goto LA15_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA15_: ;
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1055;
	NI oldBreakIdx;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* forLoopVar;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeA;
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA rangeB;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* call;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T27_;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1057;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(t);
		if (!!((T3_ == ((NI) 3)))) goto LA4_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1054));
	}
	LA4_: ;
	TM_MQdRN7fpbG7rPm4JpVVAhA_1055 = addInt((*p).withinLoop, ((NI) 1));
	(*p).withinLoop = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1055);
	genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, t);
	oldBreakIdx = (*p).breakIdx;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*t).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*t).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
	forLoopVar = (*(*t).sons->data[((NI) 0)]).sym;
	nimZeroMem((void*)(&rangeA), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	nimZeroMem((void*)(&rangeB), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	assignLocalVar_UtJx89cn0a8CNSWWmaj6raA(p, (*t).sons->data[((NI) 0)]);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	call = (*t).sons->data[((NI) 1)];
	{
		NI T8_;
		T8_ = (NI)0;
		T8_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(call);
		if (!!((T8_ == ((NI) 4) || T8_ == ((NI) 5)))) goto LA9_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1056));
	}
	LA9_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 1)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*call).sons ? (*call).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call).sons->data[((NI) 1)], (&rangeA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*call).sons ? (*call).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call).sons->data[((NI) 2)], (&rangeB));
	{
		NI T13_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T16_;
		tyArray_f7nG5LD47BH5K9c6mASit3g T17_;
		NimStringDesc* T18_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T13_ = (NI)0;
		T13_ = sonsLen_zOB1gNtXypybIzLxxB9cyWQ(call);
		if (!(T13_ == ((NI) 4))) goto LA14_;
		T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T16_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T17_, sizeof(tyArray_f7nG5LD47BH5K9c6mASit3g));
		T17_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*forLoopVar).loc);
		T17_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(rangeA);
		T17_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(rangeB);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 3)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*call).sons ? (*call).sons->Sup.len : 0)-1);
		T18_ = (NimStringDesc*)0;
		T18_ = getStr_P2DOsHG6Jk4Siab3L2qwUg((*call).sons->data[((NI) 3)]);
		T17_[3] = rope_yShmEg9cffWxI7s5XzEKBow(T18_);
		T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T19_ = percent__yhJ9aDxHfJqHvWO0i6N9bukQ(T17_, 4);
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T19_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T16_, T20_);
	}
	goto LA11_;
	LA14_: ;
	{
		tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA step;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T22_;
		tyArray_duFhZXIIlrbrM62cWjNekg T23_;
		NimStringDesc* T24_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
		nimZeroMem((void*)(&step), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 3)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*call).sons ? (*call).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*call).sons->data[((NI) 3)], (&step));
		T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T22_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		nimZeroMem((void*)T23_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T23_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg((*forLoopVar).loc);
		T23_[1] = rdLoc_xidyzuHqIciXbQyEOKahDg(rangeA);
		T23_[2] = rdLoc_xidyzuHqIciXbQyEOKahDg(rangeB);
		T23_[3] = rdLoc_xidyzuHqIciXbQyEOKahDg(step);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*call).kind)>>3] &(1U<<((NU)((*call).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 4)) >= (NU)((*call).sons ? (*call).sons->Sup.len : 0)) raiseIndexError2(((NI) 4),((*call).sons ? (*call).sons->Sup.len : 0)-1);
		T24_ = (NimStringDesc*)0;
		T24_ = getStr_P2DOsHG6Jk4Siab3L2qwUg((*call).sons->data[((NI) 4)]);
		T23_[4] = rope_yShmEg9cffWxI7s5XzEKBow(T24_);
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T25_ = percent__MLJpsW0DAZYB8lAgq09cUjg(T23_, 5);
		T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T26_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T25_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T22_, T26_);
	}
	LA11_: ;
	T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T27_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	{
		if (!!(!(((*p).module == NIM_NIL)))) goto LA30_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
	}
	LA30_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
	{
		if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA34_;
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA34_: ;
	T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T36_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T37_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T36_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T27_, T37_);
	(*p).breakIdx = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
	if ((NU)((*p).breakIdx) >= (NU)((*p).blocks ? (*p).blocks->Sup.len : 0)) raiseIndexError2((*p).breakIdx,((*p).blocks ? (*p).blocks->Sup.len : 0)-1);
	(*p).blocks->data[(*p).breakIdx].isLoop = NIM_TRUE;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*t).kind)>>3] &(1U<<((NU)((*t).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 2)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*t).sons ? (*t).sons->Sup.len : 0)-1);
	genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, (*t).sons->data[((NI) 2)]);
	endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
	(*p).breakIdx = oldBreakIdx;
	TM_MQdRN7fpbG7rPm4JpVVAhA_1057 = subInt((*p).withinLoop, ((NI) 1));
	(*p).withinLoop = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1057);
}

N_LIB_PRIVATE N_NIMCALL(void, genState_UtJx89cn0a8CNSWWmaj6raA_13)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n0;
	{
		NI T3_;
		NimStringDesc* T6_;
		T3_ = (NI)0;
		T3_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		if (!!((T3_ == ((NI) 1)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_1058);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T6_);
	}
	LA4_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	n0 = (*n).sons->data[((NI) 0)];
	{
		NI64 idx;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T21_;
		if (!((*n0).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6))) goto LA9_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
		idx = (*(*n).sons->data[((NI) 0)]).intVal;
		T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T11_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA14_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA14_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 5);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1060));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res), idx);
		res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1061));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA18_;
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA18_: ;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
		T21_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T21_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T20_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T11_, T21_);
	}
	goto LA7_;
	LA9_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
		NimStringDesc* res_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		if (!((*n0).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20))) goto LA23_;
		T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T25_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		{
			if (!!(!(((*p).module == NIM_NIL)))) goto LA28_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
		}
		LA28_: ;
		res_2 = rawNewString(((NI) 80));
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*n0).kind)>>3] &(1U<<((NU)((*n0).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_2), (*n0).strVal);
		res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1061));
		{
			if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA32_;
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA32_: ;
		T34_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T34_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T34_);
		add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T35_);
	}
	goto LA7_;
	LA23_: ;
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genGotoState_UtJx89cn0a8CNSWWmaj6raA_14)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T1_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T3_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T5_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	NI T9_;
	NI T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T11_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T14_;
	NI64 statesCounter;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prefix;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T37_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T38_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T39_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T1_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T2_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
	T3_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T3_ = percent__T9caGByKkBhaXSZ6fCJLIdQ(T2_, 1);
	T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T4_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T3_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T1_, T4_);
	(*p).beforeRetNeeded = NIM_TRUE;
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T5_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T7_ = percent__8tWfSjtTOlDafxpQPvChAA(T6_, 0);
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T7_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T5_, T8_);
	T9_ = ((*p).nestedTryStmts ? (*p).nestedTryStmts->Sup.len : 0);
	T10_ = (NI)0;
	T10_ = inExceptBlockLen_1ygdb876UM9astcNUXtgUBQ_2(p);
	blockLeaveActions_e09bgD1fQnMSV07ItnToC3Q(p, T9_, T10_);
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T11_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T12_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = percent__xKLwwPkFSVy2Dtn9cuJ78xw(T12_, 0);
	T14_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T14_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T13_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T11_, T14_);
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	statesCounter = lastOrd_PcKlk9cRVtdVcuEFs9bZTdAQ((*(*(*p).module).g).config, (*(*n).sons->data[((NI) 0)]).typ, NIM_FALSE);
	{
		NIM_BOOL T17_;
		NI T18_;
		T17_ = (NIM_BOOL)0;
		T18_ = (NI)0;
		T18_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		T17_ = (((NI) 2) <= T18_);
		if (!(T17_)) goto LA19_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T17_ = ((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6));
		LA19_: ;
		if (!T17_) goto LA20_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_167[(NU)((*(*n).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 1)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_168));
		statesCounter = (*(*n).sons->data[((NI) 1)]).intVal;
	}
	LA20_: ;
	{
		NIM_BOOL T24_;
		NI T25_;
		T24_ = (NIM_BOOL)0;
		T25_ = (NI)0;
		T25_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
		T24_ = (T25_ == ((NI) 3));
		if (!(T24_)) goto LA26_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T24_ = ((*(*n).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20));
		LA26_: ;
		if (!T24_) goto LA27_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
		prefix = rope_yShmEg9cffWxI7s5XzEKBow((*(*n).sons->data[((NI) 2)]).strVal);
	}
	goto LA22_;
	LA27_: ;
	{
		prefix = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1063));
	}
	LA22_: ;
	{
		NI64 i;
		NI64 res;
		i = (NI64)0;
		res = IL64(0);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T33_;
				tyArray_mrugoXXRZUEeG9bEXo9auBKw T34_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T36_;
				NI64 TM_MQdRN7fpbG7rPm4JpVVAhA_1064;
				if (!(res <= statesCounter)) goto LA32;
				i = res;
				T33_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T33_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				nimZeroMem((void*)T34_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
				T34_[0] = prefix;
				T34_[1] = rope_KOisMGxcPhz6CcSmxgwEQQ(i);
				T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T35_ = percent__hdRijZdoPR3UGq9aUw2zFDQ(T34_, 2);
				T36_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T36_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T35_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T33_, T36_);
				TM_MQdRN7fpbG7rPm4JpVVAhA_1064 = addInt64(res, ((NI) 1));
				res = (NI64)(TM_MQdRN7fpbG7rPm4JpVVAhA_1064);
			} LA32: ;
		}
	}
	T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
	T37_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
	nimZeroMem((void*)T38_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T39_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T39_ = percent__BYiowJAm8zF7RBRISElaLg(T38_, 0);
	T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T40_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T39_);
	add_IM4kcMNkkOLJtqdEqSxR8A(T37_, T40_);
}

N_LIB_PRIVATE N_NIMCALL(void, genBreakState_8mAL9ckajemzgfLPfeZVNoQ_21)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	initLoc_qlujIAW86QclHYUVxlHRiQ(d, ((tyEnum_TLocKind_O7PRFZKuiBBWbku09cayVBg) 6), n, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA3_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)], (&a));
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		unsureAsgnRef((void**) (&(*d).r), percent__ZjQc8bFVF8ePFYxjN0iVVg(T5_, 1));
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T7_;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		initLocExpr_9biTBaXPz9cezuLjjWw9cSEGw_2(p, (*n).sons->data[((NI) 0)], (&a));
		nimZeroMem((void*)T7_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T7_[0] = rdLoc_xidyzuHqIciXbQyEOKahDg(a);
		unsureAsgnRef((void**) (&(*d).r), percent__SiqB8gWmdYKb4vtgqYrrMA(T7_, 1));
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, expr_8mAL9ckajemzgfLPfeZVNoQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA* d) {
	(*p).currLineInfo = (*n).info;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym;
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		sym = (*n).sym;
		switch ((*sym).kind) {
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14):
		{
			{
				if (!!(((67108880 & (*sym).flags) == 0))) goto LA5_;
				fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw((*p).module, n);
				genProcPrototype_TAVDUakAwQnRHDK9cFe6L7g((*p).module, sym);
			}
			goto LA3_;
			LA5_: ;
			{
				genProc_HbYPOpwLApFuBkISFGrmEQ((*p).module, sym);
			}
			LA3_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 15):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 13):
		{
			{
				NimStringDesc* T13_;
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA11_;
				T13_ = (NimStringDesc*)0;
				T13_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 48);
appendString(T13_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_386));
appendString(T13_, (*(*sym).name).s);
				localError_NF6kBGchnhQYPbCedyefVA((*(*(*p).module).g).config, (*n).info, T13_);
			}
			LA11_: ;
			genProc_HbYPOpwLApFuBkISFGrmEQ((*p).module, sym);
			{
				NIM_BOOL T16_;
				NimStringDesc* T20_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*sym).loc.r == NIM_NIL);
				if (T16_) goto LA17_;
				T16_ = ((*sym).loc.lode == NIM_NIL);
				LA17_: ;
				if (!T16_) goto LA18_;
				T20_ = (NimStringDesc*)0;
				T20_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + 20);
appendString(T20_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387));
appendString(T20_, (*(*sym).name).s);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T20_);
			}
			LA18_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 10):
		{
			{
				NIM_BOOL T24_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
				T24_ = (NIM_BOOL)0;
				T24_ = isSimpleConst_y9bTRtTAknVsv9apXKbpJYJA((*sym).typ);
				if (!T24_) goto LA25_;
				T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T27_ = genLiteral_qifZy01sZ5OX01eT5FP76w(p, (*sym).ast, (*sym).typ);
				putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T27_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 1));
			}
			goto LA22_;
			LA25_: ;
			{
				genComplexConst_ARtcpl8G0t9cQCPr2Np8Srw(p, sym, d);
			}
			LA22_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 20):
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
			T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T30_ = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((*sym).position)));
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T30_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 11):
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 9):
		{
			{
				if (!!(((8388616 & (*sym).flags) == 0))) goto LA34_;
				genVarPrototype_t9a9a9bxmaOztYOfsfhQUOXXw_2((*p).module, n);
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T40_;
				NimStringDesc* T43_;
				NimStringDesc* T44_;
				T38_ = (NIM_BOOL)0;
				T38_ = ((*sym).loc.r == NIM_NIL);
				if (T38_) goto LA39_;
				T40_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T40_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T38_ = (T40_ == NIM_NIL);
				LA39_: ;
				if (!T38_) goto LA41_;
				T43_ = (NimStringDesc*)0;
				T44_ = (NimStringDesc*)0;
				T44_ = nimIntToStr((*sym).Sup.id);
				T43_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T44_ ? T44_->Sup.len : 0) + 20);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_427));
appendString(T43_, (*(*sym).name).s);
appendString(T43_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T43_, T44_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T43_);
			}
			LA41_: ;
			{
				if (!(((*sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 23))&63U)))!=0)) goto LA47_;
				accessThreadLocalVar_IpGUPLhMYizrVHs0OdHySA(p, sym);
				{
					NIM_BOOL T51_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
					T51_ = (NIM_BOOL)0;
					T51_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*(*p).module).g).config);
					if (!T51_) goto LA52_;
					T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T54_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_430), (*sym).loc.r);
					putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, (*sym).loc.lode, T54_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
				}
				goto LA49_;
				LA52_: ;
				{
					putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
				}
				LA49_: ;
			}
			goto LA45_;
			LA47_: ;
			{
				putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
			}
			LA45_: ;
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 5):
		{
			{
				NIM_BOOL T60_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T62_;
				NimStringDesc* T65_;
				NimStringDesc* T66_;
				T60_ = (NIM_BOOL)0;
				T60_ = ((*sym).loc.r == NIM_NIL);
				if (T60_) goto LA61_;
				T62_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T62_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T60_ = (T62_ == NIM_NIL);
				LA61_: ;
				if (!T60_) goto LA63_;
				T65_ = (NimStringDesc*)0;
				T66_ = (NimStringDesc*)0;
				T66_ = nimIntToStr((*sym).Sup.id);
				T65_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T66_ ? T66_->Sup.len : 0) + 21);
appendString(T65_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_431));
appendString(T65_, (*(*sym).name).s);
appendString(T65_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T65_, T66_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T65_);
			}
			LA63_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		case ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 3):
		{
			{
				NIM_BOOL T70_;
				tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T72_;
				NimStringDesc* T75_;
				NimStringDesc* T76_;
				T70_ = (NIM_BOOL)0;
				T70_ = ((*sym).loc.r == NIM_NIL);
				if (T70_) goto LA71_;
				T72_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T72_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*sym).loc);
				T70_ = (T72_ == NIM_NIL);
				LA71_: ;
				if (!T70_) goto LA73_;
				T75_ = (NimStringDesc*)0;
				T76_ = (NimStringDesc*)0;
				T76_ = nimIntToStr((*sym).Sup.id);
				T75_ = rawNewString(((*(*sym).name).s ? (*(*sym).name).s->Sup.len : 0) + (T76_ ? T76_->Sup.len : 0) + 22);
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_432));
appendString(T75_, (*(*sym).name).s);
appendString(T75_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
appendString(T75_, T76_);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T75_);
			}
			LA73_: ;
			putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym).loc);
		}
		break;
		default:
		{
			NimStringDesc* T78_;
			T78_ = (NimStringDesc*)0;
			T78_ = rawNewString((reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)) ? reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_))->Sup.len : 0) + 22);
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433));
appendString(T78_, reprEnum((NI)(*sym).kind, (&NTI_cNCW9acsSznmEccl1fgQwkw_)));
appendString(T78_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_434));
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T78_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T82_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T85_;
			T82_ = (NIM_BOOL)0;
			T82_ = isEmptyType_nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
			if (!!(T82_)) goto LA83_;
			T85_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T85_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T85_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		LA83_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T87_;
		T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T87_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putDataIntoDest_fYECstGN5jPehhn5p8Iclg(p, d, n, T87_);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 6) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 15):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 19):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 5):
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T89_;
		T89_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T89_ = genLiteral_NYI5fC69aIqZGRakncXv9cNQ_2(p, n);
		putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T89_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 27):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 29):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 30):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 31):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 26):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 28):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* op;
		genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		op = (*n).sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
			if (!((*n).typ == 0)) goto LA93_;
			nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			{
				NIM_BOOL T97_;
				T97_ = (NIM_BOOL)0;
				T97_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T97_)) goto LA98_;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				T97_ = !(((*(*op).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA98_: ;
				if (!T97_) goto LA99_;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, (&a), (*(*op).sym).magic);
			}
			goto LA95_;
			LA99_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, n, (&a));
			}
			LA95_: ;
		}
		goto LA91_;
		LA93_: ;
		{
			{
				NIM_BOOL T105_;
				T105_ = (NIM_BOOL)0;
				T105_ = ((*op).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T105_)) goto LA106_;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				T105_ = !(((*(*op).sym).magic == ((tyEnum_TMagic_shZhZOdbVC5nnFvcXQAImg) 0)));
				LA106_: ;
				if (!T105_) goto LA107_;
				if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*op).kind)>>3] &(1U<<((NU)((*op).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
				genMagicExpr_TU9cJnldbmGa9bZDxaR6I4tg(p, n, d, (*(*op).sym).magic);
			}
			goto LA103_;
			LA107_: ;
			{
				genCall_BKdMcfvryaJLplX0oFPcAQ_7(p, n, d);
			}
			LA103_: ;
		}
		LA91_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		{
			NIM_BOOL T113_;
			NI T115_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T118_;
			T113_ = (NIM_BOOL)0;
			T113_ = isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3(n);
			if (!(T113_)) goto LA114_;
			T115_ = (NI)0;
			T115_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T113_ = !((T115_ == ((NI) 0)));
			LA114_: ;
			if (!T113_) goto LA116_;
			T118_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T118_ = genSetNode_NYI5fC69aIqZGRakncXv9cNQ_9(p, n);
			putIntoDest_6NyA5DzsDGY17BhjidN65Q(p, d, n, T118_, ((tyEnum_TStorageLoc_JK9cKMX3XnqHaUky9b6gkGEw) 0));
		}
		goto LA111_;
		LA116_: ;
		{
			genSetConstr_BKdMcfvryaJLplX0oFPcAQ_18(p, n, d);
		}
		LA111_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T123_;
			NI T125_;
			T123_ = (NIM_BOOL)0;
			T123_ = isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3(n);
			if (!(T123_)) goto LA124_;
			T125_ = (NI)0;
			T125_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T123_ = !((T125_ == ((NI) 0)));
			LA124_: ;
			if (!T123_) goto LA126_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_7(p, n, d);
		}
		goto LA121_;
		LA126_: ;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T129_;
			T129_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T129_ = skipTypes_zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350144710928));
			if (!((*T129_).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA130_;
			genSeqConstr_8mAL9ckajemzgfLPfeZVNoQ_5(p, n, d);
		}
		goto LA121_;
		LA130_: ;
		{
			genArrayConstr_8mAL9ckajemzgfLPfeZVNoQ_8(p, n, d);
		}
		LA121_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			NIM_BOOL T136_;
			NIM_BOOL T137_;
			NI T140_;
			T136_ = (NIM_BOOL)0;
			T137_ = (NIM_BOOL)0;
			T137_ = !(((*n).typ == NIM_NIL));
			if (!(T137_)) goto LA138_;
			T137_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind_9a3YiReNVD0IJHWFKgXRe9ag) 25));
			LA138_: ;
			T136_ = T137_;
			if (!(T136_)) goto LA139_;
			T140_ = (NI)0;
			T140_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T136_ = (T140_ == ((NI) 2));
			LA139_: ;
			if (!T136_) goto LA141_;
			genClosure_8mAL9ckajemzgfLPfeZVNoQ_9(p, n, d);
		}
		goto LA134_;
		LA141_: ;
		{
			NIM_BOOL T144_;
			NI T146_;
			T144_ = (NIM_BOOL)0;
			T144_ = isDeepConstExpr_9cP6JNeOKqczaXCI4Zo4SBQ_3(n);
			if (!(T144_)) goto LA145_;
			T146_ = (NI)0;
			T146_ = len_P89cqdlERShb9alU3iC0yj8wast(n);
			T144_ = !((T146_ == ((NI) 0)));
			LA145_: ;
			if (!T144_) goto LA147_;
			exprComplexConst_8mAL9ckajemzgfLPfeZVNoQ_7(p, n, d);
		}
		goto LA134_;
		LA147_: ;
		{
			genTupleConstr_8mAL9ckajemzgfLPfeZVNoQ_10(p, n, d);
		}
		LA134_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr_BKdMcfvryaJLplX0oFPcAQ_19(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		genCast_BKdMcfvryaJLplX0oFPcAQ_20(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		genConv_BKdMcfvryaJLplX0oFPcAQ_21(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 64):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 63):
	{
		genAddr_BKdMcfvryaJLplX0oFPcAQ_22(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genBracketExpr_8mAL9ckajemzgfLPfeZVNoQ_11(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref_BKdMcfvryaJLplX0oFPcAQ_24(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genRecordField_BKdMcfvryaJLplX0oFPcAQ_25(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedRecordField_BKdMcfvryaJLplX0oFPcAQ_26(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock_8mAL9ckajemzgfLPfeZVNoQ_12(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		genStmtListExpr_8mAL9ckajemzgfLPfeZVNoQ_13(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		genStmtList_UtJx89cn0a8CNSWWmaj6raA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 92):
	{
		genIf_8mAL9ckajemzgfLPfeZVNoQ_14(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*n).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 1)]).sons ? (*(*n).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 1)]).sons ? (*(*n).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, (*(*n).sons->data[((NI) 1)]).sons->data[((NI) 0)], d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		downConv_8mAL9ckajemzgfLPfeZVNoQ_15(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		upConv_8mAL9ckajemzgfLPfeZVNoQ_16(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 68):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_825));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_826));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		genRangeChck_s6WVujc8IISl9b7Y39bTXvlw(p, n, d, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_827));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 71):
	{
		convStrToCStr_8mAL9ckajemzgfLPfeZVNoQ_17(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		convCStrToStr_8mAL9ckajemzgfLPfeZVNoQ_18(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* sym_2;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
		sym_2 = (*(*n).sons->data[((NI) 0)]).sym;
		genProc_HbYPOpwLApFuBkISFGrmEQ((*p).module, sym_2);
		{
			NIM_BOOL T173_;
			NimStringDesc* T177_;
			T173_ = (NIM_BOOL)0;
			T173_ = ((*sym_2).loc.r == NIM_NIL);
			if (T173_) goto LA174_;
			T173_ = ((*sym_2).loc.lode == NIM_NIL);
			LA174_: ;
			if (!T173_) goto LA175_;
			T177_ = (NimStringDesc*)0;
			T177_ = rawNewString(((*(*sym_2).name).s ? (*(*sym_2).name).s->Sup.len : 0) + 20);
appendString(T177_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_387));
appendString(T177_, (*(*sym_2).name).s);
			internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T177_);
		}
		LA175_: ;
		putLocIntoDest_SkhzpH2DDHJ7pbmCpsHIPg(p, d, (*sym_2).loc);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		genClosure_8mAL9ckajemzgfLPfeZVNoQ_9(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		genWhileStmt_QrTB5DOwbDX9bKAW7PNbuJA_3(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		genVarStmt_UtJx89cn0a8CNSWWmaj6raA_8(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 101):
	{
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 94):
	{
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_892));
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase_re1pwmyeR32ikwnOC3vvzQ(p, n, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturnStmt_QrTB5DOwbDX9bKAW7PNbuJA_4(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreakStmt_QrTB5DOwbDX9bKAW7PNbuJA_5(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 73):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA190_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, NIM_FALSE);
		}
		LA190_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		{
			if (!!((((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 14))&31U)))!=0))) goto LA195_;
			genAsgn_9ap9b3IFVLSL9b9akVbfMyRxlA(p, n, !(((*p).prc == NIM_NIL)));
		}
		LA195_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* ex;
		if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		ex = (*n).sons->data[((NI) 0)];
		{
			tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T202_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T203_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T204_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T205_;
			if (!!(((*ex).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA200_;
			genLineDir_QrTB5DOwbDX9bKAW7PNbuJA_2(p, n);
			nimZeroMem((void*)(&a_2), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
			initLocExprSingleUse_9biTBaXPz9cezuLjjWw9cSEGw(p, ex, (&a_2));
			T202_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T202_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T203_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T203_ = amp__4cYKitaHx6RQ9azRtQsZp6w(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_982), a_2.r);
			T204_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T204_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T203_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
			T205_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T205_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T204_);
			add_IM4kcMNkkOLJtqdEqSxR8A(T202_, T205_);
		}
		LA200_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 89):
	{
		genAsmStmt_QrTB5DOwbDX9bKAW7PNbuJA_6(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		{
			NIM_BOOL T210_;
			NIM_BOOL T211_;
			T210_ = (NIM_BOOL)0;
			T211_ = (NIM_BOOL)0;
			T211_ = ((*(*(*(*p).module).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T211_) goto LA212_;
			T211_ = (((*(*(*p).module).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA212_: ;
			T210_ = T211_;
			if (!(T210_)) goto LA213_;
			T210_ = !((((*(*(*(*p).module).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 30))&63U)))!=0));
			LA213_: ;
			if (!T210_) goto LA214_;
			genTryCpp_re1pwmyeR32ikwnOC3vvzQ_3(p, n, d);
		}
		goto LA208_;
		LA214_: ;
		{
			genTry_re1pwmyeR32ikwnOC3vvzQ_4(p, n, d);
		}
		LA208_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaiseStmt_QrTB5DOwbDX9bKAW7PNbuJA_7(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 98):
	{
		genTypeSection_t9a9a9bxmaOztYOfsfhQUOXXw_3((*p).module, n);
	}
	break;
	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_UtJx89cn0a8CNSWWmaj6raA_11(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* T222_;
		T222_ = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
		T222_ = lastSon_UPSW0jLTX5qJL51YMUAHgw(n);
		expr_8mAL9ckajemzgfLPfeZVNoQ(p, T222_, d);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 79):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 159):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 80):
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 81):
	{
		{
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA226_;
			if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
			prc = (*(*n).sons->data[((NI) 0)]).sym;
			{
				NIM_BOOL T230_;
				tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* T231_;
				T230_ = (NIM_BOOL)0;
				T231_ = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
				T231_ = skipGenericOwner_lIu8wX6Beq6dBJgESOFFjg_3(prc);
				T230_ = ((*T231_).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6));
				if (!(T230_)) goto LA232_;
				T230_ = !((((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0));
				LA232_: ;
				if (!T230_) goto LA233_;
				{
					NIM_BOOL T237_;
					NIM_BOOL T238_;
					NIM_BOOL T240_;
					T237_ = (NIM_BOOL)0;
					T238_ = (NIM_BOOL)0;
					T238_ = ((65600 & (*prc).flags) == 64);
					if (T238_) goto LA239_;
					T240_ = (NIM_BOOL)0;
					T240_ = (((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
					if (!(T240_)) goto LA241_;
					T240_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 5))&15U)))!=0);
					LA241_: ;
					T238_ = T240_;
					LA239_: ;
					T237_ = T238_;
					if (T237_) goto LA242_;
					T237_ = ((*prc).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 14));
					LA242_: ;
					if (!T237_) goto LA243_;
					{
						NIM_BOOL T247_;
						T247_ = (NIM_BOOL)0;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(((NI) 6)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 6),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
						T247_ = !(((*(*(*prc).ast).sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 1)));
						if (T247_) goto LA248_;
						T247_ = (((*prc).loc.flags &(1U<<((NU)(((tyEnum_TLocFlag_o2bqJgR4ceIupnUSpxiudA) 4))&15U)))!=0);
						LA248_: ;
						if (!T247_) goto LA249_;
						genProc_HbYPOpwLApFuBkISFGrmEQ((*p).module, prc);
					}
					LA249_: ;
				}
				LA243_: ;
			}
			LA233_: ;
		}
		LA226_: ;
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 95):
	{
		genParForStmt_QrTB5DOwbDX9bKAW7PNbuJA_10(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 157):
	{
		genState_UtJx89cn0a8CNSWWmaj6raA_13(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		NI TM_MQdRN7fpbG7rPm4JpVVAhA_1062;
		TM_MQdRN7fpbG7rPm4JpVVAhA_1062 = addInt((*p).splitDecls, ((NI) 1));
		(*p).splitDecls = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1062);
		genGotoState_UtJx89cn0a8CNSWWmaj6raA_14(p, n);
	}
	break;
	case ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 158):
	{
		genBreakState_8mAL9ckajemzgfLPfeZVNoQ_21(p, n, d);
	}
	break;
	default:
	{
		NimStringDesc* T256_;
		T256_ = (NimStringDesc*)0;
		T256_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 25);
appendString(T256_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_433));
appendString(T256_, reprEnum((NI)(*n).kind, (&NTI_G4E4Gxe7oI2Cm03rkiOzQw_)));
appendString(T256_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1065));
		internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*(*p).module).g).config, (*n).info, T256_);
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(void, genStmts_QrTB5DOwbDX9bKAW7PNbuJA)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* t) {
	tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA a;
	NIM_BOOL isPush;
	nimZeroMem((void*)(&a), sizeof(tyObject_TLoc_EtHNvCB0bgfu9bFjzx9cb6aA));
	isPush = (((*(*(*(*p).module).g).config).notes &((NU64)1<<((NU)((((tyEnum_TMsgKind_Ns87ee9bXonvIM8SMewfbmA) 71)- 11))&63U)))!=0);
	{
		if (!isPush) goto LA3_;
		pushInfoContext_uDLK9aoAOWwwFTev4NOwF7Q((*(*(*p).module).g).config, (*t).info, ((NimStringDesc*) NIM_NIL));
	}
	LA3_: ;
	expr_8mAL9ckajemzgfLPfeZVNoQ(p, t, (&a));
	{
		if (!isPush) goto LA7_;
		popInfoContext_O9arH9bYenXLOr27ZSmcQnEw_3((*(*(*p).module).g).config);
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		if (!!(((71 &(1U<<((NU)(a.k)&15U)))!=0))) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = dollar__r38WafKlW80RkvoZTcia4Q(TM_MQdRN7fpbG7rPm4JpVVAhA_1066);
		internalError_5hPl6LjCYJxMYxh9af9b9bXzw((*(*(*p).module).g).config, T13_);
	}
	LA11_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, addHcrInitGuards_fTdzF9aUiQk4rKtSH3doafQ)(tyObject_TCProc_g7nhmFb7KltrkyRKuP8k2Q* p, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* inInitGuard) {
	{
		if (!((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA3_;
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* child;
			child = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_10;
						if (!(i_2 < colontmp_)) goto LA8;
						i = i_2;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						child = (*n).sons->data[i];
						addHcrInitGuards_fTdzF9aUiQk4rKtSH3doafQ(p, child, inInitGuard);
						TM_MQdRN7fpbG7rPm4JpVVAhA_10 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_10);
					} LA8: ;
				}
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL stmtShouldExecute;
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 99) || (*n).kind == ((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 100));
		if (T10_) goto LA11_;
		T10_ = (((*n).flags &(1U<<((NU)(((tyEnum_TNodeFlag_jyh9acXHkhZANSSvPIY7ZLg) 19))&31U)))!=0);
		LA11_: ;
		stmtShouldExecute = T10_;
		{
			if (!(*inInitGuard)) goto LA14_;
			{
				if (!stmtShouldExecute) goto LA18_;
				endBlock_0dpuY9coTlraj8JXIe2BzVw(p);
				(*inInitGuard) = NIM_FALSE;
			}
			LA18_: ;
		}
		goto LA12_;
		LA14_: ;
		{
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T25_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T27_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T28_;
				NimStringDesc* res;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T37_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T38_;
				NI T39_;
				if (!!(stmtShouldExecute)) goto LA23_;
				T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T25_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T26_ = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_17));
				T27_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T27_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T26_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T25_, T27_);
				T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
				T28_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata(p, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
				{
					if (!!(!(((*p).module == NIM_NIL)))) goto LA31_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_18));
				}
				LA31_: ;
				res = rawNewString(((NI) 80));
				res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_19));
				{
					if (!!((((*(*(*(*p).module).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA35_;
					res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
				}
				LA35_: ;
				T37_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T37_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
				T38_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T38_ = indentLine_5PupwEBrKjp65kTtpnAp9bQ(p, T37_);
				add_IM4kcMNkkOLJtqdEqSxR8A(T28_, T38_);
				T39_ = (NI)0;
				T39_ = startBlockInternal_1ygdb876UM9astcNUXtgUBQ(p);
				(*inInitGuard) = NIM_TRUE;
			}
			LA23_: ;
		}
		LA12_: ;
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA(p, n);
	}
	LA1_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myProcess_mtin0JSWMFuuGt6GFCQvbg)(tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* transformed_n;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (b) chckObj((*b).Sup.m_type, (&NTI_9cG6VsX22pOhho6kxyhFVow_));
	m = ((tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*) (b));
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = skipCodegen_nwSFZweO0MiC1cK59cLXWvgpasses((*(*m).g).config, n);
		if (!T7_) goto LA8_;
		goto BeforeRet_;
	}
	LA8_: ;
	(*(*m).initProc).options = initProcOptions_qttThLa3xHNEeApwU61sZA(m);
	transformed_n = transformStmt_o9bTtoSsaDmuiyVzV15dOyg((*(*m).g).graph, (*m).module, n);
	{
		NIM_BOOL T12_;
		T12_ = (NIM_BOOL)0;
		T12_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T12_) goto LA13_;
		addHcrInitGuards_fTdzF9aUiQk4rKtSH3doafQ((*m).initProc, transformed_n, (&(*m).inHcrInitGuard));
	}
	goto LA10_;
	LA13_: ;
	{
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, transformed_n);
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*, myClose_f8dWe5MYj8ZjDSubo9c6jOg)(tyObject_ModuleGraphcolonObjectType__RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext_Hb6rFM0ecvtlLf2kv9aU75w* b, tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m;
	NI T84_;
{	result = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!(b == NIM_NIL)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	if (b) chckObj((*b).Sup.m_type, (&NTI_9cG6VsX22pOhho6kxyhFVow_));
	m = ((tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*) (b));
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA7_;
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* destructorCall;
			tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
			NI i;
			NI L;
			NI T10_;
			destructorCall = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp_ = (tySequence_ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			colontmp_ = (*graph).globalDestructors;
			i = ((NI) 0);
			T10_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1067;
					if (!(i < L)) goto LA12;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
					destructorCall = colontmp_->data[i];
					add_P8dDSotTW25BkfbyspojGg(n, destructorCall);
					TM_MQdRN7fpbG7rPm4JpVVAhA_1067 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1067);
					{
						NI T15_;
						T15_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T15_ == L))) goto LA16_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA16_: ;
				} LA12: ;
			}
		}
	}
	LA7_: ;
	{
		NIM_BOOL T20_;
		T20_ = (NIM_BOOL)0;
		T20_ = skipCodegen_nwSFZweO0MiC1cK59cLXWvgpasses((*(*m).g).config, n);
		if (!T20_) goto LA21_;
		goto BeforeRet_;
	}
	LA21_: ;
	{
		if (!!((n == NIM_NIL))) goto LA25_;
		(*(*m).initProc).options = initProcOptions_qttThLa3xHNEeApwU61sZA(m);
		genStmts_QrTB5DOwbDX9bKAW7PNbuJA((*m).initProc, n);
	}
	LA25_: ;
	{
		NIM_BOOL T29_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T32_;
		T29_ = (NIM_BOOL)0;
		T29_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T29_) goto LA30_;
		T32_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T32_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1068));
		(void)(T32_);
		{
			if (!(*m).inHcrInitGuard) goto LA35_;
			endBlock_0dpuY9coTlraj8JXIe2BzVw((*m).initProc);
		}
		LA35_: ;
	}
	LA30_: ;
	{
		tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* disp;
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA39_;
		{
			NIM_BOOL T43_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T50_;
			T43_ = (NIM_BOOL)0;
			T43_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
			if (!T43_) goto LA44_;
			T46_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T46_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266));
			(void)(T46_);
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271));
			(void)(T47_);
			T48_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T48_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281));
			(void)(T48_);
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1069));
			(void)(T49_);
			T50_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T50_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1070));
			(void)(T50_);
		}
		LA44_: ;
		{
			NIM_BOOL T53_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
			T53_ = (NIM_BOOL)0;
			T53_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
			if (!(T53_)) goto LA54_;
			T53_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0)));
			LA54_: ;
			if (!T53_) goto LA55_;
			T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1071));
			(void)(T57_);
		}
		LA55_: ;
		{
			NIM_BOOL T60_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T64_;
			T60_ = (NIM_BOOL)0;
			T60_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
			if (!(T60_)) goto LA61_;
			T60_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
			LA61_: ;
			if (!T60_) goto LA62_;
			T64_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T64_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1072));
			(void)(T64_);
		}
		LA62_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T69_;
			if (!!(((*(*m).g).breakpoints == NIM_NIL))) goto LA67_;
			T69_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T69_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1050));
			(void)(T69_);
		}
		LA67_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T74_;
			if (!(((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA72_;
			T74_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T74_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1073));
			(void)(T74_);
		}
		LA72_: ;
		{
			NI T77_;
			T77_ = ((*(*m).g).forwardedProcs ? (*(*m).g).forwardedProcs->Sup.len : 0);
			if (!(T77_ == ((NI) 0))) goto LA78_;
			(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 5)) & 7);
		}
		LA78_: ;
		disp = generateMethodDispatchers_7t0GJlNQwZyLt0Kz3RhRdw(graph);
		{
			tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_2;
				NI colontmp__2;
				NI i_3;
				i_2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen_P89cqdlERShb9alU3iC0yj8w_2ast(disp);
				i_3 = ((NI) 0);
				{
					while (1) {
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_1074;
						if (!(i_3 < colontmp__2)) goto LA83;
						i_2 = i_3;
						if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*disp).kind)>>3] &(1U<<((NU)((*disp).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
						if ((NU)(i_2) >= (NU)((*disp).sons ? (*disp).sons->Sup.len : 0)) raiseIndexError2(i_2,((*disp).sons ? (*disp).sons->Sup.len : 0)-1);
						x = (*disp).sons->data[i_2];
						if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_26[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_27));
						genProcAux_HbYPOpwLApFuBkISFGrmEQ_4(m, (*x).sym);
						TM_MQdRN7fpbG7rPm4JpVVAhA_1074 = addInt(i_3, ((NI) 1));
						i_3 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1074);
					} LA83: ;
				}
			}
		}
	}
	LA39_: ;
	asgnRef((void**) (&(*(*m).g).modules_closed), (tySequence_SHVxAqOYtIy7teT1q4s0zQ*) incrSeqV3((TGenericSeq*)((*(*m).g).modules_closed), (&NTI_SHVxAqOYtIy7teT1q4s0zQ_)));
	T84_ = (*(*m).g).modules_closed->Sup.len++;
	asgnRef((void**) (&(*(*m).g).modules_closed->data[T84_]), m);
	}BeforeRet_: ;
	return result;
}

static N_INLINE(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*, pop_sJkHMuFHoY5Elz2ZDxz78Asystem)(tySequence_DfgJFJEYoj4YBAHLZPl5lQ** s) {
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* result;
	NI L;
	NI T1_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1075;
	result = (tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	TM_MQdRN7fpbG7rPm4JpVVAhA_1075 = subInt(T1_, ((NI) 1));
	L = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1075);
	if ((NU)(L) >= (NU)((*s) ? (*s)->Sup.len : 0)) raiseIndexError2(L,((*s) ? (*s)->Sup.len : 0)-1);
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence_DfgJFJEYoj4YBAHLZPl5lQ*) setLengthSeqV2(&((*s))->Sup, (&NTI_DfgJFJEYoj4YBAHLZPl5lQ_), ((NI)chckRange(L, ((NI) 0), ((NI) 2147483647)))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genForwardedProcs_PBGOqkExHgxzX6Rn0nJkYg)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g) {
	{
		while (1) {
			NI T3_;
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
			tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* ms;
			tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m;
			T3_ = ((*g).forwardedProcs ? (*g).forwardedProcs->Sup.len : 0);
			if (!(((NI) 0) < T3_)) goto LA2;
			prc = pop_sJkHMuFHoY5Elz2ZDxz78Asystem((&(*g).forwardedProcs));
			ms = getModule_xfh8ar7fDxVX2A4OO9b5sqQ(prc);
			if ((NU)((*ms).position) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)) raiseIndexError2((*ms).position,((*g).modules ? (*g).modules->Sup.len : 0)-1);
			m = (*g).modules->data[(*ms).position];
			{
				NimStringDesc* T8_;
				if (!(((*prc).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0)) goto LA6_;
				T8_ = (NimStringDesc*)0;
				T8_ = rawNewString(((*(*prc).name).s ? (*(*prc).name).s->Sup.len : 0) + 17);
appendString(T8_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1076));
appendString(T8_, (*(*prc).name).s);
				internalError_yTu5SGHF0j0P9cQrqN7YylA((*(*m).g).config, (*prc).info, T8_);
			}
			LA6_: ;
			genProcNoForward_HbYPOpwLApFuBkISFGrmEQ_3(m, prc);
		} LA2: ;
	}
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeNameForModule_JBd7XGjgK9ab0QMtKIFvb8Q)(tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NimStringDesc* T14_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!!(((*m).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 6)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1078));
	}
	LA3_: ;
	{
		if (!!(((*(*m).owner).kind == ((tyEnum_TSymKind_cNCW9acsSznmEccl1fgQwkw) 24)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1079));
	}
	LA7_: ;
	{
		NimStringDesc* T13_;
		if (!((12288 & (*m).flags) == 0)) goto LA11_;
		T13_ = (NimStringDesc*)0;
		T13_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*(*m).owner).name).s);
		result = rope_yShmEg9cffWxI7s5XzEKBow(T13_);
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
	}
	LA11_: ;
	T14_ = (NimStringDesc*)0;
	T14_ = mangle_GxzvEIRbrShQbyJNboTw7A((*(*m).name).s);
	add_yG4AKzsBRS1W4MANDlXQeg(&result, T14_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getSomeInitName_E8VUcJLPfNp8S9aZKgHijew)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* suffix) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!!(T3_)) goto LA4_;
		result = getSomeNameForModule_JBd7XGjgK9ab0QMtKIFvb8Q((*m).module);
	}
	LA4_: ;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, suffix);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getInitName_ao6gUnuVfQLtZ89c4kaIKfg_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA3_;
		result = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1077));
	}
	goto LA1_;
	LA3_: ;
	{
		result = getSomeInitName_E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1080));
	}
	LA1_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getHcrInitName_ao6gUnuVfQLtZ89c4kaIKfg_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getSomeInitName_E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1096));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, hcrGetProcLoadCode_uWPA1lTRrPufWdliMF9aGrg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NimStringDesc* sym, NimStringDesc* prefix, NimStringDesc* handle, NimStringDesc* getProcFunc) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
	NimStringDesc* extname;
	NimStringDesc* T5_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* tmp;
	tyArray_duFhZXIIlrbrM62cWjNekg T14_;
	NimStringDesc* T15_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	prc = getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA((*(*m).g).graph, sym);
	{
		if (!!(!((prc == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1099));
	}
	LA3_: ;
	if (((TM_MQdRN7fpbG7rPm4JpVVAhA_8[(NU)((*(*prc).ast).kind)>>3] &(1U<<((NU)((*(*prc).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_9));
	if ((NU)(((NI) 0)) >= (NU)((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*prc).ast).sons ? (*(*prc).ast).sons->Sup.len : 0)-1);
	fillProcLoc_t9a9a9bxmaOztYOfsfhQUOXXw(m, (*(*prc).ast).sons->data[((NI) 0)]);
	T5_ = (NimStringDesc*)0;
	T5_ = rawNewString((prefix ? prefix->Sup.len : 0) + (sym ? sym->Sup.len : 0) + 0);
appendString(T5_, prefix);
appendString(T5_, sym);
	extname = T5_;
	tmp = mangleDynLibProc_MkmvPNwLUVhzodPsMjdbJw(prc);
	asgnRef((void**) (&(*prc).loc.r), tmp);
	asgnRef((void**) (&(*(*prc).typ).sym), NIM_NIL);
	{
		NIM_BOOL T8_;
		tyArray_mrugoXXRZUEeG9bEXo9auBKw T11_;
		tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		T8_ = (NIM_BOOL)0;
		T8_ = containsOrIncl_VFt0uM7bgfJ5age9alOsU9cg((&(*m).declaredThings), (*prc).Sup.id);
		if (!!(T8_)) goto LA9_;
		nimZeroMem((void*)T11_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
		T11_[0] = (*prc).loc.r;
		T12_ = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = t_XNOXh7uniWNgiq58C9bW49awcgen((*prc).loc);
		T11_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, T12_);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent__E9bSTz8DQ4tgiLV9avQjFgFA(T11_, 2);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 9))- 0], T13_);
	}
	LA9_: ;
	nimZeroMem((void*)T14_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
	T14_[0] = tmp;
	T14_[1] = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*prc).typ);
	T14_[2] = rope_yShmEg9cffWxI7s5XzEKBow(getProcFunc);
	T14_[3] = rope_yShmEg9cffWxI7s5XzEKBow(handle);
	T15_ = (NimStringDesc*)0;
	T15_ = rawNewString((prefix ? prefix->Sup.len : 0) + (sym ? sym->Sup.len : 0) + 0);
appendString(T15_, prefix);
appendString(T15_, sym);
	T14_[4] = makeCString_vQJydtKy4Nf6bXPYtbmjtg(T15_);
	result = percent__3CQpPXVDiNqC3jKO8Juliw(T14_, 5);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getDatInitName_ao6gUnuVfQLtZ89c4kaIKfg_6)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getSomeInitName_E8VUcJLPfNp8S9aZKgHijew(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1105));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genDatInitCode_7ll08CGQoDzh9cxhZCroU4w_2)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL moduleDatInitRequired;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prc;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	NimStringDesc* T2_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T19_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
	moduleDatInitRequired = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_ = (NimStringDesc*)0;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T5_) goto LA6_;
		T2_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1081));
	}
	goto LA3_;
	LA6_: ;
	{
		T2_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1082));
	}
	LA3_: ;
	T1_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T2_);
	T1_[1] = getDatInitName_ao6gUnuVfQLtZ89c4kaIKfg_6(m);
	prc = percent__2Ixv9aZ9bvpNaVAVzYBJlUPg(T1_, 2);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1083), ((NI) 999999), (*(*m).g).config);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 14);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1106;
				if (!(res <= ((NI) 18))) goto LA11;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)chckRange(res, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 19)));
				{
					NI T14_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T18_;
					T14_ = (NI)0;
					T14_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(i)- 0]);
					if (!!((T14_ == ((NI) 0)))) goto LA15_;
					moduleDatInitRequired = NIM_TRUE;
					T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
					add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T17_);
					add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*m).s[(i)- 0]);
					T18_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
					add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T18_);
				}
				LA15_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_1106 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1106);
			} LA11: ;
		}
	}
	nimZeroMem((void*)T19_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T20_ = percent__4L62Yp9bLO2ZDcvBG9bSvP9bw(T19_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T20_);
	{
		if (!moduleDatInitRequired) goto LA23_;
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0], prc);
	}
	LA23_: ;
}

static N_INLINE(NI, hash_ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x) {
	NI result;
	result = (NI)0;
	result = x;
	return result;
}

static N_INLINE(NIM_BOOL, isFilled_5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}

static N_INLINE(NI, nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash) {
	NI result;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1107;
	result = (NI)0;
	TM_MQdRN7fpbG7rPm4JpVVAhA_1107 = addInt(h, ((NI) 1));
	result = (NI)((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1107) & maxHash);
	return result;
}

static N_INLINE(NI, rawGet_QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table_fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1108;
{	result = (NI)0;
	(*hc) = hash_ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM_MQdRN7fpbG7rPm4JpVVAhA_1108 = subInt(((NI) -1), h);
	result = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1108);
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, registerModuleToMain_9aldr9cciNpmwLn9bc4Nq2PGQ)(tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g, tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* init;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* datInit;
{	init = getInitName_ao6gUnuVfQLtZ89c4kaIKfg_4(m);
	datInit = getDatInitName_ao6gUnuVfQLtZ89c4kaIKfg_6(m);
	{
		NIM_BOOL T3_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* hcr_module_meta;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* systemModulePath;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* mainModulePath;
		NI hc;
		NI index;
		NIM_BOOL hasKey;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T30_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T31_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T32_;
		tyArray_qtqsWM5aXmcpMIVmvq3kAA T33_;
		NimStringDesc* T34_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)T6_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		hcr_module_meta = percent__k9bgPIs43oLgxnk1l4TNQaw(T6_, 0);
		if ((NU)((*(*(*g).graph).config).m.systemFileIdx) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)) raiseIndexError2((*(*(*g).graph).config).m.systemFileIdx,((*g).modules ? (*g).modules->Sup.len : 0)-1);
		systemModulePath = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*(*g).modules->data[(*(*(*g).graph).config).m.systemFileIdx]).module);
		mainModulePath = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		{
			tyArray_JiWwrsTRC6xqNlGcBthSVA T11_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA9_;
			nimZeroMem((void*)T11_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T11_[0] = systemModulePath;
			T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T12_ = percent__5MqeIopvDuA9aozxL79cQ88g(T11_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&hcr_module_meta, T12_);
		}
		LA9_: ;
		hc = (NI)0;
		index = rawGet_QnNqXOulpiE3rTDm0rj6bgtables((*(*g).graph).importDeps, ((NI32) ((*(*m).module).position)), (&hc));
		hasKey = (((NI) 0) <= index);
		{
			tySequence_48JTohSgTy339bRxHzUD8KA** deps;
			if (!hasKey) goto LA15_;
			if ((NU)(index) >= (NU)((*(*g).graph).importDeps.data ? (*(*g).graph).importDeps.data->Sup.len : 0)) raiseIndexError2(index,((*(*g).graph).importDeps.data ? (*(*g).graph).importDeps.data->Sup.len : 0)-1);
			deps = (&(*(*g).graph).importDeps.data->data[index].Field2);
			{
				NI32 curr;
				tySequence_48JTohSgTy339bRxHzUD8KA* colontmp_;
				NI i;
				NI L;
				NI T18_;
				curr = (NI32)0;
				colontmp_ = (tySequence_48JTohSgTy339bRxHzUD8KA*)0;
				colontmp_ = (*deps);
				i = ((NI) 0);
				T18_ = (colontmp_ ? colontmp_->Sup.len : 0);
				L = T18_;
				{
					while (1) {
						tyArray_JiWwrsTRC6xqNlGcBthSVA T21_;
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_1109;
						if (!(i < L)) goto LA20;
						if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
						curr = colontmp_->data[i];
						nimZeroMem((void*)T21_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
						if ((NU)(curr) >= (NU)((*g).modules ? (*g).modules->Sup.len : 0)) raiseIndexError2(curr,((*g).modules ? (*g).modules->Sup.len : 0)-1);
						T21_[0] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*(*g).modules->data[curr]).module);
						T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
						T22_ = percent__5MqeIopvDuA9aozxL79cQ88g(T21_, 1);
						add_IM4kcMNkkOLJtqdEqSxR8A(&hcr_module_meta, T22_);
						TM_MQdRN7fpbG7rPm4JpVVAhA_1109 = addInt(i, ((NI) 1));
						i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1109);
						{
							NI T25_;
							T25_ = (colontmp_ ? colontmp_->Sup.len : 0);
							if (!!((T25_ == L))) goto LA26_;
							failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
						}
						LA26_: ;
					} LA20: ;
				}
			}
		}
		LA15_: ;
		nimZeroMem((void*)T28_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T29_ = percent__Zp9bMZDO5tEkvVLTxiKsBkA(T28_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&hcr_module_meta, T29_);
		nimZeroMem((void*)T30_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T31_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T31_ = percent__j5FZyaqnqjc2dcsUkAp28Q(T30_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&hcr_module_meta, T31_);
		nimZeroMem((void*)T32_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		nimZeroMem((void*)T33_, sizeof(tyArray_qtqsWM5aXmcpMIVmvq3kAA));
		sigHash_mSn9a9aX0NBzWqerwPW0qRww_2((*m).module, T33_);
		T34_ = (NimStringDesc*)0;
		T34_ = dollar__0A9bslyIJ49bWrftLGh13rvg(T33_);
		T32_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T34_);
		T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T35_ = percent__EbvvG9awBeRKzx8xuBIb7TA(T32_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&hcr_module_meta, T35_);
		{
			tyArray_qTjAvTvKF9anytN1At69aJMQ T40_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T41_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T42_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T44_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T45_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T46_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T48_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T50_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T51_;
			tyArray_wqYjTJU9ab2ZgEFMaQc3vNA T52_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T53_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T54_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T55_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T56_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T57_;
			tyArray_qTjAvTvKF9anytN1At69aJMQ T58_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T59_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* osModulePath;
			NimStringDesc* T60_;
			NimStringDesc* T61_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T62_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T63_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T64_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T65_;
			tyArray_JiWwrsTRC6xqNlGcBthSVA T66_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T67_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA38_;
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, hcr_module_meta);
			nimZeroMem((void*)T40_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T41_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T41_ = percent__9a8besSQa09cOOt9b9cgdVwY9aQ(T40_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T41_);
			nimZeroMem((void*)T42_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T42_[0] = init;
			T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T43_ = percent__oVKF7oq59cRGAaMpvWzNWbw(T42_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T43_);
			nimZeroMem((void*)T44_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T44_[0] = datInit;
			T45_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T45_ = percent__oVKF7oq59cRGAaMpvWzNWbw(T44_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T45_);
			nimZeroMem((void*)T46_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T46_[0] = getHcrInitName_ao6gUnuVfQLtZ89c4kaIKfg_5(m);
			T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T47_ = percent__7ru3bwKuSx4Sc8ilsBmX3g(T46_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T47_);
			nimZeroMem((void*)T48_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T49_ = percent__MDIdJXTVckPj57aO7LMVgw(T48_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T49_);
			nimZeroMem((void*)T50_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T50_[0] = init;
			T51_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T51_ = percent__vQDE0VOBftnrpkVsM9cme4w(T50_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModInit, T51_);
			nimZeroMem((void*)T52_, sizeof(tyArray_wqYjTJU9ab2ZgEFMaQc3vNA));
			T52_[0] = mainModulePath;
			T52_[1] = systemModulePath;
			T52_[2] = datInit;
			T53_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T53_ = percent__9bmR9bM9b0qqEqU0QJKnmLQnA(T52_, 3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).otherModsInit, T53_);
			nimZeroMem((void*)T54_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T54_[0] = getHcrInitName_ao6gUnuVfQLtZ89c4kaIKfg_5(m);
			T55_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T55_ = percent__88tWbH31SmOWJjgJ7RnfHA(T54_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T55_);
			nimZeroMem((void*)T56_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T56_[0] = mainModulePath;
			T57_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T57_ = percent__t1CB59bEwlxfHZhNwNNz1bw(T56_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T57_);
			nimZeroMem((void*)T58_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
			T59_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T59_ = percent__YbLM7ZajsWOFLl4iSo0Krg(T58_, 0);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T59_);
			T60_ = (NimStringDesc*)0;
			T60_ = dollar__mZ66tEveFIQokq3arf8Klw(systemModulePath);
			T61_ = (NimStringDesc*)0;
			T61_ = nsuReplaceStr(T60_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1110), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1111));
			osModulePath = rope_yShmEg9cffWxI7s5XzEKBow(T61_);
			nimZeroMem((void*)T62_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T62_[0] = osModulePath;
			T63_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T63_ = percent__t1CB59bEwlxfHZhNwNNz1bw(T62_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T63_);
			add_yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1112));
			add_yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1113));
			nimZeroMem((void*)T64_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T64_[0] = osModulePath;
			T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T65_ = percent__rH7Ns9bqAnnfkukwBIlz9bKg(T64_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T65_);
			nimZeroMem((void*)T66_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
			T66_[0] = osModulePath;
			T67_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T67_ = percent__zx9ctq3Ffe9aysjoWhZOzevQ(T66_, 1);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T67_);
			add_yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1114));
			add_yG4AKzsBRS1W4MANDlXQeg(&(*g).mainDatInit, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1115));
		}
		goto LA36_;
		LA38_: ;
		{
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], hcr_module_meta);
		}
		LA36_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NI T71_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T74_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T76_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T77_;
		T71_ = (NI)0;
		T71_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
		if (!(((NI) 0) < T71_)) goto LA72_;
		nimZeroMem((void*)T74_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T74_[0] = datInit;
		T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T75_ = percent__T9a21DAzFCa3OqRooKKtkqw(T74_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T75_);
		nimZeroMem((void*)T76_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T76_[0] = datInit;
		T77_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T77_ = percent__vQDE0VOBftnrpkVsM9cme4w(T76_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T77_);
	}
	LA72_: ;
	{
		if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA80_;
		{
			NIM_BOOL T84_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T93_;
			T84_ = (NIM_BOOL)0;
			T84_ = emulatedThreadVars_7uEG6ZwO4OOj3nQvIat2mwcgen((*(*m).g).config);
			if (!(T84_)) goto LA85_;
			T84_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
			LA85_: ;
			if (!T84_) goto LA86_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA90_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA90_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
			T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T92_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1072));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T92_);
			res = resizeString(res, 4);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1116));
			T93_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T93_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T93_);
		}
		LA86_: ;
		{
			NIM_BOOL T96_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T105_;
			T96_ = (NIM_BOOL)0;
			T96_ = !(((*(*(*m).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27)));
			if (!(T96_)) goto LA97_;
			T96_ = !(((*(*(*m).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0)));
			LA97_: ;
			if (!T96_) goto LA98_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA102_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA102_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
			T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1071));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T104_);
			res_2 = resizeString(res_2, 18);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1117));
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T105_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, T105_);
		}
		LA98_: ;
	}
	LA80_: ;
	{
		NI T108_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T111_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T112_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initCall;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T113_;
		T108_ = (NI)0;
		T108_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
		if (!(((NI) 0) < T108_)) goto LA109_;
		nimZeroMem((void*)T111_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T111_[0] = init;
		T112_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T112_ = percent__T9a21DAzFCa3OqRooKKtkqw(T111_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModProcs, T112_);
		nimZeroMem((void*)T113_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T113_[0] = init;
		initCall = percent__vQDE0VOBftnrpkVsM9cme4w(T113_, 1);
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA116_;
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainModInit, initCall);
		}
		goto LA114_;
		LA116_: ;
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 13))&63U)))!=0)) goto LA119_;
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).mainDatInit, initCall);
		}
		goto LA114_;
		LA119_: ;
		{
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*g).otherModsInit, initCall);
		}
		LA114_: ;
	}
	LA109_: ;
	}BeforeRet_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, genInitCode_7ll08CGQoDzh9cxhZCroU4w)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NIM_BOOL moduleInitRequired;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initname;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* prc;
	tyArray_mrugoXXRZUEeG9bEXo9auBKw T1_;
	NimStringDesc* T2_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T131_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T228_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T229_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T230_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T231_;
	moduleInitRequired = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
	initname = getInitName_ao6gUnuVfQLtZ89c4kaIKfg_4(m);
	nimZeroMem((void*)T1_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
	T2_ = (NimStringDesc*)0;
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T5_) goto LA6_;
		T2_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1081));
	}
	goto LA3_;
	LA6_: ;
	{
		T2_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1082));
	}
	LA3_: ;
	T1_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T2_);
	T1_[1] = initname;
	prc = percent__2Ixv9aZ9bvpNaVAVzYBJlUPg(T1_, 2);
	genCLineDir_W2V1U5l2z2M9c2i5Phjz9cow(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1083), ((NI) 999999), (*(*m).g).config);
	{
		if (!(((NI) 0) < (*m).typeNodes)) goto LA11_;
		{
			NIM_BOOL T15_;
			NimStringDesc* res;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T22_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
			NimStringDesc* res_2;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T29_;
			T15_ = (NIM_BOOL)0;
			T15_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
			if (!T15_) goto LA16_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA20_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA20_: ;
			res = rawNewString(((NI) 80));
			res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
			T22_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T22_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T22_);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1084));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), (*m).typeNodesName);
			res = resizeString(res, 2);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361));
			T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T23_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T23_);
			{
				if (!!(!((m == NIM_NIL)))) goto LA26_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA26_: ;
			res_2 = rawNewString(((NI) 80));
			res_2 = resizeString(res_2, 19);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1085));
			T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T28_ = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), T28_);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_874));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*m).typeNodesName);
			res_2 = resizeString(res_2, 1);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_3));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*m).typeNodes)));
			res_2 = resizeString(res_2, 22);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1086));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_2), ((NI64) ((*m).typeNodes)));
			res_2 = resizeString(res_2, 17);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1087));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*m).typeNodesName);
			res_2 = resizeString(res_2, 3);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
			T29_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T29_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T29_);
		}
		goto LA13_;
		LA16_: ;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T35_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T40_;
			{
				if (!!(!((m == NIM_NIL)))) goto LA33_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA33_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 7);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
			T35_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T35_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_99));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), T35_);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*m).typeNodesName);
			res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
			cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_3), ((NI64) ((*m).typeNodes)));
			res_3 = resizeString(res_3, 2);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401));
			{
				if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA38_;
				res_3 = resizeString(res_3, 1);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
			}
			LA38_: ;
			T40_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T40_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T40_);
		}
		LA13_: ;
	}
	LA11_: ;
	{
		NimStringDesc* res_4;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T49_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T54_;
		if (!(((NI) 0) < (*m).nimTypes)) goto LA43_;
		{
			if (!!(!((m == NIM_NIL)))) goto LA47_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA47_: ;
		res_4 = rawNewString(((NI) 80));
		res_4 = resizeString(res_4, 7);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_42));
		T49_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T49_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg(m, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_98));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), T49_);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_32));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*m).nimTypesName);
		res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_150));
		cgFormatValue_RNvA2HiiC5vvtIhzsLpc8g((&res_4), ((NI64) ((*m).nimTypes)));
		res_4 = resizeString(res_4, 2);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_401));
		{
			if (!!((((*(*(*m).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 11))&31U)))!=0))) goto LA52_;
			res_4 = resizeString(res_4, 1);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
		}
		LA52_: ;
		T54_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T54_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 14))- 0], T54_);
	}
	LA43_: ;
	{
		NIM_BOOL T57_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T60_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T61_;
		T57_ = (NIM_BOOL)0;
		T57_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T57_) goto LA58_;
		nimZeroMem((void*)T60_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T60_[0] = getModuleDllPath_RaNE9b8A430I9bfpgZmdrC1w_3(m, (*m).module);
		T61_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T61_ = percent__HoXSbgR7plMG7Fef0fcy9aw(T60_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T61_);
	}
	LA58_: ;
	{
		NIM_BOOL T64_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T65_;
		NI T66_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T68_;
		NI T69_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T72_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T73_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T74_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T75_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T129_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T130_;
		T64_ = (NIM_BOOL)0;
		T65_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T65_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T66_ = (NI)0;
		T66_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T65_));
		T64_ = (((NI) 0) < T66_);
		if (T64_) goto LA67_;
		T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T68_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T69_ = (NI)0;
		T69_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T68_));
		T64_ = (((NI) 0) < T69_);
		LA67_: ;
		if (!T64_) goto LA70_;
		nimZeroMem((void*)T72_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T73_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T73_ = percent__H1Ma2EXqegHnMqzJZ4SA1g(T72_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T73_);
		nimZeroMem((void*)T74_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T75_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T75_ = percent__jpXTCDNVjIi5r4hbHN5SVQ(T74_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T75_);
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T78_;
			NI T79_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T86_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T87_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T88_;
			T78_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T78_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			T79_ = (NI)0;
			T79_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T78_));
			if (!(((NI) 0) < T79_)) goto LA80_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA84_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
			}
			LA84_: ;
			T86_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T86_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T86_);
			T87_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T87_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T87_));
			T88_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T88_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T88_);
			{
				if (!NIM_FALSE) goto LA91_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
			}
			LA91_: ;
		}
		LA80_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T95_;
			NI T96_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T104_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T105_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T106_;
			T95_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T95_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			T96_ = (NI)0;
			T96_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T95_));
			if (!(((NI) 0) < T96_)) goto LA97_;
			moduleInitRequired = NIM_TRUE;
			{
				NIM_BOOL T101_;
				T101_ = (NIM_BOOL)0;
				T101_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T101_) goto LA102_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
			}
			LA102_: ;
			T104_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T104_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T104_);
			T105_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T105_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T105_));
			T106_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T106_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T106_);
			{
				NIM_BOOL T109_;
				T109_ = (NIM_BOOL)0;
				T109_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T109_) goto LA110_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
			}
			LA110_: ;
		}
		LA97_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T114_;
			NI T115_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T122_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T123_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T124_;
			T114_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T114_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T115_ = (NI)0;
			T115_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T114_));
			if (!(((NI) 0) < T115_)) goto LA116_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA120_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
			}
			LA120_: ;
			T122_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T122_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T122_);
			T123_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T123_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).preInitProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T123_));
			T124_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T124_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T124_);
			{
				if (!NIM_FALSE) goto LA127_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
			}
			LA127_: ;
		}
		LA116_: ;
		nimZeroMem((void*)T129_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T130_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T130_ = percent__g9b9arp3BWCGRHDe21SJso6w(T129_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T130_);
	}
	LA70_: ;
	nimZeroMem((void*)T131_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T132_ = percent__H1Ma2EXqegHnMqzJZ4SA1g(T131_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T132_);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T137_;
		if (!(((NI) 0) < ((NI) ((*(*m).initProc).gcFrameId)))) goto LA135_;
		moduleInitRequired = NIM_TRUE;
		T137_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T137_ = initGCFrame_3AsTOpq9crZUYBL9aD1lXBng_3((*m).initProc);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T137_);
	}
	LA135_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T140_;
		NI T141_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T148_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T149_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T150_;
		T140_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T140_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		T141_ = (NI)0;
		T141_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T140_));
		if (!(((NI) 0) < T141_)) goto LA142_;
		moduleInitRequired = NIM_TRUE;
		{
			if (!NIM_FALSE) goto LA146_;
			add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
		}
		LA146_: ;
		T148_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T148_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T148_);
		T149_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T149_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0));
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T149_));
		T150_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T150_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 0), (*(*m).g).config);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T150_);
		{
			if (!NIM_FALSE) goto LA153_;
			add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
		}
		LA153_: ;
	}
	LA142_: ;
	{
		NIM_BOOL T157_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T158_;
		NI T159_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T161_;
		NI T162_;
		T157_ = (NIM_BOOL)0;
		T158_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T158_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
		T159_ = (NI)0;
		T159_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T158_));
		T157_ = (((NI) 0) < T159_);
		if (T157_) goto LA160_;
		T161_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
		T161_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
		T162_ = (NI)0;
		T162_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T161_));
		T157_ = (((NI) 0) < T162_);
		LA160_: ;
		if (!T157_) goto LA163_;
		moduleInitRequired = NIM_TRUE;
		{
			NIM_BOOL T167_;
			T167_ = (NIM_BOOL)0;
			T167_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
			if (!(T167_)) goto LA168_;
			T167_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2))&7U)))!=0));
			LA168_: ;
			if (!T167_) goto LA169_;
			(*m).flags |= ((NU8)1)<<((((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 2)) & 7);
			{
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* procname;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T175_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T176_;
				if (!!((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0))) goto LA173_;
				procname = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*m).module).name).s);
				T175_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T175_ = quotedFilename_2Kbe7lBq9cqJa8J9cn4WRepg((*(*m).g).config, (*(*m).module).info);
				T176_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T176_ = initFrame_hSB0mXJGcFil9bvrhp0Qm5g((*m).initProc, procname, T175_);
				add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T176_);
			}
			goto LA171_;
			LA173_: ;
			{
				tyArray_qTjAvTvKF9anytN1At69aJMQ T178_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T179_;
				nimZeroMem((void*)T178_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
				T179_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T179_ = percent__jpXTCDNVjIi5r4hbHN5SVQ(T178_, 0);
				add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T179_);
			}
			LA171_: ;
		}
		LA169_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T182_;
			NI T183_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T191_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T192_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T193_;
			T182_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T182_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			T183_ = (NI)0;
			T183_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T182_));
			if (!(((NI) 0) < T183_)) goto LA184_;
			moduleInitRequired = NIM_TRUE;
			{
				NIM_BOOL T188_;
				T188_ = (NIM_BOOL)0;
				T188_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T188_) goto LA189_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
			}
			LA189_: ;
			T191_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T191_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T191_);
			T192_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T192_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1));
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T192_));
			T193_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T193_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 1), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T193_);
			{
				NIM_BOOL T196_;
				T196_ = (NIM_BOOL)0;
				T196_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
				if (!T196_) goto LA197_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
			}
			LA197_: ;
		}
		LA184_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T201_;
			NI T202_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T209_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** T210_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T211_;
			T201_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T201_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			T202_ = (NI)0;
			T202_ = len_9b0YRltzV3kNSE9aQTsG82wg((*T201_));
			if (!(((NI) 0) < T202_)) goto LA203_;
			moduleInitRequired = NIM_TRUE;
			{
				if (!NIM_FALSE) goto LA207_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1088));
			}
			LA207_: ;
			T209_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T209_ = genSectionStart_otaTb0ytiYCWgsXTIvijfg(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T209_);
			T210_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA**)0;
			T210_ = s_kOyJGmZMM2tMgCKSrvUE3gcgendata((*m).initProc, ((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2));
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, (*T210_));
			T211_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T211_ = genSectionEnd_otaTb0ytiYCWgsXTIvijfg_2(((tyEnum_TCProcSection_0r9aIOfveOcxZqJ7OwbI2gg) 2), (*(*m).g).config);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T211_);
			{
				if (!NIM_FALSE) goto LA214_;
				add_yG4AKzsBRS1W4MANDlXQeg(&prc, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1089));
			}
			LA214_: ;
		}
		LA203_: ;
		{
			NIM_BOOL T218_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T222_;
			T218_ = (NIM_BOOL)0;
			T218_ = (((*(*m).initProc).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 16))&31U)))!=0);
			if (!(T218_)) goto LA219_;
			T218_ = !((((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 0))&7U)))!=0));
			LA219_: ;
			if (!T218_) goto LA220_;
			T222_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T222_ = deinitFrame_3AsTOpq9crZUYBL9aD1lXBng_5((*m).initProc);
			add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T222_);
		}
		LA220_: ;
	}
	LA163_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T227_;
		if (!(((NI) 0) < ((NI) ((*(*m).initProc).gcFrameId)))) goto LA225_;
		moduleInitRequired = NIM_TRUE;
		T227_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T227_ = deinitGCFrame_3AsTOpq9crZUYBL9aD1lXBng_4((*m).initProc);
		add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T227_);
	}
	LA225_: ;
	nimZeroMem((void*)T228_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T229_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T229_ = percent__g9b9arp3BWCGRHDe21SJso6w(T228_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T229_);
	nimZeroMem((void*)T230_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T231_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T231_ = percent__4L62Yp9bLO2ZDcvBG9bSvP9bw(T230_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&prc, T231_);
	{
		NIM_BOOL T234_;
		tySequence_sM4lkSb7zS6F7OVMvW9cffQ* procsToLoad;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T237_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T238_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T257_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T258_;
		T234_ = (NIM_BOOL)0;
		T234_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T234_) goto LA235_;
		genericSeqAssign((&procsToLoad), TM_MQdRN7fpbG7rPm4JpVVAhA_1090, (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
		nimZeroMem((void*)T237_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T237_[0] = getHcrInitName_ao6gUnuVfQLtZ89c4kaIKfg_5(m);
		T238_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T238_ = percent__MCSdS9cTdQvttqiM9azLzkDg(T237_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T238_);
		{
			NI T243_;
			NimStringDesc* T244_;
			NI T245_;
			NimStringDesc* T246_;
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA241_;
			procsToLoad = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(procsToLoad), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
			T243_ = procsToLoad->Sup.len++;
			T244_ = (NimStringDesc*)0;
			T244_ = procsToLoad->data[T243_]; procsToLoad->data[T243_] = copyStringRC1(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1097));
			if (T244_) nimGCunrefNoCycle(T244_);
			procsToLoad = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(procsToLoad), (&NTI_sM4lkSb7zS6F7OVMvW9cffQ_));
			T245_ = procsToLoad->Sup.len++;
			T246_ = (NimStringDesc*)0;
			T246_ = procsToLoad->data[T245_]; procsToLoad->data[T245_] = copyStringRC1(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1098));
			if (T246_) nimGCunrefNoCycle(T246_);
		}
		LA241_: ;
		{
			NimStringDesc* curr;
			NI i;
			NI L;
			NI T248_;
			curr = (NimStringDesc*)0;
			i = ((NI) 0);
			T248_ = (procsToLoad ? procsToLoad->Sup.len : 0);
			L = T248_;
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T251_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1102;
					if (!(i < L)) goto LA250;
					if ((NU)(i) >= (NU)(procsToLoad ? procsToLoad->Sup.len : 0)) raiseIndexError2(i,(procsToLoad ? procsToLoad->Sup.len : 0)-1);
					curr = procsToLoad->data[i];
					T251_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T251_ = hcrGetProcLoadCode_uWPA1lTRrPufWdliMF9aGrg(m, curr, ((NimStringDesc*) NIM_NIL), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1100), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1101));
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T251_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_1102 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1102);
					{
						NI T254_;
						T254_ = (procsToLoad ? procsToLoad->Sup.len : 0);
						if (!!((T254_ == L))) goto LA255_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA255_: ;
				} LA250: ;
			}
		}
		nimZeroMem((void*)T257_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T258_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T258_ = percent__4L62Yp9bLO2ZDcvBG9bSvP9bw(T257_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T258_);
	}
	LA235_: ;
	{
		NIM_CHAR i_2;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* el;
		tyArray_MxT2Arb3Nlp7V9bRITO3dvg colontmp_;
		NIM_CHAR i_3;
		i_2 = (NIM_CHAR)0;
		el = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		nimZeroMem((void*)colontmp_, sizeof(tyArray_MxT2Arb3Nlp7V9bRITO3dvg));
		nimCopyMem((void*)colontmp_, (NIM_CONST void*)(*m).extensionLoaders, sizeof(colontmp_));
		i_3 = 48;
		{
			if (!((NU8)(((NIM_CHAR) (((NU8)(i_3))))) <= (NU8)(57))) goto LA262_;
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1104;
					i_2 = i_3;
					if (((NU8)(i_3)) < 48 || ((NU8)(i_3)) > 57) raiseIndexError3(((NU8)(i_3)), 48, 57);
					el = colontmp_[(((NU8)(i_3)))- 48];
					{
						tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* ex;
						tyArray_mrugoXXRZUEeG9bEXo9auBKw T270_;
						NI TM_MQdRN7fpbG7rPm4JpVVAhA_1103;
						if (!!((el == NIM_NIL))) goto LA268_;
						nimZeroMem((void*)T270_, sizeof(tyArray_mrugoXXRZUEeG9bEXo9auBKw));
						TM_MQdRN7fpbG7rPm4JpVVAhA_1103 = subInt(((NU8)(i_2)), ((NI) 48));
						T270_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) ((NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1103))));
						T270_[1] = el;
						ex = percent__w50CkyHBltcyR8rWxttZCg(T270_, 2);
						moduleInitRequired = NIM_TRUE;
						add_IM4kcMNkkOLJtqdEqSxR8A(&prc, ex);
					}
					LA268_: ;
					{
						if (!((NU8)(57) <= (NU8)(((NIM_CHAR) (((NU8)(i_3))))))) goto LA273_;
						goto LA264;
					}
					LA273_: ;
					TM_MQdRN7fpbG7rPm4JpVVAhA_1104 = addInt(((NU8)(i_3)), ((NI) 1));
					if (TM_MQdRN7fpbG7rPm4JpVVAhA_1104 < 48 || TM_MQdRN7fpbG7rPm4JpVVAhA_1104 > 57) raiseOverflow();
					i_3 = (NIM_CHAR)(TM_MQdRN7fpbG7rPm4JpVVAhA_1104);
				}
			} LA264: ;
		}
		LA262_: ;
	}
	{
		NIM_BOOL T277_;
		T277_ = (NIM_BOOL)0;
		T277_ = moduleInitRequired;
		if (T277_) goto LA278_;
		T277_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
		LA278_: ;
		if (!T277_) goto LA279_;
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], prc);
	}
	LA279_: ;
	genDatInitCode_7ll08CGQoDzh9cxhZCroU4w_2(m);
	{
		NIM_BOOL T283_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T286_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T287_;
		tyArray_qTjAvTvKF9anytN1At69aJMQ T288_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T289_;
		T283_ = (NIM_BOOL)0;
		T283_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		if (!T283_) goto LA284_;
		nimZeroMem((void*)T286_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T287_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T287_ = percent__fmEfDTfNDkVDxWi9c0O6D2g(T286_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T287_);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], (*m).hcrCreateTypeInfosProc);
		nimZeroMem((void*)T288_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
		T289_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T289_ = percent__4L62Yp9bLO2ZDcvBG9bSvP9bw(T288_, 0);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0], T289_);
	}
	LA284_: ;
	registerModuleToMain_9aldr9cciNpmwLn9bc4Nq2PGQ((*m).g, m);
}

N_LIB_PRIVATE N_NIMCALL(void, finishTypeDescriptions_7ll08CGQoDzh9cxhZCroU4w_3)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	NI i;
	i = ((NI) 0);
	{
		while (1) {
			NI T3_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T4_;
			NI TM_MQdRN7fpbG7rPm4JpVVAhA_1118;
			T3_ = ((*m).typeStack ? (*m).typeStack->Sup.len : 0);
			if (!(i < T3_)) goto LA2;
			if ((NU)(i) >= (NU)((*m).typeStack ? (*m).typeStack->Sup.len : 0)) raiseIndexError2(i,((*m).typeStack ? (*m).typeStack->Sup.len : 0)-1);
			T4_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T4_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, (*m).typeStack->data[i]);
			(void)(T4_);
			TM_MQdRN7fpbG7rPm4JpVVAhA_1118 = addInt(i, ((NI) 1));
			i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1118);
		} LA2: ;
	}
}
static N_NIMCALL(void, Marker_tyRef_Le8C8QGYTcdw3ffY0559cFg)(void* p, NI op) {
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA* a;
	a = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA*)p;
	nimGCvisit((void*)(*a).m1, op);
}

N_LIB_PRIVATE N_CLOSURE(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, loadLib_U9bFGPRkCoZVGu0OHStKJag)(NimStringDesc* handle, NimStringDesc* name, void* ClE_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA* colonenvP_;
	tyObject_TSym_JpsEh5i1AcKChGYbg7aV4w* prc;
	tyObject_TNode_bROa11lyF5vxEN9aYNbHmhw* n;
	NimStringDesc* res;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T12_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	colonenvP_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA*) ClE_0;
	prc = getCompilerProc_4qXS5VHrKJ5hq9crvvz8tIA((*(*(*colonenvP_).m1).g).graph, name);
	{
		if (!!(!((prc == NIM_NIL)))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1120));
	}
	LA3_: ;
	if (!(((TM_MQdRN7fpbG7rPm4JpVVAhA_83[(NU)((*(*(*prc).annex).path).kind)>>3] &(1U<<((NU)((*(*(*prc).annex).path).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_84));
	n = newStrNode_zLcHGdlEbBYFtoCoan9agkg(((tyEnum_TNodeKind_G4E4Gxe7oI2Cm03rkiOzQw) 20), (*(*(*prc).annex).path).strVal);
	(*n).info = (*(*(*prc).annex).path).info;
	{
		if (!!(!(((*colonenvP_).m1 == NIM_NIL)))) goto LA7_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
	}
	LA7_: ;
	res = rawNewString(((NI) 80));
	res = resizeString(res, 7);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1121));
	cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res), handle);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_94));
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*colonenvP_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_266));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T9_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T10_ = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw((*colonenvP_).m1, n);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T10_);
	res = resizeString(res, 6);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1122));
	T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T11_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*colonenvP_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_271));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T11_);
	res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_69));
	T12_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T12_ = genStringLiteral_SO73hKlDdl5sMaSHTbOJLw((*colonenvP_).m1, n);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T12_);
	res = resizeString(res, 3);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_438));
	T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T13_ = rope_yShmEg9cffWxI7s5XzEKBow(res);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T13_);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ)(void) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1146));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, openNamespaceNim_h7k639c1gj2MLT300oN1wwg)(NimStringDesc* namespace_0) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1155));
	add_yG4AKzsBRS1W4MANDlXQeg(&result, namespace_0);
	add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_244));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, genMainProc_7ll08CGQoDzh9cxhZCroU4w_4)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA* colonenv_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* preMainCode;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* initStackBottomCall;
	NI TM_MQdRN7fpbG7rPm4JpVVAhA_1137;
	NimStringDesc* res_2;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T47_;
	colonenv_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA*)0;
	colonenv_ = (tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA*) newObj((&NTI_Le8C8QGYTcdw3ffY0559cFg_), sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA));
	(*colonenv_).Sup.m_type = (&NTI_xMgU9cvtBGj0wNZW9cfTxFVA_);
	asgnRef((void**) (&(*colonenv_).m1), m);
	preMainCode = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		NIM_BOOL T3_;
		tyProc_cTGFl1a233rLFzi7BSxmtg T6_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		tyProc_cTGFl1a233rLFzi7BSxmtg T8_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
		if (!T3_) goto LA4_;
		nimZeroMem((void*)(&T6_), sizeof(tyProc_cTGFl1a233rLFzi7BSxmtg));
		T6_.ClP_0 = loadLib_U9bFGPRkCoZVGu0OHStKJag; T6_.ClE_0 = colonenv_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = T6_.ClE_0? T6_.ClP_0(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1123), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1092), T6_.ClE_0):((TM_MQdRN7fpbG7rPm4JpVVAhA_1124)(T6_.ClP_0))(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1123), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1092));
		add_IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T7_);
		add_yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1125));
		nimZeroMem((void*)(&T8_), sizeof(tyProc_cTGFl1a233rLFzi7BSxmtg));
		T8_.ClP_0 = loadLib_U9bFGPRkCoZVGu0OHStKJag; T8_.ClE_0 = colonenv_;
		T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T9_ = T8_.ClE_0? T8_.ClP_0(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1126), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1127), T8_.ClE_0):((TM_MQdRN7fpbG7rPm4JpVVAhA_1128)(T8_.ClP_0))(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1126), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1127));
		add_IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T9_);
		T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T10_ = hcrGetProcLoadCode_uWPA1lTRrPufWdliMF9aGrg((*colonenv_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1127), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1129), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1126), ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_281));
		add_IM4kcMNkkOLJtqdEqSxR8A(&preMainCode, T10_);
		add_yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1130));
		add_yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1131));
		add_yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1132));
	}
	goto LA1_;
	LA4_: ;
	{
		add_yG4AKzsBRS1W4MANDlXQeg(&preMainCode, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1133));
	}
	LA1_: ;
	{
		NIM_BOOL T14_;
		T14_ = (NIM_BOOL)0;
		T14_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T14_)) goto LA15_;
		T14_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
		LA15_: ;
		if (!T14_) goto LA16_;
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*colonenv_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1134));
	}
	goto LA12_;
	LA16_: ;
	{
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA19_;
		includeHeader_G5jzmdnwglHVk5qfDcXonA((*colonenv_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1135));
	}
	goto LA12_;
	LA19_: ;
	LA12_: ;
	{
		if (!(((*(*(*(*colonenv_).m1).g).config).options &(1U<<((NU)(((tyEnum_TOption_WspMeQySXNP2XoTWR5MTgg) 18))&31U)))!=0)) goto LA23_;
		{
			NI i;
			NI colontmp_;
			NI T26_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T26_ = ((*(*(*(*colonenv_).m1).g).config).m.fileInfos ? (*(*(*(*colonenv_).m1).g).config).m.fileInfos->Sup.len : 0);
			colontmp_ = T26_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyArray_JiWwrsTRC6xqNlGcBthSVA T29_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1136;
					if (!(i_2 < colontmp_)) goto LA28;
					i = i_2;
					nimZeroMem((void*)T29_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					if ((NU)(i) >= (NU)((*(*(*(*colonenv_).m1).g).config).m.fileInfos ? (*(*(*(*colonenv_).m1).g).config).m.fileInfos->Sup.len : 0)) raiseIndexError2(i,((*(*(*(*colonenv_).m1).g).config).m.fileInfos ? (*(*(*(*colonenv_).m1).g).config).m.fileInfos->Sup.len : 0)-1);
					T29_[0] = makeCString_vQJydtKy4Nf6bXPYtbmjtg((*(*(*(*colonenv_).m1).g).config).m.fileInfos->data[i].projPath);
					T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T30_ = percent__AgJ22lURvdZuLTh9c9bRsD6w(T29_, 1);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*(*colonenv_).m1).g).breakpoints, T30_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_1136 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1136);
				} LA28: ;
			}
		}
	}
	LA23_: ;
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27));
		if (T33_) goto LA34_;
		T33_ = ((*(*(*(*colonenv_).m1).g).config).selectedGC == ((tyEnum_TGCMode_tkz389aDYNd8ykeZszCuBSw) 0));
		LA34_: ;
		if (!T33_) goto LA35_;
		initStackBottomCall = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) NIM_NIL));
	}
	goto LA31_;
	LA35_: ;
	{
		NimStringDesc* res;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T42_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA40_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA40_: ;
		res = rawNewString(((NI) 80));
		res = resizeString(res, 1);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_15));
		T42_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T42_ = cgsym_arLmPq9aJc9b7GpWTbo6dvHg((*colonenv_).m1, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1071));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res), T42_);
		res = resizeString(res, 18);
appendString(res, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1117));
		initStackBottomCall = rope_yShmEg9cffWxI7s5XzEKBow(res);
	}
	LA31_: ;
	TM_MQdRN7fpbG7rPm4JpVVAhA_1137 = addInt((*(*colonenv_).m1).labels, ((NI) 1));
	if (TM_MQdRN7fpbG7rPm4JpVVAhA_1137 < 0 || TM_MQdRN7fpbG7rPm4JpVVAhA_1137 > 2147483647) raiseOverflow();
	(*(*colonenv_).m1).labels = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1137);
	{
		if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA45_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
	}
	LA45_: ;
	res_2 = rawNewString(((NI) 80));
	res_2 = resizeString(res_2, 27);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1138));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*(*(*colonenv_).m1).g).breakpoints);
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*(*(*colonenv_).m1).g).otherModsInit);
	res_2 = resizeString(res_2, 121);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1139));
	cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_2), (*(*(*colonenv_).m1).g).mainDatInit);
	res_2 = resizeString(res_2, 16);
appendString(res_2, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
	T47_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T47_ = rope_yShmEg9cffWxI7s5XzEKBow(res_2);
	add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T47_);
	{
		NIM_BOOL T50_;
		T50_ = (NIM_BOOL)0;
		T50_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 2));
		if (!(T50_)) goto LA51_;
		T50_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
		LA51_: ;
		if (!T50_) goto LA52_;
		{
			NimStringDesc* res_3;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T62_;
			if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA56_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA60_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA60_: ;
			res_3 = rawNewString(((NI) 80));
			res_3 = resizeString(res_3, 36);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1141));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), (*(*(*colonenv_).m1).g).mainModInit);
			res_3 = resizeString(res_3, 65);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1142));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), preMainCode);
			res_3 = resizeString(res_3, 23);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_3), initStackBottomCall);
			res_3 = resizeString(res_3, 16);
appendString(res_3, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
			T62_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T62_ = rope_yShmEg9cffWxI7s5XzEKBow(res_3);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T62_);
		}
		goto LA54_;
		LA56_: ;
		{
			NimStringDesc* res_4;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T68_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA66_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA66_: ;
			res_4 = rawNewString(((NI) 80));
			res_4 = resizeString(res_4, 36);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1141));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), (*(*(*colonenv_).m1).g).mainModInit);
			res_4 = resizeString(res_4, 78);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1144));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), preMainCode);
			res_4 = resizeString(res_4, 23);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
			cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_4), initStackBottomCall);
			res_4 = resizeString(res_4, 16);
appendString(res_4, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
			T68_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T68_ = rope_yShmEg9cffWxI7s5XzEKBow(res_4);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T68_);
		}
		LA54_: ;
	}
	goto LA48_;
	LA52_: ;
	{
		NimStringDesc* res_5;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T76_;
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA70_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA74_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA74_: ;
		res_5 = rawNewString(((NI) 80));
		res_5 = resizeString(res_5, 125);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1145));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), (*(*(*colonenv_).m1).g).mainModInit);
		res_5 = resizeString(res_5, 65);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1142));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), preMainCode);
		res_5 = resizeString(res_5, 23);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_5), initStackBottomCall);
		res_5 = resizeString(res_5, 16);
appendString(res_5, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
		T76_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T76_ = rope_yShmEg9cffWxI7s5XzEKBow(res_5);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T76_);
	}
	goto LA48_;
	LA70_: ;
	{
		NimStringDesc* res_6;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T84_;
		if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA78_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA82_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA82_: ;
		res_6 = rawNewString(((NI) 80));
		res_6 = resizeString(res_6, 36);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1141));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), (*(*(*colonenv_).m1).g).mainModInit);
		res_6 = resizeString(res_6, 78);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1144));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), preMainCode);
		res_6 = resizeString(res_6, 23);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_6), initStackBottomCall);
		res_6 = resizeString(res_6, 16);
appendString(res_6, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
		T84_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T84_ = rope_yShmEg9cffWxI7s5XzEKBow(res_6);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T84_);
	}
	goto LA48_;
	LA78_: ;
	{
		NimStringDesc* res_7;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T92_;
		if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27))) goto LA86_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA90_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA90_: ;
		res_7 = rawNewString(((NI) 80));
		res_7 = resizeString(res_7, 36);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1141));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), (*(*(*colonenv_).m1).g).mainModInit);
		res_7 = resizeString(res_7, 65);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1142));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), preMainCode);
		res_7 = resizeString(res_7, 23);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_7), initStackBottomCall);
		res_7 = resizeString(res_7, 16);
appendString(res_7, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
		T92_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T92_ = rope_yShmEg9cffWxI7s5XzEKBow(res_7);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T92_);
	}
	goto LA48_;
	LA86_: ;
	{
		NimStringDesc* res_8;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T98_;
		{
			if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA96_;
			failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
		}
		LA96_: ;
		res_8 = rawNewString(((NI) 80));
		res_8 = resizeString(res_8, 36);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1141));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), (*(*(*colonenv_).m1).g).mainModInit);
		res_8 = resizeString(res_8, 65);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1142));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), preMainCode);
		res_8 = resizeString(res_8, 23);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1143));
		cgFormatValue_Y5Z2edcOkLU40pY0g7QXlQ((&res_8), initStackBottomCall);
		res_8 = resizeString(res_8, 16);
appendString(res_8, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1140));
		T98_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T98_ = rope_yShmEg9cffWxI7s5XzEKBow(res_8);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T98_);
	}
	LA48_: ;
	{
		if (!!((((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 19))&63U)))!=0))) goto LA101_;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T107_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T108_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T109_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T110_;
			if (!(((NI) 0) < ((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace ? (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace->Sup.len : 0))) goto LA105_;
			T107_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T107_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
			T108_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T108_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T107_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1147));
			T109_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T109_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T108_, (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace);
			T110_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T110_ = amp__Z7W1o5nPSc3ExfO5f7j1Gg(T109_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_361));
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T110_);
		}
		LA105_: ;
		{
			NIM_BOOL T113_;
			T113_ = (NIM_BOOL)0;
			T113_ = ((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 2));
			if (!(T113_)) goto LA114_;
			T113_ = !((((*(*(*(*colonenv_).m1).g).config).globalOptions & 640) == 0));
			LA114_: ;
			if (!T113_) goto LA115_;
			{
				NimStringDesc* res_9;
				NimStringDesc* T125_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T132_;
				if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 9))&63U)))!=0)) goto LA119_;
				{
					if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA123_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
				}
				LA123_: ;
				res_9 = rawNewString(((NI) 80));
				res_9 = resizeString(res_9, 176);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1148));
				T125_ = (NimStringDesc*)0;
				{
					NIM_BOOL T128_;
					T128_ = (NIM_BOOL)0;
					T128_ = hcrOn_a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
					if (!T128_) goto LA129_;
					T125_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
				}
				goto LA126_;
				LA129_: ;
				{
					T125_ = ((NimStringDesc*) NIM_NIL);
				}
				LA126_: ;
				cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_9), T125_);
				res_9 = resizeString(res_9, 23);
appendString(res_9, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1149));
				T132_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T132_ = rope_yShmEg9cffWxI7s5XzEKBow(res_9);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T132_);
			}
			goto LA117_;
			LA119_: ;
			{
				NimStringDesc* res_10;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T138_;
				{
					if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA136_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
				}
				LA136_: ;
				res_10 = rawNewString(((NI) 80));
				res_10 = resizeString(res_10, 167);
appendString(res_10, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1150));
				T138_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T138_ = rope_yShmEg9cffWxI7s5XzEKBow(res_10);
				add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T138_);
			}
			LA117_: ;
		}
		goto LA111_;
		LA115_: ;
		{
			NimStringDesc* res_11;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T146_;
			if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 24))) goto LA140_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA144_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA144_: ;
			res_11 = rawNewString(((NI) 80));
			res_11 = resizeString(res_11, 268);
appendString(res_11, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1151));
			T146_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T146_ = rope_yShmEg9cffWxI7s5XzEKBow(res_11);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T146_);
		}
		goto LA111_;
		LA140_: ;
		{
			NimStringDesc* res_12;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T154_;
			if (!(((*(*(*(*colonenv_).m1).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA148_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA152_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA152_: ;
			res_12 = rawNewString(((NI) 80));
			res_12 = resizeString(res_12, 55);
appendString(res_12, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1152));
			T154_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T154_ = rope_yShmEg9cffWxI7s5XzEKBow(res_12);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T154_);
		}
		goto LA111_;
		LA148_: ;
		{
			NimStringDesc* res_13;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T162_;
			if (!((*(*(*(*colonenv_).m1).g).config).target.targetOS == ((tyEnum_TSystemOS_s7Mlr1t66SUqP6BKJMXLaQ) 27))) goto LA156_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA160_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA160_: ;
			res_13 = rawNewString(((NI) 80));
			res_13 = resizeString(res_13, 43);
appendString(res_13, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1153));
			T162_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T162_ = rope_yShmEg9cffWxI7s5XzEKBow(res_13);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T162_);
		}
		goto LA111_;
		LA156_: ;
		{
			NimStringDesc* res_14;
			NimStringDesc* T168_;
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T175_;
			{
				if (!!(!(((*colonenv_).m1 == NIM_NIL)))) goto LA166_;
				failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_29));
			}
			LA166_: ;
			res_14 = rawNewString(((NI) 80));
			res_14 = resizeString(res_14, 114);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1154));
			T168_ = (NimStringDesc*)0;
			{
				NIM_BOOL T171_;
				T171_ = (NIM_BOOL)0;
				T171_ = hcrOn_a2BRACVCGIuooKjHNmoLsA((*colonenv_).m1);
				if (!T171_) goto LA172_;
				T168_ = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_61));
			}
			goto LA169_;
			LA172_: ;
			{
				T168_ = ((NimStringDesc*) NIM_NIL);
			}
			LA169_: ;
			cgFormatValue_GOaK9aDgu4cLOYhocodpf3Q((&res_14), T168_);
			res_14 = resizeString(res_14, 23);
appendString(res_14, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1149));
			T175_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T175_ = rope_yShmEg9cffWxI7s5XzEKBow(res_14);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T175_);
		}
		LA111_: ;
		{
			tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T180_;
			if (!(((NI) 0) < ((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace ? (*(*(*(*colonenv_).m1).g).config).cppCustomNamespace->Sup.len : 0))) goto LA178_;
			T180_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
			T180_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*(*colonenv_).m1).g).config).cppCustomNamespace);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*(*colonenv_).m1).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T180_);
		}
		LA178_: ;
	}
	LA101_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, generateThreadVarsSize_7ll08CGQoDzh9cxhZCroU4w_5)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	{
		NimStringDesc* externc;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T12_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
		if (!!(((*(*m).g).nimtv == NIM_NIL))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = ((*(*(*m).g).config).cmd == ((tyEnum_TCommands_VH3ghgQVwLSg3krOAoXigw) 2));
			if (T7_) goto LA8_;
			T7_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0);
			LA8_: ;
			if (!T7_) goto LA9_;
			externc = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_358));
		}
		goto LA5_;
		LA9_: ;
		{
			externc = ((NimStringDesc*) NIM_NIL);
		}
		LA5_: ;
		nimZeroMem((void*)T12_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T12_[0] = rope_yShmEg9cffWxI7s5XzEKBow(externc);
		T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T13_ = percent__Y4DThr9bpMbmoKpvgT1rYwg(T12_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 11))- 0], T13_);
	}
	LA3_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getCopyright_t9c9byVBpvEfissxdPQCEZLw_2)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	{
		tyArray_JiWwrsTRC6xqNlGcBthSVA T5_;
		if (!(((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 4))&63U)))!=0)) goto LA3_;
		nimZeroMem((void*)T5_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T5_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1156));
		result = percent__811qrD9bMr21weOkImaKvIA(T5_, 1);
	}
	goto LA1_;
	LA3_: ;
	{
		tyArray_duFhZXIIlrbrM62cWjNekg T7_;
		NimStringDesc* T8_;
		nimZeroMem((void*)T7_, sizeof(tyArray_duFhZXIIlrbrM62cWjNekg));
		T7_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1156));
		if ((*conf).target.targetOS < 1 || (*conf).target.targetOS > 28) raiseIndexError3((*conf).target.targetOS, 1, 28);
		T7_[1] = rope_yShmEg9cffWxI7s5XzEKBow(OS_Jx0qy9c9bSo4fGkMxUfUaAaw[((*conf).target.targetOS)- 1].Field0);
		if ((*conf).target.targetCPU < 1 || (*conf).target.targetCPU > 23) raiseIndexError3((*conf).target.targetCPU, 1, 23);
		T7_[2] = rope_yShmEg9cffWxI7s5XzEKBow(CPU_uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field0);
		if ((*conf).cCompiler < 1 || (*conf).cCompiler > 15) raiseIndexError3((*conf).cCompiler, 1, 15);
		T7_[3] = rope_yShmEg9cffWxI7s5XzEKBow(CC_78I18QZNZFIv9ah7oETc0jg[((*conf).cCompiler)- 1].Field0);
		T8_ = (NimStringDesc*)0;
		T8_ = getCompileCFileCmd_06MAxvfKFF1QpT9bEO6AQJw(conf, cfile, NIM_FALSE);
		T7_[4] = rope_yShmEg9cffWxI7s5XzEKBow(T8_);
		result = percent__YNifhKTQWQRf1atK7E3Qmg(T7_, 5);
	}
	LA1_: ;
	return result;
}

static N_INLINE(void, addIntTypes_jVBximZchOMC4kzSRdtvHgcgen)(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA** result, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf) {
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	if ((*conf).target.targetCPU < 1 || (*conf).target.targetCPU > 23) raiseIndexError3((*conf).target.targetCPU, 1, 23);
	T1_[0] = rope_KOisMGxcPhz6CcSmxgwEQQ(((NI64) (CPU_uYXopJX8pM87pQDCtmgWfQ[((*conf).target.targetCPU)- 1].Field1)));
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = percent__YfbBxPLyPvVS6F2y9bSUFIA(T1_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(result, T2_);
	{
		if (!(((NI) 0) < ((*conf).cppCustomNamespace ? (*conf).cppCustomNamespace->Sup.len : 0))) goto LA5_;
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1158));
		add_yG4AKzsBRS1W4MANDlXQeg(result, (*conf).cppCustomNamespace);
		add_yG4AKzsBRS1W4MANDlXQeg(result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
	}
	LA5_: ;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, getFileHeader_t9c9byVBpvEfissxdPQCEZLw)(tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* conf, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	result = getCopyright_t9c9byVBpvEfissxdPQCEZLw_2(conf, cfile);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hcrOn_UhPXgqyDuuU9cKcS8FM883w(conf);
		if (!T3_) goto LA4_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1157));
	}
	LA4_: ;
	addIntTypes_jVBximZchOMC4kzSRdtvHgcgen(&result, conf);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, generateThreadLocalStorage_7ll08CGQoDzh9cxhZCroU4w_6)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		tyArray_JiWwrsTRC6xqNlGcBthSVA T19_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T20_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*(*m).g).nimtv == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = (((*m).flags &(1U<<((NU)(((tyEnum_Codegenflag_HPE9aESvbnlxgTYjMIBh52Q) 1))&7U)))!=0);
		if (T5_) goto LA6_;
		T5_ = (((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		{
			tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
			tySequence_Ef05srmQTDulnBdXR4Ja6Q* colontmp_;
			NI i;
			NI L;
			NI T10_;
			t = (tyObject_TType_v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			colontmp_ = (tySequence_Ef05srmQTDulnBdXR4Ja6Q*)0;
			colontmp_ = (*(*m).g).nimtvDeps;
			i = ((NI) 0);
			T10_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T10_;
			{
				while (1) {
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T13_;
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1159;
					if (!(i < L)) goto LA12;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
					t = colontmp_->data[i];
					T13_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T13_ = getTypeDesc_jXUNYqSX189axAU8O9bJBgpA(m, t);
					(void)(T13_);
					TM_MQdRN7fpbG7rPm4JpVVAhA_1159 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1159);
					{
						NI T16_;
						T16_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T16_ == L))) goto LA17_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA17_: ;
				} LA12: ;
			}
		}
		nimZeroMem((void*)T19_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
		T19_[0] = (*(*m).g).nimtv;
		T20_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T20_ = percent__OBvl4G6evYkvK9b9bClFGqNw(T19_, 1);
		add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 5))- 0], T20_);
	}
	LA7_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, generateHeaders_7ll08CGQoDzh9cxhZCroU4w_7)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1160));
	{
		NimStringDesc* it;
		tySequence_sM4lkSb7zS6F7OVMvW9cffQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		it = (NimStringDesc*)0;
		colontmp_ = (tySequence_sM4lkSb7zS6F7OVMvW9cffQ*)0;
		colontmp_ = (*m).headerFiles;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1161;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				it = colontmp_->data[i];
				{
					NimStringDesc* T9_;
					NimStringDesc* T10_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T11_;
					if ((NU)(((NI) 0)) >= (NU)(it ? it->Sup.len : 0)) raiseIndexError2(((NI) 0),(it ? it->Sup.len : 0)-1);
					if (!((NU8)(it->data[((NI) 0)]) == (NU8)(35))) goto LA7_;
					T9_ = (NimStringDesc*)0;
					T10_ = (NimStringDesc*)0;
					T10_ = nsuReplaceChar(it, 96, 34);
					T9_ = rawNewString((T10_ ? T10_->Sup.len : 0) + 1);
appendString(T9_, T10_);
appendString(T9_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_20));
					T11_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T11_ = rope_yShmEg9cffWxI7s5XzEKBow(T9_);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T11_);
				}
				goto LA5_;
				LA7_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T15_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
					if ((NU)(((NI) 0)) >= (NU)(it ? it->Sup.len : 0)) raiseIndexError2(((NI) 0),(it ? it->Sup.len : 0)-1);
					if (!!((((NU8)(it->data[((NI) 0)])) == ((NU8)(34)) || ((NU8)(it->data[((NI) 0)])) == ((NU8)(60))))) goto LA13_;
					nimZeroMem((void*)T15_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T15_[0] = rope_yShmEg9cffWxI7s5XzEKBow(it);
					T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T16_ = percent__pHsLkkx9bTDctZjmJqwCYRA(T15_, 1);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T16_);
				}
				goto LA5_;
				LA13_: ;
				{
					tyArray_JiWwrsTRC6xqNlGcBthSVA T18_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T19_;
					nimZeroMem((void*)T18_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
					T18_[0] = rope_yShmEg9cffWxI7s5XzEKBow(it);
					T19_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T19_ = percent__ksH6NowTz9bh4eMOdyaiR1w(T18_, 1);
					add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], T19_);
				}
				LA5_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_1161 = addInt(i, ((NI) 1));
				i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1161);
				{
					NI T22_;
					T22_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T22_ == L))) goto LA23_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
				}
				LA23_: ;
			} LA4: ;
		}
	}
	add_yG4AKzsBRS1W4MANDlXQeg(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0], ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1162));
}

N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*, genModule_EFwkiA59cPQJZpsz0yL8eHQ)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	NIM_BOOL moduleIsEmpty;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T2_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T8_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T16_;
	result = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	moduleIsEmpty = NIM_TRUE;
	result = getFileHeader_t9c9byVBpvEfissxdPQCEZLw((*(*m).g).config, cfile);
	T1_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T1_ = genMergeInfo_T0VHRXp9cMnXMqYxgPwvmXw(m);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T1_);
	generateThreadLocalStorage_7ll08CGQoDzh9cxhZCroU4w_6(m);
	generateHeaders_7ll08CGQoDzh9cxhZCroU4w_7(m);
	T2_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T2_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1), (*(*m).g).config);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T2_);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1))- 0]);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T7_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA5_;
		T7_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T7_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T7_);
	}
	LA5_: ;
	T8_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T8_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1), (*(*m).g).config);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T8_);
	T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T9_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2), (*(*m).g).config);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T9_);
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
		if (!(((NI) 0) < T12_)) goto LA13_;
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2))- 0]);
	}
	goto LA10_;
	LA13_: ;
	{
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1163));
	}
	LA10_: ;
	T16_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T16_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 2), (*(*m).g).config);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T16_);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 3);
		{
			while (1) {
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1164;
				if (!(res <= ((NI) 11))) goto LA19;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)chckRange(res, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 19)));
				{
					NI T22_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T25_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T26_;
					T22_ = (NI)0;
					T22_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(i)- 0]);
					if (!(((NI) 0) < T22_)) goto LA23_;
					moduleIsEmpty = NIM_FALSE;
					T25_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T25_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T25_);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(i)- 0]);
					T26_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T26_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T26_);
				}
				LA23_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_1164 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1164);
			} LA19: ;
		}
	}
	{
		NI T29_;
		T29_ = (NI)0;
		T29_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
		if (!(((NI) 0) < T29_)) goto LA30_;
		moduleIsEmpty = NIM_FALSE;
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
	}
	LA30_: ;
	{
		NIM_BOOL T34_;
		NI T35_;
		T34_ = (NIM_BOOL)0;
		T35_ = (NI)0;
		T35_ = len_9b0YRltzV3kNSE9aQTsG82wg((*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
		T34_ = (((NI) 0) < T35_);
		if (T34_) goto LA36_;
		T34_ = hcrOn_a2BRACVCGIuooKjHNmoLsA(m);
		LA36_: ;
		if (!T34_) goto LA37_;
		moduleIsEmpty = NIM_FALSE;
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 13))- 0]);
	}
	LA37_: ;
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T43_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA41_;
		T43_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T43_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T43_);
	}
	LA41_: ;
	{
		if (!moduleIsEmpty) goto LA46_;
		result = NIM_NIL;
	}
	LA46_: ;
	return result;
}

static N_INLINE(NIM_BOOL, fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = nosexistsFile(filename);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, shouldRecompile_H4aCBrBgfkxUNX78oimi1g)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code, tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cfile) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_TRUE;
	{
		if (!!((((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = equalsFile_Wiam9c8x73Mtmbj0r4Ppikg(code, cfile.cname);
			if (!!(T7_)) goto LA8_;
			{
				if (!((*(*(*m).g).config).symbolFiles == ((tyEnum_SymbolFilesOption_gBES9bqm1ru9ape8SeMRAFgQ) 2))) goto LA12_;
				{
					NIM_BOOL T16_;
					NimStringDesc* T19_;
					tyArray_sMpvt1sOxOJ3LFGulnbeMQ T20_;
					T16_ = (NIM_BOOL)0;
					T16_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(cfile.cname);
					if (!T16_) goto LA17_;
					T19_ = (NimStringDesc*)0;
					T19_ = rawNewString((cfile.cname ? cfile.cname->Sup.len : 0) + 7);
appendString(T19_, cfile.cname);
appendString(T19_, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1165));
					noscopyFile(cfile.cname, T19_);
					nimZeroMem((void*)T20_, sizeof(tyArray_sMpvt1sOxOJ3LFGulnbeMQ));
					T20_[0] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1166));
					T20_[1] = copyString(cfile.cname);
					T20_[2] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1167));
					T20_[3] = copyString(cfile.cname);
					echoBinSafe(T20_, 4);
				}
				goto LA14_;
				LA17_: ;
				{
					tyArray_Re75IspeoxXy2oCZHwcRrA T22_;
					nimZeroMem((void*)T22_, sizeof(tyArray_Re75IspeoxXy2oCZHwcRrA));
					T22_[0] = copyString(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1168));
					T22_[1] = copyString(cfile.cname);
					echoBinSafe(T22_, 2);
				}
				LA14_: ;
			}
			LA12_: ;
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = writeRope_LLRRC42xWBSkxzV9bsPu7lA(code, cfile.cname);
				if (!!(T25_)) goto LA26_;
				rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
			}
			LA26_: ;
			goto BeforeRet_;
		}
		LA8_: ;
		{
			NIM_BOOL T30_;
			T30_ = (NIM_BOOL)0;
			T30_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(cfile.obj);
			if (!(T30_)) goto LA31_;
			T30_ = nosfileNewer(cfile.obj, cfile.cname);
			LA31_: ;
			if (!T30_) goto LA32_;
			result = NIM_FALSE;
		}
		LA32_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NIM_BOOL T37_;
			T37_ = (NIM_BOOL)0;
			T37_ = writeRope_LLRRC42xWBSkxzV9bsPu7lA(code, cfile.cname);
			if (!!(T37_)) goto LA38_;
			rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile.cname);
		}
		LA38_: ;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, writeModule_ZCCFqS1YhEjeMHLdSMM8xg)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m, NIM_BOOL pending) {
	NimStringDesc* cfile;
	cfile = getCFile_bmANOnd5oQhXRrTCn9a8S4g(m);
	{
		NIM_BOOL T3_;
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf;
		NimStringDesc* T11_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_TRUE;
		if (T3_) goto LA4_;
		T3_ = (((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 1))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		genInitCode_7ll08CGQoDzh9cxhZCroU4w(m);
		finishTypeDescriptions_7ll08CGQoDzh9cxhZCroU4w_3(m);
		{
			if (!(((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0)) goto LA9_;
			genMainProc_7ll08CGQoDzh9cxhZCroU4w_4(m);
			add_IM4kcMNkkOLJtqdEqSxR8A(&(*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 8))- 0], (*(*m).g).mainModProcs);
			generateThreadVarsSize_7ll08CGQoDzh9cxhZCroU4w_5(m);
		}
		LA9_: ;
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf));
		nimZeroMem((void*)(&cf), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf.nimname = copyString((*(*(*m).module).name).s);
		cf.cname = copyString(cfile);
		T11_ = (NimStringDesc*)0;
		T11_ = toObjFile_GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf.obj = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T11_, NIM_TRUE);
		cf.flags = 0;
		code = genModule_EFwkiA59cPQJZpsz0yL8eHQ(m, cf);
		{
			if (!!((code == NIM_NIL))) goto LA14_;
			{
				NIM_BOOL T18_;
				T18_ = (NIM_BOOL)0;
				T18_ = shouldRecompile_H4aCBrBgfkxUNX78oimi1g(m, code, cf);
				if (!!(T18_)) goto LA19_;
				cf.flags = 1;
			}
			LA19_: ;
			addFileToCompile_0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf);
		}
		LA14_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T22_;
		NIM_BOOL T23_;
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf_2;
		NimStringDesc* T28_;
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* code_2;
		T22_ = (NIM_BOOL)0;
		T23_ = (NIM_BOOL)0;
		T23_ = pending;
		if (!(T23_)) goto LA24_;
		T23_ = mergeRequired_X8MaNNxDVB7fxLVXrvJcFw(m);
		LA24_: ;
		T22_ = T23_;
		if (!(T22_)) goto LA25_;
		T22_ = !((((*(*m).module).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag_K9ay6LWMat9bUiT9bIbMxpDHw) 12))&63U)))!=0));
		LA25_: ;
		if (!T22_) goto LA26_;
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf_2));
		nimZeroMem((void*)(&cf_2), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf_2.nimname = copyString((*(*(*m).module).name).s);
		cf_2.cname = copyString(cfile);
		T28_ = (NimStringDesc*)0;
		T28_ = toObjFile_GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf_2.obj = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T28_, NIM_TRUE);
		cf_2.flags = 0;
		mergeFiles_l8sH9bHsXY4q3tbS3srelEw(cfile, m);
		genInitCode_7ll08CGQoDzh9cxhZCroU4w(m);
		finishTypeDescriptions_7ll08CGQoDzh9cxhZCroU4w_3(m);
		code_2 = genModule_EFwkiA59cPQJZpsz0yL8eHQ(m, cf_2);
		{
			if (!!((code_2 == NIM_NIL))) goto LA31_;
			{
				NIM_BOOL T35_;
				T35_ = (NIM_BOOL)0;
				T35_ = writeRope_LLRRC42xWBSkxzV9bsPu7lA(code_2, cfile);
				if (!!(T35_)) goto LA36_;
				rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), cfile);
			}
			LA36_: ;
			addFileToCompile_0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf_2);
		}
		LA31_: ;
	}
	goto LA1_;
	LA26_: ;
	{
		tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg cf_3;
		NimStringDesc* T39_;
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		chckNil((void*)(&cf_3));
		nimZeroMem((void*)(&cf_3), sizeof(tyObject_Cfile_i9cKq1ZGd1wgagjUEHLVFtg));
		cf_3.nimname = copyString((*(*(*m).module).name).s);
		cf_3.cname = copyString(cfile);
		T39_ = (NimStringDesc*)0;
		T39_ = toObjFile_GMjJ0d3khWrmxAqhh9anEsw((*(*m).g).config, cfile);
		cf_3.obj = completeCFilePath_VmrjcznbGOrooG3SBIdEFQ((*(*m).g).config, T39_, NIM_TRUE);
		cf_3.flags = 0;
		{
			NIM_BOOL T42_;
			T42_ = (NIM_BOOL)0;
			T42_ = fileExists_2KLbGVKGy3qOdtJ4Bb1ADgos(cf_3.obj);
			if (!!(T42_)) goto LA43_;
			cf_3.flags = 1;
		}
		LA43_: ;
		addFileToCompile_0nANBPjKLpImf3GNXBeQ2Q((*(*m).g).config, cf_3);
	}
	LA1_: ;
	close_GvEyiCVhfPFZLA80aIn5Nw((&(*m).ndi));
}

N_LIB_PRIVATE N_NIMCALL(void, writeHeader_7ll08CGQoDzh9cxhZCroU4w_8)(tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m) {
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* result;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T1_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* guard;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T2_;
	tyTuple_7q7q3E6Oj24ZNVJb9aonhAg T3_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T4_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T5_;
	tyArray_qTjAvTvKF9anytN1At69aJMQ T22_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T23_;
	tyArray_JiWwrsTRC6xqNlGcBthSVA T29_;
	tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T30_;
	nimZeroMem((void*)T1_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T1_[0] = rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_1156));
	result = percent__y39ant8iE9bjKB0kbkRCAibQ(T1_, 1);
	nimZeroMem((void*)T2_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	nimZeroMem((void*)(&T3_), sizeof(tyTuple_7q7q3E6Oj24ZNVJb9aonhAg));
	splitFile_z7B4FbwzX3Y0L1EA2lLGXw((*m).filename, (&T3_));
	T2_[0] = rope_yShmEg9cffWxI7s5XzEKBow(T3_.Field1);
	guard = percent__RKXvZR1cmZW5dfjtFQCG3g(T2_, 1);
	nimZeroMem((void*)T4_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T4_[0] = guard;
	T5_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T5_ = percent__nEA33x9cMfuJw3ZiGbn25iw(T4_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T5_);
	addIntTypes_jVBximZchOMC4kzSRdtvHgcgen(&result, (*(*m).g).config);
	generateHeaders_7ll08CGQoDzh9cxhZCroU4w_7(m);
	generateThreadLocalStorage_7ll08CGQoDzh9cxhZCroU4w_6(m);
	{
		tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg i;
		NI res;
		i = (tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)0;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T9_;
				tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T10_;
				NI TM_MQdRN7fpbG7rPm4JpVVAhA_1170;
				if (!(res <= ((NI) 11))) goto LA8;
				i = ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg)chckRange(res, ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 0), ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 19)));
				T9_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T9_ = genSectionStart_KYNwN8RXzjqIkzxFSwHsxw(i, (*(*m).g).config);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T9_);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(i)- 0]);
				T10_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
				T10_ = genSectionEnd_KYNwN8RXzjqIkzxFSwHsxw_2(i, (*(*m).g).config);
				add_IM4kcMNkkOLJtqdEqSxR8A(&result, T10_);
				{
					NIM_BOOL T13_;
					tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T17_;
					T13_ = (NIM_BOOL)0;
					T13_ = (((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0));
					if (!(T13_)) goto LA14_;
					T13_ = (i == ((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 1));
					LA14_: ;
					if (!T13_) goto LA15_;
					T17_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
					T17_ = openNamespaceNim_h7k639c1gj2MLT300oN1wwg((*(*(*m).g).config).cppCustomNamespace);
					add_IM4kcMNkkOLJtqdEqSxR8A(&result, T17_);
				}
				LA15_: ;
				TM_MQdRN7fpbG7rPm4JpVVAhA_1170 = addInt(res, ((NI) 1));
				res = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1170);
			} LA8: ;
		}
	}
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, (*m).s[(((tyEnum_TCFileSection_NR9cMDOmG9cHJhM0tCKvXNzg) 12))- 0]);
	{
		if (!(((*(*(*m).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption_RAfAEZqjnKMDumgyKKc1qw) 7))&63U)))!=0)) goto LA20_;
		add_yG4AKzsBRS1W4MANDlXQeg(&result, ((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_40));
	}
	LA20_: ;
	nimZeroMem((void*)T22_, sizeof(tyArray_qTjAvTvKF9anytN1At69aJMQ));
	T23_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T23_ = percent__0xK6HolrLvVFWil73hZYbA(T22_, 0);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T23_);
	{
		tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA* T28_;
		if (!(((NI) 0) < ((*(*(*m).g).config).cppCustomNamespace ? (*(*(*m).g).config).cppCustomNamespace->Sup.len : 0))) goto LA26_;
		T28_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
		T28_ = closeNamespaceNim_EBP36f89alKNeO11l19ca8RQ();
		add_IM4kcMNkkOLJtqdEqSxR8A(&result, T28_);
	}
	LA26_: ;
	nimZeroMem((void*)T29_, sizeof(tyArray_JiWwrsTRC6xqNlGcBthSVA));
	T29_[0] = guard;
	T30_ = (tyObject_RopeObj_OFzf0kSiPTcNreUIeJgWVA*)0;
	T30_ = percent__Z2c9cvs0wVVVqTEZ3Qwe9bfw(T29_, 1);
	add_IM4kcMNkkOLJtqdEqSxR8A(&result, T30_);
	{
		NIM_BOOL T33_;
		T33_ = (NIM_BOOL)0;
		T33_ = writeRope_LLRRC42xWBSkxzV9bsPu7lA(result, (*m).filename);
		if (!!(T33_)) goto LA34_;
		rawMessage_h30HgTFwbGq0PsyHmRqZ8g((*(*m).g).config, ((tyEnum_TMsgKind_29cbg2fC1z5iM1PAI28kR5w) 3), (*m).filename);
	}
	LA34_: ;
}

N_LIB_PRIVATE N_NIMCALL(void, cgenWriteModules_f9b9ctpv6DQPmjwWpbkP6UPw)(RootObj* backend, tyObject_ConfigRefcolonObjectType__LaK09ayL9alwKUad7rts0rTw* config) {
	tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA* g;
	if (backend) chckObj((*backend).m_type, (&NTI_CpP4eJLbv5ZwofQXpESuGA_));
	g = ((tyObject_BModuleListcolonObjectType__CpP4eJLbv5ZwofQXpESuGA*) (backend));
	asgnRef((void**) (&(*g).config), config);
	genForwardedProcs_PBGOqkExHgxzX6Rn0nJkYg(g);
	{
		tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m;
		m = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
		{
			tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow* m_2;
			tySequence_SHVxAqOYtIy7teT1q4s0zQ* colontmp_;
			NI i;
			NI L;
			NI T3_;
			m_2 = (tyObject_TCGen_9cG6VsX22pOhho6kxyhFVow*)0;
			colontmp_ = (tySequence_SHVxAqOYtIy7teT1q4s0zQ*)0;
			colontmp_ = (*g).modules_closed;
			i = ((NI) 0);
			T3_ = (colontmp_ ? colontmp_->Sup.len : 0);
			L = T3_;
			{
				while (1) {
					NI TM_MQdRN7fpbG7rPm4JpVVAhA_1169;
					if (!(i < L)) goto LA5;
					if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
					m_2 = colontmp_->data[i];
					m = m_2;
					writeModule_ZCCFqS1YhEjeMHLdSMM8xg(m, NIM_TRUE);
					TM_MQdRN7fpbG7rPm4JpVVAhA_1169 = addInt(i, ((NI) 1));
					i = (NI)(TM_MQdRN7fpbG7rPm4JpVVAhA_1169);
					{
						NI T8_;
						T8_ = (colontmp_ ? colontmp_->Sup.len : 0);
						if (!!((T8_ == L))) goto LA9_;
						failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_25));
					}
					LA9_: ;
				} LA5: ;
			}
		}
	}
	writeMapping_LBHXhYTVO2vldQU4a5LZ9aQ(config, (*g).mapping);
	{
		if (!!(((*g).generatedHeader == NIM_NIL))) goto LA13_;
		writeHeader_7ll08CGQoDzh9cxhZCroU4w_8((*g).generatedHeader);
	}
	LA13_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
	asgnRef((void**) (&cachedUnion_37c7SFtO1oJKGkAWrI71Fw), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_56)));
	asgnRef((void**) (&cachedStruct_9a5hqgEB1sqNj6CL5z0oy5w), rope_yShmEg9cffWxI7s5XzEKBow(((NimStringDesc*) &TM_MQdRN7fpbG7rPm4JpVVAhA_58)));
}
{

	nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_55);


	nimRegisterGlobalMarker(TM_MQdRN7fpbG7rPm4JpVVAhA_57);

}
}

N_LIB_PRIVATE N_NIMCALL(void, compiler_cgenDatInit000)(void) {
static TNimNode* TM_MQdRN7fpbG7rPm4JpVVAhA_885_2[2];
static TNimNode* TM_MQdRN7fpbG7rPm4JpVVAhA_1119_2[2];
static TNimNode TM_MQdRN7fpbG7rPm4JpVVAhA_0[6];
NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_.size = sizeof(tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA);
NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_.kind = 18;
NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_.base = 0;
TM_MQdRN7fpbG7rPm4JpVVAhA_885_2[0] = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[1];
TM_MQdRN7fpbG7rPm4JpVVAhA_0[1].kind = 1;
TM_MQdRN7fpbG7rPm4JpVVAhA_0[1].offset = offsetof(tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA, Field0);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[1].typ = (&NTI_EtHNvCB0bgfu9bFjzx9cb6aA_);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[1].name = "Field0";
TM_MQdRN7fpbG7rPm4JpVVAhA_885_2[1] = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[2];
TM_MQdRN7fpbG7rPm4JpVVAhA_0[2].kind = 1;
TM_MQdRN7fpbG7rPm4JpVVAhA_0[2].offset = offsetof(tyTuple_9cSd9cjH9cnPQaBRO0ioKSxRA, Field1);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[2].typ = (&NTI_4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[2].name = "Field1";
TM_MQdRN7fpbG7rPm4JpVVAhA_0[0].len = 2; TM_MQdRN7fpbG7rPm4JpVVAhA_0[0].kind = 2; TM_MQdRN7fpbG7rPm4JpVVAhA_0[0].sons = &TM_MQdRN7fpbG7rPm4JpVVAhA_885_2[0];
NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_.node = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[0];
NTI_sno9c9bXUVS2CqhtWOJadaCw_.size = sizeof(tySequence_sno9c9bXUVS2CqhtWOJadaCw*);
NTI_sno9c9bXUVS2CqhtWOJadaCw_.kind = 24;
NTI_sno9c9bXUVS2CqhtWOJadaCw_.base = (&NTI_9cSd9cjH9cnPQaBRO0ioKSxRA_);
NTI_sno9c9bXUVS2CqhtWOJadaCw_.marker = Marker_tySequence_sno9c9bXUVS2CqhtWOJadaCw;
NTI_xMgU9cvtBGj0wNZW9cfTxFVA_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA);
NTI_xMgU9cvtBGj0wNZW9cfTxFVA_.kind = 17;
NTI_xMgU9cvtBGj0wNZW9cfTxFVA_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_MQdRN7fpbG7rPm4JpVVAhA_1119_2[0] = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[4];
TM_MQdRN7fpbG7rPm4JpVVAhA_0[4].kind = 1;
TM_MQdRN7fpbG7rPm4JpVVAhA_0[4].offset = offsetof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA, colonstate_);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[4].typ = (&NTI_xHTZrq9aYs6boc9bCba0JbpQ_);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[4].name = ":state";
TM_MQdRN7fpbG7rPm4JpVVAhA_1119_2[1] = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[5];
TM_MQdRN7fpbG7rPm4JpVVAhA_0[5].kind = 1;
TM_MQdRN7fpbG7rPm4JpVVAhA_0[5].offset = offsetof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA, m1);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[5].typ = (&NTI_NkKlBfvvsMUW70DxvxLVIg_);
TM_MQdRN7fpbG7rPm4JpVVAhA_0[5].name = "m1";
TM_MQdRN7fpbG7rPm4JpVVAhA_0[3].len = 2; TM_MQdRN7fpbG7rPm4JpVVAhA_0[3].kind = 2; TM_MQdRN7fpbG7rPm4JpVVAhA_0[3].sons = &TM_MQdRN7fpbG7rPm4JpVVAhA_1119_2[0];
NTI_xMgU9cvtBGj0wNZW9cfTxFVA_.node = &TM_MQdRN7fpbG7rPm4JpVVAhA_0[3];
NTI_Le8C8QGYTcdw3ffY0559cFg_.size = sizeof(tyObject_Env_slashUsersslashtravisslashbuildslashnimminuslangslashnightliesslashnimslashe7471cebae2a404f3e4239f199f5a0c422484aacslashcompilerslashcgendotnim__xMgU9cvtBGj0wNZW9cfTxFVA*);
NTI_Le8C8QGYTcdw3ffY0559cFg_.kind = 22;
NTI_Le8C8QGYTcdw3ffY0559cFg_.base = (&NTI_xMgU9cvtBGj0wNZW9cfTxFVA_);
NTI_Le8C8QGYTcdw3ffY0559cFg_.marker = Marker_tyRef_Le8C8QGYTcdw3ffY0559cFg;
}

