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

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Con__mVYRtnERc9advo79cBQUudxg tyObject_Con__mVYRtnERc9advo79cBQUudxg;
typedef struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
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_Instr__Iclb1njvAJfjjEpCLzUzZg tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg;
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 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table__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_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__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ;
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 tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
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 tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;

/* section: NIM_merge_TYPES */
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;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
} _kind_1;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_2;
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
NI alignment;
} _kind_4;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[6];
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 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
} _kind_4;
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
NimStringDesc* comment;
};
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_Con__mVYRtnERc9advo79cBQUudxg {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* g;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* otherRead;
NI inLoop;
NI inSpawn;
tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg uninit;
NIM_BOOL uninitComputed;
};
typedef NU8 tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ;
struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ kind;
union{
NI dest;
};
};
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__In3g79a0qTcRmbTbJp9ba9ctg;
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);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__3TeLOx1euAsRk3YCaQCuPg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* formal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* actual);
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__In3g79a0qTcRmbTbJp9ba9ctg 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;
tyProc__sP1I7TbCn358eLy9bX4IphA strongSemCheck;
tyProc__3TeLOx1euAsRk3YCaQCuPg compatibleProps;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
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_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU8 tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg[9];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
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__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NI verbosity;
NI numberOfProcessors;
NimStringDesc* evalExpr;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg modifiedyNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg cmdlineNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg foreignPackageNotes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg notes;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg warningAsErrors;
tySet_tyEnum_TMsgKind__6kx5ul0BSa9aHxHPGwkvVHg mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
NIM_BOOL lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
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__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ {
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* vars;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* wasMoved;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* final;
NIM_BOOL needsTry;
tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent;
};
typedef NU8 tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
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__SPr7N6UKfuF549bNPiUvSRw[256];
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__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NimStringDesc* tyArray__JXkBzVsE9bvmcpuZvrueLVg[6];
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
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__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
NimStringDesc* customArgs;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ {
  TGenericSeq Sup;
  tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 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__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__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*, constructCfg__gYr9aUQRxyROXIIqCy8VmDg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
N_LIB_PRIVATE N_NIMCALL(void, computeCursors__x9aeseeV2cxKOgYDfLuYbXA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__PTsSyPSfjwGJy89cb8X3Ylw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
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_LIB_PRIVATE N_NIMCALL(void, nestedScope__ni4yTthPfyagpkFgPFjv8Q)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__ur1q32ALAU6hCaCkFnKb1w)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
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_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__KB0wf28km02QmgKPPOnujQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newSym__IXbidcxhXTQGZY9abN63Cxg)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*, getIdent__9coBOmdXN09be4rJvXK6fQGQ)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
static N_INLINE(NIM_BOOL, hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__cVidUei9a721N3SvKgbe69bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__v3XxtcbOOdZOlr1QqHxmIA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__cXlunxLFt2VNVqtuIWbJWg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvDfa__vedgqlRdnLUAAjvLVHCgqg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, NI pc, NI until);
N_LIB_PRIVATE N_NIMCALL(tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ, instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* insloc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc);
static N_INLINE(NIM_BOOL, isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__cuD9c1RVF9b519bTmoMT05bxQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
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_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault__osKkoxC3A03cBoj9bK1Or9cQ)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__Q6JNH4uRwLyZrj0dJakHew)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
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*, typeToString__QlvraUan7WbHowhAbvDvdA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname);
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*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___aQsiZUvE4SFfnWyKx1JgKA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(NIM_BOOL, isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__dlYECyD9bG06toVGQ4mMceA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
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(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__xpZfx5xv8dk9abIT9boxAcWw)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__eh46xmsJR79buekuc0oQIdQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__cXlunxLFt2VNVqtuIWbJWg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NI, isLastRead__0x5XS4sakMCpEg7F32ukEA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** otherRead, NI pc, NI until);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, aliases__X88oJcf8606anlqCac3FtQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__Tj0baeAMp9cue8UExOxI59bg)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, createMagic__MzNJxZ0htpjW89c9b2wBN5rQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__rZPv7jnASufmG3HjltXEIQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
static N_INLINE(NIM_BOOL, isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
static N_INLINE(NIM_BOOL, isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
static N_INLINE(NIM_BOOL, canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__U5eKhGaSBKhqqv1iUFOkVQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__3rzbQm9aIqUljCutfRquODA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue__kCP6QlI8uS4X0pOQUdr7tg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__3rzbQm9aIqUljCutfRquODA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getRoot__QppXrRxPfamDSGF2rYPMlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__3uQEgn0k2q4kiGbXS12GXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__qAerQ9bftuf70QDk42UIFXg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__VtuMNEAsvSYfebdKUbJwfA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, produceDestructorForDiscriminator__xB6uw9cGyS9bONpHGgcB87oA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
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_TSym__JpsEh5i1AcKChGYbg7aV4w*, getMagicEqSymForType__ff3Uma5kkjydzFHzZlldyg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optimize__VCZeNpSpiHRRAv9coeudyIg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);

/* section: NIM_merge_DATA */
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x03, 0x04, 0x09, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3, ":tmpD", 5);
extern TNimType NTI__DfgJFJEYoj4YBAHLZPl5lQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4, "internal error: \'", 17);
extern NIM_CONST tyArray__JXkBzVsE9bvmcpuZvrueLVg AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5, "\' operator not found for type ", 30);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7, "/home/runner/work/nightlies/nightlies/nim/compiler/injectdestru"
"ctors.nim", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 272),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8, "\' operator is generic", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 275),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10, "\'", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11, "\' is not available for type <", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12, ">", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13, "=", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14, "=copy", 5);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15, "; requires a copy because it\'s not the last read of \'", 53);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16, "; another read is done here: ", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17, "; try to make ", 14);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18, " a \'sink\' parameter", 19);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19, "; routine: ", 11);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 251),
((NI) 12)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21, "wasMoved", 8);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22, "passing \'$1\' to a sink parameter introduces an implicit copy; i"
"f possible, rearrange your program\'s control flow to prevent it", 126);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 409),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24, "cannot create an implicit openArray copy to be passed to a sink"
" parameter", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 416),
((NI) 16)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26, "blitTmp", 7);
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27, "default", 7);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28, "\'$#\' creates an uncollectable ref cycle; annotate \'$#\' with .cu"
"rsor", 67);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29, "\'$#\' creates an uncollectable ref cycle", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 482),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31, "Assignment to discriminant for objects with user defined destru"
"ctor is not supported, object must have default destructor.\012It i"
"s best to factor out piece of object that needs custom destructo"
"r into separate object or not use discriminator assignment", 249);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 343),
((NI) 16)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33, "not", 3);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34, "nkWhileStmt should have been handled earlier", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 843),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36, "cannot inject destructors to node kind: ", 40);
extern TNimType NTI__G4E4Gxe7oI2Cm03rkiOzQw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7),
((NI) 929),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38, "--expandArc: ", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40, "-- end of expandArc ------------------------", 44);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40)}
;

/* section: NIM_merge_VARS */
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
static N_INLINE(NIM_BOOL, isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9)));
	LA4_: ;
	result = T1_;
	return result;
}
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(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	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 = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__ni4yTthPfyagpkFgPFjv8Q)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result) {
	unsureAsgnRef((void**)&(*Result).vars, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).wasMoved, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).final, NIM_NIL);
	(*Result).needsTry = 0;
	(*Result).parent = NIM_NIL;
	unsureAsgnRef((void**) (&(*Result).vars), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).wasMoved), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).final), NIM_NIL);
	(*Result).needsTry = NIM_FALSE;
	(*Result).parent = parent;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope__ur1q32ALAU6hCaCkFnKb1w)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSection;
		T3_ = ((*s).vars ? (*s).vars->Sup.len : 0);
		if (!(((NI) 0) < T3_)) goto LA4_;
		varSection = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*ret).info);
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmp;
			NI i;
			NI L;
			NI T7_;
			tmp = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
			i = ((NI) 0);
			T7_ = ((*s).vars ? (*s).vars->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					tyArray__T6RKPw8xfAeNaoei9aZGzXg T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(i < L)) goto LA9;
					tmp = &(*s).vars->data[i];
					nimZeroMem((void*)T10_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
					T10_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmp));
					T10_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T10_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T10_, 3);
					add__P8dDSotTW25BkfbyspojGg(varSection, T11_);
					i += ((NI) 1);
				} LA9: ;
			}
		}
		add__P8dDSotTW25BkfbyspojGg(result, varSection);
	}
	LA4_: ;
	{
		NIM_BOOL T14_;
		NI T15_;
		NI T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSection;
		T14_ = (NIM_BOOL)0;
		T15_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
		T14_ = (((NI) 0) < T15_);
		if (T14_) goto LA16_;
		T17_ = ((*s).final ? (*s).final->Sup.len : 0);
		T14_ = (((NI) 0) < T17_);
		LA16_: ;
		if (!T14_) goto LA18_;
		finSection = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** m;
			NI i_2;
			NI L_2;
			NI T21_;
			m = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
			i_2 = ((NI) 0);
			T21_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
			L_2 = T21_;
			{
				while (1) {
					if (!(i_2 < L_2)) goto LA23;
					m = &(*s).wasMoved->data[i_2];
					add__P8dDSotTW25BkfbyspojGg(finSection, (*m));
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			NI i_3;
			NI colontmp_;
			NI T25_;
			NI res;
			i_3 = (NI)0;
			colontmp_ = (NI)0;
			T25_ = (((*s).final ? (*s).final->Sup.len : 0)-1);
			colontmp_ = T25_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA27;
					i_3 = res;
					add__P8dDSotTW25BkfbyspojGg(finSection, (*s).final->data[i_3]);
					res -= ((NI) 1);
				} LA27: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!(*s).needsTry) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(ret, finSection);
			add__P8dDSotTW25BkfbyspojGg(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			add__P8dDSotTW25BkfbyspojGg(result, ret);
			add__P8dDSotTW25BkfbyspojGg(result, finSection);
		}
		LA28_: ;
	}
	goto LA12_;
	LA18_: ;
	{
		add__P8dDSotTW25BkfbyspojGg(result, ret);
	}
	LA12_: ;
	{
		NIM_BOOL T39_;
		if (!!(((*s).parent == NIM_NIL))) goto LA37_;
		T39_ = (NIM_BOOL)0;
		T39_ = (*(*s).parent).needsTry;
		if (T39_) goto LA40_;
		T39_ = (*s).needsTry;
		LA40_: ;
		(*(*s).parent).needsTry = T39_;
	}
	LA37_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp__KB0wf28km02QmgKPPOnujQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
	NI T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3));
	sym = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, (*c).owner, info, 0);
	asgnRef((void**) (&(*sym).typ), typ);
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
	T2_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T2_]), sym);
	result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(sym);
	return result;
}
static N_INLINE(NIM_BOOL, hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((IL64(2147483664) & (*t).flags) == 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, NI pc, NI until) {
	NI result;
	NI pc_2;
{	result = (NI)0;
	pc_2 = pc;
	{
		while (1) {
			if (!(pc_2 < until)) goto LA2;
			switch (cfg->data[pc_2].kind) {
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T6_;
					T6_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T6_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T6_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA7_;
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA7_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T12_;
					T12_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T12_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T12_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA13_;
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA13_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
			{
				pc_2 += cfg->data[pc_2].dest;
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
			{
				NI variantA;
				NI variantB;
				variantA = (NI)(pc_2 + ((NI) 1));
				variantB = (NI)(pc_2 + cfg->data[pc_2].dest);
				{
					while (1) {
						if (!!((variantA == variantB))) goto LA18;
						{
							if (!(((variantA <= variantB) ? variantA : variantB) < ((NI) 0))) goto LA21_;
							result = ((NI) -1);
							goto BeforeRet_;
						}
						LA21_: ;
						{
							if (!(until < ((variantA >= variantB) ? variantA : variantB))) goto LA25_;
							goto LA17;
						}
						LA25_: ;
						{
							if (!(variantA < variantB)) goto LA29_;
							variantA = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(location, cfg, variantA, ((variantB <= until) ? variantB : until));
						}
						goto LA27_;
						LA29_: ;
						{
							variantB = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(location, cfg, variantB, ((variantA <= until) ? variantA : until));
						}
						LA27_: ;
					} LA18: ;
				} LA17: ;
				pc_2 = ((variantA <= variantB) ? variantA : variantB);
			}
			break;
			}
		} LA2: ;
	}
	result = pc_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__cXlunxLFt2VNVqtuIWbJWg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	NI instr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	NI T23_;
{	result = (NIM_BOOL)0;
	instr = ((NI) -1);
	m = skipConvDfa__vedgqlRdnLUAAjvLVHCgqg(n);
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).g ? (*c).g->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = colontmp_;
		{
			while (1) {
				if (!(((NI) 0) <= res)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*c).g->data[i].kind == ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2));
					if (!(T7_)) goto LA8_;
					T7_ = ((*c).g->data[i].n == m);
					LA8_: ;
					if (!T7_) goto LA9_;
					{
						if (!(instr < ((NI) 0))) goto LA13_;
						instr = i;
						goto LA1;
					}
					LA13_: ;
				}
				LA9_: ;
				res -= ((NI) 1);
			} LA4: ;
		}
	} LA1: ;
	{
		if (!(instr < ((NI) 0))) goto LA17_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA17_: ;
	{
		if (!(instr == ((NI) 0))) goto LA21_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA21_: ;
	T23_ = (NI)0;
	T23_ = isFirstWrite__1mYeXIvu8IPZVtV1GH9ajmw(n, (*c).g, ((NI) 0), instr);
	result = (((NI) 0) <= T23_);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*dest)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__M04YC71iJg1N7gBF3HZTngsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__M04YC71iJg1N7gBF3HZTngsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
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;
}
static N_INLINE(NIM_BOOL, isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T1_) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T1_ = rawNewString((opname ? opname->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 31);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10));
appendString(T1_, opname);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12));
	m = T1_;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NimStringDesc* T11_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13));
		if (T6_) goto LA7_;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !((ri == NIM_NIL));
		LA8_: ;
		if (!T5_) goto LA9_;
		m = resizeString(m, 53);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15));
		T11_ = (NimStringDesc*)0;
		T11_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(ri, 0);
		m = resizeString(m, (T11_ ? T11_->Sup.len : 0) + 0);
appendString(m, T11_);
		m = addChar(m, 39);
		{
			NimStringDesc* T16_;
			if (!!(((*c).otherRead == NIM_NIL))) goto LA14_;
			m = resizeString(m, 29);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16));
			T16_ = (NimStringDesc*)0;
			T16_ = dollar___aQsiZUvE4SFfnWyKx1JgKA((*(*c).graph).config, (*(*c).otherRead).info);
			m = resizeString(m, (T16_ ? T16_->Sup.len : 0) + 0);
appendString(m, T16_);
		}
		goto LA12_;
		LA14_: ;
		{
			NIM_BOOL T18_;
			NIM_BOOL T19_;
			NIM_BOOL T22_;
			NimStringDesc* T25_;
			T18_ = (NIM_BOOL)0;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T19_)) goto LA20_;
			T19_ = ((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA20_: ;
			T18_ = T19_;
			if (!(T18_)) goto LA21_;
			T22_ = (NIM_BOOL)0;
			T22_ = isSinkType__nPImuPGZIdcrAfCNyf4oxA_3ast((*(*ri)._kind_4.sym).typ);
			T18_ = !(T22_);
			LA21_: ;
			if (!T18_) goto LA23_;
			m = resizeString(m, 14);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17));
			T25_ = (NimStringDesc*)0;
			T25_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(ri, 0);
			m = resizeString(m, (T25_ ? T25_->Sup.len : 0) + 0);
appendString(m, T25_);
			m = resizeString(m, 19);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18));
		}
		goto LA12_;
		LA23_: ;
		LA12_: ;
	}
	LA9_: ;
	m = resizeString(m, 11);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19));
	m = resizeString(m, ((*(*(*c).owner).name).s ? (*(*(*c).owner).name).s->Sup.len : 0) + 0);
appendString(m, (*(*(*c).owner).name).s);
	liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*ri).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), m, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, makePtrType__xpZfx5xv8dk9abIT9boxAcWw)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* baseType) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), (*c).owner);
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, baseType);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__dlYECyD9bG06toVGQ4mMceA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* addrExp;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T3_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (*dest).info;
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = makePtrType__xpZfx5xv8dk9abIT9boxAcWw(c, (*dest).typ);
	addrExp = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), T1_, T2_);
	add__P8dDSotTW25BkfbyspojGg(addrExp, dest);
	nimZeroMem((void*)T3_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T3_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op);
	T3_[1] = addrExp;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T3_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp__cuD9c1RVF9b519bTmoMT05bxQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	op = (*t).attachedOps[(kind)- 0];
	{
		NIM_BOOL T3_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* canon;
		T3_ = (NIM_BOOL)0;
		T3_ = (op == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = !(((*(*(*op).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__UdooXLclXL8uld7qLI5JRw(t, 50, h);
		canon = getOrDefault__osKkoxC3A03cBoj9bK1Or9cQ((*(*c).graph).canonTypes, h);
		{
			if (!!((canon == NIM_NIL))) goto LA9_;
			op = (*canon).attachedOps[(kind)- 0];
		}
		LA9_: ;
	}
	LA5_: ;
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		if (!(op == NIM_NIL)) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T16_ = (NimStringDesc*)0;
		T16_ = typeToString__QlvraUan7WbHowhAbvDvdA(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T15_ = rawNewString((AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0] ? AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 47);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4));
appendString(T15_, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5));
appendString(T15_, T16_);
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6, NIM_FALSE);
	}
	goto LA11_;
	LA13_: ;
	{
		NimStringDesc* T20_;
		if (!!(((*(*(*op).ast)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA18_;
		T20_ = (NimStringDesc*)0;
		T20_ = rawNewString((AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0] ? AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]->Sup.len : 0) + 38);
appendString(T20_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4));
appendString(T20_, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
appendString(T20_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8));
		liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), T20_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9, NIM_FALSE);
	}
	goto LA11_;
	LA18_: ;
	LA11_: ;
	{
		if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA23_;
		checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA(c, t, ri, AttachedOpToStr__gGSR5Ulzx6g21lOISgt9aWA[(kind)- 0]);
	}
	LA23_: ;
	result = genOp__dlYECyD9bG06toVGQ4mMceA(c, op, dest);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy__eh46xmsJR79buekuc0oQIdQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
	result = genOp__cuD9c1RVF9b519bTmoMT05bxQ(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), dest, NIM_NIL);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink__v3XxtcbOOdZOlr1QqHxmIA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T12_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T17_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T7_)) goto LA8_;
		T7_ = ((*(*dest)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*(*(*dest)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA9_: ;
		T5_ = T6_;
		if (T5_) goto LA10_;
		T5_ = isDecl;
		LA10_: ;
		T4_ = T5_;
		if (T4_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(dest, (*c).owner);
		if (!(T12_)) goto LA13_;
		T12_ = isFirstWrite__cXlunxLFt2VNVqtuIWbJWg(dest, c);
		LA13_: ;
		T4_ = T12_;
		LA11_: ;
		T3_ = T4_;
		if (T3_) goto LA14_;
		T3_ = isNoInit__jwHjlQc0bLe9aCvMwOaI4Qwinjectdestructors(dest);
		LA14_: ;
		if (!T3_) goto LA15_;
		nimZeroMem((void*)T17_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T17_[0] = dest;
		T17_[1] = ri;
		result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T17_, 2);
	}
	goto LA1_;
	LA15_: ;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
		{
			if (!!(((*t).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == NIM_NIL))) goto LA21_;
			result = genOp__cuD9c1RVF9b519bTmoMT05bxQ((&(*c)), t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2), dest, ri);
			add__P8dDSotTW25BkfbyspojGg(result, ri);
		}
		goto LA19_;
		LA21_: ;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T24_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T25_;
			nimZeroMem((void*)T24_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T24_[0] = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), dest);
			nimZeroMem((void*)T25_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T25_[0] = dest;
			T25_[1] = ri;
			T24_[1] = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T25_, 2);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T24_, 2);
		}
		LA19_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, isLastRead__0x5XS4sakMCpEg7F32ukEA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* location, tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** otherRead, NI pc, NI until) {
	NI result;
	NI pc_2;
{	result = (NI)0;
	pc_2 = pc;
	{
		while (1) {
			NIM_BOOL T3_;
			NI T4_;
			T3_ = (NIM_BOOL)0;
			T4_ = (cfg ? cfg->Sup.len : 0);
			T3_ = (pc_2 < T4_);
			if (!(T3_)) goto LA5_;
			T3_ = (pc_2 < until);
			LA5_: ;
			if (!T3_) goto LA2;
			switch (cfg->data[pc_2].kind) {
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T9_;
					T9_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T9_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!(T9_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 1))) goto LA10_;
					result = ((NI) 2147483647);
					goto BeforeRet_;
				}
				goto LA7_;
				LA10_: ;
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T13_;
					T13_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T13_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!(T13_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 2))) goto LA14_;
					unsureAsgnRef((void**) (&(*otherRead)), cfg->data[pc_2].n);
					result = ((NI) -1);
					goto BeforeRet_;
				}
				goto LA7_;
				LA14_: ;
				LA7_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3):
			{
				{
					tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ T19_;
					T19_ = (tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ)0;
					T19_ = instrTargets__w1KaHRCZ7rX9a4bWRvZGRmQ(cfg->data[pc_2].n, location);
					if (!!((T19_ == ((tyEnum_InstrTargetKind__jS7zjwSSXtKIkBLJzNXXAQ) 0)))) goto LA20_;
					unsureAsgnRef((void**) (&(*otherRead)), cfg->data[pc_2].n);
					result = ((NI) -1);
					goto BeforeRet_;
				}
				LA20_: ;
				pc_2 += ((NI) 1);
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
			{
				pc_2 += cfg->data[pc_2].dest;
			}
			break;
			case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
			{
				NI variantA;
				NI variantB;
				variantA = (NI)(pc_2 + ((NI) 1));
				variantB = (NI)(pc_2 + cfg->data[pc_2].dest);
				{
					while (1) {
						if (!!((variantA == variantB))) goto LA25;
						{
							if (!(((variantA <= variantB) ? variantA : variantB) < ((NI) 0))) goto LA28_;
							result = ((NI) -1);
							goto BeforeRet_;
						}
						LA28_: ;
						{
							NIM_BOOL T32_;
							NI T33_;
							T32_ = (NIM_BOOL)0;
							T33_ = (cfg ? cfg->Sup.len : 0);
							T32_ = (T33_ <= ((variantA >= variantB) ? variantA : variantB));
							if (T32_) goto LA34_;
							T32_ = (until <= ((variantA <= variantB) ? variantA : variantB));
							LA34_: ;
							if (!T32_) goto LA35_;
							goto LA24;
						}
						LA35_: ;
						{
							if (!(variantA < variantB)) goto LA39_;
							variantA = isLastRead__0x5XS4sakMCpEg7F32ukEA(location, cfg, otherRead, variantA, ((variantB <= until) ? variantB : until));
						}
						goto LA37_;
						LA39_: ;
						{
							variantB = isLastRead__0x5XS4sakMCpEg7F32ukEA(location, cfg, otherRead, variantB, ((variantA <= until) ? variantA : until));
						}
						LA37_: ;
					} LA25: ;
				} LA24: ;
				pc_2 = ((variantA <= variantB) ? variantA : variantB);
			}
			break;
			}
		} LA2: ;
	}
	result = pc_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__cXlunxLFt2VNVqtuIWbJWg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	NI instr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* T30_;
	NI T31_;
{	result = (NIM_BOOL)0;
	instr = ((NI) -1);
	m = skipConvDfa__vedgqlRdnLUAAjvLVHCgqg(n);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = (((*(*m)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44))&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = ((*c).g ? (*c).g->Sup.len : 0);
		colontmp_ = T8_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA10;
				i = i_2;
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = ((*c).g->data[i].kind == ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3));
					if (!(T13_)) goto LA14_;
					T13_ = ((*c).g->data[i].n == m);
					LA14_: ;
					if (!T13_) goto LA15_;
					{
						if (!(instr < ((NI) 0))) goto LA19_;
						instr = i;
						goto LA7;
					}
					LA19_: ;
				}
				LA15_: ;
				i_2 += ((NI) 1);
			} LA10: ;
		}
	} LA7: ;
	{
		if (!(instr < ((NI) 0))) goto LA23_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA23_: ;
	{
		NI T27_;
		T27_ = ((*c).g ? (*c).g->Sup.len : 0);
		if (!(T27_ <= (NI)(instr + ((NI) 1)))) goto LA28_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA28_: ;
	unsureAsgnRef((void**) (&(*c).otherRead), NIM_NIL);
	T30_ = (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*)0;
	T30_ = (*c).g;
	T31_ = (NI)0;
	T31_ = isLastRead__0x5XS4sakMCpEg7F32ukEA(n, T30_, &(*c).otherRead, (NI)(instr + ((NI) 1)), ((NI) 2147483647));
	result = (((NI) 0) <= T31_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved__Tj0baeAMp9cue8UExOxI59bg)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T1_);
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	add__P8dDSotTW25BkfbyspojGg(result, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*dest).typ, IL64(70368744179728));
	result = genOp__cuD9c1RVF9b519bTmoMT05bxQ(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1), dest, ri);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy__rZPv7jnASufmG3HjltXEIQ)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = (*dest).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T11_;
			if (!((*c).otherRead == NIM_NIL)) goto LA9_;
			T11_ = (NIM_BOOL)0;
			T11_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			(void)(T11_);
		}
		LA9_: ;
		checkForErrorPragma__jsGlMYodrX9aBF5joJnt6nA((&(*c)), t, ri, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
	}
	LA5_: ;
	result = genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA((&(*c)), dest, ri);
	return result;
}
static N_INLINE(NIM_BOOL, isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273744));
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
	if (!(T1_)) goto LA2_;
	T1_ = !((((*(*t_2).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {
	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744179728));
	{
		NIM_BOOL T5_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T5_)) goto LA6_;
		T5_ = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == NIM_NIL));
		LA6_: ;
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = !(((*t_2).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))- 0] == NIM_NIL));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__U5eKhGaSBKhqqv1iUFOkVQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 1)], c);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		result = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 0)], c);
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA9_;
			call = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			add__P8dDSotTW25BkfbyspojGg(result, call);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toDisarm;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T25_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
			tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*n).info);
			m = genCopyNoCheck__fxxbJMldVAEuurLy2QTJZA((&(*c)), tmp, (*n)._kind_6.sons->data[((NI) 0)]);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(m, T12_);
			nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T13_[0] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, tmp);
			T13_[1] = m;
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T13_, 2);
			toDisarm = (*n)._kind_6.sons->data[((NI) 0)];
			{
				if (!((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA16_;
				toDisarm = lastSon__UPSW0jLTX5qJL51YMUAHgw(toDisarm);
			}
			LA16_: ;
			{
				NIM_BOOL T20_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = ((*(*toDisarm)._kind_4.sym).owner == (*c).owner);
				LA21_: ;
				if (!T20_) goto LA22_;
				T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T24_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, toDisarm);
				add__P8dDSotTW25BkfbyspojGg(result, T24_);
			}
			LA22_: ;
			nimZeroMem((void*)T25_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T25_[0] = tmp;
			T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T26_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T25_, 1);
			add__P8dDSotTW25BkfbyspojGg(result, T26_);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			add__P8dDSotTW25BkfbyspojGg(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]);
			add__P8dDSotTW25BkfbyspojGg(result, T34_);
		}
		LA28_: ;
	}
	LA1_: ;
	(*s).needsTry = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy__cVidUei9a721N3SvKgbe69bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	switch ((*ri).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		tyObject_Con__mVYRtnERc9advo79cBQUudxg* T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		T2_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
		T2_ = c;
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(T2_, dest, T3_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		{
			NIM_BOOL T7_;
			NIM_BOOL T8_;
			tyObject_Con__mVYRtnERc9advo79cBQUudxg* T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			T7_ = (NIM_BOOL)0;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T8_)) goto LA9_;
			T8_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
			LA9_: ;
			T7_ = T8_;
			if (!(T7_)) goto LA10_;
			T7_ = ((*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
			LA10_: ;
			if (!T7_) goto LA11_;
			T13_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
			T13_ = c;
			T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T14_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__v3XxtcbOOdZOlr1QqHxmIA(T13_, dest, T14_, isDecl);
		}
		goto LA5_;
		LA11_: ;
		{
			NIM_BOOL T16_;
			NIM_BOOL T17_;
			NIM_BOOL T20_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T23_;
			T16_ = (NIM_BOOL)0;
			T17_ = (NIM_BOOL)0;
			T17_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(ri, (*c).owner);
			if (!(T17_)) goto LA18_;
			T17_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA18_: ;
			T16_ = T17_;
			if (!(T16_)) goto LA19_;
			T20_ = (NIM_BOOL)0;
			T20_ = aliases__X88oJcf8606anlqCac3FtQ(dest, ri);
			T16_ = !(T20_);
			LA19_: ;
			if (!T16_) goto LA21_;
			snk = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T23_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T23_[0] = snk;
			T23_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T23_, 2);
		}
		goto LA5_;
		LA21_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T25_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T25_);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		{
			NIM_BOOL T29_;
			NI T30_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NI)0;
			T30_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			T29_ = (((NI) 0) < T30_);
			if (!(T29_)) goto LA31_;
			T29_ = isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors((*ri).typ);
			LA31_: ;
			if (!T29_) goto LA32_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T34_);
		}
		goto LA27_;
		LA32_: ;
		{
			tyObject_Con__mVYRtnERc9advo79cBQUudxg* T36_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
			T36_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
			T36_ = c;
			T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T37_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink__v3XxtcbOOdZOlr1QqHxmIA(T36_, dest, T37_, isDecl);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		tyObject_Con__mVYRtnERc9advo79cBQUudxg* T39_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
		T39_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
		T39_ = c;
		T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T40_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(T39_, dest, T40_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T44_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_2;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T48_;
			T44_ = (NIM_BOOL)0;
			T44_ = isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast((*ri)._kind_4.sym);
			if (!(T44_)) goto LA45_;
			T44_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA45_: ;
			if (!T44_) goto LA46_;
			snk_2 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T48_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T48_[0] = snk_2;
			T48_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T48_, 2);
		}
		goto LA42_;
		LA46_: ;
		{
			NIM_BOOL T50_;
			NIM_BOOL T51_;
			NIM_BOOL T52_;
			NIM_BOOL T53_;
			NIM_BOOL T58_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_3;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T61_;
			T50_ = (NIM_BOOL)0;
			T51_ = (NIM_BOOL)0;
			T52_ = (NIM_BOOL)0;
			T53_ = (NIM_BOOL)0;
			T53_ = !(((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
			if (!(T53_)) goto LA54_;
			T53_ = ((*(*ri)._kind_4.sym).owner == (*c).owner);
			LA54_: ;
			T52_ = T53_;
			if (!(T52_)) goto LA55_;
			T52_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA55_: ;
			T51_ = T52_;
			if (!(T51_)) goto LA56_;
			T51_ = canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors((&(*c)), (*dest).typ);
			LA56_: ;
			T50_ = T51_;
			if (!(T50_)) goto LA57_;
			T58_ = (NIM_BOOL)0;
			T58_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ(ri, (&(*c)));
			T50_ = !(T58_);
			LA57_: ;
			if (!T50_) goto LA59_;
			snk_3 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T61_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T61_[0] = snk_3;
			T61_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T61_, 2);
		}
		goto LA42_;
		LA59_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T63_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T63_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T63_);
		}
		LA42_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		tyObject_Con__mVYRtnERc9advo79cBQUudxg* T65_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
		T65_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
		T65_ = c;
		T66_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T66_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
		result = genSink__v3XxtcbOOdZOlr1QqHxmIA(T65_, dest, T66_, isDecl);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	{
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T79_;
			{
				NI T71_;
				T71_ = (NI)0;
				T71_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				if (!(T71_ == ((NI) 0))) goto LA72_;
				result = ri;
				goto BeforeRet_;
			}
			LA72_: ;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			{
				NI iX60gensym410_;
				NI colontmp_;
				NI T75_;
				NI i;
				iX60gensym410_ = (NI)0;
				colontmp_ = (NI)0;
				T75_ = (NI)0;
				T75_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				colontmp_ = (NI)(T75_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
						if (!(i < colontmp_)) goto LA77;
						iX60gensym410_ = i;
						T78_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T78_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[iX60gensym410_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add__P8dDSotTW25BkfbyspojGg(result, T78_);
						i += ((NI) 1);
					} LA77: ;
				}
			}
			T79_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T82_;
				NIM_BOOL T83_;
				NI T86_;
				T82_ = (NI)0;
				T82_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T83_ = (NIM_BOOL)0;
				T83_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[(NI)(T82_ - ((NI) 1))]).typ);
				if (!T83_) goto LA84_;
				T86_ = (NI)0;
				T86_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T79_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[(NI)(T86_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA80_;
			LA84_: ;
			{
				NI T88_;
				T88_ = (NI)0;
				T88_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				T79_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[(NI)(T88_ - ((NI) 1))], c, s, isDecl);
			}
			LA80_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T79_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T90_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T90_);
			{
				NI iX60gensym410__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym410__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym410_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym410_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym410_;
						NI T98_;
						if (!(i_2 < colontmp__2)) goto LA93;
						iX60gensym410__2 = i_2;
						itX60gensym410_ = (*ri)._kind_6.sons->data[iX60gensym410__2];
						branchX60gensym410_ = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym410_);
						{
							NI jX60gensym410_;
							NI colontmp__3;
							NI T95_;
							NI i_3;
							jX60gensym410_ = (NI)0;
							colontmp__3 = (NI)0;
							T95_ = (NI)0;
							T95_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							colontmp__3 = (NI)(T95_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA97;
									jX60gensym410_ = i_3;
									asgnRef((void**) (&(*branchX60gensym410_)._kind_6.sons->data[jX60gensym410_]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*itX60gensym410_)._kind_6.sons->data[jX60gensym410_]));
									i_3 += ((NI) 1);
								} LA97: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym410_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&ofScopeX60gensym410_));
						T98_ = (NI)0;
						T98_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym410_);
						{
							NIM_BOOL T101_;
							NI T102_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T106_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T107_;
							T101_ = (NIM_BOOL)0;
							T102_ = (NI)0;
							T102_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							T101_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410_)._kind_6.sons->data[(NI)(T102_ - ((NI) 1))]).typ);
							if (T101_) goto LA103_;
							T101_ = NIM_TRUE;
							LA103_: ;
							if (!T101_) goto LA104_;
							T106_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T106_ = c;
							T107_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T110_;
								NIM_BOOL T111_;
								NI T114_;
								T110_ = (NI)0;
								T110_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								T111_ = (NIM_BOOL)0;
								T111_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410_)._kind_6.sons->data[(NI)(T110_ - ((NI) 1))]).typ);
								if (!T111_) goto LA112_;
								T114_ = (NI)0;
								T114_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								T107_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410_)._kind_6.sons->data[(NI)(T114_ - ((NI) 1))], c, (&ofScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA108_;
							LA112_: ;
							{
								NI T116_;
								T116_ = (NI)0;
								T116_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								T107_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym410_)._kind_6.sons->data[(NI)(T116_ - ((NI) 1))], c, (&ofScopeX60gensym410_), isDecl);
							}
							LA108_: ;
							asgnRef((void**) (&(*branchX60gensym410_)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T106_, (&ofScopeX60gensym410_), T107_));
						}
						goto LA99_;
						LA104_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym448_;
							NI T118_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym448_;
							NI T119_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T120_;
							NI T121_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym448_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym448_;
							NI T146_;
							T118_ = (NI)0;
							T118_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							resultX60gensym448_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T118_ - ((NI) 1))]).info);
							T119_ = (NI)0;
							T119_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							T120_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T120_ = (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T119_ - ((NI) 1))]).typ;
							T121_ = (NI)0;
							T121_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							tmpX60gensym448_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, ofScopeX60gensym410_.parent, T120_, (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T121_ - ((NI) 1))]).info);
							(*(*tmpX60gensym448_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T124_;
								NIM_BOOL T125_;
								NI T128_;
								T124_ = (NI)0;
								T124_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								T125_ = (NIM_BOOL)0;
								T125_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T124_ - ((NI) 1))]).typ);
								if (!T125_) goto LA126_;
								T128_ = (NI)0;
								T128_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								cpyX60gensym448_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym448_, (*itX60gensym410_)._kind_6.sons->data[(NI)(T128_ - ((NI) 1))], c, (&ofScopeX60gensym410_), NIM_TRUE);
							}
							goto LA122_;
							LA126_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T130_;
								NI T131_;
								nimZeroMem((void*)T130_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T130_[0] = tmpX60gensym448_;
								T131_ = (NI)0;
								T131_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								T130_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410_)._kind_6.sons->data[(NI)(T131_ - ((NI) 1))], c, (&ofScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym448_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T130_, 2);
							}
							LA122_: ;
							{
								NI T134_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym448_;
								NI T137_;
								T134_ = (ofScopeX60gensym410_.vars ? ofScopeX60gensym410_.vars->Sup.len : 0);
								if (!(((NI) 0) < T134_)) goto LA135_;
								T137_ = (NI)0;
								T137_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
								varSectionX60gensym448_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T137_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym448__2;
									NI i_4;
									NI L;
									NI T139_;
									tmpX60gensym448__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_4 = ((NI) 0);
									T139_ = (ofScopeX60gensym410_.vars ? ofScopeX60gensym410_.vars->Sup.len : 0);
									L = T139_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T142_;
											NI T143_;
											NI T144_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T145_;
											if (!(i_4 < L)) goto LA141;
											tmpX60gensym448__2 = &ofScopeX60gensym410_.vars->data[i_4];
											nimZeroMem((void*)T142_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T142_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym448__2));
											T143_ = (NI)0;
											T143_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
											T142_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T143_ - ((NI) 1))]).info);
											T144_ = (NI)0;
											T144_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
											T142_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T144_ - ((NI) 1))]).info);
											T145_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T145_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T142_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym448_, T145_);
											i_4 += ((NI) 1);
										} LA141: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym448_, varSectionX60gensym448_);
							}
							LA135_: ;
							T146_ = (NI)0;
							T146_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410_);
							finSectionX60gensym448_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym410_)._kind_6.sons->data[(NI)(T146_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym448_;
								NI i_5;
								NI L_2;
								NI T148_;
								mX60gensym448_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T148_ = (ofScopeX60gensym410_.wasMoved ? ofScopeX60gensym410_.wasMoved->Sup.len : 0);
								L_2 = T148_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA150;
										mX60gensym448_ = &ofScopeX60gensym410_.wasMoved->data[i_5];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym448_, (*mX60gensym448_));
										i_5 += ((NI) 1);
									} LA150: ;
								}
							}
							{
								NI iX60gensym448_;
								NI colontmp__4;
								NI T152_;
								NI res;
								iX60gensym448_ = (NI)0;
								colontmp__4 = (NI)0;
								T152_ = ((ofScopeX60gensym410_.final ? ofScopeX60gensym410_.final->Sup.len : 0)-1);
								colontmp__4 = T152_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA154;
										iX60gensym448_ = res;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym448_, ofScopeX60gensym410_.final->data[iX60gensym448_]);
										res -= ((NI) 1);
									} LA154: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T159_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T160_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
								if (!ofScopeX60gensym410_.needsTry) goto LA157_;
								nimZeroMem((void*)T159_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T159_[0] = cpyX60gensym448_;
								T159_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym448_, c, ofScopeX60gensym410_.parent, isDecl);
								T160_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T160_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T159_, 2);
								T161_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T161_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T160_, finSectionX60gensym448_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym448_, T161_);
							}
							goto LA155_;
							LA157_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T163_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym448_, cpyX60gensym448_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym448_, finSectionX60gensym448_);
								T163_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T163_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym448_, c, ofScopeX60gensym410_.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym448_, T163_);
							}
							LA155_: ;
							{
								NIM_BOOL T168_;
								if (!!((ofScopeX60gensym410_.parent == NIM_NIL))) goto LA166_;
								T168_ = (NIM_BOOL)0;
								T168_ = (*ofScopeX60gensym410_.parent).needsTry;
								if (T168_) goto LA169_;
								T168_ = ofScopeX60gensym410_.needsTry;
								LA169_: ;
								(*ofScopeX60gensym410_.parent).needsTry = T168_;
							}
							LA166_: ;
							asgnRef((void**) (&(*branchX60gensym410_)._kind_6.sons->data[(NI)(T98_ - ((NI) 1))]), resultX60gensym448_);
						}
						LA99_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym410_);
						i_2 += ((NI) 1);
					} LA93: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T171_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym410_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym410_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T172_;
			(*c).inLoop += ((NI) 1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			T171_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T171_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T171_);
			nimZeroMem((void*)(&bodyScopeX60gensym410_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym410_));
			bodyResultX60gensym410_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T172_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T172_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym410_), bodyResultX60gensym410_);
			add__P8dDSotTW25BkfbyspojGg(result, T172_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym410_;
			NI T174_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym410__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym410__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(ri);
			T174_ = (NI)0;
			T174_ = len__P89cqdlERShb9alU3iC0yj8wast(ri);
			lastX60gensym410_ = (NI)(T174_ - ((NI) 1));
			{
				NI iX60gensym410__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym410__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym410_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA177;
						iX60gensym410__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym410__3]), (*ri)._kind_6.sons->data[iX60gensym410__3]);
						i_6 += ((NI) 1);
					} LA177: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym410_ - ((NI) 1))]), p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[(NI)(lastX60gensym410_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym410__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym410__2));
			bodyResultX60gensym410__2 = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[lastX60gensym410_], c, (&bodyScopeX60gensym410__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym410_]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym410__2), bodyResultX60gensym410__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym410__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T179_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			add__P8dDSotTW25BkfbyspojGg(result, (*ri)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym410__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym410__3));
			T179_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T182_;
				tyObject_Con__mVYRtnERc9advo79cBQUudxg* T186_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T187_;
				T182_ = (NIM_BOOL)0;
				T182_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
				if (T182_) goto LA183_;
				T182_ = NIM_TRUE;
				LA183_: ;
				if (!T182_) goto LA184_;
				T186_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
				T186_ = c;
				T187_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T187_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym410__3), isDecl);
				T179_ = processScope__ur1q32ALAU6hCaCkFnKb1w(T186_, (&bodyScopeX60gensym410__3), T187_);
			}
			goto LA180_;
			LA184_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym470_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym470_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T189_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym470_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym470_;
				resultX60gensym470_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				T189_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T189_ = (*(*ri)._kind_6.sons->data[((NI) 1)]).typ;
				tmpX60gensym470_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, bodyScopeX60gensym410__3.parent, T189_, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym470_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T192_;
					T192_ = (NIM_BOOL)0;
					T192_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T192_) goto LA193_;
					cpyX60gensym470_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym470_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym410__3), NIM_TRUE);
				}
				goto LA190_;
				LA193_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T196_;
					nimZeroMem((void*)T196_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T196_[0] = tmpX60gensym470_;
					T196_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym410__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym470_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T196_, 2);
				}
				LA190_: ;
				{
					NI T199_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym470_;
					T199_ = (bodyScopeX60gensym410__3.vars ? bodyScopeX60gensym410__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T199_)) goto LA200_;
					varSectionX60gensym470_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym470__2;
						NI i_7;
						NI L_3;
						NI T203_;
						tmpX60gensym470__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_7 = ((NI) 0);
						T203_ = (bodyScopeX60gensym410__3.vars ? bodyScopeX60gensym410__3.vars->Sup.len : 0);
						L_3 = T203_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T206_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T207_;
								if (!(i_7 < L_3)) goto LA205;
								tmpX60gensym470__2 = &bodyScopeX60gensym410__3.vars->data[i_7];
								nimZeroMem((void*)T206_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T206_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym470__2));
								T206_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
								T206_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
								T207_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T207_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T206_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym470_, T207_);
								i_7 += ((NI) 1);
							} LA205: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym470_, varSectionX60gensym470_);
				}
				LA200_: ;
				finSectionX60gensym470_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym470_;
					NI i_8;
					NI L_4;
					NI T209_;
					mX60gensym470_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T209_ = (bodyScopeX60gensym410__3.wasMoved ? bodyScopeX60gensym410__3.wasMoved->Sup.len : 0);
					L_4 = T209_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA211;
							mX60gensym470_ = &bodyScopeX60gensym410__3.wasMoved->data[i_8];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym470_, (*mX60gensym470_));
							i_8 += ((NI) 1);
						} LA211: ;
					}
				}
				{
					NI iX60gensym470_;
					NI colontmp__6;
					NI T213_;
					NI res_2;
					iX60gensym470_ = (NI)0;
					colontmp__6 = (NI)0;
					T213_ = ((bodyScopeX60gensym410__3.final ? bodyScopeX60gensym410__3.final->Sup.len : 0)-1);
					colontmp__6 = T213_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA215;
							iX60gensym470_ = res_2;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym470_, bodyScopeX60gensym410__3.final->data[iX60gensym470_]);
							res_2 -= ((NI) 1);
						} LA215: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T220_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T221_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T222_;
					if (!bodyScopeX60gensym410__3.needsTry) goto LA218_;
					nimZeroMem((void*)T220_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T220_[0] = cpyX60gensym470_;
					T220_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym470_, c, bodyScopeX60gensym410__3.parent, isDecl);
					T221_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T221_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T220_, 2);
					T222_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T222_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T221_, finSectionX60gensym470_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym470_, T222_);
				}
				goto LA216_;
				LA218_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T224_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym470_, cpyX60gensym470_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym470_, finSectionX60gensym470_);
					T224_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T224_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym470_, c, bodyScopeX60gensym410__3.parent, isDecl);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym470_, T224_);
				}
				LA216_: ;
				{
					NIM_BOOL T229_;
					if (!!((bodyScopeX60gensym410__3.parent == NIM_NIL))) goto LA227_;
					T229_ = (NIM_BOOL)0;
					T229_ = (*bodyScopeX60gensym410__3.parent).needsTry;
					if (T229_) goto LA230_;
					T229_ = bodyScopeX60gensym410__3.needsTry;
					LA230_: ;
					(*bodyScopeX60gensym410__3.parent).needsTry = T229_;
				}
				LA227_: ;
				T179_ = resultX60gensym470_;
			}
			LA180_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T179_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			{
				NI iX60gensym410__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym410__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym410__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym410__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym410_;
						NI T239_;
						if (!(i_9 < colontmp__7)) goto LA234;
						iX60gensym410__4 = i_9;
						itX60gensym410__2 = (*ri)._kind_6.sons->data[iX60gensym410__4];
						branchX60gensym410__2 = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym410__2);
						nimZeroMem((void*)(&branchScopeX60gensym410_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym410_));
						{
							if (!((*itX60gensym410__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym410__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA237_;
							asgnRef((void**) (&(*branchX60gensym410__2)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA237_: ;
						T239_ = (NI)0;
						T239_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym410__2);
						{
							NIM_BOOL T242_;
							NI T243_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T247_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T248_;
							T242_ = (NIM_BOOL)0;
							T243_ = (NI)0;
							T243_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
							T242_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T243_ - ((NI) 1))]).typ);
							if (T242_) goto LA244_;
							T242_ = NIM_TRUE;
							LA244_: ;
							if (!T242_) goto LA245_;
							T247_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T247_ = c;
							T248_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T251_;
								NIM_BOOL T252_;
								NI T255_;
								T251_ = (NI)0;
								T251_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								T252_ = (NIM_BOOL)0;
								T252_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T251_ - ((NI) 1))]).typ);
								if (!T252_) goto LA253_;
								T255_ = (NI)0;
								T255_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								T248_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__2)._kind_6.sons->data[(NI)(T255_ - ((NI) 1))], c, (&branchScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA249_;
							LA253_: ;
							{
								NI T257_;
								T257_ = (NI)0;
								T257_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								T248_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym410__2)._kind_6.sons->data[(NI)(T257_ - ((NI) 1))], c, (&branchScopeX60gensym410_), isDecl);
							}
							LA249_: ;
							asgnRef((void**) (&(*branchX60gensym410__2)._kind_6.sons->data[(NI)(T239_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T247_, (&branchScopeX60gensym410_), T248_));
						}
						goto LA240_;
						LA245_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym499_;
							NI T259_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym499_;
							NI T260_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T261_;
							NI T262_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym499_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym499_;
							NI T287_;
							T259_ = (NI)0;
							T259_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
							resultX60gensym499_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T259_ - ((NI) 1))]).info);
							T260_ = (NI)0;
							T260_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
							T261_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T261_ = (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T260_ - ((NI) 1))]).typ;
							T262_ = (NI)0;
							T262_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
							tmpX60gensym499_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym410_.parent, T261_, (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T262_ - ((NI) 1))]).info);
							(*(*tmpX60gensym499_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T265_;
								NIM_BOOL T266_;
								NI T269_;
								T265_ = (NI)0;
								T265_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								T266_ = (NIM_BOOL)0;
								T266_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T265_ - ((NI) 1))]).typ);
								if (!T266_) goto LA267_;
								T269_ = (NI)0;
								T269_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								cpyX60gensym499_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym499_, (*itX60gensym410__2)._kind_6.sons->data[(NI)(T269_ - ((NI) 1))], c, (&branchScopeX60gensym410_), NIM_TRUE);
							}
							goto LA263_;
							LA267_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T271_;
								NI T272_;
								nimZeroMem((void*)T271_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T271_[0] = tmpX60gensym499_;
								T272_ = (NI)0;
								T272_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								T271_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__2)._kind_6.sons->data[(NI)(T272_ - ((NI) 1))], c, (&branchScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym499_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T271_, 2);
							}
							LA263_: ;
							{
								NI T275_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym499_;
								NI T278_;
								T275_ = (branchScopeX60gensym410_.vars ? branchScopeX60gensym410_.vars->Sup.len : 0);
								if (!(((NI) 0) < T275_)) goto LA276_;
								T278_ = (NI)0;
								T278_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
								varSectionX60gensym499_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T278_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym499__2;
									NI i_10;
									NI L_5;
									NI T280_;
									tmpX60gensym499__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_10 = ((NI) 0);
									T280_ = (branchScopeX60gensym410_.vars ? branchScopeX60gensym410_.vars->Sup.len : 0);
									L_5 = T280_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T283_;
											NI T284_;
											NI T285_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T286_;
											if (!(i_10 < L_5)) goto LA282;
											tmpX60gensym499__2 = &branchScopeX60gensym410_.vars->data[i_10];
											nimZeroMem((void*)T283_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T283_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym499__2));
											T284_ = (NI)0;
											T284_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
											T283_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T284_ - ((NI) 1))]).info);
											T285_ = (NI)0;
											T285_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
											T283_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T285_ - ((NI) 1))]).info);
											T286_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T286_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T283_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym499_, T286_);
											i_10 += ((NI) 1);
										} LA282: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym499_, varSectionX60gensym499_);
							}
							LA276_: ;
							T287_ = (NI)0;
							T287_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__2);
							finSectionX60gensym499_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym410__2)._kind_6.sons->data[(NI)(T287_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym499_;
								NI i_11;
								NI L_6;
								NI T289_;
								mX60gensym499_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T289_ = (branchScopeX60gensym410_.wasMoved ? branchScopeX60gensym410_.wasMoved->Sup.len : 0);
								L_6 = T289_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA291;
										mX60gensym499_ = &branchScopeX60gensym410_.wasMoved->data[i_11];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym499_, (*mX60gensym499_));
										i_11 += ((NI) 1);
									} LA291: ;
								}
							}
							{
								NI iX60gensym499_;
								NI colontmp__8;
								NI T293_;
								NI res_3;
								iX60gensym499_ = (NI)0;
								colontmp__8 = (NI)0;
								T293_ = ((branchScopeX60gensym410_.final ? branchScopeX60gensym410_.final->Sup.len : 0)-1);
								colontmp__8 = T293_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA295;
										iX60gensym499_ = res_3;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym499_, branchScopeX60gensym410_.final->data[iX60gensym499_]);
										res_3 -= ((NI) 1);
									} LA295: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T300_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T301_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T302_;
								if (!branchScopeX60gensym410_.needsTry) goto LA298_;
								nimZeroMem((void*)T300_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T300_[0] = cpyX60gensym499_;
								T300_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym499_, c, branchScopeX60gensym410_.parent, isDecl);
								T301_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T301_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T300_, 2);
								T302_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T302_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T301_, finSectionX60gensym499_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym499_, T302_);
							}
							goto LA296_;
							LA298_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T304_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym499_, cpyX60gensym499_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym499_, finSectionX60gensym499_);
								T304_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T304_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym499_, c, branchScopeX60gensym410_.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym499_, T304_);
							}
							LA296_: ;
							{
								NIM_BOOL T309_;
								if (!!((branchScopeX60gensym410_.parent == NIM_NIL))) goto LA307_;
								T309_ = (NIM_BOOL)0;
								T309_ = (*branchScopeX60gensym410_.parent).needsTry;
								if (T309_) goto LA310_;
								T309_ = branchScopeX60gensym410_.needsTry;
								LA310_: ;
								(*branchScopeX60gensym410_.parent).needsTry = T309_;
							}
							LA307_: ;
							asgnRef((void**) (&(*branchX60gensym410__2)._kind_6.sons->data[(NI)(T239_ - ((NI) 1))]), resultX60gensym499_);
						}
						LA240_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym410__2);
						i_9 += ((NI) 1);
					} LA234: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym410_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T312_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(ri);
			nimZeroMem((void*)(&tryScopeX60gensym410_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&tryScopeX60gensym410_));
			T312_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T315_;
				tyObject_Con__mVYRtnERc9advo79cBQUudxg* T319_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T320_;
				T315_ = (NIM_BOOL)0;
				T315_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
				if (T315_) goto LA316_;
				T315_ = NIM_TRUE;
				LA316_: ;
				if (!T315_) goto LA317_;
				T319_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
				T319_ = c;
				T320_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T323_;
					T323_ = (NIM_BOOL)0;
					T323_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T323_) goto LA324_;
					T320_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA321_;
				LA324_: ;
				{
					T320_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym410_), isDecl);
				}
				LA321_: ;
				T312_ = processScope__ur1q32ALAU6hCaCkFnKb1w(T319_, (&tryScopeX60gensym410_), T320_);
			}
			goto LA313_;
			LA317_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym515_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym515_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T328_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym515_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym515_;
				resultX60gensym515_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				T328_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T328_ = (*(*ri)._kind_6.sons->data[((NI) 0)]).typ;
				tmpX60gensym515_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, tryScopeX60gensym410_.parent, T328_, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym515_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T331_;
					T331_ = (NIM_BOOL)0;
					T331_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T331_) goto LA332_;
					cpyX60gensym515_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym515_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym410_), NIM_TRUE);
				}
				goto LA329_;
				LA332_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T335_;
					nimZeroMem((void*)T335_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T335_[0] = tmpX60gensym515_;
					T335_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym410_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym515_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T335_, 2);
				}
				LA329_: ;
				{
					NI T338_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym515_;
					T338_ = (tryScopeX60gensym410_.vars ? tryScopeX60gensym410_.vars->Sup.len : 0);
					if (!(((NI) 0) < T338_)) goto LA339_;
					varSectionX60gensym515_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym515__2;
						NI i_12;
						NI L_7;
						NI T342_;
						tmpX60gensym515__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_12 = ((NI) 0);
						T342_ = (tryScopeX60gensym410_.vars ? tryScopeX60gensym410_.vars->Sup.len : 0);
						L_7 = T342_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T345_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T346_;
								if (!(i_12 < L_7)) goto LA344;
								tmpX60gensym515__2 = &tryScopeX60gensym410_.vars->data[i_12];
								nimZeroMem((void*)T345_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T345_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym515__2));
								T345_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
								T345_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
								T346_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T346_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T345_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym515_, T346_);
								i_12 += ((NI) 1);
							} LA344: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym515_, varSectionX60gensym515_);
				}
				LA339_: ;
				finSectionX60gensym515_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym515_;
					NI i_13;
					NI L_8;
					NI T348_;
					mX60gensym515_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T348_ = (tryScopeX60gensym410_.wasMoved ? tryScopeX60gensym410_.wasMoved->Sup.len : 0);
					L_8 = T348_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA350;
							mX60gensym515_ = &tryScopeX60gensym410_.wasMoved->data[i_13];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym515_, (*mX60gensym515_));
							i_13 += ((NI) 1);
						} LA350: ;
					}
				}
				{
					NI iX60gensym515_;
					NI colontmp__9;
					NI T352_;
					NI res_4;
					iX60gensym515_ = (NI)0;
					colontmp__9 = (NI)0;
					T352_ = ((tryScopeX60gensym410_.final ? tryScopeX60gensym410_.final->Sup.len : 0)-1);
					colontmp__9 = T352_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA354;
							iX60gensym515_ = res_4;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym515_, tryScopeX60gensym410_.final->data[iX60gensym515_]);
							res_4 -= ((NI) 1);
						} LA354: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T359_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T366_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T367_;
					if (!tryScopeX60gensym410_.needsTry) goto LA357_;
					nimZeroMem((void*)T359_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T359_[0] = cpyX60gensym515_;
					{
						NIM_BOOL T362_;
						T362_ = (NIM_BOOL)0;
						T362_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym515_).typ);
						if (!T362_) goto LA363_;
						T359_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym515_, c, tryScopeX60gensym410_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA360_;
					LA363_: ;
					{
						T359_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym515_, c, tryScopeX60gensym410_.parent, isDecl);
					}
					LA360_: ;
					T366_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T366_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T359_, 2);
					T367_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T367_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T366_, finSectionX60gensym515_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym515_, T367_);
				}
				goto LA355_;
				LA357_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T369_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym515_, cpyX60gensym515_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym515_, finSectionX60gensym515_);
					T369_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T372_;
						T372_ = (NIM_BOOL)0;
						T372_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym515_).typ);
						if (!T372_) goto LA373_;
						T369_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym515_, c, tryScopeX60gensym410_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA370_;
					LA373_: ;
					{
						T369_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym515_, c, tryScopeX60gensym410_.parent, isDecl);
					}
					LA370_: ;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym515_, T369_);
				}
				LA355_: ;
				{
					NIM_BOOL T380_;
					if (!!((tryScopeX60gensym410_.parent == NIM_NIL))) goto LA378_;
					T380_ = (NIM_BOOL)0;
					T380_ = (*tryScopeX60gensym410_.parent).needsTry;
					if (T380_) goto LA381_;
					T380_ = tryScopeX60gensym410_.needsTry;
					LA381_: ;
					(*tryScopeX60gensym410_.parent).needsTry = T380_;
				}
				LA378_: ;
				T312_ = resultX60gensym515_;
			}
			LA313_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T312_);
			{
				NI iX60gensym410__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym410__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(ri);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym410__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym410__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym410__2;
						NI T385_;
						if (!(i_14 < colontmp__10)) goto LA384;
						iX60gensym410__5 = i_14;
						itX60gensym410__3 = (*ri)._kind_6.sons->data[iX60gensym410__5];
						branchX60gensym410__3 = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(itX60gensym410__3);
						nimZeroMem((void*)(&branchScopeX60gensym410__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym410__2));
						T385_ = (NI)0;
						T385_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym410__3);
						{
							NIM_BOOL T388_;
							NIM_BOOL T389_;
							NI T390_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T395_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T396_;
							T388_ = (NIM_BOOL)0;
							T389_ = (NIM_BOOL)0;
							T390_ = (NI)0;
							T390_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
							T389_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T390_ - ((NI) 1))]).typ);
							if (T389_) goto LA391_;
							T389_ = NIM_TRUE;
							LA391_: ;
							T388_ = T389_;
							if (T388_) goto LA392_;
							T388_ = ((*itX60gensym410__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA392_: ;
							if (!T388_) goto LA393_;
							T395_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T395_ = c;
							T396_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T401_;
								if (!((*itX60gensym410__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA399_;
								T401_ = (NI)0;
								T401_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
								T396_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__3)._kind_6.sons->data[(NI)(T401_ - ((NI) 1))], c, (&branchScopeX60gensym410__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA397_;
							LA399_: ;
							{
								{
									NI T405_;
									NIM_BOOL T406_;
									NI T409_;
									T405_ = (NI)0;
									T405_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
									T406_ = (NIM_BOOL)0;
									T406_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T405_ - ((NI) 1))]).typ);
									if (!T406_) goto LA407_;
									T409_ = (NI)0;
									T409_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
									T396_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__3)._kind_6.sons->data[(NI)(T409_ - ((NI) 1))], c, (&branchScopeX60gensym410__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA403_;
								LA407_: ;
								{
									NI T411_;
									T411_ = (NI)0;
									T411_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
									T396_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*itX60gensym410__3)._kind_6.sons->data[(NI)(T411_ - ((NI) 1))], c, (&branchScopeX60gensym410__2), isDecl);
								}
								LA403_: ;
							}
							LA397_: ;
							asgnRef((void**) (&(*branchX60gensym410__3)._kind_6.sons->data[(NI)(T385_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T395_, (&branchScopeX60gensym410__2), T396_));
						}
						goto LA386_;
						LA393_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym546_;
							NI T413_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym546_;
							NI T414_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T415_;
							NI T416_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym546_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym546_;
							NI T441_;
							T413_ = (NI)0;
							T413_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
							resultX60gensym546_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T413_ - ((NI) 1))]).info);
							T414_ = (NI)0;
							T414_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
							T415_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T415_ = (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T414_ - ((NI) 1))]).typ;
							T416_ = (NI)0;
							T416_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
							tmpX60gensym546_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym410__2.parent, T415_, (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T416_ - ((NI) 1))]).info);
							(*(*tmpX60gensym546_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T419_;
								NIM_BOOL T420_;
								NI T423_;
								T419_ = (NI)0;
								T419_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
								T420_ = (NIM_BOOL)0;
								T420_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T419_ - ((NI) 1))]).typ);
								if (!T420_) goto LA421_;
								T423_ = (NI)0;
								T423_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
								cpyX60gensym546_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym546_, (*itX60gensym410__3)._kind_6.sons->data[(NI)(T423_ - ((NI) 1))], c, (&branchScopeX60gensym410__2), NIM_TRUE);
							}
							goto LA417_;
							LA421_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T425_;
								NI T426_;
								nimZeroMem((void*)T425_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T425_[0] = tmpX60gensym546_;
								T426_ = (NI)0;
								T426_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
								T425_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym410__3)._kind_6.sons->data[(NI)(T426_ - ((NI) 1))], c, (&branchScopeX60gensym410__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym546_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T425_, 2);
							}
							LA417_: ;
							{
								NI T429_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym546_;
								NI T432_;
								T429_ = (branchScopeX60gensym410__2.vars ? branchScopeX60gensym410__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T429_)) goto LA430_;
								T432_ = (NI)0;
								T432_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
								varSectionX60gensym546_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T432_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym546__2;
									NI i_15;
									NI L_9;
									NI T434_;
									tmpX60gensym546__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_15 = ((NI) 0);
									T434_ = (branchScopeX60gensym410__2.vars ? branchScopeX60gensym410__2.vars->Sup.len : 0);
									L_9 = T434_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T437_;
											NI T438_;
											NI T439_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T440_;
											if (!(i_15 < L_9)) goto LA436;
											tmpX60gensym546__2 = &branchScopeX60gensym410__2.vars->data[i_15];
											nimZeroMem((void*)T437_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T437_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym546__2));
											T438_ = (NI)0;
											T438_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
											T437_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T438_ - ((NI) 1))]).info);
											T439_ = (NI)0;
											T439_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
											T437_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T439_ - ((NI) 1))]).info);
											T440_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T440_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T437_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym546_, T440_);
											i_15 += ((NI) 1);
										} LA436: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym546_, varSectionX60gensym546_);
							}
							LA430_: ;
							T441_ = (NI)0;
							T441_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym410__3);
							finSectionX60gensym546_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym410__3)._kind_6.sons->data[(NI)(T441_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym546_;
								NI i_16;
								NI L_10;
								NI T443_;
								mX60gensym546_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T443_ = (branchScopeX60gensym410__2.wasMoved ? branchScopeX60gensym410__2.wasMoved->Sup.len : 0);
								L_10 = T443_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA445;
										mX60gensym546_ = &branchScopeX60gensym410__2.wasMoved->data[i_16];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym546_, (*mX60gensym546_));
										i_16 += ((NI) 1);
									} LA445: ;
								}
							}
							{
								NI iX60gensym546_;
								NI colontmp__11;
								NI T447_;
								NI res_5;
								iX60gensym546_ = (NI)0;
								colontmp__11 = (NI)0;
								T447_ = ((branchScopeX60gensym410__2.final ? branchScopeX60gensym410__2.final->Sup.len : 0)-1);
								colontmp__11 = T447_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA449;
										iX60gensym546_ = res_5;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym546_, branchScopeX60gensym410__2.final->data[iX60gensym546_]);
										res_5 -= ((NI) 1);
									} LA449: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T454_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T455_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T456_;
								if (!branchScopeX60gensym410__2.needsTry) goto LA452_;
								nimZeroMem((void*)T454_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T454_[0] = cpyX60gensym546_;
								T454_[1] = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym546_, c, branchScopeX60gensym410__2.parent, isDecl);
								T455_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T455_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T454_, 2);
								T456_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T456_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T455_, finSectionX60gensym546_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym546_, T456_);
							}
							goto LA450_;
							LA452_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T458_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym546_, cpyX60gensym546_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym546_, finSectionX60gensym546_);
								T458_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T458_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, tmpX60gensym546_, c, branchScopeX60gensym410__2.parent, isDecl);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym546_, T458_);
							}
							LA450_: ;
							{
								NIM_BOOL T463_;
								if (!!((branchScopeX60gensym410__2.parent == NIM_NIL))) goto LA461_;
								T463_ = (NIM_BOOL)0;
								T463_ = (*branchScopeX60gensym410__2.parent).needsTry;
								if (T463_) goto LA464_;
								T463_ = branchScopeX60gensym410__2.needsTry;
								LA464_: ;
								(*branchScopeX60gensym410__2.parent).needsTry = T463_;
							}
							LA461_: ;
							asgnRef((void**) (&(*branchX60gensym410__3)._kind_6.sons->data[(NI)(T385_ - ((NI) 1))]), resultX60gensym546_);
						}
						LA386_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym410__3);
						i_14 += ((NI) 1);
					} LA384: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(ri);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__cVidUei9a721N3SvKgbe69bw(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		result = pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ(ri, c, s);
	}
	break;
	default:
	{
		{
			NIM_BOOL T471_;
			NIM_BOOL T472_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_4;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T477_;
			T471_ = (NIM_BOOL)0;
			T472_ = (NIM_BOOL)0;
			T472_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(ri, (*c).owner);
			if (!(T472_)) goto LA473_;
			T472_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(ri, c);
			LA473_: ;
			T471_ = T472_;
			if (!(T471_)) goto LA474_;
			T471_ = canBeMoved__s3DnXtISoFCBs0uMQckThQ_2injectdestructors((&(*c)), (*dest).typ);
			LA474_: ;
			if (!T471_) goto LA475_;
			snk_4 = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, dest, ri, isDecl);
			nimZeroMem((void*)T477_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T477_[0] = snk_4;
			T477_[1] = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, ri);
			result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T477_, 2);
		}
		goto LA469_;
		LA475_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T479_;
			result = genCopy__rZPv7jnASufmG3HjltXEIQ(c, dest, ri);
			T479_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T479_ = p__PTsSyPSfjwGJy89cb8X3Ylw(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			add__P8dDSotTW25BkfbyspojGg(result, T479_);
		}
		LA469_: ;
	}
	break;
	}
	}BeforeRet_: ;
	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;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__3rzbQm9aIqUljCutfRquODA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T5_ = (((NI) 0) < T7_);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = !(((*n).typ == NIM_NIL));
		LA8_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA9_;
		T3_ = isDangerousSeq__L3rR2eriYpBBvT5CvR8Rnginjectdestructors((*n).typ);
		LA9_: ;
		if (!T3_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	result = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = containsConstSeq__3rzbQm9aIqUljCutfRquODA((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA((*n)._kind_6.sons->data[i]);
						if (!T19_) goto LA20_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA20_: ;
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
			son = (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) {
						if (!(i_4 < colontmp__2)) goto LA26;
						i_3 = i_4;
						son = (*n)._kind_6.sons->data[i_3];
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA(son);
							if (!T29_) goto LA30_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA30_: ;
						i_4 += ((NI) 1);
					} LA26: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__3rzbQm9aIqUljCutfRquODA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* root;
	result = (NIM_BOOL)0;
	root = getRoot__QppXrRxPfamDSGF2rYPMlw(n);
	{
		if (!!((root == NIM_NIL))) goto LA3_;
		result = ((NU8)((*(*root).name).s->data[((NI) 0)]) == (NU8)(58));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
	tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*n).typ, (*n).info);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
		if (!T3_) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, tmp);
		add__P8dDSotTW25BkfbyspojGg(result, T6_);
		m = genCopy__rZPv7jnASufmG3HjltXEIQ(c, tmp, n);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		add__P8dDSotTW25BkfbyspojGg(m, T7_);
		add__P8dDSotTW25BkfbyspojGg(result, m);
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T16_;
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T20_;
			NimStringDesc* T21_;
			NimStringDesc* T22_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = isLValue__kCP6QlI8uS4X0pOQUdr7tg(n);
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = isCapturedVar__3rzbQm9aIqUljCutfRquODA_2(n);
			T12_ = !(T14_);
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T16_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T16_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			T11_ = !(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
			LA15_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*c).inSpawn == ((NI) 0));
			LA17_: ;
			if (!T10_) goto LA18_;
			T20_ = (*n).info;
			T21_ = (NimStringDesc*)0;
			T21_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
			T22_ = (NimStringDesc*)0;
			T22_ = nsuFormatSingleElem(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22), T21_);
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, T20_, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 75), T22_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23, NIM_FALSE);
		}
		LA18_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T33_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
		{
			if (!((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA26_;
		}
		LA26_: ;
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T30_;
			T30_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T30_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			if (!((*T30_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T30_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA31_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25, NIM_FALSE);
		}
		LA31_: ;
		nimZeroMem((void*)T33_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T33_[0] = tmp;
		T33_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T34_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T33_, 2);
		add__P8dDSotTW25BkfbyspojGg(result, T34_);
	}
	LA1_: ;
	add__P8dDSotTW25BkfbyspojGg(result, tmp);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
		if (!!(T3_)) goto LA4_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* temp;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempAsNode;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vpart;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* wasMovedCall;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
		T7_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T7_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26));
		temp = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T7_, (*c).owner, (*n).info, 0);
		asgnRef((void**) (&(*temp).typ), (*n).typ);
		v = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*n).info);
		tempAsNode = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(temp);
		vpart = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), (*tempAsNode).info, ((NI) 3));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*tempAsNode).info));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), n);
		add__P8dDSotTW25BkfbyspojGg(v, vpart);
		add__P8dDSotTW25BkfbyspojGg(result, v);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw(n);
		wasMovedCall = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, T8_);
		add__P8dDSotTW25BkfbyspojGg(result, wasMovedCall);
		add__P8dDSotTW25BkfbyspojGg(result, tempAsNode);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction__3uQEgn0k2q4kiGbXS12GXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*arg).typ == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*arg).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*arg).info, (*arg).typ);
		tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*arg).typ, (*arg).info);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = genSink__v3XxtcbOOdZOlr1QqHxmIA(c, tmp, arg, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(result, T7_);
		add__P8dDSotTW25BkfbyspojGg(result, tmp);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), tmp);
		unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T9_ = (*s).final->Sup.len++;
		asgnRef((void**) (&(*s).final->data[T9_]), T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = arg;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	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(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), info);
	T1_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T1_);
	add__P8dDSotTW25BkfbyspojGg(result, T2_);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res) {
	NI T1_;
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__DfgJFJEYoj4YBAHLZPl5lQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTI__DfgJFJEYoj4YBAHLZPl5lQ_)));
	T1_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T1_]), (*v)._kind_4.sym);
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*v)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA7_: ;
		if (!T4_) goto LA8_;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			if (!(((NI) 0) < (*c).inLoop)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T14_[0] = v;
			T14_[1] = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T14_, 2);
			add__P8dDSotTW25BkfbyspojGg(res, T15_);
		}
		LA12_: ;
	}
	goto LA2_;
	LA8_: ;
	{
		if (!!((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0))) goto LA17_;
		{
			NIM_BOOL T21_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
			NI T26_;
			T21_ = (NIM_BOOL)0;
			T21_ = (((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T21_)) goto LA22_;
			T21_ = ((*s).parent == NIM_NIL);
			LA22_: ;
			if (!T21_) goto LA23_;
			T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T25_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), v);
			asgnRef((void**) (&(*(*c).graph).globalDestructors), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*(*c).graph).globalDestructors), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T26_ = (*(*c).graph).globalDestructors->Sup.len++;
			asgnRef((void**) (&(*(*c).graph).globalDestructors->data[T26_]), T25_);
		}
		goto LA19_;
		LA23_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
			NI T29_;
			T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T28_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), v);
			unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T29_ = (*s).final->Sup.len++;
			asgnRef((void**) (&(*s).final->data[T29_]), T28_);
		}
		LA19_: ;
	}
	goto LA2_;
	LA17_: ;
	LA2_: ;
	{
		NIM_BOOL T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
		T32_ = (NIM_BOOL)0;
		T32_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (!(T32_)) goto LA33_;
		T32_ = (((NI) 0) < (*c).inLoop);
		LA33_: ;
		if (!T32_) goto LA34_;
		T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T36_ = v;
		T37_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T37_ = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
		T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T38_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(T36_, T37_, c, s, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(res, T38_);
	}
	goto LA30_;
	LA34_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
		if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA40_;
		T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T42_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(v, ri, c, s, NIM_TRUE);
		add__P8dDSotTW25BkfbyspojGg(res, T42_);
	}
	goto LA30_;
	LA40_: ;
	LA30_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__VtuMNEAsvSYfebdKUbJwfA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* destTyp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
{	{
		if (!!(((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	value = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA7_;
		value = (*value)._kind_6.sons->data[((NI) 1)];
	}
	LA7_: ;
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	destTyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = !(((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T17_)) goto LA18_;
		T17_ = ((*destTyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA18_: ;
		T15_ = !(T17_);
		LA16_: ;
		if (!T15_) goto LA19_;
		goto BeforeRet_;
	}
	LA19_: ;
	x = (*n)._kind_6.sons->data[((NI) 0)];
	field = NIM_NIL;
	{
		while (1) {
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA25_;
				field = (*x)._kind_6.sons->data[((NI) 1)];
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T29_)) goto LA30_;
					T29_ = (((*(*field)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 40))&63U)))!=0);
					LA30_: ;
					if (!T29_) goto LA31_;
					goto BeforeRet_;
				}
				LA31_: ;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA25_: ;
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA34_;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA34_: ;
			{
				goto LA21;
			}
			LA23_: ;
			{
				NIM_BOOL T39_;
				NimStringDesc* msg;
				T39_ = (NIM_BOOL)0;
				T39_ = exprStructuralEquivalent__E1mnSzj2NONtG7h9cR3AuFA(x, value, NIM_TRUE);
				if (!T39_) goto LA40_;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T46_;
					if (!!((field == NIM_NIL))) goto LA44_;
					nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T46_[0] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
					T46_[1] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(field);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28), T46_, 2);
				}
				goto LA42_;
				LA44_: ;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T48_;
					nimZeroMem((void*)T48_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T48_[0] = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29), T48_, 1);
				}
				LA42_: ;
				liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 49), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30, NIM_FALSE);
				goto LA21;
			}
			LA40_: ;
		}
	} LA21: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	tyArray__cypz0nHJsd9cnKgpO7fP5hQ T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* leDotExpr;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* objType;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	tmp = getTemp__KB0wf28km02QmgKPPOnujQ(c, s, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T1_, 0);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = tmp;
	T2_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T2_, 2);
	add__P8dDSotTW25BkfbyspojGg(result, T3_);
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	add__P8dDSotTW25BkfbyspojGg(result, T4_);
	le = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		leDotExpr = (*le)._kind_6.sons->data[((NI) 0)];
	}
	goto LA5_;
	LA7_: ;
	{
		leDotExpr = le;
	}
	LA5_: ;
	objType = (*(*leDotExpr)._kind_6.sons->data[((NI) 0)]).typ;
	{
		NIM_BOOL T12_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* branchDestructor;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T23_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T24_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T26_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T29_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		T12_ = (NIM_BOOL)0;
		T12_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), objType);
		if (!T12_) goto LA13_;
		{
			NIM_BOOL T17_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T21_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
			T17_ = (NIM_BOOL)0;
			T17_ = !(((*objType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0] == NIM_NIL));
			if (!(T17_)) goto LA18_;
			T17_ = (((*(*objType).attachedOps[(((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))- 0]).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
			LA18_: ;
			if (!T17_) goto LA19_;
			liMessage__Q6JNH4uRwLyZrj0dJakHew((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 10), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32, NIM_FALSE);
			nimZeroMem((void*)T21_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T21_[0] = le;
			T21_[1] = tmp;
			T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T22_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T21_, 2);
			add__P8dDSotTW25BkfbyspojGg(result, T22_);
			goto BeforeRet_;
		}
		LA19_: ;
		branchDestructor = produceDestructorForDiscriminator__xB6uw9cGyS9bONpHGgcB87oA((*c).graph, objType, (*(*leDotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym, (*n).info);
		T23_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T23_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		cond = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*n).info, T23_);
		T24_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T24_ = getMagicEqSymForType__ff3Uma5kkjydzFHzZlldyg((*c).graph, (*le).typ, (*n).info);
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T24_);
		add__P8dDSotTW25BkfbyspojGg(cond, T25_);
		add__P8dDSotTW25BkfbyspojGg(cond, le);
		add__P8dDSotTW25BkfbyspojGg(cond, tmp);
		T26_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T26_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, unknownLineInfo__Adg58D2FIbt5TWh9aavBqbg, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		notExpr = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (*n).info, T26_);
		T27_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T27_ = createMagic__MzNJxZ0htpjW89c9b2wBN5rQ((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T28_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T27_);
		add__P8dDSotTW25BkfbyspojGg(notExpr, T28_);
		add__P8dDSotTW25BkfbyspojGg(notExpr, cond);
		nimZeroMem((void*)T29_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		nimZeroMem((void*)T30_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T30_[0] = notExpr;
		T30_[1] = genOp__dlYECyD9bG06toVGQ4mMceA((&(*c)), branchDestructor, le);
		T29_[0] = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T30_, 2);
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T29_, 1);
		add__P8dDSotTW25BkfbyspojGg(result, T31_);
	}
	LA13_: ;
	nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T32_[0] = le;
	T32_[1] = tmp;
	T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T33_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T32_, 2);
	add__P8dDSotTW25BkfbyspojGg(result, T33_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p__PTsSyPSfjwGJy89cb8X3Ylw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			{
				NI T8_;
				T8_ = (NI)0;
				T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!(T8_ == ((NI) 0))) goto LA9_;
				result = n;
				goto BeforeRet_;
			}
			LA9_: ;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			{
				NI iX60gensym125_;
				NI colontmp_;
				NI T12_;
				NI i;
				iX60gensym125_ = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (NI)0;
				T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				colontmp_ = (NI)(T12_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
						if (!(i < colontmp_)) goto LA14;
						iX60gensym125_ = i;
						T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T15_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[iX60gensym125_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add__P8dDSotTW25BkfbyspojGg(result, T15_);
						i += ((NI) 1);
					} LA14: ;
				}
			}
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T19_;
				NIM_BOOL T20_;
				NI T23_;
				T19_ = (NI)0;
				T19_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T20_ = (NIM_BOOL)0;
				T20_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]).typ);
				if (!T20_) goto LA21_;
				T23_ = (NI)0;
				T23_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T16_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA17_;
			LA21_: ;
			{
				NI T25_;
				T25_ = (NI)0;
				T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				T16_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))], c, s, mode);
			}
			LA17_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T16_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T27_);
			{
				NI iX60gensym125__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym125__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym125_;
						NI T35_;
						if (!(i_2 < colontmp__2)) goto LA30;
						iX60gensym125__2 = i_2;
						itX60gensym125_ = (*n)._kind_6.sons->data[iX60gensym125__2];
						branchX60gensym125_ = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym125_);
						{
							NI jX60gensym125_;
							NI colontmp__3;
							NI T32_;
							NI i_3;
							jX60gensym125_ = (NI)0;
							colontmp__3 = (NI)0;
							T32_ = (NI)0;
							T32_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							colontmp__3 = (NI)(T32_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA34;
									jX60gensym125_ = i_3;
									asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[jX60gensym125_]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*itX60gensym125_)._kind_6.sons->data[jX60gensym125_]));
									i_3 += ((NI) 1);
								} LA34: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&ofScopeX60gensym125_));
						T35_ = (NI)0;
						T35_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125_);
						{
							NIM_BOOL T38_;
							NI T39_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T43_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
							T38_ = (NIM_BOOL)0;
							T39_ = (NI)0;
							T39_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							T38_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125_)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).typ);
							if (T38_) goto LA40_;
							T38_ = NIM_FALSE;
							LA40_: ;
							if (!T38_) goto LA41_;
							T43_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T43_ = c;
							T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T47_;
								NIM_BOOL T48_;
								NI T51_;
								T47_ = (NI)0;
								T47_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T48_ = (NIM_BOOL)0;
								T48_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125_)._kind_6.sons->data[(NI)(T47_ - ((NI) 1))]).typ);
								if (!T48_) goto LA49_;
								T51_ = (NI)0;
								T51_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T44_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T51_ - ((NI) 1))], c, (&ofScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA45_;
							LA49_: ;
							{
								NI T53_;
								T53_ = (NI)0;
								T53_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T44_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T53_ - ((NI) 1))], c, (&ofScopeX60gensym125_), mode);
							}
							LA45_: ;
							asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T43_, (&ofScopeX60gensym125_), T44_));
						}
						goto LA36_;
						LA41_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym163_;
							NI T55_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym163_;
							NI T56_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T57_;
							NI T58_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym163_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym163_;
							NI T83_;
							T55_ = (NI)0;
							T55_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							resultX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T55_ - ((NI) 1))]).info);
							T56_ = (NI)0;
							T56_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							T57_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T57_ = (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))]).typ;
							T58_ = (NI)0;
							T58_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							tmpX60gensym163_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, ofScopeX60gensym125_.parent, T57_, (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T58_ - ((NI) 1))]).info);
							(*(*tmpX60gensym163_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T61_;
								NIM_BOOL T62_;
								NI T65_;
								T61_ = (NI)0;
								T61_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T62_ = (NIM_BOOL)0;
								T62_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T61_ - ((NI) 1))]).typ);
								if (!T62_) goto LA63_;
								T65_ = (NI)0;
								T65_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								cpyX60gensym163_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym163_, (*itX60gensym125_)._kind_6.sons->data[(NI)(T65_ - ((NI) 1))], c, (&ofScopeX60gensym125_), NIM_TRUE);
							}
							goto LA59_;
							LA63_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T67_;
								NI T68_;
								nimZeroMem((void*)T67_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T67_[0] = tmpX60gensym163_;
								T68_ = (NI)0;
								T68_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								T67_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125_)._kind_6.sons->data[(NI)(T68_ - ((NI) 1))], c, (&ofScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym163_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T67_, 2);
							}
							LA59_: ;
							{
								NI T71_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym163_;
								NI T74_;
								T71_ = (ofScopeX60gensym125_.vars ? ofScopeX60gensym125_.vars->Sup.len : 0);
								if (!(((NI) 0) < T71_)) goto LA72_;
								T74_ = (NI)0;
								T74_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
								varSectionX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T74_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym163__2;
									NI i_4;
									NI L;
									NI T76_;
									tmpX60gensym163__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_4 = ((NI) 0);
									T76_ = (ofScopeX60gensym125_.vars ? ofScopeX60gensym125_.vars->Sup.len : 0);
									L = T76_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T79_;
											NI T80_;
											NI T81_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
											if (!(i_4 < L)) goto LA78;
											tmpX60gensym163__2 = &ofScopeX60gensym125_.vars->data[i_4];
											nimZeroMem((void*)T79_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T79_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym163__2));
											T80_ = (NI)0;
											T80_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
											T79_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T80_ - ((NI) 1))]).info);
											T81_ = (NI)0;
											T81_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
											T79_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
											T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T82_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T79_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym163_, T82_);
											i_4 += ((NI) 1);
										} LA78: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, varSectionX60gensym163_);
							}
							LA72_: ;
							T83_ = (NI)0;
							T83_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125_);
							finSectionX60gensym163_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125_)._kind_6.sons->data[(NI)(T83_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym163_;
								NI i_5;
								NI L_2;
								NI T85_;
								mX60gensym163_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T85_ = (ofScopeX60gensym125_.wasMoved ? ofScopeX60gensym125_.wasMoved->Sup.len : 0);
								L_2 = T85_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA87;
										mX60gensym163_ = &ofScopeX60gensym125_.wasMoved->data[i_5];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym163_, (*mX60gensym163_));
										i_5 += ((NI) 1);
									} LA87: ;
								}
							}
							{
								NI iX60gensym163_;
								NI colontmp__4;
								NI T89_;
								NI res;
								iX60gensym163_ = (NI)0;
								colontmp__4 = (NI)0;
								T89_ = ((ofScopeX60gensym125_.final ? ofScopeX60gensym125_.final->Sup.len : 0)-1);
								colontmp__4 = T89_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA91;
										iX60gensym163_ = res;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym163_, ofScopeX60gensym125_.final->data[iX60gensym163_]);
										res -= ((NI) 1);
									} LA91: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T96_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T97_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
								if (!ofScopeX60gensym125_.needsTry) goto LA94_;
								nimZeroMem((void*)T96_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T96_[0] = cpyX60gensym163_;
								T96_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym163_, c, ofScopeX60gensym125_.parent, mode);
								T97_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T97_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T96_, 2);
								T98_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T98_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T97_, finSectionX60gensym163_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, T98_);
							}
							goto LA92_;
							LA94_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T100_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, cpyX60gensym163_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, finSectionX60gensym163_);
								T100_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T100_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym163_, c, ofScopeX60gensym125_.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym163_, T100_);
							}
							LA92_: ;
							{
								NIM_BOOL T105_;
								if (!!((ofScopeX60gensym125_.parent == NIM_NIL))) goto LA103_;
								T105_ = (NIM_BOOL)0;
								T105_ = (*ofScopeX60gensym125_.parent).needsTry;
								if (T105_) goto LA106_;
								T105_ = ofScopeX60gensym125_.needsTry;
								LA106_: ;
								(*ofScopeX60gensym125_.parent).needsTry = T105_;
							}
							LA103_: ;
							asgnRef((void**) (&(*branchX60gensym125_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), resultX60gensym163_);
						}
						LA36_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125_);
						i_2 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
			(*c).inLoop += ((NI) 1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			T108_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T108_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add__P8dDSotTW25BkfbyspojGg(result, T108_);
			nimZeroMem((void*)(&bodyScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125_));
			bodyResultX60gensym125_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T109_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T109_ = processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym125_), bodyResultX60gensym125_);
			add__P8dDSotTW25BkfbyspojGg(result, T109_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym125_;
			NI T111_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym125__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			T111_ = (NI)0;
			T111_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			lastX60gensym125_ = (NI)(T111_ - ((NI) 1));
			{
				NI iX60gensym125__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym125__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym125_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA114;
						iX60gensym125__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym125__3]), (*n)._kind_6.sons->data[iX60gensym125__3]);
						i_6 += ((NI) 1);
					} LA114: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym125_ - ((NI) 1))]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[(NI)(lastX60gensym125_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym125__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125__2));
			bodyResultX60gensym125__2 = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[lastX60gensym125_], c, (&bodyScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym125_]), processScope__ur1q32ALAU6hCaCkFnKb1w(c, (&bodyScopeX60gensym125__2), bodyResultX60gensym125__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym125__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T116_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			add__P8dDSotTW25BkfbyspojGg(result, (*n)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym125__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&bodyScopeX60gensym125__3));
			T116_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T119_;
				tyObject_Con__mVYRtnERc9advo79cBQUudxg* T123_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T124_;
				T119_ = (NIM_BOOL)0;
				T119_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				if (T119_) goto LA120_;
				T119_ = NIM_FALSE;
				LA120_: ;
				if (!T119_) goto LA121_;
				T123_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
				T123_ = c;
				T124_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T124_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), mode);
				T116_ = processScope__ur1q32ALAU6hCaCkFnKb1w(T123_, (&bodyScopeX60gensym125__3), T124_);
			}
			goto LA117_;
			LA121_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym185_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym185_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T126_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym185_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym185_;
				resultX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				T126_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T126_ = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				tmpX60gensym185_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, bodyScopeX60gensym125__3.parent, T126_, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym185_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T129_;
					T129_ = (NIM_BOOL)0;
					T129_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T129_) goto LA130_;
					cpyX60gensym185_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym185_, (*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), NIM_TRUE);
				}
				goto LA127_;
				LA130_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T133_;
					nimZeroMem((void*)T133_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T133_[0] = tmpX60gensym185_;
					T133_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym125__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym185_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T133_, 2);
				}
				LA127_: ;
				{
					NI T136_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym185_;
					T136_ = (bodyScopeX60gensym125__3.vars ? bodyScopeX60gensym125__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T136_)) goto LA137_;
					varSectionX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym185__2;
						NI i_7;
						NI L_3;
						NI T140_;
						tmpX60gensym185__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_7 = ((NI) 0);
						T140_ = (bodyScopeX60gensym125__3.vars ? bodyScopeX60gensym125__3.vars->Sup.len : 0);
						L_3 = T140_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T143_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
								if (!(i_7 < L_3)) goto LA142;
								tmpX60gensym185__2 = &bodyScopeX60gensym125__3.vars->data[i_7];
								nimZeroMem((void*)T143_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T143_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym185__2));
								T143_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T143_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T144_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T144_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T143_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym185_, T144_);
								i_7 += ((NI) 1);
							} LA142: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, varSectionX60gensym185_);
				}
				LA137_: ;
				finSectionX60gensym185_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym185_;
					NI i_8;
					NI L_4;
					NI T146_;
					mX60gensym185_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T146_ = (bodyScopeX60gensym125__3.wasMoved ? bodyScopeX60gensym125__3.wasMoved->Sup.len : 0);
					L_4 = T146_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA148;
							mX60gensym185_ = &bodyScopeX60gensym125__3.wasMoved->data[i_8];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym185_, (*mX60gensym185_));
							i_8 += ((NI) 1);
						} LA148: ;
					}
				}
				{
					NI iX60gensym185_;
					NI colontmp__6;
					NI T150_;
					NI res_2;
					iX60gensym185_ = (NI)0;
					colontmp__6 = (NI)0;
					T150_ = ((bodyScopeX60gensym125__3.final ? bodyScopeX60gensym125__3.final->Sup.len : 0)-1);
					colontmp__6 = T150_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA152;
							iX60gensym185_ = res_2;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym185_, bodyScopeX60gensym125__3.final->data[iX60gensym185_]);
							res_2 -= ((NI) 1);
						} LA152: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T157_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T158_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T159_;
					if (!bodyScopeX60gensym125__3.needsTry) goto LA155_;
					nimZeroMem((void*)T157_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T157_[0] = cpyX60gensym185_;
					T157_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym185_, c, bodyScopeX60gensym125__3.parent, mode);
					T158_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T158_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T157_, 2);
					T159_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T159_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T158_, finSectionX60gensym185_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, T159_);
				}
				goto LA153_;
				LA155_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, cpyX60gensym185_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, finSectionX60gensym185_);
					T161_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T161_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym185_, c, bodyScopeX60gensym125__3.parent, mode);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym185_, T161_);
				}
				LA153_: ;
				{
					NIM_BOOL T166_;
					if (!!((bodyScopeX60gensym125__3.parent == NIM_NIL))) goto LA164_;
					T166_ = (NIM_BOOL)0;
					T166_ = (*bodyScopeX60gensym125__3.parent).needsTry;
					if (T166_) goto LA167_;
					T166_ = bodyScopeX60gensym125__3.needsTry;
					LA167_: ;
					(*bodyScopeX60gensym125__3.parent).needsTry = T166_;
				}
				LA164_: ;
				T116_ = resultX60gensym185_;
			}
			LA117_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T116_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			{
				NI iX60gensym125__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym125__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym125_;
						NI T176_;
						if (!(i_9 < colontmp__7)) goto LA171;
						iX60gensym125__4 = i_9;
						itX60gensym125__2 = (*n)._kind_6.sons->data[iX60gensym125__4];
						branchX60gensym125__2 = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(itX60gensym125__2);
						nimZeroMem((void*)(&branchScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym125_));
						{
							if (!((*itX60gensym125__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym125__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA174_;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA174_: ;
						T176_ = (NI)0;
						T176_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125__2);
						{
							NIM_BOOL T179_;
							NI T180_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T184_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T185_;
							T179_ = (NIM_BOOL)0;
							T180_ = (NI)0;
							T180_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							T179_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T180_ - ((NI) 1))]).typ);
							if (T179_) goto LA181_;
							T179_ = NIM_FALSE;
							LA181_: ;
							if (!T179_) goto LA182_;
							T184_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T184_ = c;
							T185_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T188_;
								NIM_BOOL T189_;
								NI T192_;
								T188_ = (NI)0;
								T188_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T189_ = (NIM_BOOL)0;
								T189_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T188_ - ((NI) 1))]).typ);
								if (!T189_) goto LA190_;
								T192_ = (NI)0;
								T192_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T185_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T192_ - ((NI) 1))], c, (&branchScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA186_;
							LA190_: ;
							{
								NI T194_;
								T194_ = (NI)0;
								T194_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T185_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))], c, (&branchScopeX60gensym125_), mode);
							}
							LA186_: ;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[(NI)(T176_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T184_, (&branchScopeX60gensym125_), T185_));
						}
						goto LA177_;
						LA182_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym214_;
							NI T196_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym214_;
							NI T197_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T198_;
							NI T199_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym214_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym214_;
							NI T224_;
							T196_ = (NI)0;
							T196_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							resultX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T196_ - ((NI) 1))]).info);
							T197_ = (NI)0;
							T197_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							T198_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T198_ = (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T197_ - ((NI) 1))]).typ;
							T199_ = (NI)0;
							T199_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							tmpX60gensym214_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym125_.parent, T198_, (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T199_ - ((NI) 1))]).info);
							(*(*tmpX60gensym214_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T202_;
								NIM_BOOL T203_;
								NI T206_;
								T202_ = (NI)0;
								T202_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T203_ = (NIM_BOOL)0;
								T203_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).typ);
								if (!T203_) goto LA204_;
								T206_ = (NI)0;
								T206_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								cpyX60gensym214_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym214_, (*itX60gensym125__2)._kind_6.sons->data[(NI)(T206_ - ((NI) 1))], c, (&branchScopeX60gensym125_), NIM_TRUE);
							}
							goto LA200_;
							LA204_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T208_;
								NI T209_;
								nimZeroMem((void*)T208_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T208_[0] = tmpX60gensym214_;
								T209_ = (NI)0;
								T209_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								T208_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__2)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))], c, (&branchScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym214_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T208_, 2);
							}
							LA200_: ;
							{
								NI T212_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym214_;
								NI T215_;
								T212_ = (branchScopeX60gensym125_.vars ? branchScopeX60gensym125_.vars->Sup.len : 0);
								if (!(((NI) 0) < T212_)) goto LA213_;
								T215_ = (NI)0;
								T215_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
								varSectionX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T215_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym214__2;
									NI i_10;
									NI L_5;
									NI T217_;
									tmpX60gensym214__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_10 = ((NI) 0);
									T217_ = (branchScopeX60gensym125_.vars ? branchScopeX60gensym125_.vars->Sup.len : 0);
									L_5 = T217_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T220_;
											NI T221_;
											NI T222_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T223_;
											if (!(i_10 < L_5)) goto LA219;
											tmpX60gensym214__2 = &branchScopeX60gensym125_.vars->data[i_10];
											nimZeroMem((void*)T220_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T220_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym214__2));
											T221_ = (NI)0;
											T221_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
											T220_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T221_ - ((NI) 1))]).info);
											T222_ = (NI)0;
											T222_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
											T220_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T222_ - ((NI) 1))]).info);
											T223_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T223_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T220_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym214_, T223_);
											i_10 += ((NI) 1);
										} LA219: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, varSectionX60gensym214_);
							}
							LA213_: ;
							T224_ = (NI)0;
							T224_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__2);
							finSectionX60gensym214_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125__2)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym214_;
								NI i_11;
								NI L_6;
								NI T226_;
								mX60gensym214_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T226_ = (branchScopeX60gensym125_.wasMoved ? branchScopeX60gensym125_.wasMoved->Sup.len : 0);
								L_6 = T226_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA228;
										mX60gensym214_ = &branchScopeX60gensym125_.wasMoved->data[i_11];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym214_, (*mX60gensym214_));
										i_11 += ((NI) 1);
									} LA228: ;
								}
							}
							{
								NI iX60gensym214_;
								NI colontmp__8;
								NI T230_;
								NI res_3;
								iX60gensym214_ = (NI)0;
								colontmp__8 = (NI)0;
								T230_ = ((branchScopeX60gensym125_.final ? branchScopeX60gensym125_.final->Sup.len : 0)-1);
								colontmp__8 = T230_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA232;
										iX60gensym214_ = res_3;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym214_, branchScopeX60gensym125_.final->data[iX60gensym214_]);
										res_3 -= ((NI) 1);
									} LA232: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T237_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T238_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T239_;
								if (!branchScopeX60gensym125_.needsTry) goto LA235_;
								nimZeroMem((void*)T237_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T237_[0] = cpyX60gensym214_;
								T237_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym214_, c, branchScopeX60gensym125_.parent, mode);
								T238_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T238_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T237_, 2);
								T239_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T239_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T238_, finSectionX60gensym214_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, T239_);
							}
							goto LA233_;
							LA235_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T241_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, cpyX60gensym214_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, finSectionX60gensym214_);
								T241_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T241_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym214_, c, branchScopeX60gensym125_.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym214_, T241_);
							}
							LA233_: ;
							{
								NIM_BOOL T246_;
								if (!!((branchScopeX60gensym125_.parent == NIM_NIL))) goto LA244_;
								T246_ = (NIM_BOOL)0;
								T246_ = (*branchScopeX60gensym125_.parent).needsTry;
								if (T246_) goto LA247_;
								T246_ = branchScopeX60gensym125_.needsTry;
								LA247_: ;
								(*branchScopeX60gensym125_.parent).needsTry = T246_;
							}
							LA244_: ;
							asgnRef((void**) (&(*branchX60gensym125__2)._kind_6.sons->data[(NI)(T176_ - ((NI) 1))]), resultX60gensym214_);
						}
						LA177_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125__2);
						i_9 += ((NI) 1);
					} LA171: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym125_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T249_;
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
			nimZeroMem((void*)(&tryScopeX60gensym125_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&tryScopeX60gensym125_));
			T249_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T252_;
				tyObject_Con__mVYRtnERc9advo79cBQUudxg* T256_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T257_;
				T252_ = (NIM_BOOL)0;
				T252_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (T252_) goto LA253_;
				T252_ = NIM_FALSE;
				LA253_: ;
				if (!T252_) goto LA254_;
				T256_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
				T256_ = c;
				T257_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T260_;
					T260_ = (NIM_BOOL)0;
					T260_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T260_) goto LA261_;
					T257_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA258_;
				LA261_: ;
				{
					T257_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), mode);
				}
				LA258_: ;
				T249_ = processScope__ur1q32ALAU6hCaCkFnKb1w(T256_, (&tryScopeX60gensym125_), T257_);
			}
			goto LA250_;
			LA254_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym230_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym230_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T265_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym230_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym230_;
				resultX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				T265_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T265_ = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
				tmpX60gensym230_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, tryScopeX60gensym125_.parent, T265_, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym230_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
				{
					NIM_BOOL T268_;
					T268_ = (NIM_BOOL)0;
					T268_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T268_) goto LA269_;
					cpyX60gensym230_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym230_, (*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), NIM_TRUE);
				}
				goto LA266_;
				LA269_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T272_;
					nimZeroMem((void*)T272_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T272_[0] = tmpX60gensym230_;
					T272_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym125_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym230_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T272_, 2);
				}
				LA266_: ;
				{
					NI T275_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym230_;
					T275_ = (tryScopeX60gensym125_.vars ? tryScopeX60gensym125_.vars->Sup.len : 0);
					if (!(((NI) 0) < T275_)) goto LA276_;
					varSectionX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym230__2;
						NI i_12;
						NI L_7;
						NI T279_;
						tmpX60gensym230__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
						i_12 = ((NI) 0);
						T279_ = (tryScopeX60gensym125_.vars ? tryScopeX60gensym125_.vars->Sup.len : 0);
						L_7 = T279_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T282_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T283_;
								if (!(i_12 < L_7)) goto LA281;
								tmpX60gensym230__2 = &tryScopeX60gensym125_.vars->data[i_12];
								nimZeroMem((void*)T282_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T282_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym230__2));
								T282_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T282_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T283_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T283_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T282_, 3);
								add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym230_, T283_);
								i_12 += ((NI) 1);
							} LA281: ;
						}
					}
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, varSectionX60gensym230_);
				}
				LA276_: ;
				finSectionX60gensym230_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym230_;
					NI i_13;
					NI L_8;
					NI T285_;
					mX60gensym230_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T285_ = (tryScopeX60gensym125_.wasMoved ? tryScopeX60gensym125_.wasMoved->Sup.len : 0);
					L_8 = T285_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA287;
							mX60gensym230_ = &tryScopeX60gensym125_.wasMoved->data[i_13];
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym230_, (*mX60gensym230_));
							i_13 += ((NI) 1);
						} LA287: ;
					}
				}
				{
					NI iX60gensym230_;
					NI colontmp__9;
					NI T289_;
					NI res_4;
					iX60gensym230_ = (NI)0;
					colontmp__9 = (NI)0;
					T289_ = ((tryScopeX60gensym125_.final ? tryScopeX60gensym125_.final->Sup.len : 0)-1);
					colontmp__9 = T289_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA291;
							iX60gensym230_ = res_4;
							add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym230_, tryScopeX60gensym125_.final->data[iX60gensym230_]);
							res_4 -= ((NI) 1);
						} LA291: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T296_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T303_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T304_;
					if (!tryScopeX60gensym125_.needsTry) goto LA294_;
					nimZeroMem((void*)T296_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T296_[0] = cpyX60gensym230_;
					{
						NIM_BOOL T299_;
						T299_ = (NIM_BOOL)0;
						T299_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym230_).typ);
						if (!T299_) goto LA300_;
						T296_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA297_;
					LA300_: ;
					{
						T296_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, mode);
					}
					LA297_: ;
					T303_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T303_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T296_, 2);
					T304_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T304_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T303_, finSectionX60gensym230_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, T304_);
				}
				goto LA292_;
				LA294_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T306_;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, cpyX60gensym230_);
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, finSectionX60gensym230_);
					T306_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T309_;
						T309_ = (NIM_BOOL)0;
						T309_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*tmpX60gensym230_).typ);
						if (!T309_) goto LA310_;
						T306_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA307_;
					LA310_: ;
					{
						T306_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym230_, c, tryScopeX60gensym125_.parent, mode);
					}
					LA307_: ;
					add__P8dDSotTW25BkfbyspojGg(resultX60gensym230_, T306_);
				}
				LA292_: ;
				{
					NIM_BOOL T317_;
					if (!!((tryScopeX60gensym125_.parent == NIM_NIL))) goto LA315_;
					T317_ = (NIM_BOOL)0;
					T317_ = (*tryScopeX60gensym125_.parent).needsTry;
					if (T317_) goto LA318_;
					T317_ = tryScopeX60gensym125_.needsTry;
					LA318_: ;
					(*tryScopeX60gensym125_.parent).needsTry = T317_;
				}
				LA315_: ;
				T249_ = resultX60gensym230_;
			}
			LA250_: ;
			add__P8dDSotTW25BkfbyspojGg(result, T249_);
			{
				NI iX60gensym125__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym125__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym125__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym125__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym125__2;
						NI T322_;
						if (!(i_14 < colontmp__10)) goto LA321;
						iX60gensym125__5 = i_14;
						itX60gensym125__3 = (*n)._kind_6.sons->data[iX60gensym125__5];
						branchX60gensym125__3 = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(itX60gensym125__3);
						nimZeroMem((void*)(&branchScopeX60gensym125__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope__ni4yTthPfyagpkFgPFjv8Q(s, (&branchScopeX60gensym125__2));
						T322_ = (NI)0;
						T322_ = len__P89cqdlERShb9alU3iC0yj8wast(branchX60gensym125__3);
						{
							NIM_BOOL T325_;
							NIM_BOOL T326_;
							NI T327_;
							tyObject_Con__mVYRtnERc9advo79cBQUudxg* T332_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T333_;
							T325_ = (NIM_BOOL)0;
							T326_ = (NIM_BOOL)0;
							T327_ = (NI)0;
							T327_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							T326_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T327_ - ((NI) 1))]).typ);
							if (T326_) goto LA328_;
							T326_ = NIM_FALSE;
							LA328_: ;
							T325_ = T326_;
							if (T325_) goto LA329_;
							T325_ = ((*itX60gensym125__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA329_: ;
							if (!T325_) goto LA330_;
							T332_ = (tyObject_Con__mVYRtnERc9advo79cBQUudxg*)0;
							T332_ = c;
							T333_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T338_;
								if (!((*itX60gensym125__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA336_;
								T338_ = (NI)0;
								T338_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T333_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T338_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA334_;
							LA336_: ;
							{
								{
									NI T342_;
									NIM_BOOL T343_;
									NI T346_;
									T342_ = (NI)0;
									T342_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T343_ = (NIM_BOOL)0;
									T343_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T342_ - ((NI) 1))]).typ);
									if (!T343_) goto LA344_;
									T346_ = (NI)0;
									T346_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T333_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T346_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA340_;
								LA344_: ;
								{
									NI T348_;
									T348_ = (NI)0;
									T348_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
									T333_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T348_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), mode);
								}
								LA340_: ;
							}
							LA334_: ;
							asgnRef((void**) (&(*branchX60gensym125__3)._kind_6.sons->data[(NI)(T322_ - ((NI) 1))]), processScope__ur1q32ALAU6hCaCkFnKb1w(T332_, (&branchScopeX60gensym125__2), T333_));
						}
						goto LA323_;
						LA330_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym261_;
							NI T350_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym261_;
							NI T351_;
							tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T352_;
							NI T353_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym261_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym261_;
							NI T378_;
							T350_ = (NI)0;
							T350_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							resultX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T350_ - ((NI) 1))]).info);
							T351_ = (NI)0;
							T351_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							T352_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
							T352_ = (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T351_ - ((NI) 1))]).typ;
							T353_ = (NI)0;
							T353_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							tmpX60gensym261_ = getTemp__KB0wf28km02QmgKPPOnujQ(c, branchScopeX60gensym125__2.parent, T352_, (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))]).info);
							(*(*tmpX60gensym261_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 44)) & 63);
							{
								NI T356_;
								NIM_BOOL T357_;
								NI T360_;
								T356_ = (NI)0;
								T356_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T357_ = (NIM_BOOL)0;
								T357_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T356_ - ((NI) 1))]).typ);
								if (!T357_) goto LA358_;
								T360_ = (NI)0;
								T360_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								cpyX60gensym261_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(tmpX60gensym261_, (*itX60gensym125__3)._kind_6.sons->data[(NI)(T360_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), NIM_TRUE);
							}
							goto LA354_;
							LA358_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T362_;
								NI T363_;
								nimZeroMem((void*)T362_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T362_[0] = tmpX60gensym261_;
								T363_ = (NI)0;
								T363_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								T362_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw((*itX60gensym125__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))], c, (&branchScopeX60gensym125__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym261_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T362_, 2);
							}
							LA354_: ;
							{
								NI T366_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym261_;
								NI T369_;
								T366_ = (branchScopeX60gensym125__2.vars ? branchScopeX60gensym125__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T366_)) goto LA367_;
								T369_ = (NI)0;
								T369_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
								varSectionX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T369_ - ((NI) 1))]).info);
								{
									tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w** tmpX60gensym261__2;
									NI i_15;
									NI L_9;
									NI T371_;
									tmpX60gensym261__2 = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w**)0;
									i_15 = ((NI) 0);
									T371_ = (branchScopeX60gensym125__2.vars ? branchScopeX60gensym125__2.vars->Sup.len : 0);
									L_9 = T371_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T374_;
											NI T375_;
											NI T376_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T377_;
											if (!(i_15 < L_9)) goto LA373;
											tmpX60gensym261__2 = &branchScopeX60gensym125__2.vars->data[i_15];
											nimZeroMem((void*)T374_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T374_[0] = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*tmpX60gensym261__2));
											T375_ = (NI)0;
											T375_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
											T374_[1] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T375_ - ((NI) 1))]).info);
											T376_ = (NI)0;
											T376_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
											T374_[2] = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T376_ - ((NI) 1))]).info);
											T377_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T377_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T374_, 3);
											add__P8dDSotTW25BkfbyspojGg(varSectionX60gensym261_, T377_);
											i_15 += ((NI) 1);
										} LA373: ;
									}
								}
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, varSectionX60gensym261_);
							}
							LA367_: ;
							T378_ = (NI)0;
							T378_ = len__P89cqdlERShb9alU3iC0yj8wast(itX60gensym125__3);
							finSectionX60gensym261_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym125__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym261_;
								NI i_16;
								NI L_10;
								NI T380_;
								mX60gensym261_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T380_ = (branchScopeX60gensym125__2.wasMoved ? branchScopeX60gensym125__2.wasMoved->Sup.len : 0);
								L_10 = T380_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA382;
										mX60gensym261_ = &branchScopeX60gensym125__2.wasMoved->data[i_16];
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym261_, (*mX60gensym261_));
										i_16 += ((NI) 1);
									} LA382: ;
								}
							}
							{
								NI iX60gensym261_;
								NI colontmp__11;
								NI T384_;
								NI res_5;
								iX60gensym261_ = (NI)0;
								colontmp__11 = (NI)0;
								T384_ = ((branchScopeX60gensym125__2.final ? branchScopeX60gensym125__2.final->Sup.len : 0)-1);
								colontmp__11 = T384_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA386;
										iX60gensym261_ = res_5;
										add__P8dDSotTW25BkfbyspojGg(finSectionX60gensym261_, branchScopeX60gensym125__2.final->data[iX60gensym261_]);
										res_5 -= ((NI) 1);
									} LA386: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T391_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T392_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T393_;
								if (!branchScopeX60gensym125__2.needsTry) goto LA389_;
								nimZeroMem((void*)T391_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T391_[0] = cpyX60gensym261_;
								T391_[1] = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym261_, c, branchScopeX60gensym125__2.parent, mode);
								T392_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T392_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T391_, 2);
								T393_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T393_ = newTryFinally__WU9bcLfpyH2zHBQqGau0nNQ(T392_, finSectionX60gensym261_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, T393_);
							}
							goto LA387_;
							LA389_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T395_;
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, cpyX60gensym261_);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, finSectionX60gensym261_);
								T395_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T395_ = p__PTsSyPSfjwGJy89cb8X3Ylw(tmpX60gensym261_, c, branchScopeX60gensym125__2.parent, mode);
								add__P8dDSotTW25BkfbyspojGg(resultX60gensym261_, T395_);
							}
							LA387_: ;
							{
								NIM_BOOL T400_;
								if (!!((branchScopeX60gensym125__2.parent == NIM_NIL))) goto LA398_;
								T400_ = (NIM_BOOL)0;
								T400_ = (*branchScopeX60gensym125__2.parent).needsTry;
								if (T400_) goto LA401_;
								T400_ = branchScopeX60gensym125__2.needsTry;
								LA401_: ;
								(*branchScopeX60gensym125__2.parent).needsTry = T400_;
							}
							LA398_: ;
							asgnRef((void**) (&(*branchX60gensym125__3)._kind_6.sons->data[(NI)(T322_ - ((NI) 1))]), resultX60gensym261_);
						}
						LA323_: ;
						add__P8dDSotTW25BkfbyspojGg(result, branchX60gensym125__3);
						i_14 += ((NI) 1);
					} LA321: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2))) goto LA405_;
		{
			NIM_BOOL T409_;
			T409_ = (NIM_BOOL)0;
			T409_ = containsConstSeq__3rzbQm9aIqUljCutfRquODA(n);
			if (!T409_) goto LA410_;
			result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(n, c, s);
		}
		goto LA407_;
		LA410_: ;
		{
			if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA413_;
			result = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		}
		goto LA407_;
		LA413_: ;
		{
			NIM_BOOL T416_;
			NIM_BOOL T417_;
			NIM_BOOL T418_;
			NIM_BOOL T419_;
			NIM_BOOL T424_;
			T416_ = (NIM_BOOL)0;
			T417_ = (NIM_BOOL)0;
			T418_ = (NIM_BOOL)0;
			T419_ = (NIM_BOOL)0;
			T419_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T419_)) goto LA420_;
			T419_ = isSinkParam__Ye2MiAptq3GrXxTQeyXNeA_4ast((*n)._kind_4.sym);
			LA420_: ;
			T418_ = T419_;
			if (T418_) goto LA421_;
			T418_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
			LA421_: ;
			T417_ = T418_;
			if (!(T417_)) goto LA422_;
			T417_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
			LA422_: ;
			T416_ = T417_;
			if (!(T416_)) goto LA423_;
			T424_ = (NIM_BOOL)0;
			T424_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T424_)) goto LA425_;
			T424_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ(n, (&(*c)));
			LA425_: ;
			T416_ = !(T424_);
			LA423_: ;
			if (!T416_) goto LA426_;
			result = destructiveMoveVar__BDQdBbgsT8pCjPIGSq869bQ_3(n, c, s);
		}
		goto LA407_;
		LA426_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60))) goto LA429_;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NIM_BOOL T433_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T434_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T436_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nTyp;
				T433_ = (NIM_BOOL)0;
				T434_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T434_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36099165763184912));
				T433_ = !(((*T434_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T433_)) goto LA435_;
				T436_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T436_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
				T433_ = ((*T436_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA435_: ;
				if (!T433_) goto LA437_;
				nTyp = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp);
			}
			goto LA431_;
			LA437_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
			}
			LA431_: ;
		}
		goto LA407_;
		LA429_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67))) goto LA441_;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
		}
		goto LA407_;
		LA441_: ;
		{
			if (!((*n).typ == NIM_NIL)) goto LA444_;
			result = p__PTsSyPSfjwGJy89cb8X3Ylw(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		}
		goto LA407_;
		LA444_: ;
		{
			result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(n, c, s);
		}
		LA407_: ;
	}
	goto LA1_;
	LA405_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
		{
			NIM_BOOL isRefConstr;
			NIM_BOOL T449_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T451_;
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m;
			T449_ = (NIM_BOOL)0;
			T449_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
			if (!(T449_)) goto LA450_;
			T451_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T451_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273744));
			T449_ = ((*T451_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			LA450_: ;
			isRefConstr = T449_;
			{
				if (!isRefConstr) goto LA454_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			goto LA452_;
			LA454_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA457_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA452_;
			LA457_: ;
			{
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA452_: ;
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NI i_17;
				NI colontmp__12;
				NI colontmp__13;
				NI i_18;
				i_17 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__13 = (NI)0;
				colontmp__12 = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155));
				colontmp__13 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_18 = colontmp__12;
				{
					while (1) {
						if (!(i_18 < colontmp__13)) goto LA462;
						i_17 = i_18;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA465_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA463_;
						LA465_: ;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA468_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)], c, s, m));
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA463_;
						LA468_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_17]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_17], c, s, m));
						}
						LA463_: ;
						i_18 += ((NI) 1);
					} LA462: ;
				}
			}
			{
				NIM_BOOL T473_;
				T473_ = (NIM_BOOL)0;
				T473_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				if (!(T473_)) goto LA474_;
				T473_ = isRefConstr;
				LA474_: ;
				if (!T473_) goto LA475_;
				result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
			}
			LA475_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			NI inSpawn;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* parameters;
			NI L_11;
			inSpawn = (*c).inSpawn;
			{
				NIM_BOOL T480_;
				T480_ = (NIM_BOOL)0;
				T480_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T480_)) goto LA481_;
				T480_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 194));
				LA481_: ;
				if (!T480_) goto LA482_;
				(*c).inSpawn += ((NI) 1);
			}
			goto LA478_;
			LA482_: ;
			{
				if (!(((NI) 0) < (*c).inSpawn)) goto LA485_;
				(*c).inSpawn -= ((NI) 1);
			}
			goto LA478_;
			LA485_: ;
			LA478_: ;
			parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
			{
				if (!!((parameters == NIM_NIL))) goto LA489_;
				L_11 = len__5mJADrRYkP3r9auuiuDZN9cQast(parameters);
			}
			goto LA487_;
			LA489_: ;
			{
				L_11 = ((NI) 0);
			}
			LA487_: ;
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_19;
				NI colontmp__14;
				NI i_20;
				i_19 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						if (!(i_20 < colontmp__14)) goto LA494;
						i_19 = i_20;
						{
							NIM_BOOL T497_;
							T497_ = (NIM_BOOL)0;
							T497_ = (i_19 < L_11);
							if (!(T497_)) goto LA498_;
							T497_ = isCompileTimeOnly__F9ciDIanrWYqbJ4rgLlNAAg_3types((*parameters).sons->data[i_19]);
							LA498_: ;
							if (!T497_) goto LA499_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), (*n)._kind_6.sons->data[i_19]);
						}
						goto LA495_;
						LA499_: ;
						{
							NIM_BOOL T502_;
							NIM_BOOL T504_;
							T502_ = (NIM_BOOL)0;
							T502_ = (i_19 < L_11);
							if (!(T502_)) goto LA503_;
							T504_ = (NIM_BOOL)0;
							T504_ = isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11((*parameters).sons->data[i_19]);
							if (T504_) goto LA505_;
							T504_ = (((NI) 0) < inSpawn);
							LA505_: ;
							T502_ = T504_;
							LA503_: ;
							if (!T502_) goto LA506_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_19], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
						}
						goto LA495_;
						LA506_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_19], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA495_: ;
						i_20 += ((NI) 1);
					} LA494: ;
				}
			}
			{
				NIM_BOOL T511_;
				T511_ = (NIM_BOOL)0;
				T511_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T511_)) goto LA512_;
				T511_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33));
				LA512_: ;
				if (!T511_) goto LA513_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyTree__Dsjo9bte8vGxzhtcSrsTyiQ((*n)._kind_6.sons->data[((NI) 0)]));
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* destroyOld;
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T519_;
					if (!((176 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA517_;
					destroyOld = genDestroy__eh46xmsJR79buekuc0oQIdQ((&(*c)), (*result)._kind_6.sons->data[((NI) 1)]);
					nimZeroMem((void*)T519_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T519_[0] = destroyOld;
					T519_[1] = result;
					result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T519_, 2);
				}
				LA517_: ;
			}
			goto LA509_;
			LA513_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			LA509_: ;
			{
				NIM_BOOL T523_;
				T523_ = (NIM_BOOL)0;
				T523_ = canRaise__qAerQ9bftuf70QDk42UIFXg_2((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T523_) goto LA524_;
				(*s).needsTry = NIM_TRUE;
			}
			LA524_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA528_;
				result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
			}
			LA528_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA533_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			goto LA531_;
			LA533_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2((*n)._kind_6.sons->data[((NI) 0)]));
			}
			LA531_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
		{
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i_21;
					NI colontmp__15;
					NI i_22;
					i_21 = (NI)0;
					colontmp__15 = (NI)0;
					colontmp__15 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					i_22 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri;
							NI T541_;
							if (!(i_22 < colontmp__15)) goto LA540;
							i_21 = i_22;
							it = (*n)._kind_6.sons->data[i_21];
							T541_ = (NI)0;
							T541_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
							ri = (*it)._kind_6.sons->data[(NI)(T541_ - ((NI) 1))];
							{
								NIM_BOOL T544_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T548_;
								T544_ = (NIM_BOOL)0;
								T544_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
								if (!(T544_)) goto LA545_;
								T544_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*ri).typ);
								LA545_: ;
								if (!T544_) goto LA546_;
								x = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw_2((*c).graph, it, (*c).owner);
								T548_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T548_ = p__PTsSyPSfjwGJy89cb8X3Ylw(x, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
								add__P8dDSotTW25BkfbyspojGg(result, T548_);
							}
							goto LA542_;
							LA546_: ;
							{
								NIM_BOOL T550_;
								NIM_BOOL T551_;
								NIM_BOOL T554_;
								T550_ = (NIM_BOOL)0;
								T551_ = (NIM_BOOL)0;
								T551_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
								if (!(T551_)) goto LA552_;
								T551_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
								LA552_: ;
								T550_ = T551_;
								if (!(T550_)) goto LA553_;
								T554_ = (NIM_BOOL)0;
								T554_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*it)._kind_6.sons->data[((NI) 0)], (&(*c)));
								T550_ = !(T554_);
								LA553_: ;
								if (!T550_) goto LA555_;
								{
									NI j;
									NI colontmp__16;
									NI T558_;
									NI i_23;
									j = (NI)0;
									colontmp__16 = (NI)0;
									T558_ = (NI)0;
									T558_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
									colontmp__16 = (NI)(T558_ - ((NI) 2));
									i_23 = ((NI) 0);
									{
										while (1) {
											if (!(i_23 < colontmp__16)) goto LA560;
											j = i_23;
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
												v = (*it)._kind_6.sons->data[j];
												{
													if (!((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA564_;
													{
														if (!(((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 27))&63U)))!=0)) goto LA568_;
														goto LA561;
													}
													LA568_: ;
													pVarTopLevel__GROdgBo9cGIJkwoEZ3yTrew(v, c, s, ri, result);
												}
												goto LA562_;
												LA564_: ;
												{
													{
														NIM_BOOL T573_;
														T573_ = (NIM_BOOL)0;
														T573_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
														if (!(T573_)) goto LA574_;
														T573_ = (((NI) 0) < (*c).inLoop);
														LA574_: ;
														if (!T573_) goto LA575_;
														ri = genDefaultCall__jDZnpAAtuqqpzyrgS2mXUg((*v).typ, (&(*c)), (*v).info);
													}
													LA575_: ;
													{
														tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T581_;
														if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA579_;
														T581_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
														T581_ = moveOrCopy__cVidUei9a721N3SvKgbe69bw(v, ri, c, s, NIM_FALSE);
														add__P8dDSotTW25BkfbyspojGg(result, T581_);
													}
													LA579_: ;
												}
												LA562_: ;
											} LA561: ;
											i_23 += ((NI) 1);
										} LA560: ;
									}
								}
							}
							goto LA542_;
							LA555_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v_2;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itCopy;
								NI T587_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T588_;
								v_2 = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
								itCopy = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(it);
								{
									NI j_2;
									NI colontmp__17;
									NI T584_;
									NI i_24;
									j_2 = (NI)0;
									colontmp__17 = (NI)0;
									T584_ = (NI)0;
									T584_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
									colontmp__17 = (NI)(T584_ - ((NI) 1));
									i_24 = ((NI) 0);
									{
										while (1) {
											if (!(i_24 < colontmp__17)) goto LA586;
											j_2 = i_24;
											add__P8dDSotTW25BkfbyspojGg(itCopy, (*it)._kind_6.sons->data[j_2]);
											i_24 += ((NI) 1);
										} LA586: ;
									}
								}
								T587_ = (NI)0;
								T587_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
								T588_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T588_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*it)._kind_6.sons->data[(NI)(T587_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								add__P8dDSotTW25BkfbyspojGg(itCopy, T588_);
								add__P8dDSotTW25BkfbyspojGg(v_2, itCopy);
								add__P8dDSotTW25BkfbyspojGg(result, v_2);
							}
							LA542_: ;
							i_22 += ((NI) 1);
						} LA540: ;
					}
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
		{
			{
				NIM_BOOL T592_;
				NIM_BOOL T593_;
				NIM_BOOL T596_;
				T592_ = (NIM_BOOL)0;
				T593_ = (NIM_BOOL)0;
				T593_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (!(T593_)) goto LA594_;
				T593_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51)));
				LA594_: ;
				T592_ = T593_;
				if (!(T592_)) goto LA595_;
				T596_ = (NIM_BOOL)0;
				T596_ = isCursor__U5eKhGaSBKhqqv1iUFOkVQ((*n)._kind_6.sons->data[((NI) 0)], (&(*c)));
				T592_ = !(T596_);
				LA595_: ;
				if (!T592_) goto LA597_;
				{
					NIM_BOOL T601_;
					NIM_BOOL T602_;
					T601_ = (NIM_BOOL)0;
					T602_ = (NIM_BOOL)0;
					T602_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T602_)) goto LA603_;
					T602_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA603_: ;
					T601_ = T602_;
					if (!(T601_)) goto LA604_;
					T601_ = ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*(*n)._kind_6.sons->data[((NI) 1)])._kind_4.sym);
					LA604_: ;
					if (!T601_) goto LA605_;
					result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*n).info);
				}
				goto LA599_;
				LA605_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T612_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T613_;
					{
						if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA610_;
						cycleCheck__VtuMNEAsvSYfebdKUbJwfA(n, c);
					}
					LA610_: ;
					T612_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T612_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
					T613_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T613_ = T612_;
					result = moveOrCopy__cVidUei9a721N3SvKgbe69bw(T613_, (*n)._kind_6.sons->data[((NI) 1)], c, s, NIM_FALSE);
				}
				LA599_: ;
			}
			goto LA590_;
			LA597_: ;
			{
				NIM_BOOL T615_;
				T615_ = (NIM_BOOL)0;
				T615_ = isDiscriminantField__OTZyO2oJpdYpHVBZuRXuRQ_2((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T615_) goto LA616_;
				result = genDiscriminantAsgn__SmwM1MUiEEj81Il1sHk1nA(c, s, n);
			}
			goto LA590_;
			LA616_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T619_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T620_;
				result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ_2(n);
				T619_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T619_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				add__P8dDSotTW25BkfbyspojGg(result, T619_);
				T620_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T620_ = p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add__P8dDSotTW25BkfbyspojGg(result, T620_);
			}
			LA590_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt__BDQdBbgsT8pCjPIGSq869bQ(n, c, s);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35);
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
		{
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_25;
				NI colontmp__18;
				NI i_26;
				i_25 = (NI)0;
				colontmp__18 = (NI)0;
				colontmp__18 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_26 = ((NI) 0);
				{
					while (1) {
						if (!(i_26 < colontmp__18)) goto LA627;
						i_25 = i_26;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_25]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_25], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_26 += ((NI) 1);
					} LA627: ;
				}
			}
			{
				NIM_BOOL T630_;
				T630_ = (NIM_BOOL)0;
				T630_ = !(((*n).typ == NIM_NIL));
				if (!(T630_)) goto LA631_;
				T630_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA631_: ;
				if (!T630_) goto LA632_;
				{
					if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA636_;
					result = ensureDestruction__3uQEgn0k2q4kiGbXS12GXw(result, n, c, s);
				}
				LA636_: ;
			}
			LA632_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			{
				NIM_BOOL T641_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T642_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T644_;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* nTyp_2;
				T641_ = (NIM_BOOL)0;
				T642_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T642_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36099165763184912));
				T641_ = !(((*T642_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T641_)) goto LA643_;
				T644_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T644_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n)._kind_6.sons->data[((NI) 1)]).typ, IL64(36099165763184912));
				T641_ = ((*T644_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA643_: ;
				if (!T641_) goto LA645_;
				nTyp_2 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp_2);
			}
			goto LA639_;
			LA645_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
			}
			LA639_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			{
				NI i_27;
				NI colontmp__19;
				NI i_28;
				i_27 = (NI)0;
				colontmp__19 = (NI)0;
				colontmp__19 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_28 = ((NI) 1);
				{
					while (1) {
						if (!(i_28 < colontmp__19)) goto LA652;
						i_27 = i_28;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_27]), (*n)._kind_6.sons->data[i_27]);
						i_28 += ((NI) 1);
					} LA652: ;
				}
			}
			{
				NIM_BOOL T655_;
				T655_ = (NIM_BOOL)0;
				T655_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T655_)) goto LA656_;
				T655_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA656_: ;
				if (!T655_) goto LA657_;
				{
					NIM_BOOL T661_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T665_;
					NI T666_;
					T661_ = (NIM_BOOL)0;
					T661_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
					if (!(T661_)) goto LA662_;
					T661_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
					LA662_: ;
					if (!T661_) goto LA663_;
					T665_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T665_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T666_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T666_]), T665_);
				}
				goto LA659_;
				LA663_: ;
				{
					result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(result, c, s);
				}
				LA659_: ;
			}
			LA657_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_29;
				NI colontmp__20;
				NI i_30;
				i_29 = (NI)0;
				colontmp__20 = (NI)0;
				colontmp__20 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_30 = ((NI) 0);
				{
					while (1) {
						if (!(i_30 < colontmp__20)) goto LA671;
						i_29 = i_30;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_29]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_29], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_30 += ((NI) 1);
					} LA671: ;
				}
			}
			{
				NIM_BOOL T674_;
				T674_ = (NIM_BOOL)0;
				T674_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T674_)) goto LA675_;
				T674_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&(*c)), (*n).typ);
				LA675_: ;
				if (!T674_) goto LA676_;
				{
					NIM_BOOL T680_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T684_;
					NI T685_;
					T680_ = (NIM_BOOL)0;
					T680_ = isAnalysableFieldAccess__scxG86YRKjb7mFYULG1CyQ(n, (*c).owner);
					if (!(T680_)) goto LA681_;
					T680_ = isLastRead__cXlunxLFt2VNVqtuIWbJWg_2(n, c);
					LA681_: ;
					if (!T680_) goto LA682_;
					T684_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T684_ = genWasMoved__Tj0baeAMp9cue8UExOxI59bg(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T685_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T685_]), T684_);
				}
				goto LA678_;
				LA682_: ;
				{
					result = passCopyToSink__BDQdBbgsT8pCjPIGSq869bQ_2(result, c, s);
				}
				LA678_: ;
			}
			LA676_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_31;
				NI colontmp__21;
				NI i_32;
				i_31 = (NI)0;
				colontmp__21 = (NI)0;
				colontmp__21 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_32 = ((NI) 0);
				{
					while (1) {
						if (!(i_32 < colontmp__21)) goto LA690;
						i_31 = i_32;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_31]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_31], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_32 += ((NI) 1);
					} LA690: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
		{
			(*s).needsTry = NIM_TRUE;
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			{
				NI i_33;
				NI colontmp__22;
				NI i_34;
				i_33 = (NI)0;
				colontmp__22 = (NI)0;
				colontmp__22 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_34 = ((NI) 0);
				{
					while (1) {
						if (!(i_34 < colontmp__22)) goto LA695;
						i_33 = i_34;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_33]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[i_33], c, s, mode));
						i_34 += ((NI) 1);
					} LA695: ;
				}
			}
			(*s).needsTry = NIM_TRUE;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 0)]);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		{
			result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__PTsSyPSfjwGJy89cb8X3Ylw((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
			{
				NI i_35;
				NI colontmp__23;
				NI i_36;
				i_35 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				i_36 = ((NI) 1);
				{
					while (1) {
						if (!(i_36 < colontmp__23)) goto LA700;
						i_35 = i_36;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_35]), (*n)._kind_6.sons->data[i_35]);
						i_36 += ((NI) 1);
					} LA700: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
		{
			result = n;
		}
		break;
		default:
		{
			tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T703_;
			NimStringDesc* T704_;
			T703_ = (*n).info;
			T704_ = (NimStringDesc*)0;
			T704_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 40);
appendString(T704_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36));
appendString(T704_, reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
			internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*c).graph).config, T703_, T704_, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37);
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, injectDestructorCalls__vFi0WDJke19caFCX1tc1FkQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Con__mVYRtnERc9advo79cBQUudxg c;
	tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ scope;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 38))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
		if (!(T5_)) goto LA6_;
		T5_ = isInlineIterator__EhCVbB6PynSh7XFAFVMiJAast((*owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	c.owner = owner;
	c.graph = g;
	c.g = constructCfg__gYr9aUQRxyROXIIqCy8VmDg(owner, n);
	{
		if (!(((*(*g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 27))&31U)))!=0)) goto LA11_;
		computeCursors__x9aeseeV2cxKOgYDfLuYbXA(owner, n, (*g).config);
	}
	LA11_: ;
	nimZeroMem((void*)(&scope), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
	body = p__PTsSyPSfjwGJy89cb8X3Ylw(n, (&c), (&scope), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
		if (!((126976 &((NU32)1<<((NU)((*owner).kind)&31U)))!=0)) goto LA15_;
		params = (*(*owner).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
					if (!(i_2 < colontmp_)) goto LA19;
					i = i_2;
					t = (*(*(*params)._kind_6.sons->data[i])._kind_4.sym).typ;
					{
						NIM_BOOL T22_;
						tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T24_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
						NI T28_;
						T22_ = (NIM_BOOL)0;
						T22_ = isSinkTypeForParam__YPjOkGV9axAnGR3UfLeWZ1g_11(t);
						if (!(T22_)) goto LA23_;
						T24_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
						T24_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(70368744177664));
						T22_ = hasDestructor__s3DnXtISoFCBs0uMQckThQinjectdestructors((&c), T24_);
						LA23_: ;
						if (!T22_) goto LA25_;
						T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T27_ = genDestroy__eh46xmsJR79buekuc0oQIdQ((&c), (*params)._kind_6.sons->data[i]);
						scope.final = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(scope.final), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T28_ = scope.final->Sup.len++;
						asgnRef((void**) (&scope.final->data[T28_]), T27_);
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA15_: ;
	T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T29_ = processScope__ur1q32ALAU6hCaCkFnKb1w((&c), (&scope), body);
	result = optimize__VCZeNpSpiHRRAv9coeudyIg(T29_);
	{
		NIM_BOOL T32_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T35_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T36_;
		T32_ = (NIM_BOOL)0;
		T32_ = nsthasKey((*(*g).config).arcToExpand, (*(*owner).name).s);
		if (!T32_) goto LA33_;
		nimZeroMem((void*)T35_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T35_[0] = copyString(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38));
		T35_[1] = copyString((*(*owner).name).s);
		echoBinSafe(T35_, 2);
		nimZeroMem((void*)T36_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T36_[0] = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(result, 516);
		echoBinSafe(T36_, 1);
		echoBinSafe(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39, 1);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
