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

/* 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_Ctx__Sws9awoFPhDR7PA2lS1LQ5A tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg;
typedef struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ;
typedef struct tySequence__9brg1xNurxcus33lU4IE1Dw tySequence__9brg1xNurxcus33lU4IE1Dw;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct RootObj RootObj;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
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 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;

/* section: NIM_merge_TYPES */
struct tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A {
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* stateVarSym;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmpResultSym;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* unrollFinallySym;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* curExcSym;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* states;
NI blockLevel;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* stateLoopLabel;
NI exitStateIdx;
NI tempVarId;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempVars;
tySequence__qwqHTkRvwhrRyENtudHQ7g* exceptionTable;
NIM_BOOL hasExceptions;
NI curExcHandlingState;
NI nearestFinally;
};
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg {
NI elems;
NI counter;
NI max;
tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* head;
tySequence__9brg1xNurxcus33lU4IE1Dw* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__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_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;
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;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
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 NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _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 NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
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;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
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__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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__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];
};

/* section: NIM_merge_PROC_HEADERS */
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getEnvParam__0hs55xLsSn1sbFSXWwel1A)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* routine);
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(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, createClosureIterStateType__YeSbRn4y243XNGGtCU6V6g)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* iter);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toStmtList__BSqD59bZdLojBsNEMT9aVzXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__vokyXY9cZDshCSxFKChhG9bg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(NI, newState__KR326D2V0A9c8rAN3F9amGLQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntLit__TuFlkTIoJNHT6fCcycYtSw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI64 value);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
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*, lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* needsSplit);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__GrcFG9bOeET47xEWduCWw0g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ* Result);
static N_INLINE(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, add__VtZAvh3FTvs4RsUIdDz79aQ)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newTempVar__9crPEzQBTT3GMtBXwq7HxMg)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newEnvVar__33upYIjNEK4gS1UIzFj0Qw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NimStringDesc* name, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, addVar__qOCBdprWtK4hxer73SEdQA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, addUniqueField__CLL3aqLIY5XbgRQPQDI3cw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* obj, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__so3YwDvudPgOjZgj88h9a1g)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* output, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* input, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, rawIndirectAccess__8aXgrGQvaIrhwp6o9cuBYoA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprBody, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNotCall__qb0UTd3LRTRUDLaWZGAI3w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__AFd9c9cdRrILXl9anrr9aRvqig)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
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*, getSysSym__9bvw79ck1FDiWpnBYh88rEfw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__SoLjz0OznJM6S0ACeFDkTg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksAndContinuesInWhile__PPKdLcsjHM2xtTQ57VQRdQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* before, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksInBlock__U5wYjNmg2Tmx1BJW2OE3eA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* label, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, collectExceptState__eyQv3n2M3569coxZwjgCbIwclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, callCodegenProc__6cD4vACMYqPEkcqC9cypTrw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg1, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg2, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg3, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* optionalArgs);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOr__lX4ijAVTzsRg8N1Lp9atJqQclosureiters)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNullifyCurExc__FlUh1Xo9bXJFuG43AoVOEVw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCurExcAccess__cqBE2u681LMwPlL6VXs4dA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getFinallyNode__oib8dpvzVeiy5KmNWs9ajBw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw)(NI64 intVal, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTmpResultAccess__cqBE2u681LMwPlL6VXs4dA_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEndFinallyNode__FlUh1Xo9bXJFuG43AoVOEVw_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getClosureIterResult__9coyF0wpG1VqYcJq7Zk1fgQ_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* iter);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__ZQwdGiE9bcxShuJtHMjr5sQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__EtZNQZ9ahFW9aGXseKeYzr0Q)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipStmtList__aKHUfk8lGnMfwXRkkphHzQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipThroughEmptyStates__oib8dpvzVeiy5KmNWs9ajBw_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__Pi4UWe7a9cL5b9cA6VgWjduw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateIdx);
N_LIB_PRIVATE N_NIMCALL(void, delete__TgBXLpGAm0rF5SZ3bkKUbg)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, delete__zhhe9bbLyE7Vk89co9bd9cMSBg)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, del__TgBXLpGAm0rF5SZ3bkKUbg_2)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformStateAssignments__oib8dpvzVeiy5KmNWs9ajBw_4)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__Mi9crg20nwOahuXiRT6sVew)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateNo);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__AWbFLel9cjt8d7ZAwfIyCdA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toValue);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAccess__cqBE2u681LMwPlL6VXs4dA_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getStateField__UJpIDWVzs220Reaf7HOAmw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__mq9bimW9b7LrVw9b9a6qcSmGUA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoStateLoop__oib8dpvzVeiy5KmNWs9ajBw_5)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoTryExcept__eyQv3n2M3569coxZwjgCbIw_2closureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCatchBody__MnQ8Kzhxn5rtRo9btObf9b9bgclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, createExceptionTable__MszPr5bFWBE4wcbymAi00gclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newArrayType__642gHRMR9a1eZ1whzH7tKfQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);

/* section: NIM_merge_DATA */
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_2, ":state", 6);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_3, ":stateLoop", 10);
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
static NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q TM__slVvvIjx75ivXdMpHiE9c9aQ_4 = {((NU16) 0), ((NI16) -1), ((NI32) -1)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_5, "lowerStmtListExprs: constr typ.isNil", 36);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_7, "D:\\a\\nim4py\\nim4py\\Nim\\compiler\\closureiters.nim", 48);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_6 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 463),
((NI) 35)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_8, ":tmpSlLower", 11);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_9, "lowerStmtListExpr(nkIf): ", 25);
extern TNimType NTI__G4E4Gxe7oI2Cm03rkiOzQw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_10 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 541),
((NI) 23)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_11, "lowerStmtListExpr(nkTryStmt): ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_12 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 571),
((NI) 25)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_13, "lowerStmtListExpr(nkCaseStmt): ", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_14 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 603),
((NI) 25)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_15, "not", 3);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_16, "true", 4);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_17, "yield in expr not lowered", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_18 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 1307),
((NI) 17)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_19, "transformClosureIteratorBody != s", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_20 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 877),
((NI) 23)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_21, "of", 2);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_22, "getCurrentException", 19);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_23, "or", 2);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_24, ":curExc", 7);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_25, ":unrollFinally", 14);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_26, ":tmpResult", 10);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_27, "==", 2);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_28, "closureIterSetupExc", 19);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_29, "transformReturnsInTry != tryBody", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_30 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 986),
((NI) 21)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_31, "transformClosureIteratorBody != tryBody", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_32 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 988),
((NI) 21)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_33, "transformReturnsInTry != exceptBody", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_34 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 993),
((NI) 21)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_35, "transformClosureIteratorBody != exceptBody", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_36 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 995),
((NI) 21)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_37, "transformClosureIteratorBody != finallyBody", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_38 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 1000),
((NI) 21)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_39, "closure iter ", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_40 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
((NI) 1003),
((NI) 17)}
;
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_41, "<", 1);
STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_42, "-", 1);

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;

/* section: NIM_merge_PROCS */
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toStmtList__BSqD59bZdLojBsNEMT9aVzXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126)))) goto LA3_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, newState__KR326D2V0A9c8rAN3F9amGLQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
	NI result;
	NI T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resLit;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	NI T2_;
	NI T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	result = T1_;
	resLit = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*ctx).g, (*n).info, ((NI64) (result)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	s = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(s, resLit);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(s, n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*ctx).states = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ctx).states), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
	T2_ = (*ctx).states->Sup.len++;
	(*ctx).states->data[T2_] = s;
	(*ctx).exceptionTable = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*ctx).exceptionTable), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	T3_ = (*ctx).exceptionTable->Sup.len++;
	(*ctx).exceptionTable->data[T3_] = (*ctx).curExcHandlingState;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		if (!!((gotoOut == 0))) goto LA6_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = gotoOut;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*ctx).g, (*gotoOut).info, ((NI64) (result)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(T8_, T9_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA6_: ;
	}BeforeRet_: ;
	return result;
}
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(void, unsureAsgnRef)(void** dest, void* src) {
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__GrcFG9bOeET47xEWduCWw0g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ* Result) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*Result).Field0 = T1_;
	(*(*Result).Field0)._kind_6.sons = NIM_NIL;
	n_2 = n;
	{
		while (1) {
			NI T4_;
			NI T5_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA3;
			add__VtZAvh3FTvs4RsUIdDz79aQ((&(*(*Result).Field0)._kind_6.sons), (*n_2)._kind_6.sons->data, ((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0));
			T4_ = (NI)0;
			T4_ = len__P89cqdlERShb9alU3iC0yj8wast((*Result).Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*(*Result).Field0)._kind_6.sons = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*(*Result).Field0)._kind_6.sons)->Sup, (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(T4_ - ((NI) 1)))));
			T5_ = (NI)0;
			T5_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			n_2 = (*n_2)._kind_6.sons->data[(NI)(T5_ - ((NI) 1))];
		} LA3: ;
	}
	(*Result).Field1 = n_2;
	}BeforeRet_: ;
}
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_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newEnvVar__33upYIjNEK4gS1UIzFj0Qw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NimStringDesc* name, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T1_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*(*ctx).g).cache, name);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), T1_, (*ctx).fn, (*(*ctx).fn).info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = typ;
	{
		if (!!(((*ctx).stateVarSym == 0))) goto LA4_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
			if (!((*ctx).tempVars == 0)) goto LA8_;
			T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T10_ = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ctx).fn).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*ctx).tempVars = T10_;
			T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T11_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			addVar__qOCBdprWtK4hxer73SEdQA((*ctx).tempVars, T11_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
	}
	goto LA2_;
	LA4_: ;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* envParam;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
		envParam = getEnvParam__0hs55xLsSn1sbFSXWwel1A((*ctx).fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T13_ = lastSon__Bdq9aiV9buvJtPvmOc0OR5JQ((*envParam).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = addUniqueField__CLL3aqLIY5XbgRQPQDI3cw(T13_, result, (*(*ctx).g).cache);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA2_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(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__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, newTempVar__9crPEzQBTT3GMtBXwq7HxMg)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T1_ = (tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A*)0;
	T1_ = ctx;
	T2_ = (NimStringDesc*)0;
	T3_ = (NimStringDesc*)0;
	T3_ = nimIntToStr((*ctx).tempVarId);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 11);
appendString(T2_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_8));
appendString(T2_, T3_);
	result = newEnvVar__33upYIjNEK4gS1UIzFj0Qw(T1_, T2_, typ);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*ctx).tempVarId += ((NI) 1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	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);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*ctx).stateVarSym == 0)) goto LA3_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = getEnvParam__0hs55xLsSn1sbFSXWwel1A((*ctx).fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = rawIndirectAccess__8aXgrGQvaIrhwp6o9cuBYoA(T6_, s, (*(*ctx).fn).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(s);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw(ctx, s);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T2_;
	T1_[1] = v;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = (*v).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__so3YwDvudPgOjZgj88h9a1g)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* output, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* input, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!((*input).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
		exprToStmtList__GrcFG9bOeET47xEWduCWw0g(input, (&T5_));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		st = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		st = T5_.Field0;
		res = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		res = T5_.Field1;
		add__P8dDSotTW25BkfbyspojGg(output, st);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg(ctx, sym, res);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(output, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg(ctx, sym, input);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(output, T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprBody, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* res) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*exprBody).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	addExprAssgn__so3YwDvudPgOjZgj88h9a1g(ctx, result, exprBody, res);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNotCall__qb0UTd3LRTRUDLaWZGAI3w)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg(g, (*e).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_15), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T2_, (*e).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	T1_[1] = e;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg(g, (*e).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T4_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* needsSplit) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		NIM_BOOL ns;
		ns = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T6_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i], (&ns));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T6_;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
		{
			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T11_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex;
			if (!ns) goto LA9_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			nimZeroMem((void*)(&T11_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
			exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T11_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			st = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			st = T11_.Field0;
			ex = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			ex = T11_.Field1;
			add__P8dDSotTW25BkfbyspojGg(result, st);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = ex;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA9_: ;
		(*needsSplit) = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		NIM_BOOL ns_2;
		ns_2 = NIM_FALSE;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
					if (!(i_4 < colontmp__2)) goto LA15;
					i_3 = i_4;
					T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T16_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_3], (&ns_2));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_3] = T16_;
					i_4 += ((NI) 1);
				} LA15: ;
			}
		}
		{
			if (!ns_2) goto LA19_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*n).typ == 0)) goto LA23_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_5), TM__slVvvIjx75ivXdMpHiE9c9aQ_6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA23_: ;
			(*result).typ = (*n).typ;
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA27;
						i_5 = i_6;
						switch ((*(*n)._kind_6.sons->data[i_5]).kind) {
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
						{
							{
								tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T33_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_2;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_2;
								if (!((*(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA31_;
								nimZeroMem((void*)(&T33_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
								exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)], (&T33_));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								st_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								st_2 = T33_.Field0;
								ex_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								ex_2 = T33_.Field1;
								add__P8dDSotTW25BkfbyspojGg(result, st_2);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)] = ex_2;
							}
							LA31_: ;
						}
						break;
						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
						{
							tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T35_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_3;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_3;
							nimZeroMem((void*)(&T35_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
							exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[i_5], (&T35_));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							st_3 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							st_3 = T35_.Field0;
							ex_3 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							ex_3 = T35_.Field1;
							add__P8dDSotTW25BkfbyspojGg(result, st_3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*n)._kind_6.sons->data[i_5] = ex_3;
						}
						break;
						default:
						{
						}
						break;
						}
						i_6 += ((NI) 1);
					} LA27: ;
				}
			}
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA19_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		NIM_BOOL ns_3;
		ns_3 = NIM_FALSE;
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_8 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T41_;
					if (!(i_8 < colontmp__4)) goto LA40;
					i_7 = i_8;
					T41_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T41_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_7], (&ns_3));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_7] = T41_;
					i_8 += ((NI) 1);
				} LA40: ;
			}
		}
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmp;
			NIM_BOOL isExpr;
			NIM_BOOL T46_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curS;
			if (!ns_3) goto LA44_;
			(*needsSplit) = NIM_TRUE;
			tmp = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
			T46_ = (NIM_BOOL)0;
			T46_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			isExpr = !(T46_);
			{
				if (!isExpr) goto LA49_;
				tmp = newTempVar__9crPEzQBTT3GMtBXwq7HxMg(ctx, (*n).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = (*n).typ;
			}
			goto LA47_;
			LA49_: ;
			{
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA47_: ;
			curS = result;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
				branch = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i_9;
					NI colontmp__5;
					NI i_10;
					i_9 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_10 = ((NI) 0);
					{
						while (1) {
							if (!(i_10 < colontmp__5)) goto LA55;
							i_9 = i_10;
							branch = (*n)._kind_6.sons->data[i_9];
							switch ((*branch).kind) {
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
							{
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBranch;
									tyArray__jlWPjgtbdjE069arIWHC9c9bg T61_;
									if (!isExpr) goto LA59_;
									branchBody = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*branch).info);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									addExprAssgn__so3YwDvudPgOjZgj88h9a1g((&(*ctx)), branchBody, (*branch)._kind_6.sons->data[((NI) 0)], tmp);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									nimZeroMem((void*)T61_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
									T61_[0] = branchBody;
									newBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T61_, 1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(curS, newBranch);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								goto LA57_;
								LA59_: ;
								{
									add__P8dDSotTW25BkfbyspojGg(curS, branch);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
								LA57_: ;
							}
							break;
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBranch_2;
								newBranch_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T68_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_4;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBody;
									tyArray__jlWPjgtbdjE069arIWHC9c9bg T69_;
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T70_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newIf;
									tyArray__jlWPjgtbdjE069arIWHC9c9bg T71_;
									if (!((*(*branch)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA66_;
									nimZeroMem((void*)(&T68_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
									exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*branch)._kind_6.sons->data[((NI) 0)], (&T68_));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									st_4 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									st_4 = T68_.Field0;
									res = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									res = T68_.Field1;
									nimZeroMem((void*)T69_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
									T69_[0] = st_4;
									elseBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T69_, 1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									nimZeroMem((void*)T70_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T70_[0] = res;
									T70_[1] = (*branch)._kind_6.sons->data[((NI) 1)];
									newBranch_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T70_, 2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									nimZeroMem((void*)T71_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
									T71_[0] = newBranch_2;
									newIf = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T71_, 1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									add__P8dDSotTW25BkfbyspojGg(elseBody, newIf);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newElse;
										if (!((*curS).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92))) goto LA74_;
										newElse = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (*branch).info);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(newElse, elseBody);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(curS, newElse);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA72_;
									LA74_: ;
									{
										add__P8dDSotTW25BkfbyspojGg(curS, elseBody);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									LA72_: ;
									curS = newIf;
								}
								goto LA64_;
								LA66_: ;
								{
									newBranch_2 = branch;
									{
										if (!((*curS).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92))) goto LA80_;
										add__P8dDSotTW25BkfbyspojGg(curS, newBranch_2);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									}
									goto LA78_;
									LA80_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newIf_2;
										tyArray__jlWPjgtbdjE069arIWHC9c9bg T83_;
										nimZeroMem((void*)T83_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
										T83_[0] = newBranch_2;
										newIf_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T83_, 1);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										add__P8dDSotTW25BkfbyspojGg(curS, newIf_2);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										curS = newIf_2;
									}
									LA78_: ;
								}
								LA64_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody_2;
									if (!isExpr) goto LA86_;
									branchBody_2 = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*branch)._kind_6.sons->data[((NI) 1)]).info);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									addExprAssgn__so3YwDvudPgOjZgj88h9a1g((&(*ctx)), branchBody_2, (*branch)._kind_6.sons->data[((NI) 1)], tmp);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*newBranch_2)._kind_6.sons->data[((NI) 1)] = branchBody_2;
								}
								LA86_: ;
							}
							break;
							default:
							{
								NimStringDesc* T89_;
								T89_ = (NimStringDesc*)0;
								T89_ = rawNewString((reprEnum((NI)(*branch).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 25);
appendString(T89_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_9));
appendString(T89_, reprEnum((NI)(*branch).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, T89_, TM__slVvvIjx75ivXdMpHiE9c9aQ_10);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							break;
							}
							i_10 += ((NI) 1);
						} LA55: ;
					}
				}
			}
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T94_;
				if (!isExpr) goto LA92_;
				T94_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T94_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T94_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA92_: ;
		}
		LA44_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		NIM_BOOL ns_4;
		ns_4 = NIM_FALSE;
		{
			NI i_11;
			NI colontmp__6;
			NI i_12;
			i_11 = (NI)0;
			colontmp__6 = (NI)0;
			colontmp__6 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_12 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
					if (!(i_12 < colontmp__6)) goto LA98;
					i_11 = i_12;
					T99_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T99_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_11], (&ns_4));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_11] = T99_;
					i_12 += ((NI) 1);
				} LA98: ;
			}
		}
		{
			NIM_BOOL isExpr_2;
			NIM_BOOL T104_;
			if (!ns_4) goto LA102_;
			(*needsSplit) = NIM_TRUE;
			T104_ = (NIM_BOOL)0;
			T104_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			isExpr_2 = !(T104_);
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmp_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T124_;
				if (!isExpr_2) goto LA107_;
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = (*n).typ;
				tmp_2 = newTempVar__9crPEzQBTT3GMtBXwq7HxMg(ctx, (*n).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T109_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T109_ = convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A((&(*ctx)), (*n)._kind_6.sons->data[((NI) 0)], tmp_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T109_;
				{
					NI i_13;
					NI colontmp__7;
					NI i_14;
					i_13 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_14 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_2;
							if (!(i_14 < colontmp__7)) goto LA112;
							i_13 = i_14;
							branch_2 = (*n)._kind_6.sons->data[i_13];
							switch ((*branch_2).kind) {
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87):
							{
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T118_;
									if (!((*(*branch_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4))) goto LA116_;
									T118_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T118_ = convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 1)], tmp_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*branch_2)._kind_6.sons->data[((NI) 1)] = T118_;
								}
								goto LA114_;
								LA116_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T120_;
									T120_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T120_ = convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 0)], tmp_2);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									(*branch_2)._kind_6.sons->data[((NI) 0)] = T120_;
								}
								LA114_: ;
							}
							break;
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107):
							{
							}
							break;
							default:
							{
								NimStringDesc* T123_;
								T123_ = (NimStringDesc*)0;
								T123_ = rawNewString((reprEnum((NI)(*branch_2).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch_2).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 30);
appendString(T123_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_11));
appendString(T123_, reprEnum((NI)(*branch_2).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, T123_, TM__slVvvIjx75ivXdMpHiE9c9aQ_12);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							break;
							}
							i_14 += ((NI) 1);
						} LA112: ;
					}
				}
				add__P8dDSotTW25BkfbyspojGg(result, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T124_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T124_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp_2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T124_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA107_: ;
		}
		LA102_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		NIM_BOOL ns_5;
		ns_5 = NIM_FALSE;
		{
			NI i_15;
			NI colontmp__8;
			NI i_16;
			i_15 = (NI)0;
			colontmp__8 = (NI)0;
			colontmp__8 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_16 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
					if (!(i_16 < colontmp__8)) goto LA128;
					i_15 = i_16;
					T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T129_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_15], (&ns_5));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_15] = T129_;
					i_16 += ((NI) 1);
				} LA128: ;
			}
		}
		{
			NIM_BOOL isExpr_3;
			NIM_BOOL T134_;
			if (!ns_5) goto LA132_;
			(*needsSplit) = NIM_TRUE;
			T134_ = (NIM_BOOL)0;
			T134_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			isExpr_3 = !(T134_);
			{
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmp_3;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T155_;
				if (!isExpr_3) goto LA137_;
				tmp_3 = newTempVar__9crPEzQBTT3GMtBXwq7HxMg(ctx, (*n).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = (*n).typ;
				{
					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T143_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_5;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_4;
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA141_;
					nimZeroMem((void*)(&T143_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
					exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T143_));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					st_5 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					st_5 = T143_.Field0;
					ex_4 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					ex_4 = T143_.Field1;
					add__P8dDSotTW25BkfbyspojGg(result, st_5);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[((NI) 0)] = ex_4;
				}
				LA141_: ;
				{
					NI i_17;
					NI colontmp__9;
					NI i_18;
					i_17 = (NI)0;
					colontmp__9 = (NI)0;
					colontmp__9 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_18 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_3;
							if (!(i_18 < colontmp__9)) goto LA146;
							i_17 = i_18;
							branch_3 = (*n)._kind_6.sons->data[i_17];
							switch ((*branch_3).kind) {
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
							{
								NI T148_;
								NI T149_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T150_;
								T148_ = (NI)0;
								T148_ = len__P89cqdlERShb9alU3iC0yj8wast(branch_3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T149_ = (NI)0;
								T149_ = len__P89cqdlERShb9alU3iC0yj8wast(branch_3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T150_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T150_ = convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A((&(*ctx)), (*branch_3)._kind_6.sons->data[(NI)(T149_ - ((NI) 1))], tmp_3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*branch_3)._kind_6.sons->data[(NI)(T148_ - ((NI) 1))] = T150_;
							}
							break;
							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T152_;
								T152_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T152_ = convertExprBodyToAsgn__8iK2FV1BxkbejgFIhd9an1A((&(*ctx)), (*branch_3)._kind_6.sons->data[((NI) 0)], tmp_3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*branch_3)._kind_6.sons->data[((NI) 0)] = T152_;
							}
							break;
							default:
							{
								NimStringDesc* T154_;
								T154_ = (NimStringDesc*)0;
								T154_ = rawNewString((reprEnum((NI)(*branch_3).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch_3).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 31);
appendString(T154_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_13));
appendString(T154_, reprEnum((NI)(*branch_3).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
								internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, T154_, TM__slVvvIjx75ivXdMpHiE9c9aQ_14);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							break;
							}
							i_18 += ((NI) 1);
						} LA146: ;
					}
				}
				add__P8dDSotTW25BkfbyspojGg(result, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T155_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T155_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp_3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T155_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA137_: ;
		}
		LA132_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		NIM_BOOL ns_6;
		ns_6 = NIM_FALSE;
		{
			NI i_19;
			NI colontmp__10;
			NI i_20;
			i_19 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_20 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T160_;
					if (!(i_20 < colontmp__10)) goto LA159;
					i_19 = i_20;
					T160_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T160_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_19], (&ns_6));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_19] = T160_;
					i_20 += ((NI) 1);
				} LA159: ;
			}
		}
		{
			NIM_BOOL isExpr_4;
			NIM_BOOL T165_;
			if (!ns_6) goto LA163_;
			(*needsSplit) = NIM_TRUE;
			T165_ = (NIM_BOOL)0;
			T165_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			isExpr_4 = !(T165_);
			{
				if (!isExpr_4) goto LA168_;
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*result).typ = (*n).typ;
			}
			goto LA166_;
			LA168_: ;
			{
				result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA166_: ;
			{
				NIM_BOOL T173_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmp_4;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T182_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBody;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T192_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T193_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifNode;
				tyArray__jlWPjgtbdjE069arIWHC9c9bg T194_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T195_;
				T173_ = (NIM_BOOL)0;
				T173_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T173_)) goto LA174_;
				T173_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110));
				LA174_: ;
				if (!T173_) goto LA175_;
				cond = (*n)._kind_6.sons->data[((NI) 1)];
				{
					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T181_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_6;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_5;
					if (!((*cond).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA179_;
					nimZeroMem((void*)(&T181_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
					exprToStmtList__GrcFG9bOeET47xEWduCWw0g(cond, (&T181_));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					st_6 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					st_6 = T181_.Field0;
					ex_5 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					ex_5 = T181_.Field1;
					add__P8dDSotTW25BkfbyspojGg(result, st_6);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					cond = ex_5;
				}
				LA179_: ;
				tmp_4 = newTempVar__9crPEzQBTT3GMtBXwq7HxMg(ctx, (*cond).typ);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T182_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T182_ = newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg((&(*ctx)), tmp_4, cond);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T182_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				check = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp_4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110))) goto LA185_;
					check = newNotCall__qb0UTd3LRTRUDLaWZGAI3w((*ctx).g, check);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA185_: ;
				cond = (*n)._kind_6.sons->data[((NI) 2)];
				ifBody = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*cond).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T191_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_7;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_6;
					if (!((*cond).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA189_;
					nimZeroMem((void*)(&T191_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
					exprToStmtList__GrcFG9bOeET47xEWduCWw0g(cond, (&T191_));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					st_7 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					st_7 = T191_.Field0;
					ex_6 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					ex_6 = T191_.Field1;
					add__P8dDSotTW25BkfbyspojGg(ifBody, st_7);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					cond = ex_6;
				}
				LA189_: ;
				T192_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T192_ = newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg((&(*ctx)), tmp_4, cond);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(ifBody, T192_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T193_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T193_[0] = check;
				T193_[1] = ifBody;
				ifBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T193_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T194_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
				T194_[0] = ifBranch;
				ifNode = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T194_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, ifNode);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T195_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T195_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp_4);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, T195_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA171_;
			LA175_: ;
			{
				{
					NI i_21;
					NI colontmp__11;
					NI i_22;
					i_21 = (NI)0;
					colontmp__11 = (NI)0;
					colontmp__11 = len__P89cqdlERShb9alU3iC0yj8wast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_22 = ((NI) 0);
					{
						while (1) {
							if (!(i_22 < colontmp__11)) goto LA199;
							i_21 = i_22;
							{
								tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T204_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_8;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_7;
								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA202_;
								nimZeroMem((void*)(&T204_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
								exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[i_21], (&T204_));
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								st_8 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								st_8 = T204_.Field0;
								ex_7 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								ex_7 = T204_.Field1;
								add__P8dDSotTW25BkfbyspojGg(result, st_8);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*n)._kind_6.sons->data[i_21] = ex_7;
							}
							LA202_: ;
							{
								tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tmp_5;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T209_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T210_;
								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA207_;
								tmp_5 = newTempVar__9crPEzQBTT3GMtBXwq7HxMg(ctx, (*(*n)._kind_6.sons->data[i_21]).typ);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T209_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T209_ = newEnvVarAsgn__DGZgiXKrd7mdarKGWpCBJg((&(*ctx)), tmp_5, (*n)._kind_6.sons->data[i_21]);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								add__P8dDSotTW25BkfbyspojGg(result, T209_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								T210_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T210_ = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), tmp_5);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								(*n)._kind_6.sons->data[i_21] = T210_;
							}
							LA207_: ;
							i_22 += ((NI) 1);
						} LA199: ;
					}
				}
				add__P8dDSotTW25BkfbyspojGg(result, n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA171_: ;
		}
		LA163_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
			c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_23;
				NI colontmp__12;
				NI i_24;
				i_23 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__12 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_24 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSect;
						NIM_BOOL ns_7;
						NI T216_;
						NI T217_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T218_;
						if (!(i_24 < colontmp__12)) goto LA215;
						i_23 = i_24;
						c = (*n)._kind_6.sons->data[i_23];
						varSect = newNodeI__vokyXY9cZDshCSxFKChhG9bg((*n).kind, (*n).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(varSect, c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						ns_7 = NIM_FALSE;
						T216_ = (NI)0;
						T216_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T217_ = (NI)0;
						T217_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T218_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T218_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*c)._kind_6.sons->data[(NI)(T217_ - ((NI) 1))], (&ns_7));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*c)._kind_6.sons->data[(NI)(T216_ - ((NI) 1))] = T218_;
						{
							NI T223_;
							tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T224_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_9;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_8;
							NI T225_;
							if (!ns_7) goto LA221_;
							(*needsSplit) = NIM_TRUE;
							T223_ = (NI)0;
							T223_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							nimZeroMem((void*)(&T224_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
							exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*c)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))], (&T224_));
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							st_9 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							st_9 = T224_.Field0;
							ex_8 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							ex_8 = T224_.Field1;
							add__P8dDSotTW25BkfbyspojGg(result, st_9);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							T225_ = (NI)0;
							T225_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							(*c)._kind_6.sons->data[(NI)(T225_ - ((NI) 1))] = ex_8;
						}
						LA221_: ;
						add__P8dDSotTW25BkfbyspojGg(result, varSect);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						i_24 += ((NI) 1);
					} LA215: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		NIM_BOOL ns_8;
		ns_8 = NIM_FALSE;
		{
			NI i_25;
			NI colontmp__13;
			NI i_26;
			i_25 = (NI)0;
			colontmp__13 = (NI)0;
			colontmp__13 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_26 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T230_;
					if (!(i_26 < colontmp__13)) goto LA229;
					i_25 = i_26;
					T230_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T230_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_25], (&ns_8));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_25] = T230_;
					i_26 += ((NI) 1);
				} LA229: ;
			}
		}
		{
			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T235_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_10;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_9;
			if (!ns_8) goto LA233_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			nimZeroMem((void*)(&T235_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
			exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T235_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			st_10 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			st_10 = T235_.Field0;
			ex_9 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			ex_9 = T235_.Field1;
			add__P8dDSotTW25BkfbyspojGg(result, st_10);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = ex_9;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA233_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NIM_BOOL ns_9;
		ns_9 = NIM_FALSE;
		{
			NI i_27;
			NI colontmp__14;
			NI colontmp__15;
			NI i_28;
			i_27 = (NI)0;
			colontmp__14 = (NI)0;
			colontmp__15 = (NI)0;
			colontmp__14 = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61));
			colontmp__15 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_28 = colontmp__14;
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T240_;
					if (!(i_28 < colontmp__15)) goto LA239;
					i_27 = i_28;
					T240_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T240_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_27], (&ns_9));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_27] = T240_;
					i_28 += ((NI) 1);
				} LA239: ;
			}
		}
		{
			NI T245_;
			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T246_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_11;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_10;
			NI T247_;
			if (!ns_9) goto LA243_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = (*n).typ;
			T245_ = (NI)0;
			T245_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			nimZeroMem((void*)(&T246_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
			exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[(NI)(T245_ - ((NI) 1))], (&T246_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			st_11 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			st_11 = T246_.Field0;
			ex_10 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			ex_10 = T246_.Field1;
			add__P8dDSotTW25BkfbyspojGg(result, st_11);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T247_ = (NI)0;
			T247_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[(NI)(T247_ - ((NI) 1))] = ex_10;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA243_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		NIM_BOOL ns_10;
		ns_10 = NIM_FALSE;
		{
			NI i_29;
			NI colontmp__16;
			NI i_30;
			i_29 = (NI)0;
			colontmp__16 = (NI)0;
			colontmp__16 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_30 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T252_;
					if (!(i_30 < colontmp__16)) goto LA251;
					i_29 = i_30;
					T252_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T252_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_29], (&ns_10));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_29] = T252_;
					i_30 += ((NI) 1);
				} LA251: ;
			}
		}
		{
			if (!ns_10) goto LA255_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T261_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_12;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_11;
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA259_;
				nimZeroMem((void*)(&T261_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
				exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T261_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				st_12 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				st_12 = T261_.Field0;
				ex_11 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ex_11 = T261_.Field1;
				add__P8dDSotTW25BkfbyspojGg(result, st_12);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = ex_11;
			}
			LA259_: ;
			{
				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T266_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_13;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_12;
				if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA264_;
				nimZeroMem((void*)(&T266_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
				exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 1)], (&T266_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				st_13 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				st_13 = T266_.Field0;
				ex_12 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ex_12 = T266_.Field1;
				add__P8dDSotTW25BkfbyspojGg(result, st_13);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 1)] = ex_12;
			}
			LA264_: ;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA255_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NIM_BOOL lhsNeedsSplit;
		NIM_BOOL rhsNeedsSplit;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T268_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T269_;
		lhsNeedsSplit = NIM_FALSE;
		rhsNeedsSplit = NIM_FALSE;
		T268_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T268_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&lhsNeedsSplit));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T268_;
		T269_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T269_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&rhsNeedsSplit));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T269_;
		{
			NIM_BOOL T272_;
			T272_ = (NIM_BOOL)0;
			T272_ = lhsNeedsSplit;
			if (T272_) goto LA273_;
			T272_ = rhsNeedsSplit;
			LA273_: ;
			if (!T272_) goto LA274_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T280_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_14;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_13;
				if (!lhsNeedsSplit) goto LA278_;
				nimZeroMem((void*)(&T280_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
				exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T280_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				st_14 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				st_14 = T280_.Field0;
				ex_13 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ex_13 = T280_.Field1;
				add__P8dDSotTW25BkfbyspojGg(result, st_14);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = ex_13;
			}
			LA278_: ;
			{
				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T285_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_15;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_14;
				if (!rhsNeedsSplit) goto LA283_;
				nimZeroMem((void*)(&T285_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
				exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 1)], (&T285_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				st_15 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				st_15 = T285_.Field0;
				ex_14 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ex_14 = T285_.Field1;
				add__P8dDSotTW25BkfbyspojGg(result, st_15);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 1)] = ex_14;
			}
			LA283_: ;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA274_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		NIM_BOOL condNeedsSplit;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T287_;
		NIM_BOOL bodyNeedsSplit;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T288_;
		condNeedsSplit = NIM_FALSE;
		T287_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T287_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&condNeedsSplit));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T287_;
		bodyNeedsSplit = NIM_FALSE;
		T288_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T288_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&bodyNeedsSplit));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T288_;
		{
			NIM_BOOL T291_;
			T291_ = (NIM_BOOL)0;
			T291_ = condNeedsSplit;
			if (T291_) goto LA292_;
			T291_ = bodyNeedsSplit;
			LA292_: ;
			if (!T291_) goto LA293_;
			(*needsSplit) = NIM_TRUE;
			{
				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T299_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_16;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_15;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* brk;
				tyArray__jlWPjgtbdjE069arIWHC9c9bg T300_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_4;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T301_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T302_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check_2;
				tyArray__jlWPjgtbdjE069arIWHC9c9bg T303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBody;
				tyArray__T6RKPw8xfAeNaoei9aZGzXg T304_;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T305_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T306_;
				if (!condNeedsSplit) goto LA297_;
				nimZeroMem((void*)(&T299_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
				exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T299_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				st_16 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				st_16 = T299_.Field0;
				ex_15 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				ex_15 = T299_.Field1;
				nimZeroMem((void*)T300_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
				T300_[0] = (*(*ctx).g).emptyNode;
				brk = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), T300_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T301_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T302_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T302_ = newNotCall__qb0UTd3LRTRUDLaWZGAI3w((*ctx).g, ex_15);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T301_[0] = T302_;
				T301_[1] = brk;
				branch_4 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T301_, 2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T303_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
				T303_[0] = branch_4;
				check_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T303_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimZeroMem((void*)T304_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
				T304_[0] = st_16;
				T304_[1] = check_2;
				T304_[2] = (*n)._kind_6.sons->data[((NI) 1)];
				newBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T304_, 3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T305_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T305_ = getSysSym__9bvw79ck1FDiWpnBYh88rEfw((*ctx).g, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_16));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T306_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T306_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T305_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*n)._kind_6.sons->data[((NI) 0)] = T306_;
				(*n)._kind_6.sons->data[((NI) 1)] = newBody;
			}
			LA297_: ;
		}
		LA293_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NIM_BOOL ns_11;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T308_;
		ns_11 = NIM_FALSE;
		T308_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T308_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&ns_11));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 0)] = T308_;
		{
			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T313_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_17;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_16;
			if (!ns_11) goto LA311_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = (*n).typ;
			nimZeroMem((void*)(&T313_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
			exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 0)], (&T313_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			st_17 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			st_17 = T313_.Field0;
			ex_16 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			ex_16 = T313_.Field1;
			add__P8dDSotTW25BkfbyspojGg(result, st_17);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n)._kind_6.sons->data[((NI) 0)] = ex_16;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA311_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	{
		NIM_BOOL ns_12;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T315_;
		ns_12 = NIM_FALSE;
		T315_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T315_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&ns_12));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*n)._kind_6.sons->data[((NI) 1)] = T315_;
		{
			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T320_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_18;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_17;
			if (!ns_12) goto LA318_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*result).typ = (*n).typ;
			nimZeroMem((void*)(&T320_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
			exprToStmtList__GrcFG9bOeET47xEWduCWw0g((*n)._kind_6.sons->data[((NI) 1)], (&T320_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			st_18 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			st_18 = T320_.Field0;
			ex_17 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			ex_17 = T320_.Field1;
			transitionSonsKind__uOUBEXn0RV9b64TOM9ajIDag(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 112));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			(*n).typ = NIM_NIL;
			(*n)._kind_6.sons->data[((NI) 1)] = st_18;
			add__P8dDSotTW25BkfbyspojGg(result, n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, ex_17);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA318_: ;
	}
	break;
	default:
	{
		{
			NI i_31;
			NI colontmp__17;
			NI i_32;
			i_31 = (NI)0;
			colontmp__17 = (NI)0;
			colontmp__17 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_32 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T325_;
					if (!(i_32 < colontmp__17)) goto LA324;
					i_31 = i_32;
					T325_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T325_ = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ(ctx, (*n)._kind_6.sons->data[i_31], needsSplit);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_31] = T325_;
					i_32 += ((NI) 1);
				} LA324: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__SoLjz0OznJM6S0ACeFDkTg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	default:
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
			c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA7;
						i = i_2;
						c = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T10_;
							T10_ = (NIM_BOOL)0;
							T10_ = hasYields__SoLjz0OznJM6S0ACeFDkTg_2(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T10_) goto LA11_;
							result = NIM_TRUE;
							goto LA4;
						}
						LA11_: ;
						i_2 += ((NI) 1);
					} LA7: ;
				}
			}
		} LA4: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NIM_BOOL T5_;
			T5_ = (NIM_BOOL)0;
			T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_2ast((*n).typ);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T5_) goto LA6_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
				c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA11;
							i = i_2;
							c = (*n)._kind_6.sons->data[i];
							{
								NIM_BOOL T14_;
								T14_ = (NIM_BOOL)0;
								T14_ = hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T14_) goto LA15_;
								result = NIM_TRUE;
								goto BeforeRet_;
							}
							LA15_: ;
							i_2 += ((NI) 1);
						} LA11: ;
					}
				}
			}
		}
		goto LA3_;
		LA6_: ;
		{
			result = hasYields__SoLjz0OznJM6S0ACeFDkTg_2(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA21;
					i_3 = i_4;
					{
						NIM_BOOL T24_;
						T24_ = (NIM_BOOL)0;
						T24_ = hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg((*n)._kind_6.sons->data[i_3]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T24_) goto LA25_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA25_: ;
					i_4 += ((NI) 1);
				} LA21: ;
			}
		}
	}
	break;
	default:
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c_2;
			c_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA31;
						i_5 = i_6;
						c_2 = (*n)._kind_6.sons->data[i_5];
						{
							NIM_BOOL T34_;
							T34_ = (NIM_BOOL)0;
							T34_ = hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg(c_2);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T34_) goto LA35_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA35_: ;
						i_6 += ((NI) 1);
					} LA31: ;
				}
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = toStmtList__BSqD59bZdLojBsNEMT9aVzXw(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !(((*(*result)._kind_6.sons->data[(NI)(T6_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156)));
		LA5_: ;
		if (!T3_) goto LA7_;
		add__P8dDSotTW25BkfbyspojGg(result, gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksAndContinuesInWhile__PPKdLcsjHM2xtTQ57VQRdQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* before, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111):
	{
		result = before;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		(*ctx).blockLevel += ((NI) 1);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = transformBreaksAndContinuesInWhile__PPKdLcsjHM2xtTQ57VQRdQ(ctx, (*result)._kind_6.sons->data[((NI) 1)], before, after);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T5_;
		(*ctx).blockLevel -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		{
			if (!((*ctx).blockLevel == ((NI) 0))) goto LA9_;
			result = after;
		}
		LA9_: ;
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
					if (!(i_2 < colontmp_)) goto LA14;
					i = i_2;
					T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T15_ = transformBreaksAndContinuesInWhile__PPKdLcsjHM2xtTQ57VQRdQ(ctx, (*n)._kind_6.sons->data[i], before, after);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T15_;
					i_2 += ((NI) 1);
				} LA14: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksInBlock__U5wYjNmg2Tmx1BJW2OE3eA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* label, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		(*ctx).blockLevel += ((NI) 1);
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = transformBreaksInBlock__U5wYjNmg2Tmx1BJW2OE3eA(ctx, (*result)._kind_6.sons->data[((NI) 1)], label, after);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T3_;
		(*ctx).blockLevel -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA7_;
			{
				if (!((*ctx).blockLevel == ((NI) 0))) goto LA11_;
				result = after;
			}
			LA11_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*label).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T16_)) goto LA17_;
				T16_ = ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*label)._kind_4.sym);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = after;
			}
			LA18_: ;
		}
		LA5_: ;
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
					if (!(i_2 < colontmp_)) goto LA23;
					i = i_2;
					T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T24_ = transformBreaksInBlock__U5wYjNmg2Tmx1BJW2OE3eA(ctx, (*n)._kind_6.sons->data[i], label, after);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T24_;
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOr__lX4ijAVTzsRg8N1Lp9atJqQclosureiters)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg(g, (*a).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_23), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	T1_[1] = a;
	T1_[2] = b;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg(g, (*a).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T4_;
	(*result).info = (*a).info;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCurExcAccess__cqBE2u681LMwPlL6VXs4dA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
		if (!((*ctx).curExcSym == 0)) goto LA3_;
		T5_ = (tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A*)0;
		T5_ = ctx;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = callCodegenProc__6cD4vACMYqPEkcqC9cypTrw((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_22), TM__slVvvIjx75ivXdMpHiE9c9aQ_4, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T7_ = newEnvVar__33upYIjNEK4gS1UIzFj0Qw(T5_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_24), (*T6_).typ);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*ctx).curExcSym = T7_;
	}
	LA3_: ;
	result = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), (*ctx).curExcSym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNullifyCurExc__FlUh1Xo9bXJFuG43AoVOEVw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curExc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nilnode;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	curExc = newCurExcAccess__cqBE2u681LMwPlL6VXs4dA(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*curExc).info = info;
	nilnode = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*nilnode).typ = (*curExc).typ;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T1_[0] = curExc;
	T1_[1] = nilnode;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, collectExceptState__eyQv3n2M3569coxZwjgCbIwclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt;
	tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	ifStmt = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	g = (*ctx).g;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
		c = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					c = (*n)._kind_6.sons->data[i];
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
						NI T35_;
						if (!((*c).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87))) goto LA7_;
						ifBranch = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						{
							NI T11_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
							T11_ = (NI)0;
							T11_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!(((NI) 1) < T11_)) goto LA12_;
							cond = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								colontmp__2 = (NI)(T15_ - ((NI) 1));
								i_4 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nextCond;
										tyArray__T6RKPw8xfAeNaoei9aZGzXg T18_;
										tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T19_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
										tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T22_;
										if (!(i_4 < colontmp__2)) goto LA17;
										i_3 = i_4;
										nimZeroMem((void*)T18_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
										T19_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
										T19_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg(g, (*c).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_21), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T20_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T19_);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T18_[0] = T20_;
										T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
										T21_ = callCodegenProc__6cD4vACMYqPEkcqC9cypTrw(g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_22), TM__slVvvIjx75ivXdMpHiE9c9aQ_4, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T18_[1] = T21_;
										T18_[2] = (*c)._kind_6.sons->data[i_3];
										nextCond = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T18_, 3);
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										T22_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
										T22_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
										if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										(*nextCond).typ = T22_;
										(*nextCond).info = (*c).info;
										{
											if (!(cond == 0)) goto LA25_;
											cond = nextCond;
										}
										goto LA23_;
										LA25_: ;
										{
											cond = newOr__lX4ijAVTzsRg8N1Lp9atJqQclosureiters(g, cond, nextCond);
											if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
										}
										LA23_: ;
										i_4 += ((NI) 1);
									} LA17: ;
								}
							}
							ifBranch = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (*c).info);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__P8dDSotTW25BkfbyspojGg(ifBranch, cond);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						goto LA9_;
						LA12_: ;
						{
							{
								NI T31_;
								T31_ = (NI)0;
								T31_ = len__P89cqdlERShb9alU3iC0yj8wast(ifStmt);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!(T31_ == ((NI) 0))) goto LA32_;
								ifStmt = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								ifBranch = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							goto LA29_;
							LA32_: ;
							{
								ifBranch = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (*c).info);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
							LA29_: ;
						}
						LA9_: ;
						T35_ = (NI)0;
						T35_ = len__P89cqdlERShb9alU3iC0yj8wast(c);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(ifBranch, (*c)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						add__P8dDSotTW25BkfbyspojGg(ifStmt, ifBranch);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	{
		NI T38_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T41_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
		T38_ = (NI)0;
		T38_ = len__P89cqdlERShb9alU3iC0yj8wast(ifStmt);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!((T38_ == ((NI) 0)))) goto LA39_;
		nimZeroMem((void*)T41_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T42_ = newNullifyCurExc__FlUh1Xo9bXJFuG43AoVOEVw(ctx, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T41_[0] = T42_;
		T41_[1] = ifStmt;
		result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T41_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA36_;
	LA39_: ;
	{
		result = (*(*ctx).g).emptyNode;
	}
	LA36_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getFinallyNode__oib8dpvzVeiy5KmNWs9ajBw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA4_;
		result = (*result)._kind_6.sons->data[((NI) 0)];
	}
	goto LA2_;
	LA4_: ;
	{
		result = (*(*ctx).g).emptyNode;
	}
	LA2_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* T5_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T6_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
		if (!((*ctx).unrollFinallySym == 0)) goto LA3_;
		T5_ = (tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A*)0;
		T5_ = ctx;
		T6_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T6_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T7_ = newEnvVar__33upYIjNEK4gS1UIzFj0Qw(T5_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_25), T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*ctx).unrollFinallySym = T7_;
	}
	LA3_: ;
	result = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), (*ctx).unrollFinallySym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTmpResultAccess__cqBE2u681LMwPlL6VXs4dA_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		if (!((*ctx).tmpResultSym == 0)) goto LA3_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = newEnvVar__33upYIjNEK4gS1UIzFj0Qw(ctx, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_26), (*(*(*ctx).fn).typ).sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*ctx).tmpResultSym = T5_;
	}
	LA3_: ;
	result = newEnvVarAccess__7rupMNyLb9cZQT0jVrPTGUw((&(*ctx)), (*ctx).tmpResultSym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* goto_1;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
			asgn = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T3_ = newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2(ctx, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(asgn, T3_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T5_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(IL64(1), T4_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(asgn, T5_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, asgn);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgnTmpResult;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
			asgnTmpResult = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T10_ = newTmpResultAccess__cqBE2u681LMwPlL6VXs4dA_2(ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(asgnTmpResult, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74))) goto LA13_;
				x = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
			}
			goto LA11_;
			LA13_: ;
			{
				x = (*n)._kind_6.sons->data[((NI) 0)];
			}
			LA11_: ;
			add__P8dDSotTW25BkfbyspojGg(asgnTmpResult, x);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, asgnTmpResult);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA8_: ;
		T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = newNullifyCurExc__FlUh1Xo9bXJFuG43AoVOEVw(ctx, (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T16_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T17_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T18_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T17_[0] = T18_;
		goto_1 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T17_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, goto_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
					if (!(i_2 < colontmp_)) goto LA23;
					i = i_2;
					T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T24_ = transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2(ctx, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T24_;
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEndFinallyNode__FlUh1Xo9bXJFuG43AoVOEVw_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curExc;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nilnode;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cmp;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T5_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retStmt;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T9_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T10_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nullifyExc;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T11_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* raiseStmt;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T14_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T15_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T16_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBody;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T18_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elifBranch;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T21_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	curExc = newCurExcAccess__cqBE2u681LMwPlL6VXs4dA(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nilnode = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*nilnode).typ = (*curExc).typ;
	nimZeroMem((void*)T1_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T2_, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	T1_[1] = curExc;
	T1_[2] = nilnode;
	cmp = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*cmp).typ = T4_;
	nimZeroMem((void*)T5_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T6_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T6_ = getClosureIterResult__9coyF0wpG1VqYcJq7Zk1fgQ_2((*ctx).g, (*ctx).fn);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = newSymNode__AFd9c9cdRrILXl9anrr9aRvqig(T6_, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_[0] = T7_;
	T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T8_ = newTmpResultAccess__cqBE2u681LMwPlL6VXs4dA_2(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_[1] = T8_;
	asgn = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T5_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T9_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	T9_[0] = asgn;
	retStmt = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109), T9_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T10_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T10_[0] = cmp;
	T10_[1] = retStmt;
	branch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T10_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T11_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T12_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T12_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_28));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T12_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T11_[0] = T13_;
	T11_[1] = nilnode;
	nullifyExc = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T11_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*nullifyExc).info = info;
	nimZeroMem((void*)T14_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	T14_[0] = curExc;
	raiseStmt = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T14_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*raiseStmt).info = info;
	nimZeroMem((void*)T15_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	nimZeroMem((void*)T16_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T16_[0] = nullifyExc;
	T16_[1] = raiseStmt;
	T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T17_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T16_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T15_[0] = T17_;
	elseBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T15_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T18_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T18_[0] = branch;
	T18_[1] = elseBranch;
	ifBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T18_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T20_ = newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2(ctx, info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T19_[0] = T20_;
	T19_[1] = ifBody;
	elifBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T19_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*elifBranch).info = info;
	nimZeroMem((void*)T21_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	T21_[0] = elifBranch;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T21_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__ZQwdGiE9bcxShuJtHMjr5sQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T25_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__P89cqdlERShb9alU3iC0yj8wast((*n)._kind_6.sons->data[((NI) 1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)));
		LA6_: ;
		if (!T3_) goto LA8_;
		branchBody = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T11_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			nimZeroMem((void*)T11_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2(ctx, (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T11_[0] = T12_;
			T13_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T13_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T14_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(IL64(1), T13_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T11_[1] = T14_;
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T11_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(branchBody, T15_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T17_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
			nimZeroMem((void*)T17_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T18_ = newCurExcAccess__cqBE2u681LMwPlL6VXs4dA(ctx);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T17_[0] = T18_;
			T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T19_ = callCodegenProc__6cD4vACMYqPEkcqC9cypTrw((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_22), TM__slVvvIjx75ivXdMpHiE9c9aQ_4, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T17_[1] = T19_;
			T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T20_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T17_, 2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(branchBody, T20_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T22_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			nimZeroMem((void*)T22_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T23_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T22_[0] = T23_;
			T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T24_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T22_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(branchBody, T24_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		nimZeroMem((void*)T25_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T25_[0] = branchBody;
		elseBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T25_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg((*n)._kind_6.sons->data[((NI) 1)], elseBranch);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		result = addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg(result, gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					{
						NIM_BOOL T8_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* go;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
						NI T15_;
						T8_ = (NIM_BOOL)0;
						T8_ = hasYields__SoLjz0OznJM6S0ACeFDkTg_2((*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T8_) goto LA9_;
						go = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*(*n)._kind_6.sons->data[i]).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T11_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*n)._kind_6.sons->data[i], go);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i] = T11_;
						s = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[(NI)(i + ((NI) 1))]).info);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						{
							NI j;
							NI colontmp__2;
							NI colontmp__3;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__2 = (NI)(i + ((NI) 1));
							colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(n);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							i_3 = colontmp__2;
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA14;
									j = i_3;
									add__P8dDSotTW25BkfbyspojGg(s, (*n)._kind_6.sons->data[j]);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									i_3 += ((NI) 1);
								} LA14: ;
							}
						}
						(*n)._kind_6.sons = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*n)._kind_6.sons)->Sup, (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(i + ((NI) 1)))));
						T15_ = (NI)0;
						T15_ = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, s, go);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(void)(T15_);
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
							T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T18_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, s, gotoOut);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!!((T18_ == s))) goto LA19_;
							internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_19), TM__slVvvIjx75ivXdMpHiE9c9aQ_20);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
						LA19_: ;
						goto LA3;
					}
					LA9_: ;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		} LA3: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
		T23_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T23_ = addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg((*result)._kind_6.sons->data[((NI) 0)], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T23_;
		T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T24_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*result)._kind_6.sons->data[((NI) 0)], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 0)] = T24_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
	{
		NI T26_;
		NI T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
		NI T29_;
		NI T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		T26_ = (NI)0;
		T26_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T27_ = (NI)0;
		T27_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T28_ = addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg((*result)._kind_6.sons->data[(NI)(T27_ - ((NI) 1))], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[(NI)(T26_ - ((NI) 1))] = T28_;
		T29_ = (NI)0;
		T29_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T30_ = (NI)0;
		T30_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*result)._kind_6.sons->data[(NI)(T30_ - ((NI) 1))], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[(NI)(T29_ - ((NI) 1))] = T31_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		{
			NI i_4;
			NI colontmp__4;
			NI i_5;
			i_4 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_5 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
					if (!(i_5 < colontmp__4)) goto LA35;
					i_4 = i_5;
					T36_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T36_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*n)._kind_6.sons->data[i_4], gotoOut);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_4] = T36_;
					i_5 += ((NI) 1);
				} LA35: ;
			}
		}
		{
			NI T39_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T42_;
			T39_ = (NI)0;
			T39_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!(((*(*n)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA40_;
			nimZeroMem((void*)T42_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T42_[0] = gotoOut;
			elseBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T42_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(n, elseBranch);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA40_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
		NI T44_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifNode;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elifBranch;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch_2;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T45_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		s_2 = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T44_ = (NI)0;
		T44_ = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, s_2, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T44_);
		ifNode = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		elifBranch = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(elifBranch, (*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		body = addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg((*n)._kind_6.sons->data[((NI) 1)], result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		body = transformBreaksAndContinuesInWhile__PPKdLcsjHM2xtTQ57VQRdQ(ctx, body, result, gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		body = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, body, result);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(elifBranch, body);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(ifNode, elifBranch);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T45_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T45_[0] = gotoOut;
		elseBranch_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T45_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(ifNode, elseBranch_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(s_2, ifNode);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T47_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T48_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
		T47_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T47_ = addGotoOut__uiricCrNr2Dq4G7jk4l9b9cg((*result)._kind_6.sons->data[((NI) 1)], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T47_;
		T48_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T48_ = (*result)._kind_6.sons->data[((NI) 1)];
		T49_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T49_ = transformBreaksInBlock__U5wYjNmg2Tmx1BJW2OE3eA(ctx, T48_, (*result)._kind_6.sons->data[((NI) 0)], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T49_;
		T50_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T50_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*result)._kind_6.sons->data[((NI) 1)], gotoOut);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*result)._kind_6.sons->data[((NI) 1)] = T50_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tryBody;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptBody;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finallyBody;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T52_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
		NI tryIdx;
		NI T56_;
		NI exceptIdx;
		NI finallyIdx;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* outToFinally;
		(*ctx).hasExceptions = NIM_TRUE;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		tryBody = toStmtList__BSqD59bZdLojBsNEMT9aVzXw((*n)._kind_6.sons->data[((NI) 0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		exceptBody = collectExceptState__eyQv3n2M3569coxZwjgCbIwclosureiters(ctx, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T52_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T53_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T53_ = getFinallyNode__oib8dpvzVeiy5KmNWs9ajBw(ctx, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T52_[0] = T53_;
		finallyBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T52_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		finallyBody = transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2(ctx, finallyBody);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T54_ = finallyBody;
		T55_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T55_ = newEndFinallyNode__FlUh1Xo9bXJFuG43AoVOEVw_3(ctx, (*finallyBody).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(T54_, T55_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T56_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		tryIdx = T56_;
		exceptIdx = (NI)0;
		finallyIdx = (NI)0;
		{
			if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA59_;
			exceptIdx = ((NI64)-((NI)(tryIdx + ((NI) 1))));
			finallyIdx = (NI)(tryIdx + ((NI) 2));
		}
		goto LA57_;
		LA59_: ;
		{
			exceptIdx = (NI)(tryIdx + ((NI) 1));
			finallyIdx = (NI)(tryIdx + ((NI) 1));
		}
		LA57_: ;
		outToFinally = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*finallyBody).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI oldExcHandlingState;
			NI realTryIdx;
			NI realFinallyIdx;
			oldExcHandlingState = (*ctx).curExcHandlingState;
			(*ctx).curExcHandlingState = exceptIdx;
			realTryIdx = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, tryBody, result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI realExceptIdx;
				if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA65_;
				(*ctx).curExcHandlingState = finallyIdx;
				realExceptIdx = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, exceptBody, NIM_NIL);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA65_: ;
			(*ctx).curExcHandlingState = oldExcHandlingState;
			realFinallyIdx = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, finallyBody, outToFinally);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		{
			NI oldNearestFinally;
			NI oldExcHandlingState_2;
			oldNearestFinally = (*ctx).nearestFinally;
			(*ctx).nearestFinally = finallyIdx;
			oldExcHandlingState_2 = (*ctx).curExcHandlingState;
			(*ctx).curExcHandlingState = exceptIdx;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T70_;
				T70_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T70_ = transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2(ctx, tryBody);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T70_ == tryBody))) goto LA71_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_29), TM__slVvvIjx75ivXdMpHiE9c9aQ_30);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA71_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T75_;
				T75_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T75_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, tryBody, outToFinally);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T75_ == tryBody))) goto LA76_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_31), TM__slVvvIjx75ivXdMpHiE9c9aQ_32);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA76_: ;
			(*ctx).curExcHandlingState = finallyIdx;
			addElseToExcept__ZQwdGiE9bcxShuJtHMjr5sQ(ctx, exceptBody);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T80_;
				T80_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T80_ = transformReturnsInTry__oib8dpvzVeiy5KmNWs9ajBw_2(ctx, exceptBody);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T80_ == exceptBody))) goto LA81_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_33), TM__slVvvIjx75ivXdMpHiE9c9aQ_34);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA81_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T85_;
				T85_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T85_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, exceptBody, outToFinally);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T85_ == exceptBody))) goto LA86_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_35), TM__slVvvIjx75ivXdMpHiE9c9aQ_36);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA86_: ;
			(*ctx).curExcHandlingState = oldExcHandlingState_2;
			(*ctx).nearestFinally = oldNearestFinally;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T90_;
				T90_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T90_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, finallyBody, gotoOut);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T90_ == finallyBody))) goto LA91_;
				internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_37), TM__slVvvIjx75ivXdMpHiE9c9aQ_38);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA91_: ;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
	{
		NimStringDesc* T94_;
		T94_ = (NimStringDesc*)0;
		T94_ = rawNewString((reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 13);
appendString(T94_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_39));
appendString(T94_, reprEnum((NI)(*n).kind, (&NTI__G4E4Gxe7oI2Cm03rkiOzQw_)));
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*(*ctx).g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, T94_, TM__slVvvIjx75ivXdMpHiE9c9aQ_40);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			NI i_6;
			NI colontmp__5;
			NI i_7;
			i_6 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_7 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T99_;
					if (!(i_7 < colontmp__5)) goto LA98;
					i_6 = i_7;
					T99_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T99_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw(ctx, (*n)._kind_6.sons->data[i_6], gotoOut);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_6] = T99_;
					i_7 += ((NI) 1);
				} LA98: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipStmtList__aKHUfk8lGnMfwXRkkphHzQ)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		while (1) {
			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA2;
			{
				NI T5_;
				T5_ = (NI)0;
				T5_ = len__P89cqdlERShb9alU3iC0yj8wast(result);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T5_ == ((NI) 0))) goto LA6_;
				result = (*(*ctx).g).emptyNode;
				goto BeforeRet_;
			}
			LA6_: ;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__Pi4UWe7a9cL5b9cA6VgWjduw)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateIdx) {
	NI result;
	NI maxJumps;
	NI T1_;
	NI stateIdx_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	maxJumps = T1_;
	stateIdx_2 = stateIdx;
	{
		while (1) {
			NI label;
			NI newLabel;
			label = stateIdx_2;
			{
				if (!(label == (*ctx).exitStateIdx)) goto LA6_;
				goto LA2;
			}
			LA6_: ;
			newLabel = label;
			{
				if (!(label == ((NI) -1))) goto LA10_;
				newLabel = (*ctx).exitStateIdx;
			}
			goto LA8_;
			LA10_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fs;
				fs = skipStmtList__aKHUfk8lGnMfwXRkkphHzQ(ctx, (*(*ctx).states->data[label])._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!((*fs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156))) goto LA15_;
					newLabel = ((NI) ((*(*fs)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
				}
				LA15_: ;
			}
			LA8_: ;
			{
				if (!(label == newLabel)) goto LA19_;
				goto LA2;
			}
			LA19_: ;
			stateIdx_2 = newLabel;
			maxJumps -= ((NI) 1);
			{
				if (!(maxJumps == ((NI) 0))) goto LA23_;
			}
			LA23_: ;
		}
	} LA2: ;
	result = ((NI) ((*(*(*ctx).states->data[stateIdx_2])._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipThroughEmptyStates__oib8dpvzVeiy5KmNWs9ajBw_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		NI T3_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (NI)0;
		T3_ = skipEmptyStates__Pi4UWe7a9cL5b9cA6VgWjduw((&(*ctx)), ((NI) ((*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (T3_));
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T8_ = skipThroughEmptyStates__oib8dpvzVeiy5KmNWs9ajBw_3(ctx, (*n)._kind_6.sons->data[i]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i] = T8_;
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__EtZNQZ9ahFW9aGXseKeYzr0Q)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* goOut;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T1_;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	NI T4_;
	NI iValid;
	NI i_5;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)T1_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw((*ctx).g, T2_, IL64(-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	goOut = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T1_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (NI)0;
	T4_ = newState__KR326D2V0A9c8rAN3F9amGLQ(ctx, goOut, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*ctx).exitStateIdx = T4_;
	iValid = ((NI) 0);
	{
		NI i;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
		NI i_2;
		NI L;
		NI T6_;
		i = (NI)0;
		s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		i_2 = ((NI) 0);
		T6_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
				if (!(i_2 < L)) goto LA8;
				i = i_2;
				s = (*ctx).states->data[i_2];
				body = skipStmtList__aKHUfk8lGnMfwXRkkphHzQ((&(*ctx)), (*s)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T11_;
					NIM_BOOL T12_;
					NI T14_;
					T11_ = (NIM_BOOL)0;
					T12_ = (NIM_BOOL)0;
					T12_ = ((*body).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156));
					if (!(T12_)) goto LA13_;
					T14_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
					T12_ = !((i == (NI)(T14_ - ((NI) 1))));
					LA13_: ;
					T11_ = T12_;
					if (!(T11_)) goto LA15_;
					T11_ = !((i == ((NI) 0)));
					LA15_: ;
					if (!T11_) goto LA16_;
					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = IL64(-1);
				}
				goto LA9_;
				LA16_: ;
				{
					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (iValid));
					iValid += ((NI) 1);
				}
				LA9_: ;
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	{
		NI i_3;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
		NI i_4;
		NI L_2;
		NI T20_;
		i_3 = (NI)0;
		s_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		i_4 = ((NI) 0);
		T20_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		L_2 = T20_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body_2;
				if (!(i_4 < L_2)) goto LA22;
				i_3 = i_4;
				s_2 = (*ctx).states->data[i_4];
				body_2 = skipStmtList__aKHUfk8lGnMfwXRkkphHzQ((&(*ctx)), (*s_2)._kind_6.sons->data[((NI) 1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NIM_BOOL T25_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
					NI excHandlState;
					T25_ = (NIM_BOOL)0;
					T25_ = !(((*body_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156)));
					if (T25_) goto LA26_;
					T25_ = (i_3 == ((NI) 0));
					LA26_: ;
					if (!T25_) goto LA27_;
					T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T29_ = skipThroughEmptyStates__oib8dpvzVeiy5KmNWs9ajBw_3(ctx, s_2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(void)(T29_);
					excHandlState = (*ctx).exceptionTable->data[i_3];
					{
						NI T34_;
						if (!(excHandlState < ((NI) 0))) goto LA32_;
						T34_ = (NI)0;
						T34_ = skipEmptyStates__Pi4UWe7a9cL5b9cA6VgWjduw((&(*ctx)), ((NI64)-(excHandlState)));
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*ctx).exceptionTable->data[i_3] = ((NI64)-(T34_));
					}
					goto LA30_;
					LA32_: ;
					{
						NI T38_;
						if (!!((excHandlState == ((NI) 0)))) goto LA36_;
						T38_ = (NI)0;
						T38_ = skipEmptyStates__Pi4UWe7a9cL5b9cA6VgWjduw((&(*ctx)), excHandlState);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*ctx).exceptionTable->data[i_3] = T38_;
					}
					goto LA30_;
					LA36_: ;
					LA30_: ;
				}
				LA27_: ;
				i_4 += ((NI) 1);
			} LA22: ;
		}
	}
	i_5 = ((NI) 0);
	{
		while (1) {
			NI T41_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fs;
			T41_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
			if (!(i_5 < (NI)(T41_ - ((NI) 1)))) goto LA40;
			fs = skipStmtList__aKHUfk8lGnMfwXRkkphHzQ((&(*ctx)), (*(*ctx).states->data[i_5])._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NIM_BOOL T44_;
				T44_ = (NIM_BOOL)0;
				T44_ = ((*fs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156));
				if (!(T44_)) goto LA45_;
				T44_ = !((i_5 == ((NI) 0)));
				LA45_: ;
				if (!T44_) goto LA46_;
				delete__TgBXLpGAm0rF5SZ3bkKUbg((&(*ctx).states), ((NI) (i_5)));
				delete__zhhe9bbLyE7Vk89co9bd9cMSBg((&(*ctx).exceptionTable), ((NI) (i_5)));
			}
			goto LA42_;
			LA46_: ;
			{
				i_5 += ((NI) 1);
			}
			LA42_: ;
		} LA40: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAccess__cqBE2u681LMwPlL6VXs4dA_3)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T5_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T8_;
		if (!((*ctx).stateVarSym == 0)) goto LA3_;
		T5_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T5_ = getEnvParam__0hs55xLsSn1sbFSXWwel1A((*ctx).fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = T6_;
		T8_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T8_ = getStateField__UJpIDWVzs220Reaf7HOAmw((*ctx).g, (*ctx).fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = rawIndirectAccess__8aXgrGQvaIrhwp6o9cuBYoA(T7_, T8_, (*(*ctx).fn).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*ctx).stateVarSym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__AWbFLel9cjt8d7ZAwfIyCdA)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toValue) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T2_;
	T1_[1] = toValue;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__Mi9crg20nwOahuXiRT6sVew)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateNo) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* T1_;
	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T2_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A*)0;
	T1_ = ctx;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T3_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, T2_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(((NI64) (stateNo)), T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newStateAssgn__AWbFLel9cjt8d7ZAwfIyCdA(T1_, T4_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__mq9bimW9b7LrVw9b9a6qcSmGUA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	result = ((NI) ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformStateAssignments__oib8dpvzVeiy5KmNWs9ajBw_4)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		{
			NIM_BOOL T4_;
			NI T5_;
			NI T9_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retStmt;
			T4_ = (NIM_BOOL)0;
			T5_ = (NI)0;
			T5_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = !((T5_ == ((NI) 0)));
			if (!(T4_)) goto LA6_;
			T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104));
			LA6_: ;
			if (!T4_) goto LA7_;
			result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T9_ = (NI)0;
			T9_ = stateFromGotoState__mq9bimW9b7LrVw9b9a6qcSmGUA((*n)._kind_6.sons->data[((NI) 1)]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T10_ = newStateAssgn__Mi9crg20nwOahuXiRT6sVew(ctx, T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			add__P8dDSotTW25BkfbyspojGg(result, T10_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			retStmt = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109), (*n).info);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retVal;
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T15_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA13_;
				a = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).info);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				retVal = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
				T15_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
				T15_ = getClosureIterResult__9coyF0wpG1VqYcJq7Zk1fgQ_2((*ctx).g, (*ctx).fn);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T16_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T15_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(a, T16_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(a, retVal);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(retStmt, a);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			goto LA11_;
			LA13_: ;
			{
				add__P8dDSotTW25BkfbyspojGg(retStmt, (*(*ctx).g).emptyNode);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA11_: ;
			add__P8dDSotTW25BkfbyspojGg(result, retStmt);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA2_;
		LA7_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T22_ = transformStateAssignments__oib8dpvzVeiy5KmNWs9ajBw_4(ctx, (*n)._kind_6.sons->data[i]);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						(*n)._kind_6.sons->data[i] = T22_;
						i_2 += ((NI) 1);
					} LA21: ;
				}
			}
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T25_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T25_ = newStateAssgn__Mi9crg20nwOahuXiRT6sVew(ctx, ((NI) -1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T25_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
	{
		NI T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* breakState;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T27_ = (NI)0;
		T27_ = stateFromGotoState__mq9bimW9b7LrVw9b9a6qcSmGUA(n);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T28_ = newStateAssgn__Mi9crg20nwOahuXiRT6sVew(ctx, T27_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T28_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		breakState = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T29_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*ctx).stateLoopLabel);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(breakState, T29_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, breakState);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
					if (!(i_4 < colontmp__2)) goto LA33;
					i_3 = i_4;
					T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T34_ = transformStateAssignments__oib8dpvzVeiy5KmNWs9ajBw_4(ctx, (*n)._kind_6.sons->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					(*n)._kind_6.sons->data[i_3] = T34_;
					i_4 += ((NI) 1);
				} LA33: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newArrayType__642gHRMR9a1eZ1whzH7tKfQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner) {
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* rng;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rng = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), owner);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw(g, (*owner).info, IL64(0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T2_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw(g, (*owner).info, ((NI64) (n)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[1] = T3_;
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*rng).n = T4_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(rng, t, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, rng, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	rawAddSon__LW9aGb2JfjdMXhDZwQYa5xg(result, t, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, createExceptionTable__MszPr5bFWBE4wcbymAi00gclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* T1_;
	NI T2_;
	NI T3_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*(*ctx).fn).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ*)0;
	T1_ = (*ctx).g;
	T2_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
	T3_ = (NI)0;
	T3_ = T2_;
	T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T4_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = newArrayType__642gHRMR9a1eZ1whzH7tKfQ(T1_, T3_, T4_, (*ctx).fn);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).typ = T5_;
	{
		NI* i;
		NI i_2;
		NI L;
		NI T7_;
		i = (NI*)0;
		i_2 = ((NI) 0);
		T7_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
		L = T7_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elem;
				tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
				if (!(i_2 < L)) goto LA9;
				i = (&(*ctx).exceptionTable->data[i_2]);
				elem = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*i))));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
				T10_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*elem).typ = T10_;
				add__P8dDSotTW25BkfbyspojGg(result, elem);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCatchBody__MnQ8Kzhxn5rtRo9btObf9b9bgclosureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intTyp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* boolTyp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	intTyp = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	boolTyp = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* getNextState;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T3_ = createExceptionTable__MszPr5bFWBE4wcbymAi00gclosureiters(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T2_[0] = T3_;
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T2_[1] = T4_;
		getNextState = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T2_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*getNextState).typ = intTyp;
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = newStateAssgn__AWbFLel9cjt8d7ZAwfIyCdA(ctx, getNextState);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
		tyArray__T6RKPw8xfAeNaoei9aZGzXg T7_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* raiseStmt;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T12_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T14_;
		nimZeroMem((void*)T7_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
		T8_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T8_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_27), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[0] = T9_;
		T10_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T10_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[1] = T10_;
		T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T11_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(IL64(0), intTyp);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_[2] = T11_;
		cond = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T7_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*cond).typ = boolTyp;
		nimZeroMem((void*)T12_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T12_[0] = (*(*ctx).g).emptyNode;
		raiseStmt = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T12_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T13_[0] = cond;
		T13_[1] = raiseStmt;
		ifBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T13_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T14_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T14_[0] = ifBranch;
		ifStmt = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T14_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, ifStmt);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond_2;
		tyArray__T6RKPw8xfAeNaoei9aZGzXg T16_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T21_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
		nimZeroMem((void*)T16_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
		T17_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T17_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_41), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T18_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T17_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_[0] = T18_;
		T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T19_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(IL64(0), intTyp);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_[1] = T19_;
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T16_[2] = T20_;
		cond_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T16_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*cond_2).typ = boolTyp;
		nimZeroMem((void*)T21_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T22_ = newUnrollFinallyAccess__FlUh1Xo9bXJFuG43AoVOEVw_2(ctx, info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T21_[0] = T22_;
		T21_[1] = cond_2;
		asgn = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T21_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, asgn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond_3;
		tyArray__T6RKPw8xfAeNaoei9aZGzXg T24_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T25_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* negateState;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T29_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch_2;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T33_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt_2;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T35_;
		nimZeroMem((void*)T24_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
		T25_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T25_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_41), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T26_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T25_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_[0] = T26_;
		T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T27_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_[1] = T27_;
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T28_ = newIntTypeNode__9azVbThnGagKx8BBa5Ph9cDw(IL64(0), intTyp);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T24_[2] = T28_;
		cond_3 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T24_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*cond_3).typ = boolTyp;
		nimZeroMem((void*)T29_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T30_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T30_ = getSysMagic__F0sH3uZM4wsRv4Pi1Pzwlg((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_42), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T30_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T29_[0] = T31_;
		T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T32_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T29_[1] = T32_;
		negateState = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T29_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*negateState).typ = intTyp;
		nimZeroMem((void*)T33_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T33_[0] = cond_3;
		T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T34_ = newStateAssgn__AWbFLel9cjt8d7ZAwfIyCdA(ctx, negateState);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T33_[1] = T34_;
		ifBranch_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T33_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimZeroMem((void*)T35_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		T35_[0] = ifBranch_2;
		ifStmt_2 = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T35_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, ifStmt_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T37_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T39_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
		nimZeroMem((void*)T37_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T38_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T38_ = newCurExcAccess__cqBE2u681LMwPlL6VXs4dA(ctx);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T37_[0] = T38_;
		T39_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T39_ = callCodegenProc__6cD4vACMYqPEkcqC9cypTrw((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_22), TM__slVvvIjx75ivXdMpHiE9c9aQ_4, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T37_[1] = T39_;
		T40_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T40_ = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T37_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(result, T40_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoTryExcept__eyQv3n2M3569coxZwjgCbIw_2closureiters)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* setupExc;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tryBody;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T5_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptBranch;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T6_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getCompilerProc__4qXS5VHrKJ5hq9crvvz8tIA((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_28));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = newCurExcAccess__cqBE2u681LMwPlL6VXs4dA(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[1] = T4_;
	setupExc = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T5_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T5_[0] = setupExc;
	T5_[1] = n;
	tryBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T5_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T6_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T7_ = newCatchBody__MnQ8Kzhxn5rtRo9btObf9b9bgclosureiters(ctx, (*(*ctx).fn).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_[0] = T7_;
	exceptBranch = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), T6_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T8_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T8_[0] = tryBody;
	T8_[1] = exceptBranch;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106), T8_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoStateLoop__oib8dpvzVeiy5KmNWs9ajBw_5)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loopBody;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* localVars;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* blockStmt;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gs;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
	tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* T15_;
	NI T16_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* blockBody;
	tyArray__T6RKPw8xfAeNaoei9aZGzXg T18_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	loopBody = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T2_ = getSysSym__9bvw79ck1FDiWpnBYh88rEfw((*ctx).g, (*n).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_16));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_[0] = T3_;
	T1_[1] = loopBody;
	result = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), T1_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).info = (*n).info;
	localVars = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSect;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		if (!!(((*ctx).stateVarSym == 0))) goto LA6_;
		varSect = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*n).info);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*ctx).stateVarSym);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		addVar__qOCBdprWtK4hxer73SEdQA(varSect, T8_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		add__P8dDSotTW25BkfbyspojGg(localVars, varSect);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((*ctx).tempVars == 0))) goto LA11_;
			add__P8dDSotTW25BkfbyspojGg(localVars, (*ctx).tempVars);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA11_: ;
	}
	LA6_: ;
	blockStmt = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*ctx).stateLoopLabel);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(blockStmt, T13_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gs = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T14_ = newStateAccess__cqBE2u681LMwPlL6VXs4dA_3(ctx);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(gs, T14_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T15_ = (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ*)0;
	T15_ = (*ctx).g;
	T16_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T17_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw(T15_, (*n).info, ((NI64) ((NI)(T16_ - ((NI) 1)))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(gs, T17_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	nimZeroMem((void*)T18_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
	T18_[0] = gs;
	T18_[1] = localVars;
	T18_[2] = n;
	blockBody = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T18_, 3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(*ctx).hasExceptions) goto LA21_;
		blockBody = wrapIntoTryExcept__eyQv3n2M3569coxZwjgCbIw_2closureiters(ctx, blockBody);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA21_: ;
	add__P8dDSotTW25BkfbyspojGg(blockStmt, blockBody);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__P8dDSotTW25BkfbyspojGg(loopBody, blockStmt);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIterator__pOvzY9bL6Z9bAquTmdZOUhVg)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* fn, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A ctx;
	tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T9_;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T10_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	NI T11_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut;
	tyArray__jlWPjgtbdjE069arIWHC9c9bg T12_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
	NIM_BOOL ns;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A));
	ctx.g = g;
	ctx.fn = fn;
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T3_;
		tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* T6_;
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T7_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T8_;
		T3_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T3_ = getEnvParam__0hs55xLsSn1sbFSXWwel1A(fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T3_ == 0)) goto LA4_;
		T6_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
		T6_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*ctx.g).cache, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T7_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		T7_ = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), T6_, fn, (*fn).info, 0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		ctx.stateVarSym = T7_;
		T8_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T8_ = createClosureIterStateType__YeSbRn4y243XNGGtCU6V6g(g, fn);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*ctx.stateVarSym).typ = T8_;
	}
	LA4_: ;
	T9_ = (tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA*)0;
	T9_ = getIdent__9coBOmdXN09be4rJvXK6fQGQ((*ctx.g).cache, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_3));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T10_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	T10_ = newSym__IXbidcxhXTQGZY9abN63Cxg(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), T9_, fn, (*fn).info, 0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ctx.stateLoopLabel = T10_;
	n_2 = toStmtList__BSqD59bZdLojBsNEMT9aVzXw(n);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T11_ = (NI)0;
	T11_ = newState__KR326D2V0A9c8rAN3F9amGLQ((&ctx), n_2, NIM_NIL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T11_);
	nimZeroMem((void*)T12_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
	T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T13_ = newIntLit__TuFlkTIoJNHT6fCcycYtSw(g, (*n_2).info, IL64(-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T12_[0] = T13_;
	gotoOut = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T12_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	ns = NIM_FALSE;
	n_2 = lowerStmtListExprs__07BK9ckM1VeGOvUAxlv1trQ((&ctx), n_2, (&ns));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T16_;
		T16_ = (NIM_BOOL)0;
		T16_ = hasYieldsInExpressions__SoLjz0OznJM6S0ACeFDkTg(n_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T16_) goto LA17_;
		internalErrorImpl__PTSwZ6HM9bGBf7vF9cnDmwVw((*ctx.g).config, TM__slVvvIjx75ivXdMpHiE9c9aQ_4, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_17), TM__slVvvIjx75ivXdMpHiE9c9aQ_18);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA17_: ;
	T19_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T19_ = transformClosureIteratorBody__k5LaXCtaUIFKCXefatVZPw((&ctx), n_2, gotoOut);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T19_);
	deleteEmptyStates__EtZNQZ9ahFW9aGXseKeYzr0Q((&ctx));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n_2).info);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s;
		NI i;
		NI L;
		NI T21_;
		s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
		i = ((NI) 0);
		T21_ = (ctx.states ? ctx.states->Sup.len : 0);
		L = T21_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
				if (!(i < L)) goto LA23;
				s = &ctx.states->data[i];
				body = (*(*s))._kind_6.sons->data[((NI) 1)];
				del__TgBXLpGAm0rF5SZ3bkKUbg_2((&(*(*s))._kind_6.sons), ((NI) 1));
				add__P8dDSotTW25BkfbyspojGg(result, (*s));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__P8dDSotTW25BkfbyspojGg(result, body);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i += ((NI) 1);
			} LA23: ;
		}
	}
	result = transformStateAssignments__oib8dpvzVeiy5KmNWs9ajBw_4((&ctx), result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = wrapIntoStateLoop__oib8dpvzVeiy5KmNWs9ajBw_5((&ctx), result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
