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

#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
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA tySequence__PJMRIt5QxCm6bRaVyQ5CGA;
typedef struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ;
typedef struct tySequence__RsxI3z4wK8jTuZiO0576gQ tySequence__RsxI3z4wK8jTuZiO0576gQ;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tySequence__JokFGfUW6i9b6aeU7xu6xBw tySequence__JokFGfUW6i9b6aeU7xu6xBw;
typedef struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyTuple__SlmU1Ju0WFHUWkihyHMVYg;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA;
typedef struct tyTuple__UCrBsiykDha2x4hr9aWPwKA tyTuple__UCrBsiykDha2x4hr9aWPwKA;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
};
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tySequence__Ef05srmQTDulnBdXR4Ja6Q* typeInstCache;
};
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* procInstCache;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
};
struct {tySequence__DXS6mEo7PVUFJkirsQ9bNQA* usedGenerics;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tab;
};
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* guard;
NI bitsize;
};
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
  RootObj Sup;
};
typedef NU8 tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ;
typedef NU8 tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw {
  tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* code;
tySequence__PJMRIt5QxCm6bRaVyQ5CGA* debug;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* globals;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constants;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* types;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionA;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* prc;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* callsite;
tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ mode;
tySet_tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q comesFromHeuristic;
tySequence__RsxI3z4wK8jTuZiO0576gQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
NI oldErrorCount;
};
typedef NU8 tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ;
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ;
struct tyTuple__SlmU1Ju0WFHUWkihyHMVYg {
NIM_BOOL Field0;
tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ Field1;
};
typedef tyTuple__SlmU1Ju0WFHUWkihyHMVYg tyArray__ORKcvNw6ApGJhbot1dJ6oA[256];
struct tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ {
tySequence__JokFGfUW6i9b6aeU7xu6xBw* blocks;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__ORKcvNw6ApGJhbot1dJ6oA slots;
NI maxSlots;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[4];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU8 tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
typedef NU8 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
typedef NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA* args, void* ClE_0);
void* ClE_0;
} tyProc__S09bPfanQx9bEvdh4862x8zw;
struct tyTuple__UCrBsiykDha2x4hr9aWPwKA {
NimStringDesc* Field0;
tyProc__S09bPfanQx9bEvdh4862x8zw Field1;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
struct tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* label;
tySequence__qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A;
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyObject_VmArgs__0UUl6e5CNNQfMon2xW2bVA {
NI ra;
NI rb;
NI rc;
void* slots;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currentException;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q currentLineInfo;
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__PJMRIt5QxCm6bRaVyQ5CGA {
  TGenericSeq Sup;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q data[SEQ_DECL_SIZE];
};
struct tySequence__RsxI3z4wK8jTuZiO0576gQ {
  TGenericSeq Sup;
  tyTuple__UCrBsiykDha2x4hr9aWPwKA data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__JokFGfUW6i9b6aeU7xu6xBw {
  TGenericSeq Sup;
  tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, subInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, addInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__FpOm4fidh9bWdkMa1BMRJkQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBody__gFZW9bFffCiuUrdu3Rnih2g)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* prc, NIM_BOOL cache, NIM_BOOL noDestructors);
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx__aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, localError__NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefRC1)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen__6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, globalError__NF6kBGchnhQYPbCedyefVA_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_NIMCALL(NI, countBits32)(NU32 n);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition);
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(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, addSon__P8dDSotTW25BkfbyspojGg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___qX5C9b0n9bOP7jk69amC8dA7A)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__TIX0sFuRf3uBpOBltYp7bw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lengthOrd__hjogdnp59cMX1rwmjikBhqw_3)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, elemType__PfgI9ap7WOnsRfFV4znQ27w_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__wzw45GpKbJkIWCHf9aBq6Qw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NI, genx__CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC__G2IxRmwmQahHciEYmnYxxg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__1nMAqbaMl87FxWu2gyhzog)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v);
N_LIB_PRIVATE N_NIMCALL(void, internalError__5hPl6LjCYJxMYxh9af9b9bXzw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* errMsg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___r38WafKlW80RkvoZTcia4Q)(tyTuple__kN8up2W6YKc5YA9avn5mV5w x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, genLit__AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__PMZ27S9ai4FB3gXOMDXvwsQ)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__3YlwkOhvADs19cHhcnE9boYA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, gen__KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, gABI__u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__Cd5XCtdH6RMw63L9bPnNMXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_NIMCALL(NI64, mulInt64)(NI64 a, NI64 b);
N_NIMCALL(NI64, chckRange64)(NI64 i, NI64 a, NI64 b);
static N_INLINE(void, unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___7c5Zw7H31uJfWmmhZe9aEqw)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, genField__9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
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(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__3isNyHKb0U1OCnClmflXSg)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* a, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType__gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard__AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__Cd5XCtdH6RMw63L9bPnNMXA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genConv__3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__G85zfShWD6ECITDwyUUFLQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerSwap__8A4G64HByteFanrMUexmNw_2)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___f6j2Rr9bpYzKO9bs9a65jNGYQsystem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genCall__AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(void, clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref__6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr__6vrKVoM8aZ4Rjealu5DZbw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf__AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase__AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry__AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking__8A4G64HByteFanrMUexmNw)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize__vCG1GF2Iu043oALVyuJfOw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c);
extern TNimType NTI__9bAGqSvkAaFL9bWjsEPslrFA_;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI__PJMRIt5QxCm6bRaVyQ5CGA_;
extern TNimType NTI__FM7mzTFsA8pyUhXVKKO6Gw_;
extern TNimType NTI__9a3YiReNVD0IJHWFKgXRe9ag_;
extern TNimType NTI__Ef05srmQTDulnBdXR4Ja6Q_;
extern TNimType NTI__shZhZOdbVC5nnFvcXQAImg_;
extern TNimType NTI__qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTI__JokFGfUW6i9b6aeU7xu6xBw_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_2 = {
0xec, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_3, "\'sons\' is not accessible using discriminant \'kind\' of type \'TNo"
"de\'", 66);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_7, "VM: immediate value does not fit into an int16", 46);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_9 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_10, "\'sym\' is not accessible using discriminant \'kind\' of type \'TNod"
"e\'", 65);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_16, "cannot evaluate at compile time: ", 33);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_17, "vmgen.nim(1620, 10) `card(flags * {gfNodeAddr, gfNode}) < 2` ", 61);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_18, "cannot \'importc\' variable at compile time; ", 43);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_19 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_20, "\'strVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_23, "vmgen.nim(1771, 14) `obj.sym.position == currPosition` ", 55);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_25, "cannot create null element for: ", 32);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_32, "VM problem: too many registers required", 39);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_34, "vmgen.nim(118, 10) `opc.ord < 255` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_35, "vmgen.nim(1631, 12) `s.typ != nil` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_36, "vmgen.nim(941, 10) `t != nil` ", 30);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_39, "vmgen.nim", 9);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_38 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1647),
((NI) 22)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_40, "vmgen.nim(1456, 10) `dest >= 0` ", 32);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_42, "*", 1);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_44, "vmgen.nim(1977, 16) `s.offset == -1` ", 37);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_47, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_48 = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_49, "\'ident\' is not accessible using discriminant \'kind\' of type \'TN"
"ode\'", 67);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_50 = {
0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_51, "\'intVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__24XApAWKNvaMkcyklm8bNA_52 = {
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_53, "\'floatVal\' is not accessible using discriminant \'kind\' of type "
"\'TNode\'", 70);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_56 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 443),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_57, "cannot generate code for: ", 26);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_59 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 179),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_62, "VM: immediate value does not fit into an int8", 45);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_66, "not unused", 10);
NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA TM__24XApAWKNvaMkcyklm8bNA_68 = {{((NU32) 0),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
};
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_69 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1692),
((NI) 17)}
;
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_71 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1704),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_72, "no field symbol", 15);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_73, "too large offset! cannot generate code for: ", 44);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_75, "iterators.nim(122, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_76 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 516),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_105, "vmgen.nim(946, 10) `t != nil` ", 30);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_108, "getType", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_109, "typeKind", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_110, "getTypeInst", 11);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_111, "getSize", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_112, "getAlign", 8);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_113, "invalid bindSym usage", 21);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_122, "getFile", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_123, "getLine", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_124, "getColumn", 9);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_125, "copyLineInfo", 12);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_126 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1299),
((NI) 21)}
;
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_127 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1302),
((NI) 25)}
;
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_129 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 596),
((NI) 21)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_131, "expandToAst requires 1 argument", 31);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_132, "expandToAst requires a call expression", 38);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_133, "cannot evaluate \'sizeof\' because its type is not defined comple"
"tely", 67);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_134, "cannot evaluate \'alignof\' because its type is not defined compl"
"etely", 68);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_135, "cannot evaluate \'offsetof\' because its type is not defined comp"
"letely", 69);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_136, "cannot call method ", 19);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_137, " at compile time", 16);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_141, "stdlib", 6);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_142, "marshal", 7);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_143, "to", 2);
NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_140 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_141),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_142),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_143)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_145, "$$", 2);
NIM_CONST tyArray__24KAM9afIUgUaqBaEBB6r9bg TM__24XApAWKNvaMkcyklm8bNA_144 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_141),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_142),
((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_145)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_146, "vmgen.nim(1509, 10) `n.typ != nil` ", 35);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_147 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1563),
((NI) 21)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_149, "vmgen.nim(1566, 14) `le.typ != nil` ", 36);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_150 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 1731),
((NI) 17)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_151, "vmgen.nim(1449, 12) `n.typ != nil` ", 35);
NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM__24XApAWKNvaMkcyklm8bNA_159 = {{0, 0 | NIM_STRLIT_FLAG}};
NIM_CONST tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ TM__24XApAWKNvaMkcyklm8bNA_158 = {NIM_NIL, ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__24XApAWKNvaMkcyklm8bNA_159)};
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_161 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 171),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_166, "VM problem: cannot find \'break\' target", 38);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_168, "vmgen.nim(535, 15) `it.sons[j].kind == nkType` ", 47);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_177, "vmgen.nim(1841, 20) `sa.kind != nkCall` ", 40);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_178, "vmgen.nim(1855, 18) `s.typ != nil` ", 35);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_179, "vmgen.nim(1859, 18) `le.typ != nil` ", 36);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_183, "invalid object constructor", 26);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_188, "VM is only allowed to \'cast\' between integers and/or floats of "
"same size", 72);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_189, "cannot generate VM code for ", 28);
NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__24XApAWKNvaMkcyklm8bNA_200 = {((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_39),
((NI) 2174),
((NI) 16)}
;
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_213, "vmgen.nim(2139, 12) `c.code.len == c.debug.len` ", 48);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_214, "VM problem: dest register is not set", 36);
STRING_LITERAL(TM__24XApAWKNvaMkcyklm8bNA_215, "VM problem: dest register is set", 32);
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI) 16)))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
	{
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
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(void, nimZeroMem)(void* p, NI size) {	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_4ast)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12));
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABx__aNIPMIOfai9c7QJx79aStfDw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI bx) {	{
		NIM_BOOL T3_;
		NU32 ins;
		NI TM__24XApAWKNvaMkcyklm8bNA_6;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32768) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 32767));
		LA4_: ;
		if (!T3_) goto LA5_;
		TM__24XApAWKNvaMkcyklm8bNA_6 = addInt(bx, ((NI) 32768));
		ins = (NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_6)))) << (NU32)(((NU32) 16))));
		asgnRef((void**) (&(*c).code), (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_7));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__LLVWVnfPUz40PkTu6VMsfA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a) {	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, opc, a, ((NI) 0));
	return result;
}
static N_INLINE(void, nimGCunrefRC1)(void* p) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genParams__yHS9cbYsE7NJ9b9appE7eVGpA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params) {	NIM_BOOL colontmp_;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
	NI T4_;
	colontmp_ = NIM_TRUE;
	colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
	(*(*c).prc).slots[(((NI) 0))- 0].Field0 = colontmp_;
	(*(*c).prc).slots[(((NI) 0))- 0].Field1 = colontmp__2;
	{
		NI i;
		NI colontmp__3;
		NI i_2;
		i = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__P89cqdlERShb9alU3iC0yj8wast(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				NIM_BOOL colontmp__4;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__5;
				NI TM__24XApAWKNvaMkcyklm8bNA_8;
				if (!(i_2 < colontmp__3)) goto LA3;
				i = i_2;
				colontmp__4 = NIM_TRUE;
				colontmp__5 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
				(*(*c).prc).slots[(i)- 0].Field0 = colontmp__4;
				(*(*c).prc).slots[(i)- 0].Field1 = colontmp__5;
				TM__24XApAWKNvaMkcyklm8bNA_8 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_8);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(params);
	(*(*c).prc).maxSlots = ((T4_ >= ((NI) 1)) ? T4_ : ((NI) 1));
}
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__4wahcx9bmpD7ffT1schyhBg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gp) {	NI base;
	NI T4_;
	NI TM__24XApAWKNvaMkcyklm8bNA_14;
	base = (*(*c).prc).maxSlots;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* param;
				NI TM__24XApAWKNvaMkcyklm8bNA_11;
				NIM_BOOL colontmp__2;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
				NI TM__24XApAWKNvaMkcyklm8bNA_12;
				NI TM__24XApAWKNvaMkcyklm8bNA_13;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*gp).kind)>>3] &(1U<<((NU)((*gp).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*gp).sons ? (*gp).sons->Sup.len : 0)) raiseIndexError2(i,((*gp).sons ? (*gp).sons->Sup.len : 0)-1);
				if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*gp).sons->data[i]).kind)>>3] &(1U<<((NU)((*(*gp).sons->data[i]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
				param = (*(*gp).sons->data[i]).sym;
				TM__24XApAWKNvaMkcyklm8bNA_11 = addInt(base, i);
				(*param).position = (NI)(TM__24XApAWKNvaMkcyklm8bNA_11);
				colontmp__2 = NIM_TRUE;
				colontmp__3 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
				TM__24XApAWKNvaMkcyklm8bNA_12 = addInt(base, i);
				if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_12)) > (NU)(255)) raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_12), 255);
				(*(*c).prc).slots[((NI)(TM__24XApAWKNvaMkcyklm8bNA_12))- 0].Field0 = colontmp__2;
				(*(*c).prc).slots[((NI)(TM__24XApAWKNvaMkcyklm8bNA_12))- 0].Field1 = colontmp__3;
				TM__24XApAWKNvaMkcyklm8bNA_13 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_13);
			} LA3: ;
		}
	}
	T4_ = (NI)0;
	T4_ = len__P89cqdlERShb9alU3iC0yj8wast(gp);
	TM__24XApAWKNvaMkcyklm8bNA_14 = addInt(base, T4_);
	(*(*c).prc).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_14);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__WuAduAQ6byDbQit0bpfaag)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b) {	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == NIM_NIL));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA(n, 0);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 33);
appendString(T1_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_16));
appendString(T1_, T2_);
	globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__Y59crI4YgTHHCWclw3gn72A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
{	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		if (!((33554440 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T11_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((2856 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T9_)) goto LA10_;
		T11_ = (NIM_BOOL)0;
		T11_ = isOwnedBy__WuAduAQ6byDbQit0bpfaag(s, (*(*c).prc).sym);
		T9_ = !(T11_);
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA12_;
		T8_ = !(((*s).owner == (*c).module));
		LA12_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA13_;
		T7_ = !(((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0)));
		LA13_: ;
		if (!T7_) goto LA14_;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 34))&63U)))!=0);
			if (!(T18_)) goto LA19_;
			T18_ = ((*(*c).prc).sym == NIM_NIL);
			LA19_: ;
			if (!T18_) goto LA20_;
		}
		goto LA16_;
		LA20_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA16_: ;
	}
	goto LA5_;
	LA14_: ;
	{
		NIM_BOOL T24_;
		T24_ = (NIM_BOOL)0;
		T24_ = ((126976 &(1U<<((NU)((*s).kind)&31U)))!=0);
		if (!(T24_)) goto LA25_;
		T24_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 4))&63U)))!=0);
		LA25_: ;
		if (!T24_) goto LA26_;
		cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
	}
	goto LA5_;
	LA26_: ;
	LA5_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, importcCond__FdCkMWi1o9ccnUFjzZDi9aUgvmgen)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 5))&63U)))!=0)) goto LA3_;
		{
			if (!((520192 &(1U<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 6)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 6),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
			result = ((*(*(*s).ast).sons->data[((NI) 6)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
			goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, importcSym__tceHaTARuJZVYNYoyPbsEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 43);
appendString(T1_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_18));
appendString(T1_, (*(*s).name).s);
	localError__NF6kBGchnhQYPbCedyefVA((*c).config, info, T1_);
}
static N_INLINE(NI, len__5mJADrRYkP3r9auuiuDZN9cQast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* n) {	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__KSL6w3oJzmAgViXO80UQiA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NI* currPosition) {	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == NIM_NIL));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
		T4_ = (((NI) 0) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T3_ = !(((*t).sons->data[((NI) 0)] == NIM_NIL));
		LA7_: ;
		if (!T3_) goto LA8_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		b = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*t).sons->data[((NI) 0)], IL64(36275087638268176));
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(b, (*b).n, result, conf, currPosition);
	}
	LA8_: ;
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_21;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(i,((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj).sons->data[i], result, conf, currPosition);
					TM__24XApAWKNvaMkcyklm8bNA_21 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_21);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, (*obj).sons->data[((NI) 0)], result, conf, currPosition);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__P89cqdlERShb9alU3iC0yj8wast(obj);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					NI TM__24XApAWKNvaMkcyklm8bNA_22;
					if (!(i_4 < colontmp__2)) goto LA17;
					i_3 = i_4;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i_3) >= (NU)((*obj).sons ? (*obj).sons->Sup.len : 0)) raiseIndexError2(i_3,((*obj).sons ? (*obj).sons->Sup.len : 0)-1);
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = lastSon__UPSW0jLTX5qJL51YMUAHgw((*obj).sons->data[i_3]);
					getNullValueAux__KSL6w3oJzmAgViXO80UQiA(NIM_NIL, T18_, result, conf, currPosition);
					TM__24XApAWKNvaMkcyklm8bNA_22 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_22);
				} LA17: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
		NI TM__24XApAWKNvaMkcyklm8bNA_24;
		field = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34), (*result).info);
		add__P8dDSotTW25BkfbyspojGg(field, obj);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		T20_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T20_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*(*obj).sym).typ, (*result).info, conf);
		add__P8dDSotTW25BkfbyspojGg(field, T20_);
		addSon__P8dDSotTW25BkfbyspojGg_2(result, field);
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*obj).kind)>>3] &(1U<<((NU)((*obj).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			if (!!(((*(*obj).sym).position == (*currPosition)))) goto LA23_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_23));
		}
		LA23_: ;
		TM__24XApAWKNvaMkcyklm8bNA_24 = addInt((*currPosition), ((NI) 1));
		(*currPosition) = (NI)(TM__24XApAWKNvaMkcyklm8bNA_24);
	}
	break;
	default:
	{
		NimStringDesc* T26_;
		NimStringDesc* T27_;
		T26_ = (NimStringDesc*)0;
		T27_ = (NimStringDesc*)0;
		T27_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(obj);
		T26_ = rawNewString((T27_ ? T27_->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_25));
appendString(T26_, T27_);
		globalError__NF6kBGchnhQYPbCedyefVA_2(conf, (*result).info, T26_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getNullValue__MirnaGAtIj7Yo4Gl5MzUxA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(1189055854743169040));
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20), info, t);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20));
		asgnRef((void**) (&(*result).strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 8)))) goto LA9_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T12_);
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
			add__P8dDSotTW25BkfbyspojGg(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		NI currPosition;
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38), info, t);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info, t);
		add__P8dDSotTW25BkfbyspojGg(result, T15_);
		currPosition = ((NI) 0);
		getNullValueAux__KSL6w3oJzmAgViXO80UQiA(t, (*t).n, result, conf, (&currPosition));
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T18_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T18_ = lengthOrd__hjogdnp59cMX1rwmjikBhqw_3(conf, t);
			colontmp_ = toInt__TIX0sFuRf3uBpOBltYp7bw(T18_);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					NI TM__24XApAWKNvaMkcyklm8bNA_26;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					T21_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T21_ = elemType__PfgI9ap7WOnsRfFV4znQ27w_2(t);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA(T21_, info, conf);
					addSon__P8dDSotTW25BkfbyspojGg_2(result, T22_);
					TM__24XApAWKNvaMkcyklm8bNA_26 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_26);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160), info, t);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__5mJADrRYkP3r9auuiuDZN9cQast(t);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
					NI TM__24XApAWKNvaMkcyklm8bNA_27;
					if (!(i_4 < colontmp__2)) goto LA26;
					i_3 = i_4;
					if ((NU)(i_3) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(i_3,((*t).sons ? (*t).sons->Sup.len : 0)-1);
					T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T27_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*t).sons->data[i_3], info, conf);
					addSon__P8dDSotTW25BkfbyspojGg_2(result, T27_);
					TM__24XApAWKNvaMkcyklm8bNA_27 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_27);
				} LA26: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
	{
		result = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T32_;
		T32_ = (NimStringDesc*)0;
		T32_ = rawNewString((reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)) ? reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_))->Sup.len : 0) + 32);
appendString(T32_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_25));
appendString(T32_, reprEnum((NI)(*t).kind, (&NTI__9a3YiReNVD0IJHWFKgXRe9ag_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2(conf, info, T32_);
		result = newNodeI__vokyXY9cZDshCSxFKChhG9bg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ, getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, bestEffort__LqSnLt7G00hwvGEFOVVFfw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).prc == NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*c).prc).sym == NIM_NIL));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*(*(*c).prc).sym).info;
	}
	goto LA1_;
	LA5_: ;
	{
		result = (*(*c).module).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__wzw45GpKbJkIWCHf9aBq6Qw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k, NI start) {	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
	NIM_BOOL colontmp__5;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
	NI TM__24XApAWKNvaMkcyklm8bNA_33;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NI i;
		NI colontmp_;
		NI TM__24XApAWKNvaMkcyklm8bNA_28;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM__24XApAWKNvaMkcyklm8bNA_28 = subInt((*c).maxSlots, ((NI) 1));
		colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_28);
		res = start;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_29;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					T6_ = ((*c).slots[(i)- 0].Field1 == k);
					if (!(T6_)) goto LA7_;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					T6_ = !((*c).slots[(i)- 0].Field0);
					LA7_: ;
					if (!T6_) goto LA8_;
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					(*c).slots[(i)- 0].Field0 = NIM_TRUE;
					result = ((NI)chckRange(i, ((NI) 0), ((NI) 255)));
					goto BeforeRet_;
				}
				LA8_: ;
				TM__24XApAWKNvaMkcyklm8bNA_29 = addInt(res, ((NI) 1));
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_29);
			} LA3: ;
		}
	}
	{
		if (!(((NI) 255) <= (*c).maxSlots)) goto LA12_;
		{
			NI i_2;
			NI colontmp__2;
			NI TM__24XApAWKNvaMkcyklm8bNA_30;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			TM__24XApAWKNvaMkcyklm8bNA_30 = subInt((*c).maxSlots, ((NI) 1));
			colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_30);
			res_2 = start;
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_31;
					if (!(res_2 <= colontmp__2)) goto LA16;
					i_2 = res_2;
					{
						NIM_BOOL colontmp__3;
						tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__4;
						if ((NU)(i_2) > (NU)(255)) raiseIndexError2(i_2, 255);
						if (!!((*c).slots[(i_2)- 0].Field0)) goto LA19_;
						colontmp__3 = NIM_TRUE;
						colontmp__4 = k;
						if ((NU)(i_2) > (NU)(255)) raiseIndexError2(i_2, 255);
						(*c).slots[(i_2)- 0].Field0 = colontmp__3;
						(*c).slots[(i_2)- 0].Field1 = colontmp__4;
						result = ((NI)chckRange(i_2, ((NI) 0), ((NI) 255)));
						goto BeforeRet_;
					}
					LA19_: ;
					TM__24XApAWKNvaMkcyklm8bNA_31 = addInt(res_2, ((NI) 1));
					res_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_31);
				} LA16: ;
			}
		}
	}
	LA12_: ;
	{
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T25_;
		if (!(((NI) 255) <= (*c).maxSlots)) goto LA23_;
		T25_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*cc).config, T25_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_32));
	}
	LA23_: ;
	result = ((NI)chckRange((((*c).maxSlots >= start) ? (*c).maxSlots : start), ((NI) 0), ((NI) 255)));
	colontmp__5 = NIM_TRUE;
	colontmp__6 = k;
	(*c).slots[(result)- 0].Field0 = colontmp__5;
	(*c).slots[(result)- 0].Field1 = colontmp__6;
	TM__24XApAWKNvaMkcyklm8bNA_33 = addInt(((NI) (result)), ((NI) 1));
	(*c).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_33);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__LRjzFZg4NHLjhn9bcZYMCiw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tt) {	NI result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ k;
	result = (NI)0;
	typ = skipTypesOrNil__zsqmUNR5OZrTUna0Y9bdu9bg_2(tt, IL64(1152921504606846976));
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind__cS3cqzC9bnfHG9bzCIeP3QaA(typ);
	}
	LA1_: ;
	result = getFreeRegister__wzw45GpKbJkIWCHf9aBq6Qw(cc, k, ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genx__CcIHODsUfIZ32Dw7elmEjQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		result = ((NI)chckRange(tmp, ((NI) 0), ((NI) 255)));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABC__G2IxRmwmQahHciEYmnYxxg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI c) {	NU32 ins;
	NI T5_;
	NI T6_;
	{
		if (!!((opc < ((NI) 255)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_34));
	}
	LA3_: ;
	ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32) (c))) << (NU32)(((NU32) 24))));
	asgnRef((void**) (&(*ctx).code), (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*ctx).code), (&NTI__9bAGqSvkAaFL9bWjsEPslrFA_)));
	T5_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T5_] = ins;
	asgnRef((void**) (&(*ctx).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*ctx).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
	T6_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T6_] = (*n).info;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresCopy) {	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 35):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 6);
	}
	break;
	default:
	{
		{
			if (!requiresCopy) goto LA8_;
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 7);
		}
		goto LA6_;
		LA8_: ;
		{
			result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 12);
		}
		LA6_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__1nMAqbaMl87FxWu2gyhzog)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI r) {	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &(1U<<((NU)((*c_2).slots[(r)- 0].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).slots[(r)- 0].Field0 = NIM_FALSE;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__yPz2tNhzBdEEj9c49aHO2Gzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {	NI cc;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T1_;
	cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
	T1_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T1_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, T1_, cc, value, ((NI) 0));
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, idx, cc);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
}
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI dest;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*n).info, (*c).config);
	add__P8dDSotTW25BkfbyspojGg((*c).globals, T1_);
	(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
	dest = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*s).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), dest, (*s).position);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
		NI tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T4_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		if (!!((T4_ == NIM_NIL))) goto LA5_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = astdef__PBkjYIaAGbtrZ8DiUArHcw(s);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, T7_, 0);
		genAdditionalCopy__yPz2tNhzBdEEj9c49aHO2Gzw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest, ((NI) 0), tmp);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T5_;
	result = (NIM_BOOL)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_36));
	}
	LA3_: ;
	T5_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T5_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36134350135273488));
	result = ((IL64(35182225670150) &((NU64)1<<((NU)((*T5_).kind)&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setSlot__wdPbhGpyRtpS49bqSwMfggA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* v) {	{
		tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ T5_;
		NI T11_;
		if (!((*v).position == ((NI) 0))) goto LA3_;
		T5_ = (tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ)0;
		{
			if (!((*v).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9))) goto LA8_;
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
		}
		goto LA6_;
		LA8_: ;
		{
			T5_ = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 1);
		}
		LA6_: ;
		T11_ = (NI)0;
		T11_ = getFreeRegister__wzw45GpKbJkIWCHf9aBq6Qw(c, T5_, ((NI) 1));
		(*v).position = ((NI) (T11_));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__9c4eyEUpcv8lGnjrHcs6fgw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {	NI tmp;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T5_;
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
	{
		if (!!((((NI) 0) <= ((NI) (dest))))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_40));
	}
	LA3_: ;
	T5_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	T5_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(ri, requiresCopy);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, ri, T5_, ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__6vrKVoM8aZ4Rjealu5DZbw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	{
		if (!!((countBits32((flags & 3)) < ((NI) 2)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_17));
	}
	LA3_: ;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
		if (!(T7_)) goto LA8_;
		T7_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
		LA8_: ;
		if (!T7_) goto LA9_;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 25))&63U)))!=0);
			if (T13_) goto LA14_;
			T13_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA14_: ;
			if (!T13_) goto LA15_;
		}
		goto LA11_;
		LA15_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA18_;
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		goto LA11_;
		LA18_: ;
		LA11_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA22_;
			{
				NIM_BOOL T26_;
				T26_ = (NIM_BOOL)0;
				T26_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
				if (!T26_) goto LA27_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA24_;
			LA27_: ;
			{
				genGlobalInit__3QrY9bRL3HpccYFScnTUsdQ(c, n, s);
			}
			LA24_: ;
		}
		LA22_: ;
		{
			NI T34_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA32_;
			T34_ = (NI)0;
			T34_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T34_));
		}
		LA32_: ;
		{
			if (!!(!(((*s).typ == NIM_NIL)))) goto LA37_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_35));
		}
		LA37_: ;
		{
			if (!((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 1))&7U)))!=0)) goto LA41_;
			gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 171), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
		}
		goto LA39_;
		LA41_: ;
		{
			NIM_BOOL T44_;
			NI cc;
			T44_ = (NIM_BOOL)0;
			T44_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
			if (!(T44_)) goto LA45_;
			T44_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 0))&7U)))!=0));
			LA45_: ;
			if (!T44_) goto LA46_;
			cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), cc, (*s).position);
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
		}
		goto LA39_;
		LA46_: ;
		{
			gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 170), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
		}
		LA39_: ;
	}
	goto LA5_;
	LA9_: ;
	{
		{
			NIM_BOOL T52_;
			T52_ = (NIM_BOOL)0;
			T52_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21));
			if (!(T52_)) goto LA53_;
			T52_ = ((*c).mode == ((tyEnum_TEvalMode__UbrbHUpo4hYFr1DbYzJgRQ) 0));
			LA53_: ;
			if (!T52_) goto LA54_;
			setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
		}
		LA54_: ;
		{
			NIM_BOOL T58_;
			NIM_BOOL T60_;
			T58_ = (NIM_BOOL)0;
			T58_ = (((NI) 0) < (*s).position);
			if (T58_) goto LA59_;
			T60_ = (NIM_BOOL)0;
			T60_ = ((*s).position == ((NI) 0));
			if (!(T60_)) goto LA61_;
			T60_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
			LA61_: ;
			T58_ = T60_;
			LA59_: ;
			if (!T58_) goto LA62_;
			{
				NI TM__24XApAWKNvaMkcyklm8bNA_37;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA66_;
				TM__24XApAWKNvaMkcyklm8bNA_37 = addInt((*s).position, ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
				(*dest) = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_37), ((NI) -1), ((NI) 255)));
				{
					NimStringDesc* T72_;
					if ((NU)((*dest)) > (NU)(255)) raiseIndexError2((*dest), 255);
					if (!!(((*(*c).prc).slots[((*dest))- 0].Field1 < ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3)))) goto LA70_;
					T72_ = (NimStringDesc*)0;
					T72_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_38);
					internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T72_);
				}
				LA70_: ;
			}
			goto LA64_;
			LA66_: ;
			{
				NIM_BOOL requiresCopy;
				NIM_BOOL T74_;
				T74_ = (NIM_BOOL)0;
				if ((NU)((*dest)) > (NU)(255)) raiseIndexError2((*dest), 255);
				T74_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[((*dest))- 0].Field1);
				if (!(T74_)) goto LA75_;
				T74_ = !(((flags &(1U<<((NU)(((tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ) 2))&7U)))!=0));
				LA75_: ;
				requiresCopy = T74_;
				genAsgn__9c4eyEUpcv8lGnjrHcs6fgw(c, (*dest), n, requiresCopy);
			}
			LA64_: ;
		}
		goto LA56_;
		LA62_: ;
		{
			cannotEval__L6IV9bRZsmwjQ509b9cpS01RQ(c, n);
		}
		LA56_: ;
	}
	LA5_: ;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__rZhM0XALsbmtBw4DH4NjRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc* x) {	NIM_BOOL result;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_41;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	T1_ = (y ? y->Sup.len : 0);
	TM__24XApAWKNvaMkcyklm8bNA_41 = subInt(T1_, ((NI) 1));
	L = (NI)(TM__24XApAWKNvaMkcyklm8bNA_41);
	{
		while (1) {
			NI TM__24XApAWKNvaMkcyklm8bNA_43;
			if (!(((NI) 0) <= L)) goto LA3;
			{
				NIM_BOOL T6_;
				NIM_BOOL T8_;
				NI T9_;
				T6_ = (NIM_BOOL)0;
				T6_ = (s_2 == NIM_NIL);
				if (T6_) goto LA7_;
				T8_ = (NIM_BOOL)0;
				if ((NU)(L) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(L,(y ? y->Sup.len : 0)-1);
				T9_ = (NI)0;
				T9_ = nsuCmpIgnoreStyle(y->data[L], (*(*s_2).name).s);
				T8_ = !((T9_ == ((NI) 0)));
				if (!(T8_)) goto LA10_;
				if ((NU)(L) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(L,(y ? y->Sup.len : 0)-1);
				T8_ = !(eqStrings(y->data[L], ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_42)));
				LA10_: ;
				T6_ = T8_;
				LA7_: ;
				if (!T6_) goto LA11_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA11_: ;
			s_2 = (*s_2).owner;
			TM__24XApAWKNvaMkcyklm8bNA_43 = subInt(L, ((NI) 1));
			L = (NI)(TM__24XApAWKNvaMkcyklm8bNA_43);
		} LA3: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc* key;
		tyProc__S09bPfanQx9bEvdh4862x8zw value;
		tySequence__RsxI3z4wK8jTuZiO0576gQ* colontmp_;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc*)0;
		nimZeroMem((void*)(&value), sizeof(tyProc__S09bPfanQx9bEvdh4862x8zw));
		colontmp_ = (tySequence__RsxI3z4wK8jTuZiO0576gQ*)0;
		colontmp_ = (*c).callbacks;
		i_2 = ((NI) 0);
		T6_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_45;
				NI TM__24XApAWKNvaMkcyklm8bNA_46;
				if (!(i_2 < L)) goto LA8;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				key = colontmp_->data[i_2].Field0;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				value.ClE_0 = colontmp_->data[i_2].Field1.ClE_0;
				value.ClP_0 = colontmp_->data[i_2].Field1.ClP_0;
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches__rZhM0XALsbmtBw4DH4NjRg(s, key);
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_44));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				TM__24XApAWKNvaMkcyklm8bNA_45 = subInt(i, ((NI) 1));
				i = (NI)(TM__24XApAWKNvaMkcyklm8bNA_45);
				TM__24XApAWKNvaMkcyklm8bNA_46 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_46);
				{
					NI T20_;
					T20_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T20_ == L))) goto LA21_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA21_: ;
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__rlsxiOBKecP0t9crY75888g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == NIM_NIL));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == NIM_NIL));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			result = ((*a).sym == (*b).sym);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_48[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_49));
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_48[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_49));
			result = ((*(*a).ident).Sup.id == (*(*b).ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
			result = ((*a).intVal == (*b).intVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_52[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_53));
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_52[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_53));
			result = ((*a).floatVal == (*b).floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20));
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_20));
			result = eqStrings((*a).strVal, (*b).strVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T22_;
				NI T23_;
				T22_ = (NI)0;
				T22_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				T23_ = (NI)0;
				T23_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (!(T22_ == T23_)) goto LA24_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							NI TM__24XApAWKNvaMkcyklm8bNA_54;
							if (!(i_2 < colontmp_)) goto LA28;
							i = i_2;
							{
								NIM_BOOL T31_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(i) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i,((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
								T31_ = (NIM_BOOL)0;
								T31_ = sameConstant__rlsxiOBKecP0t9crY75888g((*a).sons->data[i], (*b).sons->data[i]);
								if (!!(T31_)) goto LA32_;
								goto BeforeRet_;
							}
							LA32_: ;
							TM__24XApAWKNvaMkcyklm8bNA_54 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_54);
						} LA28: ;
					}
				}
				result = NIM_TRUE;
			}
			LA24_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canonValue__yXNCtNX5XyYFmGvoC2Ryfw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (NI)0;
	result = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 4)) & 31);
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = canonValue__yXNCtNX5XyYFmGvoC2Ryfw(n);
	add__P8dDSotTW25BkfbyspojGg((*c).constants, T1_);
	{
		NimStringDesc* T6_;
		if (!!((result < ((NI) 32767)))) goto LA4_;
		T6_ = (NimStringDesc*)0;
		T6_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_56);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T6_);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__PEuKCZcy9a56kIfBOLoHU5Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_55;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*c).constants).kind)>>3] &(1U<<((NU)((*(*c).constants).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*(*c).constants).sons ? (*(*c).constants).sons->Sup.len : 0)) raiseIndexError2(i,((*(*c).constants).sons ? (*(*c).constants).sons->Sup.len : 0)-1);
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant__rlsxiOBKecP0t9crY75888g((*(*c).constants).sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				TM__24XApAWKNvaMkcyklm8bNA_55 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_55);
			} LA3: ;
		}
	}
	result = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genLit__AcnszMkIUvrpRfWF4iqy5g)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, n);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), lit);
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__9a1Lon9cJzf9a69cj4KKhxzxrQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NI* dest) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = newNode__PMZ27S9ai4FB3gXOMDXvwsQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4));
	asgnRef((void**) (&(*n).typ), t);
	genLit__AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__3YlwkOhvADs19cHhcnE9boYA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI dest) {	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	if ((NU)(dest) > (NU)(255)) raiseIndexError2(dest, 255);
	T1_ = (((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(dest)- 0].Field1);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__KQ9csS06JMUvwHLxUYEy8rA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI d;
	d = ((NI) (dest));
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), flags);
}
N_LIB_PRIVATE N_NIMCALL(void, patch__Ej9bBLeYWuXsMMig9c4loqzw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI p) {	NI p_2;
	NI diff;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_58;
	NU32 oldInstr;
	NI TM__24XApAWKNvaMkcyklm8bNA_60;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM__24XApAWKNvaMkcyklm8bNA_58 = subInt(T1_, p_2);
	diff = (NI)(TM__24XApAWKNvaMkcyklm8bNA_58);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_59);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1);
	oldInstr = (*c).code->data[p_2];
	if ((NU)(p_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(p_2,((*c).code ? (*c).code->Sup.len : 0)-1);
	TM__24XApAWKNvaMkcyklm8bNA_60 = addInt(diff, ((NI) 32768));
	(*c).code->data[p_2] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_60)))) << (NU32)(((NU32) 16))));
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__blqV4B2MK6URSu9aJH4D71w)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI* dest) {	NIM_BOOL copyBack;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NI tmp;
	NI lab1;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) ((*dest))) < ((NI) 0));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = isTemp__3YlwkOhvADs19cHhcnE9boYA(c, (*dest));
	T1_ = !(T3_);
	LA2_: ;
	copyBack = T1_;
	{
		if (!copyBack) goto LA6_;
		tmp = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
	}
	goto LA4_;
	LA6_: ;
	{
		tmp = ((NI)chckRange((*dest), ((NI) 0), ((NI) 255)));
	}
	LA4_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 1)], tmp, 0);
	lab1 = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, opc, tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 2)], tmp, 0);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
	{
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA11_;
		(*dest) = ((NI) (tmp));
	}
	goto LA9_;
	LA11_: ;
	{
		if (!copyBack) goto LA14_;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	goto LA9_;
	LA14_: ;
	LA9_: ;
}
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABI__u2VxMEzYAC2GH9aMCRX5xhw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI a, NI b, NI64 imm) {	{
		NIM_BOOL T3_;
		NU32 ins;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_61;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		TM__24XApAWKNvaMkcyklm8bNA_61 = addInt64(imm, IL64(128));
		ins = (NU32)((NU32)((NU32)(((NU32) (opc)) | (NU32)((NU32)(((NU32) (a))) << (NU32)(((NU32) 8)))) | (NU32)((NU32)(((NU32) (b))) << (NU32)(((NU32) 16)))) | (NU32)((NU32)(((NU32) ((NI64)(TM__24XApAWKNvaMkcyklm8bNA_61)))) << (NU32)(((NU32) 24))));
		asgnRef((void**) (&(*c).code), (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) incrSeqV3((TGenericSeq*)((*c).code), (&NTI__9bAGqSvkAaFL9bWjsEPslrFA_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_62));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		T5_ = (IL64(-128) <= (*n).intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		T5_ = ((*n).intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI tmp;
	NI tmp2;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__Cd5XCtdH6RMw63L9bPnNMXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_64;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		TM__24XApAWKNvaMkcyklm8bNA_64 = mulInt64((*t).size, IL64(8));
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_64), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_65;
		T10_ = (NIM_BOOL)0;
		T10_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		if (!(T12_)) goto LA13_;
		T12_ = ((*t).size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		TM__24XApAWKNvaMkcyklm8bNA_65 = mulInt64((*t).size, IL64(8));
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 91), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_65), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__ZyWouE89b9cXkDK7i39aj0dwg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	{
		NIM_BOOL T3_;
		NI tmp;
		NI TM__24XApAWKNvaMkcyklm8bNA_63;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n).sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		TM__24XApAWKNvaMkcyklm8bNA_63 = addInt(opc, ((NI) 1));
		if (TM__24XApAWKNvaMkcyklm8bNA_63 < 0 || TM__24XApAWKNvaMkcyklm8bNA_63 > 180) raiseOverflow();
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(TM__24XApAWKNvaMkcyklm8bNA_63), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, (*(*n).sons->data[((NI) 2)]).intVal);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow__Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
}
static N_INLINE(void, unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI x) {	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_66));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__DPfOz7YYSBixDRy9cYPeZIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* arr) {	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA x;
		NIM_BOOL T6_;
		NI tmp;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(arr, IL64(36134350135273744));
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd__hjogdnp59cMX1rwmjikBhqw((*c).config, arr);
		T6_ = (NIM_BOOL)0;
		T6_ = eqeq___7c5Zw7H31uJfWmmhZe9aEqw(x, TM__24XApAWKNvaMkcyklm8bNA_68);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
		result = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		T9_ = (NI)0;
		T9_ = toInt__TIX0sFuRf3uBpOBltYp7bw(x);
		gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 27), result, tmp, ((NI64) (T9_)));
	}
	goto LA1_;
	LA7_: ;
	{
		result = genx__CcIHODsUfIZ32Dw7elmEjQ(c, n, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genField__9a15qaQFBwMjo9b9byRZNZAHw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
		if (T3_) goto LA4_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		T3_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_72));
	}
	LA5_: ;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	s = (*n).sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 255) < (*s).position)) goto LA9_;
		T11_ = (NimStringDesc*)0;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_73));
appendString(T11_, (*(*s).name).s);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T11_);
	}
	LA9_: ;
	result = ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__6vrKVoM8aZ4Rjealu5DZbw_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* checkExpr;
	NIM_BOOL negCheck;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* disc;
	NI discVal;
	NI T16_;
	NI setLit;
	NI rs;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T17_;
	NI lab1;
	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T18_;
	{
		NimStringDesc* T5_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_69);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	accessExpr = (*n).sons->data[((NI) 0)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	checkExpr = (*n).sons->data[((NI) 1)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*checkExpr).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*checkExpr).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	negCheck = ((*(*(*checkExpr).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102));
	{
		NI T10_;
		NI TM__24XApAWKNvaMkcyklm8bNA_70;
		if (!negCheck) goto LA8_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		T10_ = (NI)0;
		T10_ = len__P89cqdlERShb9alU3iC0yj8wast(checkExpr);
		TM__24XApAWKNvaMkcyklm8bNA_70 = subInt(T10_, ((NI) 1));
		if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_70)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_70),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
		checkExpr = (*checkExpr).sons->data[(NI)(TM__24XApAWKNvaMkcyklm8bNA_70)];
	}
	LA8_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	disc = (*checkExpr).sons->data[((NI) 2)];
	{
		NimStringDesc* T15_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*disc).kind)>>3] &(1U<<((NU)((*disc).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		if (!!(((*(*disc).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T15_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_71);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T15_);
	}
	LA13_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)-1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*accessExpr).sons->data[((NI) 0)], dest, flags);
	discVal = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*disc).typ);
	T16_ = (NI)0;
	T16_ = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, disc);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), discVal, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T16_);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*checkExpr).kind)>>3] &(1U<<((NU)((*checkExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*checkExpr).sons ? (*checkExpr).sons->Sup.len : 0)-1);
	setLit = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*checkExpr).sons->data[((NI) 1)], 0);
	T17_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T17_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
	rs = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, T17_);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 79), rs, setLit, discVal);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, discVal);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, setLit);
	T18_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!negCheck) goto LA21_;
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156);
	}
	goto LA19_;
	LA21_: ;
	{
		T18_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155);
	}
	LA19_: ;
	lab1 = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, T18_, rs);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, rs);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), ((NI) 0), ((NI) 0), ((NI) 0));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab1);
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, NI value) {	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx = genIndex__DPfOz7YYSBixDRy9cYPeZIA(c, (*le).sons->data[((NI) 1)], (*(*le).sons->data[((NI) 0)]).typ);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), dest, idx, value);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__6vrKVoM8aZ4Rjealu5DZbw_3(c, le, (&objR), 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		idx_2 = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, (*le).sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), idx_2, value);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx_3 = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*le).sons->data[((NI) 1)]);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), dest_2, idx_3, value);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_3, ((NI) 0), value);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		{
			NIM_BOOL T8_;
			NI dest_4;
			T8_ = (NIM_BOOL)0;
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			T8_ = (((*(*le).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T8_)) goto LA9_;
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			T8_ = !(((*(*le).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA9_: ;
			if (!T8_) goto LA10_;
			dest_4 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
			gABC__G2IxRmwmQahHciEYmnYxxg(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_4, ((NI) 0), value);
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_4);
		}
		LA10_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T5_ = (((*(*n).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T5_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genType__H4AMs0GuxljbeG3aMubkXA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ) {	NI result;
	NI T15_;
	NI T16_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		tySequence__Ef05srmQTDulnBdXR4Ja6Q* colontmp_;
		NI i_2;
		NI L;
		NI T2_;
		i = (NI)0;
		t = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		colontmp_ = (tySequence__Ef05srmQTDulnBdXR4Ja6Q*)0;
		colontmp_ = (*c).types;
		i_2 = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_74;
				if (!(i_2 < L)) goto LA4;
				i = i_2;
				if ((NU)(i_2) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i_2,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				t = colontmp_->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType__3isNyHKb0U1OCnClmflXSg(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				TM__24XApAWKNvaMkcyklm8bNA_74 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_74);
				{
					NI T12_;
					T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T12_ == L))) goto LA13_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_75));
				}
				LA13_: ;
			} LA4: ;
		}
	}
	T15_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T15_;
	asgnRef((void**) (&(*c).types), (tySequence__Ef05srmQTDulnBdXR4Ja6Q*) incrSeqV3((TGenericSeq*)((*c).types), (&NTI__Ef05srmQTDulnBdXR4Ja6Q_)));
	T16_ = (*c).types->Sup.len++;
	asgnRef((void**) (&(*c).types->data[T16_]), typ);
	{
		NimStringDesc* T21_;
		if (!!((result <= ((NI) 32767)))) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T21_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_76);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T21_);
	}
	LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genNew__Y59crI4YgTHHCWclw3gn72A_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI dest;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n).sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017424));
	if ((NU)(((NI) 0)) >= (NU)((*T7_).sons ? (*T7_).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*T7_).sons ? (*T7_).sons->Sup.len : 0)-1);
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*T7_).sons->data[((NI) 0)]);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 164), dest, T8_);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], dest);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__Y59crI4YgTHHCWclw3gn72A_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI dest;
	NI tmp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T7_;
	NI T8_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	t = (*(*n).sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2((*n).sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	T7_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T7_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T8_ = (NI)0;
	T8_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T7_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), dest, T8_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], dest);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__AcnszMkIUvrpRfWF4iqy5g_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	NI tmp;
	NI T1_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T2_;
	NI T3_;
	t = (*n).typ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
	T1_ = (NI)0;
	T1_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T1_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), tmp, ((NI) 0));
	T2_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T2_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(t, IL64(36275087632017424));
	T3_ = (NI)0;
	T3_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T2_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T3_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI64 imm) {	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, imm);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genSetType__gvhAyRL9bUcZODometR9bicw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	{
		NI T5_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19))) goto LA3_;
		T5_ = (NI)0;
		T5_ = genType__H4AMs0GuxljbeG3aMubkXA(c, t);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 175), dest, T5_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCard__AcnszMkIUvrpRfWF4iqy5g_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType__gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], tmp);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 33), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__ZyWouE89b9cXkDK7i39aj0dwg_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrow__Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__Cd5XCtdH6RMw63L9bPnNMXA_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI64 TM__24XApAWKNvaMkcyklm8bNA_77;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(15423227559936) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((IL64(1101659111424) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
		if (!(T5_)) goto LA6_;
		T5_ = ((*t).size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		TM__24XApAWKNvaMkcyklm8bNA_77 = mulInt64((*t).size, IL64(8));
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange(dest, ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_77), ((NI) 0), ((NI) 255))), ((NI) 0));
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, opc);
	genNarrowU__Cd5XCtdH6RMw63L9bPnNMXA_2(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genConv__3t9aH9c9bW3NlM77J0pxtz3hg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI tmp;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
	NI T13_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T14_;
	NI T15_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*n).typ).kind == (*(*arg).typ).kind);
		if (!(T3_)) goto LA4_;
		T3_ = ((*(*arg).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		LA4_: ;
		if (!T3_) goto LA5_;
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, arg, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, arg, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1152921504606846976));
	T13_ = (NI)0;
	T13_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T12_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T13_);
	T14_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T14_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*arg).typ, IL64(1152921504606846976));
	T15_ = (NI)0;
	T15_ = genType__H4AMs0GuxljbeG3aMubkXA(c, T14_);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, opc, ((NI) 0), T15_);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI tmp;
	NI tmp2;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType__gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], tmp);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	genSetType__gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 2)], tmp2);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__ok9afQwIXe7dJAeeWPGODEA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* cc, NI n, tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ kind) {	NI result;
	tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* c;
	NI TM__24XApAWKNvaMkcyklm8bNA_92;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		NI TM__24XApAWKNvaMkcyklm8bNA_81;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 40) <= (*c).maxSlots);
		if (T3_) goto LA4_;
		TM__24XApAWKNvaMkcyklm8bNA_81 = addInt((*c).maxSlots, n);
		T3_ = (((NI) 255) <= (NI)(TM__24XApAWKNvaMkcyklm8bNA_81));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NI i;
			NI colontmp_;
			NI TM__24XApAWKNvaMkcyklm8bNA_82;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			TM__24XApAWKNvaMkcyklm8bNA_82 = subInt((*c).maxSlots, n);
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_82);
			res = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_90;
					if (!(res <= colontmp_)) goto LA9;
					i = res;
					{
						if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
						if (!!((*c).slots[(i)- 0].Field0)) goto LA12_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI TM__24XApAWKNvaMkcyklm8bNA_83;
								NI TM__24XApAWKNvaMkcyklm8bNA_84;
								NI TM__24XApAWKNvaMkcyklm8bNA_85;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								TM__24XApAWKNvaMkcyklm8bNA_83 = addInt(i, ((NI) 1));
								colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_83);
								TM__24XApAWKNvaMkcyklm8bNA_84 = addInt(i, n);
								TM__24XApAWKNvaMkcyklm8bNA_85 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_84), ((NI) 1));
								colontmp__3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_85);
								res_2 = colontmp__2;
								{
									while (1) {
										NI TM__24XApAWKNvaMkcyklm8bNA_86;
										if (!(res_2 <= colontmp__3)) goto LA17;
										j = res_2;
										{
											if ((NU)(j) > (NU)(255)) raiseIndexError2(j, 255);
											if (!(*c).slots[(j)- 0].Field0) goto LA20_;
											goto LA14;
										}
										LA20_: ;
										TM__24XApAWKNvaMkcyklm8bNA_86 = addInt(res_2, ((NI) 1));
										res_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_86);
									} LA17: ;
								}
							}
							result = ((NI)chckRange(i, ((NI) 0), ((NI) 255)));
							{
								NI k;
								NI colontmp__4;
								NI TM__24XApAWKNvaMkcyklm8bNA_87;
								NI TM__24XApAWKNvaMkcyklm8bNA_88;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								TM__24XApAWKNvaMkcyklm8bNA_87 = addInt(((NI) (result)), n);
								TM__24XApAWKNvaMkcyklm8bNA_88 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_87), ((NI) 1));
								colontmp__4 = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_88), ((NI) 0), ((NI) 255)));
								res_3 = ((NI) (result));
								{
									while (1) {
										NIM_BOOL colontmp__5;
										tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__6;
										NI TM__24XApAWKNvaMkcyklm8bNA_89;
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA24;
										k = ((NI)chckRange(res_3, ((NI) 0), ((NI) 255)));
										colontmp__5 = NIM_TRUE;
										colontmp__6 = kind;
										(*c).slots[(k)- 0].Field0 = colontmp__5;
										(*c).slots[(k)- 0].Field1 = colontmp__6;
										TM__24XApAWKNvaMkcyklm8bNA_89 = addInt(res_3, ((NI) 1));
										res_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_89);
									} LA24: ;
								}
							}
							goto BeforeRet_;
						} LA14: ;
					}
					LA12_: ;
					TM__24XApAWKNvaMkcyklm8bNA_90 = addInt(res, ((NI) 1));
					res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_90);
				} LA9: ;
			}
		}
	}
	LA5_: ;
	{
		NI TM__24XApAWKNvaMkcyklm8bNA_91;
		tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T29_;
		TM__24XApAWKNvaMkcyklm8bNA_91 = addInt((*c).maxSlots, n);
		if (!(((NI) 255) <= (NI)(TM__24XApAWKNvaMkcyklm8bNA_91))) goto LA27_;
		T29_ = bestEffort__LqSnLt7G00hwvGEFOVVFfw(cc);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*cc).config, T29_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_32));
	}
	LA27_: ;
	result = ((NI)chckRange((*c).maxSlots, ((NI) 0), ((NI) 255)));
	TM__24XApAWKNvaMkcyklm8bNA_92 = addInt((*c).maxSlots, n);
	(*c).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_92);
	{
		NI k_2;
		NI colontmp__7;
		NI TM__24XApAWKNvaMkcyklm8bNA_93;
		NI TM__24XApAWKNvaMkcyklm8bNA_94;
		NI res_4;
		k_2 = (NI)0;
		colontmp__7 = (NI)0;
		TM__24XApAWKNvaMkcyklm8bNA_93 = addInt(((NI) (result)), n);
		TM__24XApAWKNvaMkcyklm8bNA_94 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_93), ((NI) 1));
		colontmp__7 = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_94), ((NI) 0), ((NI) 255)));
		res_4 = ((NI) (result));
		{
			while (1) {
				NIM_BOOL colontmp__8;
				tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__9;
				NI TM__24XApAWKNvaMkcyklm8bNA_95;
				if (!(res_4 <= ((NI) (colontmp__7)))) goto LA32;
				k_2 = ((NI)chckRange(res_4, ((NI) 0), ((NI) 255)));
				colontmp__8 = NIM_TRUE;
				colontmp__9 = kind;
				(*c).slots[(k_2)- 0].Field0 = colontmp__8;
				(*c).slots[(k_2)- 0].Field1 = colontmp__9;
				TM__24XApAWKNvaMkcyklm8bNA_95 = addInt(res_4, ((NI) 1));
				res_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_95);
			} LA32: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__G85zfShWD6ECITDwyUUFLQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start, NI n) {	{
		NI i;
		NI colontmp_;
		NI TM__24XApAWKNvaMkcyklm8bNA_102;
		NI TM__24XApAWKNvaMkcyklm8bNA_103;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		TM__24XApAWKNvaMkcyklm8bNA_102 = addInt(((NI) (start)), n);
		TM__24XApAWKNvaMkcyklm8bNA_103 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_102), ((NI) 1));
		colontmp_ = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_103), ((NI) 0), ((NI) 255)));
		res = ((NI) (start));
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_104;
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				i = ((NI)chckRange(res, ((NI) 0), ((NI) 255)));
				freeTemp__1nMAqbaMl87FxWu2gyhzog(c, i);
				TM__24XApAWKNvaMkcyklm8bNA_104 = addInt(res, ((NI) 1));
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_104);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__ZyWouE89b9cXkDK7i39aj0dwg_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI x;
	NI T6_;
	NI TM__24XApAWKNvaMkcyklm8bNA_96;
	NI T11_;
	NI TM__24XApAWKNvaMkcyklm8bNA_101;
	NI T12_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	TM__24XApAWKNvaMkcyklm8bNA_96 = subInt(T6_, ((NI) 1));
	x = getTempRange__ok9afQwIXe7dJAeeWPGODEA(c, (NI)(TM__24XApAWKNvaMkcyklm8bNA_96), ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 6));
	{
		NI i;
		NI colontmp_;
		NI T8_;
		NI TM__24XApAWKNvaMkcyklm8bNA_97;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__24XApAWKNvaMkcyklm8bNA_97 = subInt(T8_, ((NI) 1));
		colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_97);
		res = ((NI) 1);
		{
			while (1) {
				NI r;
				NI TM__24XApAWKNvaMkcyklm8bNA_98;
				NI TM__24XApAWKNvaMkcyklm8bNA_99;
				NI TM__24XApAWKNvaMkcyklm8bNA_100;
				if (!(res <= colontmp_)) goto LA10;
				i = res;
				TM__24XApAWKNvaMkcyklm8bNA_98 = addInt(((NI) (x)), i);
				TM__24XApAWKNvaMkcyklm8bNA_99 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_98), ((NI) 1));
				r = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_99), ((NI) 0), ((NI) 255)));
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 0);
				TM__24XApAWKNvaMkcyklm8bNA_100 = addInt(res, ((NI) 1));
				res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_100);
			} LA10: ;
		}
	}
	T11_ = (NI)0;
	T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	TM__24XApAWKNvaMkcyklm8bNA_101 = subInt(T11_, ((NI) 1));
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_101), ((NI) 0), ((NI) 255))));
	T12_ = (NI)0;
	T12_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__G85zfShWD6ECITDwyUUFLQ(c, x, T12_);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ, ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {	tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ result;
	result = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
	{
		if (!!(!((t == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_105));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(t);
		if (!T7_) goto LA8_;
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 167);
	}
	goto LA5_;
	LA8_: ;
	{
		result = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	NI dest;
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	x = (*n).sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64))) goto LA3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		x = (*x).sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__ZyWouE89b9cXkDK7i39aj0dwg_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI tmp;
	NI tmp2;
	NI tmp3;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, tmp2);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__bOxuqhoYZQ9cPtUccjLVwvA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opcode) {	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, dest);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp1 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp1);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc) {	NI dest;
	NI tmp;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___f6j2Rr9bpYzKO9bs9a65jNGYQsystem)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	NI TM__24XApAWKNvaMkcyklm8bNA_119;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	TM__24XApAWKNvaMkcyklm8bNA_119 = subInt(sLen_0, i);
	if ((NU)((NI)(TM__24XApAWKNvaMkcyklm8bNA_119)) >= (NU)(sLen_0)) raiseIndexError2((NI)(TM__24XApAWKNvaMkcyklm8bNA_119),sLen_0-1);
	result = &s[(NI)(TM__24XApAWKNvaMkcyklm8bNA_119)];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__AcnszMkIUvrpRfWF4iqy5g_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56) || (*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57) || (*(*n).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA8_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			idx = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, (*n).sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 173), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_113));
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		NI TM__24XApAWKNvaMkcyklm8bNA_117;
		NI TM__24XApAWKNvaMkcyklm8bNA_118;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** T28_;
		NI tmp2;
		NI T29_;
		NI TM__24XApAWKNvaMkcyklm8bNA_120;
		NI TM__24XApAWKNvaMkcyklm8bNA_121;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** T30_;
		NI T31_;
		NI T32_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		x = getTempRange__ok9afQwIXe7dJAeeWPGODEA(c, T22_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
		tmp0 = ((NI) (x));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genLit__AcnszMkIUvrpRfWF4iqy5g(c, (*n).sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI TM__24XApAWKNvaMkcyklm8bNA_114;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			TM__24XApAWKNvaMkcyklm8bNA_114 = subInt(T24_, ((NI) 2));
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_114);
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					NI TM__24XApAWKNvaMkcyklm8bNA_115;
					NI TM__24XApAWKNvaMkcyklm8bNA_116;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					TM__24XApAWKNvaMkcyklm8bNA_115 = addInt(((NI) (x)), i);
					r = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_115), ((NI) 0), ((NI) 255)));
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 0);
					TM__24XApAWKNvaMkcyklm8bNA_116 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_116);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__24XApAWKNvaMkcyklm8bNA_117 = addInt(((NI) (x)), T27_);
		TM__24XApAWKNvaMkcyklm8bNA_118 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_117), ((NI) 2));
		tmp1 = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_118), ((NI) -1), ((NI) 255)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
		T28_ = X5BX5D___f6j2Rr9bpYzKO9bs9a65jNGYQsystem((*n).sons->data, ((*n).sons ? (*n).sons->Sup.len : 0), ((NI) 2));
		genLit__AcnszMkIUvrpRfWF4iqy5g(c, (*T28_), (&tmp1));
		T29_ = (NI)0;
		T29_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__24XApAWKNvaMkcyklm8bNA_120 = addInt(((NI) (x)), T29_);
		TM__24XApAWKNvaMkcyklm8bNA_121 = subInt((NI)(TM__24XApAWKNvaMkcyklm8bNA_120), ((NI) 1));
		tmp2 = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_121), ((NI) -1), ((NI) 255)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
		T30_ = X5BX5D___f6j2Rr9bpYzKO9bs9a65jNGYQsystem((*n).sons->data, ((*n).sons ? (*n).sons->Sup.len : 0), ((NI) 1));
		genLit__AcnszMkIUvrpRfWF4iqy5g(c, (*T30_), (&tmp2));
		T31_ = (NI)0;
		T31_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 174), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange(T31_, ((NI) 0), ((NI) 255))));
		T32_ = (NI)0;
		T32_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		freeTempRange__G85zfShWD6ECITDwyUUFLQ(c, x, T32_);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t) {	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == NIM_NIL);
	if (T1_) goto LA2_;
	T1_ = ((IL64(-9223372036854775680) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__AcnszMkIUvrpRfWF4iqy5g_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI x;
	NI T16_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* fntyp;
	NI T38_;
{	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = ((*(*n).sons->data[((NI) 0)]).typ == 0);
		LA5_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T10_)) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T10_ = !(T12_);
		LA11_: ;
		if (!T10_) goto LA13_;
		T15_ = (NI)0;
		T15_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T15_));
	}
	LA13_: ;
	T16_ = (NI)0;
	T16_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	x = getTempRange__ok9afQwIXe7dJAeeWPGODEA(c, T16_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	fntyp = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				NI TM__24XApAWKNvaMkcyklm8bNA_128;
				NI TM__24XApAWKNvaMkcyklm8bNA_130;
				if (!(i_2 < colontmp_)) goto LA19;
				i = i_2;
				TM__24XApAWKNvaMkcyklm8bNA_128 = addInt(((NI) (x)), i);
				r = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_128), ((NI) 0), ((NI) 255)));
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[i], r, 4);
				{
					NI T22_;
					NI T30_;
					T22_ = (NI)0;
					T22_ = len__5mJADrRYkP3r9auuiuDZN9cQast(fntyp);
					if (!(T22_ <= i)) goto LA23_;
					{
						NimStringDesc* T29_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 0))&63U)))!=0))) goto LA27_;
						T29_ = (NimStringDesc*)0;
						T29_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_129);
						internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T29_);
					}
					LA27_: ;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T30_ = (NI)0;
					T30_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[i]).typ);
					gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 175), r, T30_);
				}
				LA23_: ;
				TM__24XApAWKNvaMkcyklm8bNA_130 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_130);
			} LA19: ;
		}
	}
	{
		NI T35_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA33_;
		T35_ = (NI)0;
		T35_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 148), ((NI) 0), x, ((NI)chckRange(T35_, ((NI) 0), ((NI) 255))));
	}
	goto LA31_;
	LA33_: ;
	{
		NI T37_;
		T37_ = (NI)0;
		T37_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 149), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), x, ((NI)chckRange(T37_, ((NI) 0), ((NI) 255))));
	}
	LA31_: ;
	T38_ = (NI)0;
	T38_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
	freeTempRange__G85zfShWD6ECITDwyUUFLQ(c, x, T38_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__5VcHfJsVaWxnq3vvengJ7Q)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {	switch (m) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		genAndOr__blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	{
		genAndOr__blqV4B2MK6URSu9aJH4D71w(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155), dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
	{
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T8_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA6_;
			T8_ = (NI)0;
			T8_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T8_));
		}
		LA6_: ;
		gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 27), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, IL64(1));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
	{
		genAddSubInt__ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 26));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	{
		genAddSubInt__ZyWouE89b9cXkDK7i39aj0dwg(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 24));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 31):
	{
		NIM_BOOL isUnsigned;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
		NI d;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350144710928));
		isUnsigned = ((IL64(34084860461056) &((NU64)1<<((NU)((*T12_).kind)&63U)))!=0);
		{
			if (!!(isUnsigned)) goto LA15_;
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30))) goto LA19_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 24);
			}
			goto LA17_;
			LA19_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 26);
			}
			LA17_: ;
		}
		goto LA13_;
		LA15_: ;
		{
			{
				if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 30))) goto LA25_;
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 47);
			}
			goto LA23_;
			LA25_: ;
			{
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 48);
			}
			LA23_: ;
		}
		LA13_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T30_;
			NI TM__24XApAWKNvaMkcyklm8bNA_67;
			T30_ = (NIM_BOOL)0;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T30_ = isInt8Lit__ZWNdbTkHEJo2QqoHaEPxGA((*n).sons->data[((NI) 2)]);
			if (!(T30_)) goto LA31_;
			T30_ = !(isUnsigned);
			LA31_: ;
			if (!T30_) goto LA32_;
			TM__24XApAWKNvaMkcyklm8bNA_67 = addInt(opc, ((NI) 1));
			if (TM__24XApAWKNvaMkcyklm8bNA_67 < 0 || TM__24XApAWKNvaMkcyklm8bNA_67 > 180) raiseOverflow();
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
			gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)(TM__24XApAWKNvaMkcyklm8bNA_67), d, d, (*(*n).sons->data[((NI) 2)]).intVal);
		}
		goto LA28_;
		LA32_: ;
		{
			NI tmp_2;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, d, d, tmp_2);
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		}
		LA28_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genNarrow__Cd5XCtdH6RMw63L9bPnNMXA(c, (*n).sons->data[((NI) 1)], ((NI) (d)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, d);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 46):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 147):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNew__Y59crI4YgTHHCWclw3gn72A_2(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 35):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genNewSeq__Y59crI4YgTHHCWclw3gn72A_3(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 36):
	{
		genNewSeqOfCap__AcnszMkIUvrpRfWF4iqy5g_2(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 154));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 151):
	{
		NI T41_;
		NI tmp_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T41_ = (NI)0;
		T41_ = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, T41_);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_3 = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), tmp_3, ((NI) 0));
		{
			NI T46_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA44_;
			T46_ = (NI)0;
			T46_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T46_));
		}
		LA44_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 154), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	{
		genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41):
	{
		genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 29), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 43):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 44):
	{
		NI d_2;
		NI tmp_4;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T50_;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_4 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genSetType__gvhAyRL9bUcZODometR9bicw(c, (*n).sons->data[((NI) 1)], d_2);
		T50_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 43))) goto LA53_;
			T50_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30);
		}
		goto LA51_;
		LA53_: ;
		{
			T50_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 32);
		}
		LA51_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, T50_, d_2, tmp_4, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, d_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_4);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 45):
	{
		genCard__AcnszMkIUvrpRfWF4iqy5g_3(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	{
		genBinaryABCnarrow__ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 34));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	{
		genBinaryABCnarrow__ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 35));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 53):
	{
		genBinaryABCnarrow__ZyWouE89b9cXkDK7i39aj0dwg_4(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 36));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 37));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 38));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 39));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 40));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 60):
	{
		NI tmp_5;
		NI tmp2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_5 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		genNarrowU__Cd5XCtdH6RMw63L9bPnNMXA_2(c, n, ((NI) (tmp_5)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		{
			NI T69_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA67_;
			T69_ = (NI)0;
			T69_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T69_));
		}
		LA67_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 41), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_5, tmp2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_5);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 61):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 42));
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T73_;
			NIM_BOOL T75_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_78;
			T73_ = (NIM_BOOL)0;
			T73_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T73_) goto LA74_;
			T75_ = (NIM_BOOL)0;
			T75_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T75_)) goto LA76_;
			T75_ = ((*t).size < IL64(8));
			LA76_: ;
			T73_ = T75_;
			LA74_: ;
			if (!T73_) goto LA77_;
			TM__24XApAWKNvaMkcyklm8bNA_78 = mulInt64((*t).size, IL64(8));
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_78), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		goto LA71_;
		LA77_: ;
		{
			NIM_BOOL T80_;
			NIM_BOOL T82_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_79;
			T80_ = (NIM_BOOL)0;
			T80_ = ((IL64(30064771072) &((NU64)1<<((NU)((*t).kind)&63U)))!=0);
			if (T80_) goto LA81_;
			T82_ = (NIM_BOOL)0;
			T82_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
			if (!(T82_)) goto LA83_;
			T82_ = ((*t).size < IL64(8));
			LA83_: ;
			T80_ = T82_;
			LA81_: ;
			if (!T80_) goto LA84_;
			TM__24XApAWKNvaMkcyklm8bNA_79 = mulInt64((*t).size, IL64(8));
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 93), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_79), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		goto LA71_;
		LA84_: ;
		LA71_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 62):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 43));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 63):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 44));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 64):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 45));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 65):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 46));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 68):
	{
		genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 47));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 69):
	{
		genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 48));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70):
	{
		genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 49));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 71):
	{
		genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 50));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72):
	{
		genBinaryABCnarrowU__ZyWouE89b9cXkDK7i39aj0dwg_5(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 51));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 52));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 53));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 54));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 55));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 56));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 57));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 58));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 59));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 60));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 63));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 64));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 99):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 100):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 65));
		genNarrow__Cd5XCtdH6RMw63L9bPnNMXA(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 106):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 66));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 103):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 105):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 104):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t_2;
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 67));
		t_2 = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
		{
			NIM_BOOL T112_;
			NIM_BOOL T114_;
			NI64 TM__24XApAWKNvaMkcyklm8bNA_80;
			T112_ = (NIM_BOOL)0;
			T112_ = ((IL64(15393162788864) &((NU64)1<<((NU)((*t_2).kind)&63U)))!=0);
			if (T112_) goto LA113_;
			T114_ = (NIM_BOOL)0;
			T114_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 40));
			if (!(T114_)) goto LA115_;
			T114_ = ((*t_2).size < IL64(8));
			LA115_: ;
			T112_ = T114_;
			LA113_: ;
			if (!T112_) goto LA116_;
			TM__24XApAWKNvaMkcyklm8bNA_80 = mulInt64((*t_2).size, IL64(8));
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_80), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA116_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 107):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 108):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 111):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 112):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 113):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 114):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv__3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 68));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 69));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 70));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 71));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 121):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 72));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 122):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 73));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 123):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 74));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 124):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 75));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 125):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 76));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 77));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 127):
	{
		genVarargsABC__ZyWouE89b9cXkDK7i39aj0dwg_7(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 78));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		genBinarySet__ZyWouE89b9cXkDK7i39aj0dwg_6(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 79));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 138):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 80));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 139):
	{
		NI tmp_6;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_6 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 90), tmp_6, ((NI) 0), ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_6);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 141):
	{
		NI d_3;
		NI tmp_7;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T134_;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_7 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		T134_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 140))) goto LA137_;
			T134_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 81);
		}
		goto LA135_;
		LA137_: ;
		{
			T134_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 82);
		}
		LA135_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, T134_, d_3, tmp_7, ((NI) 0));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_7);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, d_3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 145):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T141_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T147_;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		T141_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
		{
			if (!((*c).prc == NIM_NIL)) goto LA144_;
			T141_ = (*c).module;
		}
		goto LA142_;
		LA144_: ;
		{
			T141_ = (*(*c).prc).sym;
		}
		LA142_: ;
		T147_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T147_ = lowerSwap__8A4G64HByteFanrMUexmNw_2((*c).graph, n, T141_);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, T147_, 0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 83));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148):
	{
		NI tmp1;
		NI tmp2_2;
		NI tmp3;
		{
			NI T154_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA152_;
			T154_ = (NI)0;
			T154_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T154_));
		}
		LA152_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3 = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 2)]).typ);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 29), tmp3, tmp1, ((NI) 0));
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1, tmp2_2);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86), tmp3, ((NI) 0), ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp1);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp3);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149):
	{
		NI tmp1_2;
		NI tmp2_3;
		NI tmp3_2;
		{
			NI T160_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA158_;
			T160_ = (NI)0;
			T160_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T160_));
		}
		LA158_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1_2, tmp2_3);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 86), tmp3_2, ((NI) 0), ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp1_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp3_2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152):
	{
		NI d2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d2AsNode;
		NI tmp1_3;
		NI tmp3_3;
		{
			NI T166_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA164_;
			T166_ = (NI)0;
			T166_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T166_));
		}
		LA164_: ;
		d2 = (NI)0;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 2)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 2)]).sons ? (*(*n).sons->data[((NI) 2)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 2)]).sons ? (*(*n).sons->data[((NI) 2)]).sons->Sup.len : 0)-1);
		d2AsNode = (*(*n).sons->data[((NI) 2)]).sons->data[((NI) 0)];
		{
			NIM_BOOL T169_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T172_;
			T169_ = (NIM_BOOL)0;
			T169_ = needsAsgnPatch__ZWNdbTkHEJo2QqoHaEPxGA_2(d2AsNode);
			if (!T169_) goto LA170_;
			T172_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T172_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36));
			d2 = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, T172_);
		}
		goto LA167_;
		LA170_: ;
		{
			d2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, d2AsNode, 0);
		}
		LA167_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 3)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 3),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp3_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 3)], 0);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 87), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp1_3, d2);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 87), tmp3_3, ((NI) 0), ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp1_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp3_3);
		genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, d2AsNode, d2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, d2);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 159):
	{
		NI d_4;
		NI T175_;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		d_4 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T175_ = (NI)0;
		T175_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), d_4, T175_);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), d_4, ((NI) (d_4)));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, (*n).sons->data[((NI) 1)], d_4);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156):
	{
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T182_;
		NI T183_;
		{
			NI T181_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA179_;
			T181_ = (NI)0;
			T181_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T181_));
		}
		LA179_: ;
		T182_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T182_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*n).typ);
		T183_ = (NI)0;
		T183_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, T182_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T183_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 13):
	{
		NI tmp_8;
		NI idx;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T190_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
		NI T195_;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T196_;
		{
			NI T189_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA187_;
			T189_ = (NI)0;
			T189_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T189_));
		}
		LA187_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_8 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		T190_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T190_ = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
		idx = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, T190_);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		typ = (*(*n).sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14))) goto LA193_;
			typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg(typ, IL64(36275087638309136));
		}
		LA193_: ;
		T195_ = (NI)0;
		T195_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), idx, T195_);
		T196_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		{
			if (!(m == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 14))) goto LA199_;
			T196_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 84);
		}
		goto LA197_;
		LA199_: ;
		{
			T196_ = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 85);
		}
		LA197_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, T196_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_8, idx);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_8);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, idx);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8):
	{
		NI tmp_9;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T208_;
		{
			NI T207_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA205_;
			T207_ = (NI)0;
			T207_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T207_));
		}
		LA205_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_9 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T208_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T208_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36275087632017424));
		switch ((*T208_).kind) {
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
		{
			gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 29), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_9, IL64(1));
		}
		break;
		default:
		{
			gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_9, IL64(1));
		}
		break;
		}
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 20):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		n_2 = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n).sons->data[((NI) 1)]);
		{
			NI x;
			NI T216_;
			NI T220_;
			NI T221_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41))) goto LA214_;
			T216_ = (NI)0;
			T216_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			x = getTempRange__ok9afQwIXe7dJAeeWPGODEA(c, T216_, ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						NI TM__24XApAWKNvaMkcyklm8bNA_106;
						NI TM__24XApAWKNvaMkcyklm8bNA_107;
						if (!(i_2 < colontmp_)) goto LA219;
						i = i_2;
						TM__24XApAWKNvaMkcyklm8bNA_106 = addInt(((NI) (x)), i);
						r = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_106), ((NI) 0), ((NI) 255)));
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n_2).kind)>>3] &(1U<<((NU)((*n_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n_2).sons ? (*n_2).sons->Sup.len : 0)) raiseIndexError2(i,((*n_2).sons ? (*n_2).sons->Sup.len : 0)-1);
						gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n_2).sons->data[i], r, 0);
						TM__24XApAWKNvaMkcyklm8bNA_107 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_107);
					} LA219: ;
				}
			}
			T220_ = (NI)0;
			T220_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n_2, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 147), x, ((NI)chckRange(T220_, ((NI) 0), ((NI) 255))), ((NI) 0));
			T221_ = (NI)0;
			T221_ = len__P89cqdlERShb9alU3iC0yj8wast(n_2);
			freeTempRange__G85zfShWD6ECITDwyUUFLQ(c, x, T221_);
		}
		LA214_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 133):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 94));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 134):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 95));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 135):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmtVar__K9aa9aabqu8dDUTWxwwkJdhg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 96));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 25):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 135));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 26):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 136));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12):
	{
		NI tmp_10;
		NI T233_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_10 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T232_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA230_;
			T232_ = (NI)0;
			T232_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T232_));
		}
		LA230_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T233_ = (NI)0;
		T233_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 175), tmp_10, T233_);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 176), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_10, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_10);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 22):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 133));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 23):
	{
		genBinaryABCD__ZyWouE89b9cXkDK7i39aj0dwg_8(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 134));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 218):
	{
		genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 28), IL64(16));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 145));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 278):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 146));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 276):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 179));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 279):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 219):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 151));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 220):
	{
		genVoidABC__bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 152));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 223):
	{
		genVoidABC__bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 119));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 221):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 98));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 222):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 99));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 224):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 100));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 225):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 101));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 226):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 121));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 227):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 122));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 228):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 123));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 229):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 124));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 230):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 125));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 231):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 126));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 232):
	{
		genVoidABC__bOxuqhoYZQ9cPtUccjLVwvA(c, n, (*dest), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 127));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 233):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 128));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 234):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 129));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 235):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 130));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 236):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 131));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 237):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 102));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 238):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 103));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 239):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 104));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 240):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 105));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 241):
	{
		NI tmp_11;
		NI rc;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_11 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T268_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA266_;
			T268_ = (NI)0;
			T268_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T268_));
		}
		LA266_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_108))) goto LA269_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_109))) goto LA270_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_110))) goto LA271_;
		goto LA272_;
		LA269_: ;
		{
			rc = ((NI) 0);
		}
		goto LA273_;
		LA270_: ;
		{
			rc = ((NI) 1);
		}
		goto LA273_;
		LA271_: ;
		{
			rc = ((NI) 2);
		}
		goto LA273_;
		LA272_: ;
		{
			rc = ((NI) 3);
		}
		LA273_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 106), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_11, ((NI)chckRange(rc, ((NI) 0), ((NI) 255))));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_11);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 255):
	{
		NI imm;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_111))) goto LA279_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_112))) goto LA280_;
		goto LA281_;
		LA279_: ;
		{
			imm = ((NI) 0);
		}
		goto LA282_;
		LA280_: ;
		{
			imm = ((NI) 1);
		}
		goto LA282_;
		LA281_: ;
		{
			imm = ((NI) 2);
		}
		LA282_: ;
		genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 109), ((NI64) (imm)));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 242):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 107));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 254):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 108));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 243):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 110));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 244):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 111));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 245):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 112));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 246):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 113));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 247):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 114));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 248):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 115));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 250):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 116));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 251):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 117));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 252):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 118));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 256):
	{
		genBindSym__AcnszMkIUvrpRfWF4iqy5g_4(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 253):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 144));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 259):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 143));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 260):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 61));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 261):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 62));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 249):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_122))) goto LA303_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_123))) goto LA304_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_124))) goto LA305_;
		if (eqStrings((*(*(*(*n).sons->data[((NI) 0)]).sym).name).s, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_125))) goto LA306_;
		goto LA307_;
		LA303_: ;
		{
			genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 141), IL64(0));
		}
		goto LA308_;
		LA304_: ;
		{
			genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 141), IL64(1));
		}
		goto LA308_;
		LA305_: ;
		{
			genUnaryABI__lrQcOjpJx3HtCx1aMMeDpw(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 141), IL64(2));
		}
		goto LA308_;
		LA306_: ;
		{
			{
				NI T315_;
				NimStringDesc* T318_;
				T315_ = (NI)0;
				T315_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
				if (!!((T315_ == ((NI) 3)))) goto LA316_;
				T318_ = (NimStringDesc*)0;
				T318_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_126);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T318_);
			}
			LA316_: ;
			unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 142));
		}
		goto LA308_;
		LA307_: ;
		{
			{
				NimStringDesc* T324_;
				if (!NIM_TRUE) goto LA322_;
				T324_ = (NimStringDesc*)0;
				T324_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_127);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T324_);
			}
			LA322_: ;
		}
		LA308_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 264):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 140));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 265):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 139));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 266):
	{
		{
			NI T330_;
			T330_ = (NI)0;
			T330_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!(T330_ <= ((NI) 1))) goto LA331_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 137), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
		}
		goto LA328_;
		LA331_: ;
		{
			unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
			genBinaryStmt__K9aa9aabqu8dDUTWxwwkJdhg_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 138));
		}
		LA328_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 258):
	{
		{
			NI T339_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA337_;
			T339_ = (NI)0;
			T339_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T339_));
		}
		LA337_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 153), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 263):
	{
		genBinaryABC__ZyWouE89b9cXkDK7i39aj0dwg_2(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 120));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 101):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 129):
	{
		genCall__AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 27):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		{
			NI T345_;
			T345_ = (NI)0;
			T345_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			if (!!((T345_ == ((NI) 2)))) goto LA346_;
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_131));
		}
		LA346_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		arg = (*n).sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*arg).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA350_;
			{
				NI T356_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA354_;
				T356_ = (NI)0;
				T356_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T356_));
			}
			LA354_: ;
			genCall__AcnszMkIUvrpRfWF4iqy5g_5(c, arg, dest);
		}
		goto LA348_;
		LA350_: ;
		{
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_132));
		}
		LA348_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 9):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_133));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 10):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_134));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11):
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_135));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 273):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 155):
	{
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 153):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg_2;
		NI a;
		tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T369_;
		NI T370_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		arg_2 = (*n).sons->data[((NI) 1)];
		a = genx__CcIHODsUfIZ32Dw7elmEjQ(c, arg_2, 0);
		{
			NI T368_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA366_;
			T368_ = (NI)0;
			T368_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*arg_2).typ);
			(*dest) = ((NI) (T368_));
		}
		LA366_: ;
		T369_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
		T369_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(arg_2, NIM_FALSE);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, arg_2, T369_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, ((NI) 0));
		T370_ = (NI)0;
		T370_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*arg_2).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), a, T370_);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), a, ((NI) (a)));
		genAsgnPatch__j7RN6Eyu9arvNrSkBc4hNHw(c, arg_2, a);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 280):
	{
		genUnaryABC__ZyWouE89b9cXkDK7i39aj0dwg_3(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 132));
	}
	break;
	default:
	{
		NimStringDesc* T373_;
		T373_ = (NimStringDesc*)0;
		T373_ = rawNewString((reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)) ? reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_))->Sup.len : 0) + 26);
appendString(T373_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T373_, reprEnum((NI)m, (&NTI__shZhZOdbVC5nnFvcXQAImg_)));
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T373_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__52uSyG4N9c9cuGgSFhItwpgQ)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, NimStringDesc** y, NI yLen_0) {	NIM_BOOL result;
	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
	NI L;
	NI TM__24XApAWKNvaMkcyklm8bNA_138;
{	result = (NIM_BOOL)0;
	s_2 = s;
	TM__24XApAWKNvaMkcyklm8bNA_138 = subInt(yLen_0, ((NI) 1));
	L = (NI)(TM__24XApAWKNvaMkcyklm8bNA_138);
	{
		while (1) {
			NI TM__24XApAWKNvaMkcyklm8bNA_139;
			if (!(((NI) 0) <= L)) goto LA2;
			{
				NIM_BOOL T5_;
				NIM_BOOL T7_;
				NI T8_;
				T5_ = (NIM_BOOL)0;
				T5_ = (s_2 == NIM_NIL);
				if (T5_) goto LA6_;
				T7_ = (NIM_BOOL)0;
				if ((NU)(L) >= (NU)(yLen_0)) raiseIndexError2(L,yLen_0-1);
				T8_ = (NI)0;
				T8_ = nsuCmpIgnoreStyle(y[L], (*(*s_2).name).s);
				T7_ = !((T8_ == ((NI) 0)));
				if (!(T7_)) goto LA9_;
				if ((NU)(L) >= (NU)(yLen_0)) raiseIndexError2(L,yLen_0-1);
				T7_ = !(eqStrings(y[L], ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_42)));
				LA9_: ;
				T5_ = T7_;
				LA6_: ;
				if (!T5_) goto LA10_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
			LA10_: ;
			{
				if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2))&63U)))!=0)) goto LA14_;
				s_2 = (*(*s_2).owner).owner;
			}
			goto LA12_;
			LA14_: ;
			{
				s_2 = (*s_2).owner;
			}
			LA12_: ;
			TM__24XApAWKNvaMkcyklm8bNA_139 = subInt(L, ((NI) 1));
			L = (NI)(TM__24XApAWKNvaMkcyklm8bNA_139);
		} LA2: ;
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__AcnszMkIUvrpRfWF4iqy5g_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 177), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 177), ((NI) 0), T6_);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__AcnszMkIUvrpRfWF4iqy5g_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*n).sons->data[((NI) 1)]).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 178), ((NI) 0), T6_);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
}
static N_INLINE(void, clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		T5_ = (IL64(-32768) <= (*n).intVal);
		if (!(T5_)) goto LA6_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		T5_ = ((*n).intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, NI dest, NI idx, NI value) {	{
		if (!!(!(((*n).typ == NIM_NIL)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_146));
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T10_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = isTemp__3YlwkOhvADs19cHhcnE9boYA(c, ((NI) (dest)));
		T7_ = !(T8_);
		if (!(T7_)) goto LA9_;
		T10_ = (NIM_BOOL)0;
		T10_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
		T7_ = !(T10_);
		LA9_: ;
		if (!T7_) goto LA11_;
		genAdditionalCopy__yPz2tNhzBdEEj9c49aHO2Gzw(c, n, opc, dest, idx, value);
	}
	goto LA5_;
	LA11_: ;
	{
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, dest, idx, value);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__441oTPupNGUtbMyisB9aUyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL requiresCopy) {	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		NI dest;
		NI idx;
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx = genIndex__DPfOz7YYSBixDRy9cYPeZIA(c, (*le).sons->data[((NI) 1)], (*(*le).sons->data[((NI) 0)]).typ);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		{
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T4_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
			T4_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T4_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*le).sons->data[((NI) 0)]).typ, IL64(36134350144710672));
			if (!((805306368 &((NU64)1<<((NU)((*T4_).kind)&63U)))!=0)) goto LA5_;
			preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 22), dest, idx, tmp);
		}
		goto LA2_;
		LA5_: ;
		{
			preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), dest, idx, tmp);
		}
		LA2_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, idx);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		NI objR;
		NI idx_2;
		NI tmp_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__6vrKVoM8aZ4Rjealu5DZbw_3(c, le, (&objR), 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*le).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*le).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*le).sons->data[((NI) 0)]).sons ? (*(*le).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		idx_2 = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*(*le).sons->data[((NI) 0)]).sons->data[((NI) 1)]);
		tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*le).sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), idx_2, tmp_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, idx_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		NI dest_2;
		NI idx_3;
		NI tmp_3;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		idx_3 = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*le).sons->data[((NI) 1)]);
		tmp_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), dest_2, idx_3, tmp_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, idx_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		NI dest_3;
		NI tmp_4;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*le).sons ? (*le).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*le).sons ? (*le).sons->Sup.len : 0)-1);
		dest_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*le).sons->data[((NI) 0)], 1);
		tmp_4 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
		preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), dest_3, ((NI) 0), tmp_4);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_3);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_4);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*le).kind)>>3] &(1U<<((NU)((*le).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		s = (*le).sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, le);
		{
			NIM_BOOL T14_;
			NI tmp_5;
			NI val;
			T14_ = (NIM_BOOL)0;
			T14_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T14_)) goto LA15_;
			T14_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
			LA15_: ;
			if (!T14_) goto LA16_;
			tmp_5 = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
			gen__KQ9csS06JMUvwHLxUYEy8rA(c, le, tmp_5, 2);
			val = genx__CcIHODsUfIZ32Dw7elmEjQ(c, ri, 0);
			preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, le, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), tmp_5, ((NI) 0), val);
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, val);
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_5);
		}
		goto LA12_;
		LA16_: ;
		{
			NI dest_4;
			NI TM__24XApAWKNvaMkcyklm8bNA_148;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21))) goto LA21_;
				setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
			}
			LA21_: ;
			{
				NIM_BOOL T25_;
				NIM_BOOL T27_;
				NimStringDesc* T31_;
				T25_ = (NIM_BOOL)0;
				T25_ = (((NI) 0) < (*s).position);
				if (T25_) goto LA26_;
				T27_ = (NIM_BOOL)0;
				T27_ = ((*s).position == ((NI) 0));
				if (!(T27_)) goto LA28_;
				T27_ = ((2056 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA28_: ;
				T25_ = T27_;
				LA26_: ;
				if (!!(T25_)) goto LA29_;
				T31_ = (NimStringDesc*)0;
				T31_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_147);
				internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T31_);
			}
			LA29_: ;
			TM__24XApAWKNvaMkcyklm8bNA_148 = addInt((*s).position, ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
			dest_4 = ((NI)chckRange((NI)(TM__24XApAWKNvaMkcyklm8bNA_148), ((NI) 0), ((NI) 255)));
			{
				if (!!(!(((*le).typ == NIM_NIL)))) goto LA34_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_149));
			}
			LA34_: ;
			{
				NIM_BOOL T38_;
				NIM_BOOL T39_;
				NIM_BOOL T40_;
				NIM_BOOL T42_;
				NI cc;
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T46_;
				T38_ = (NIM_BOOL)0;
				T39_ = (NIM_BOOL)0;
				T40_ = (NIM_BOOL)0;
				T40_ = isTemp__3YlwkOhvADs19cHhcnE9boYA(c, ((NI) (dest_4)));
				T39_ = !(T40_);
				if (!(T39_)) goto LA41_;
				T42_ = (NIM_BOOL)0;
				T42_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
				T39_ = !(T42_);
				LA41_: ;
				T38_ = T39_;
				if (!(T38_)) goto LA43_;
				T38_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
				LA43_: ;
				if (!T38_) goto LA44_;
				cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
				gen__KQ9csS06JMUvwHLxUYEy8rA(c, ri, cc, 0);
				T46_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
				T46_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
				gABC__G2IxRmwmQahHciEYmnYxxg(c, le, T46_, dest_4, cc, ((NI) 0));
				freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
			}
			goto LA36_;
			LA44_: ;
			{
				gen__KQ9csS06JMUvwHLxUYEy8rA(c, ri, dest_4, 0);
			}
			LA36_: ;
		}
		LA12_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, le, 2);
		genAsgn__9c4eyEUpcv8lGnjrHcs6fgw(c, ((NI) (dest_5)), ri, requiresCopy);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest_5);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__6vrKVoM8aZ4Rjealu5DZbw_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI a;
	NI b;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	a = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	b = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*n).sons->data[((NI) 1)]);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), cc, a, b);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
	}
	LA6_: ;
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a);
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__6vrKVoM8aZ4Rjealu5DZbw_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI objR;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* accessExpr;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
	NI fieldPos;
	objR = ((NI) -1);
	genCheckedObjAccessAux__6vrKVoM8aZ4Rjealu5DZbw_3(c, n, (&objR), flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	accessExpr = (*n).sons->data[((NI) 0)];
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*accessExpr).kind)>>3] &(1U<<((NU)((*accessExpr).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*accessExpr).sons ? (*accessExpr).sons->Sup.len : 0)-1);
	field = (*accessExpr).sons->data[((NI) 1)];
	{
		NimStringDesc* T5_;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*field).kind)>>3] &(1U<<((NU)((*field).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		if (!!(((*(*field).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 19)))) goto LA3_;
		T5_ = (NimStringDesc*)0;
		T5_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_150);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T5_);
	}
	LA3_: ;
	{
		NI T10_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
		T10_ = (NI)0;
		T10_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T10_));
	}
	LA8_: ;
	fieldPos = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, field);
	{
		NIM_BOOL T13_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T15_;
		NI cc;
		T13_ = (NIM_BOOL)0;
		T13_ = ((3 & flags) == 0);
		if (!(T13_)) goto LA14_;
		T15_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T15_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T13_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T15_);
		LA14_: ;
		if (!T13_) goto LA16_;
		cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*accessExpr).typ);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), cc, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), fieldPos);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA11_;
	LA16_: ;
	{
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 16), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange(objR, ((NI) 0), ((NI) 255))), fieldPos);
	}
	LA11_: ;
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(objR, ((NI) 0), ((NI) 255))));
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__zgX4Kkrp9cJUdA7ZSHpwksQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI a;
	NI b;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	a = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	b = genIndex__DPfOz7YYSBixDRy9cYPeZIA(c, (*n).sons->data[((NI) 1)], (*(*n).sons->data[((NI) 0)]).typ);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T10_;
		NI cc;
		T8_ = (NIM_BOOL)0;
		T8_ = ((3 & flags) == 0);
		if (!(T8_)) goto LA9_;
		T10_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T10_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(1153062242103590912));
		T8_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw(T10_);
		LA9_: ;
		if (!T8_) goto LA11_;
		cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, cc, a, b);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), cc, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
	}
	goto LA6_;
	LA11_: ;
	{
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, opc, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
	}
	LA6_: ;
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a);
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, b);
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__6vrKVoM8aZ4Rjealu5DZbw_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag arrayType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350144710672));
	arrayType = (*T1_).kind;
	{
		if (!((805306368 &((NU64)1<<((NU)(arrayType)&63U)))!=0)) goto LA4_;
		genArrAccessOpcode__zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 23), 0);
	}
	goto LA2_;
	LA4_: ;
	{
		if (!(arrayType == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8))) goto LA7_;
		genTypeLit__9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	goto LA2_;
	LA7_: ;
	{
		genArrAccessOpcode__zgX4Kkrp9cJUdA7ZSHpwksQ(c, n, dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 14), flags);
	}
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (NIM_BOOL)0;
	T1_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	T1_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350135273488));
	result = ((*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genDeref__6vrKVoM8aZ4Rjealu5DZbw_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	{
		NIM_BOOL T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection__ZWNdbTkHEJo2QqoHaEPxGA_4((*n).sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 20), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		{
			if (!!(!(((*n).typ == NIM_NIL)))) goto LA20_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_151));
		}
		LA20_: ;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = ((3 & flags) == 0);
			if (!(T24_)) goto LA25_;
			T24_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*n).typ);
			LA25_: ;
			if (!T24_) goto LA26_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 13), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 0));
		}
		LA26_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T3_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
		T3_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350135273744));
		if (!((458752 &((NU64)1<<((NU)((*T3_).kind)&63U)))!=0)) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = (*n).sons->data[((NI) 0)];
		goto BeforeRet_;
	}
	LA4_: ;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	switch ((*(*n).sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		m = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA9_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ((*n).sons->data[((NI) 0)]);
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*m).kind)>>3] &(1U<<((NU)((*m).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*m).sons ? (*m).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*m).sons ? (*m).sons->Sup.len : 0)-1);
			add__P8dDSotTW25BkfbyspojGg(result, (*m).sons->data[((NI) 0)]);
		}
		LA9_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m_2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		m_2 = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*m_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA14_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ((*n).sons->data[((NI) 0)]);
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*m_2).kind)>>3] &(1U<<((NU)((*m_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*m_2).sons ? (*m_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*m_2).sons ? (*m_2).sons->Sup.len : 0)-1);
			add__P8dDSotTW25BkfbyspojGg(result, (*m_2).sons->data[((NI) 0)]);
		}
		LA14_: ;
	}
	break;
	default:
	{
		{
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA19_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
			result = (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 0)];
		}
		LA19_: ;
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T3_ = (((*(*n).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T3_ = !(((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddr__6vrKVoM8aZ4Rjealu5DZbw_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ af;
	tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ newflags;
{	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		m = canElimAddr__yXNCtNX5XyYFmGvoC2Ryfw_2(n);
		if (!!((m == NIM_NIL))) goto LA3_;
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA7_;
		af = 1;
	}
	goto LA5_;
	LA7_: ;
	{
		af = 2;
	}
	LA5_: ;
	newflags = ((flags & ~ 3) | af);
	{
		NIM_BOOL T12_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T12_ = (NIM_BOOL)0;
		T12_ = isGlobal__ZWNdbTkHEJo2QqoHaEPxGA_5((*n).sons->data[((NI) 0)]);
		if (!T12_) goto LA13_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, (flags | af));
	}
	goto LA10_;
	LA13_: ;
	{
		NI tmp;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], newflags);
		{
			NI T20_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA18_;
			T20_ = (NI)0;
			T20_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T20_));
		}
		LA18_: ;
		{
			if (!(((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 3) <= (*(*c).prc).slots[(tmp)- 0].Field1)) goto LA23_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 19), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
			(*(*c).prc).slots[(tmp)- 0].Field1 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 8);
		}
		goto LA21_;
		LA23_: ;
		{
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 18), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		}
		LA21_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA10_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
	if (!(T2_)) goto LA3_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	T2_ = ((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T1_ = ((*(*(*n).sons->data[((NI) 0)]).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__AcnszMkIUvrpRfWF4iqy5g_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_153;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI T14_;
					NI tmp;
					NI elsePos;
					T14_ = (NI)0;
					T14_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T14_ == ((NI) 2))) goto LA15_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*it).sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T19_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T19_ = (NIM_BOOL)0;
						T19_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*it).sons->data[((NI) 0)]);
						if (!T19_) goto LA20_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
						gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*(*it).sons->data[((NI) 0)]).sons->data[((NI) 1)], tmp, 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*it).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*it).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*it).sons->data[((NI) 0)]).sons ? (*(*it).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
						elsePos = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, (*(*it).sons->data[((NI) 0)]).sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155), tmp);
					}
					goto LA17_;
					LA20_: ;
					{
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*it).sons->data[((NI) 0)], tmp, 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						elsePos = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, (*it).sons->data[((NI) 0)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156), tmp);
					}
					LA17_: ;
					freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
					clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 1)], dest, 0);
					{
						NI T25_;
						NI TM__24XApAWKNvaMkcyklm8bNA_152;
						NI T28_;
						NI T29_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						TM__24XApAWKNvaMkcyklm8bNA_152 = subInt(T25_, ((NI) 1));
						if (!(i < (NI)(TM__24XApAWKNvaMkcyklm8bNA_152))) goto LA26_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
						T28_ = (NI)0;
						T28_ = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, (*it).sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T29_ = endings->Sup.len++;
						endings->data[T29_] = T28_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				goto LA12_;
				LA15_: ;
				{
					clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 0)], dest, 0);
				}
				LA12_: ;
				TM__24XApAWKNvaMkcyklm8bNA_153 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_153);
			} LA11: ;
		}
	}
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_154;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM__24XApAWKNvaMkcyklm8bNA_154 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_154);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA38_: ;
			} LA34: ;
		}
	}
	clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__AcnszMkIUvrpRfWF4iqy5g_9)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	tmp = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 0)]).typ);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*n).sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_156;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*it).sons->data[((NI) 0)], dest, 0);
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					b = rawGenLiteral__PEuKCZcy9a56kIfBOLoHU5Q_2(c, it);
					gABx__aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 159), tmp, b);
					T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T21_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					elsePos = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, T21_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156), tmp);
					T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T22_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__6vrKVoM8aZ4Rjealu5DZbw(c, T22_, dest, 0);
					{
						NI T25_;
						NI TM__24XApAWKNvaMkcyklm8bNA_155;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
						NI T29_;
						NI T30_;
						T25_ = (NI)0;
						T25_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						TM__24XApAWKNvaMkcyklm8bNA_155 = subInt(T25_, ((NI) 1));
						if (!(i < (NI)(TM__24XApAWKNvaMkcyklm8bNA_155))) goto LA26_;
						T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
						T29_ = (NI)0;
						T29_ = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, T28_, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T30_ = endings->Sup.len++;
						endings->data[T30_] = T29_;
					}
					LA26_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, elsePos);
				}
				LA15_: ;
				clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
				TM__24XApAWKNvaMkcyklm8bNA_156 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_156);
			} LA14: ;
		}
	}
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_157;
				if (!(i_3 < L)) goto LA34;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM__24XApAWKNvaMkcyklm8bNA_157 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_157);
				{
					NI T37_;
					T37_ = (endings ? endings->Sup.len : 0);
					if (!!((T37_ == L))) goto LA38_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA38_: ;
			} LA34: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__ZRCO5A5eUGuEhpgXduomEQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T3_ = ((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T2_ = !(((*(*n).sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
	T7_ = !(((*n).intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__fa43TdCtd4zzHAl8LQTOIA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI p) {	NI dist;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_160;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM__24XApAWKNvaMkcyklm8bNA_160 = subInt(p, T1_);
	dist = (NI)(TM__24XApAWKNvaMkcyklm8bNA_160);
	{
		NIM_BOOL T4_;
		NimStringDesc* T8_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -32767) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 32767));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		T8_ = (NimStringDesc*)0;
		T8_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_161);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T8_);
	}
	LA6_: ;
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158), ((NI) 0), dist);
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__NGVfQ2d0iTESw9bebNaFPyA)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI oldLen) {	{
		NI f;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI)0;
		colontmp_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
		if ((NU)(oldLen) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(oldLen,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_162;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				f = colontmp_->data[i];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, f);
				TM__24XApAWKNvaMkcyklm8bNA_162 = addInt(i, ((NI) 1));
				i = (NI)(TM__24XApAWKNvaMkcyklm8bNA_162);
				{
					NI T7_;
					T7_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T7_ == L))) goto LA8_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA8_: ;
			} LA4: ;
		}
	}
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) setLengthSeqV2(&((*(*c).prc).blocks)->Sup, (&NTI__JokFGfUW6i9b6aeU7xu6xBw_), ((NI)chckRange(oldLen, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__Y59crI4YgTHHCWclw3gn72A_4)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI lab1;
	NI oldLen;
	NI T1_;
	NI T2_;
	lab1 = genLabel__ZRCO5A5eUGuEhpgXduomEQ(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T2_].label), TM__24XApAWKNvaMkcyklm8bNA_158.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM__24XApAWKNvaMkcyklm8bNA_158.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue__ZWNdbTkHEJo2QqoHaEPxGA_7((*n).sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI lab2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr__ZWNdbTkHEJo2QqoHaEPxGA_6((*n).sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)], 0);
		lab2 = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155), tmp);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI lab2_2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
		lab2_2 = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156), tmp_2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 1)], 0);
		jmpBack__fa43TdCtd4zzHAl8LQTOIA(c, n, lab1);
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, lab2_2);
	}
	LA3_: ;
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__AcnszMkIUvrpRfWF4iqy5g_10)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI oldRegisterCount;
	NI oldLen;
	NI T1_;
	tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ T2_;
	NI T3_;
	oldRegisterCount = (*(*c).prc).maxSlots;
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__2tJGcW69ahqq39a9bVJC1sqGQ));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
	T2_.label = (*(*n).sons->data[((NI) 0)]).sym;
	T2_.fixups = NIM_NIL;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__JokFGfUW6i9b6aeU7xu6xBw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTI__JokFGfUW6i9b6aeU7xu6xBw_)));
	T3_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T3_].label), T2_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T3_].fixups), T2_.fixups, (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 1)], dest, 0);
	popBlock__NGVfQ2d0iTESw9bebNaFPyA(c, oldLen);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (*(*c).prc).maxSlots;
		i_2 = oldRegisterCount;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_163;
				if (!(i_2 < colontmp_)) goto LA6;
				i = i_2;
				{
					NIM_BOOL colontmp__2;
					tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__3;
					if (!!((i == ((NI) ((*dest)))))) goto LA9_;
					colontmp__2 = NIM_FALSE;
					colontmp__3 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 0);
					if ((NU)(i) > (NU)(255)) raiseIndexError2(i, 255);
					(*(*c).prc).slots[(i)- 0].Field0 = colontmp__2;
					(*(*c).prc).slots[(i)- 0].Field1 = colontmp__3;
				}
				LA9_: ;
				TM__24XApAWKNvaMkcyklm8bNA_163 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_163);
			} LA6: ;
		}
	}
	clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__Y59crI4YgTHHCWclw3gn72A_5)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!!(((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__Y59crI4YgTHHCWclw3gn72A_6)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI dest;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	dest = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 150), dest, ((NI) 0), ((NI) 0));
	freeTemp__1nMAqbaMl87FxWu2gyhzog(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__Y59crI4YgTHHCWclw3gn72A_7)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI lab1;
{	lab1 = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI TM__24XApAWKNvaMkcyklm8bNA_164;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			TM__24XApAWKNvaMkcyklm8bNA_164 = subInt(T6_, ((NI) 1));
			colontmp_ = (NI)(TM__24XApAWKNvaMkcyklm8bNA_164);
			res = colontmp_;
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_165;
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
						if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
						if (!((*(*c).prc).blocks->data[i].label == (*(*n).sons->data[((NI) 0)]).sym)) goto LA11_;
						if ((NU)(i) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(i,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
						asgnRef((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[i].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = lab1;
						goto BeforeRet_;
					}
					LA11_: ;
					TM__24XApAWKNvaMkcyklm8bNA_165 = subInt(res, ((NI) 1));
					res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_165);
				} LA8: ;
			}
		}
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_166));
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		if ((NU)(T15_) >= (NU)((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)) raiseIndexError2(T15_,((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[T15_].fixups), (&NTI__qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = lab1;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__AcnszMkIUvrpRfWF4iqy5g_11)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI ehPos;
	NI jumpToFinally;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	ehPos = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 160), ((NI) 0));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, 0);
	clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
	jumpToFinally = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, ehPos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_170;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI blen;
					NI endExcept;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA14_;
					blen = len__P89cqdlERShb9alU3iC0yj8wast(it);
					endExcept = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI TM__24XApAWKNvaMkcyklm8bNA_167;
						NI res;
						j = (NI)0;
						colontmp__2 = (NI)0;
						TM__24XApAWKNvaMkcyklm8bNA_167 = subInt(blen, ((NI) 2));
						colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_167);
						res = ((NI) 0);
						{
							while (1) {
								tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
								NI T23_;
								NI TM__24XApAWKNvaMkcyklm8bNA_169;
								if (!(res <= colontmp__2)) goto LA18;
								j = res;
								{
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
									if (!!(((*(*it).sons->data[j]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4)))) goto LA21_;
									failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_168));
								}
								LA21_: ;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(j) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(j,((*it).sons ? (*it).sons->Sup.len : 0)-1);
								typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*it).sons->data[j]).typ, IL64(36275087638308880));
								T23_ = (NI)0;
								T23_ = genType__H4AMs0GuxljbeG3aMubkXA(c, typ);
								gABx__aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0), T23_);
								TM__24XApAWKNvaMkcyklm8bNA_169 = addInt(res, ((NI) 1));
								res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_169);
							} LA18: ;
						}
					}
					{
						if (!(blen == ((NI) 1))) goto LA26_;
						gABx__aNIPMIOfai9c7QJx79aStfDw(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 161), ((NI) 0), ((NI) 0));
					}
					LA26_: ;
					T28_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T28_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(it);
					gen__6vrKVoM8aZ4Rjealu5DZbw(c, T28_, dest, 0);
					clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
					{
						NI T31_;
						NI T34_;
						NI T35_;
						T31_ = (NI)0;
						T31_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
						if (!(i < T31_)) goto LA32_;
						T34_ = (NI)0;
						T34_ = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTI__qwqHTkRvwhrRyENtudHQ7g_));
						T35_ = endings->Sup.len++;
						endings->data[T35_] = T34_;
					}
					LA32_: ;
					patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endExcept);
				}
				LA14_: ;
				TM__24XApAWKNvaMkcyklm8bNA_170 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_170);
			} LA11: ;
		}
	}
	fin = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
	patch__Ej9bBLeYWuXsMMig9c4loqzw(c, jumpToFinally);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 162), ((NI) 0), ((NI) 0));
	{
		NI endPos;
		NI i_3;
		NI L;
		NI T37_;
		endPos = (NI)0;
		i_3 = ((NI) 0);
		T37_ = (endings ? endings->Sup.len : 0);
		L = T37_;
		{
			while (1) {
				NI TM__24XApAWKNvaMkcyklm8bNA_171;
				if (!(i_3 < L)) goto LA39;
				if ((NU)(i_3) >= (NU)(endings ? endings->Sup.len : 0)) raiseIndexError2(i_3,(endings ? endings->Sup.len : 0)-1);
				endPos = endings->data[i_3];
				patch__Ej9bBLeYWuXsMMig9c4loqzw(c, endPos);
				TM__24XApAWKNvaMkcyklm8bNA_171 = addInt(i_3, ((NI) 1));
				i_3 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_171);
				{
					NI T42_;
					T42_ = (endings ? endings->Sup.len : 0);
					if (!!((T42_ == L))) goto LA43_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_47));
				}
				LA43_: ;
			} LA39: ;
		}
	}
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA47_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*fin).kind)>>3] &(1U<<((NU)((*fin).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*fin).sons ? (*fin).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fin).sons ? (*fin).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*fin).sons->data[((NI) 0)], 0);
		clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
	}
	LA47_: ;
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, fin, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 163), ((NI) 0), ((NI) 0));
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, getOwner__ZAdOX9bNnuzwXclhv6dmGLg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {	tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* result;
	result = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__Y59crI4YgTHHCWclw3gn72A_8)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_180;
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					a = (*n).sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* T28_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
							if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI TM__24XApAWKNvaMkcyklm8bNA_175;
								NI res;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
								TM__24XApAWKNvaMkcyklm8bNA_175 = subInt(T15_, ((NI) 3));
								colontmp__2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_175);
								res = ((NI) 0);
								{
									while (1) {
										NI TM__24XApAWKNvaMkcyklm8bNA_176;
										if (!(res <= colontmp__2)) goto LA17;
										i_3 = res;
										{
											if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
											if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
											if (!((*(*a).sons->data[i_3]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
												T24_ = (((*(*(*a).sons->data[i_3]).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
												T24_ = !(((*(*(*a).sons->data[i_3]).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
												if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
												if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[i_3]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[i_3]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
												setSlot__wdPbhGpyRtpS49bqSwMfggA(c, (*(*a).sons->data[i_3]).sym);
											}
											LA26_: ;
											if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
											if ((NU)(i_3) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i_3,((*a).sons ? (*a).sons->Sup.len : 0)-1);
											checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a).sons->data[i_3]);
										}
										LA20_: ;
										TM__24XApAWKNvaMkcyklm8bNA_176 = addInt(res, ((NI) 1));
										res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_176);
									} LA17: ;
								}
							}
							T28_ = (tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*)0;
							T28_ = getOwner__ZAdOX9bNnuzwXclhv6dmGLg(c);
							T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T29_ = lowerTupleUnpacking__8A4G64HByteFanrMUexmNw((*c).graph, a, T28_);
							gen__M9cKwar4hMj62R1lH9bydpDQ(c, T29_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							if (!((*(*a).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA31_;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*a).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
							s = (*(*a).sons->data[((NI) 0)]).sym;
							if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
							if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
							checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, (*a).sons->data[((NI) 0)]);
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
								if (!(T35_)) goto LA36_;
								T35_ = !(((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21)));
								LA36_: ;
								if (!T35_) goto LA37_;
								{
									if (!((*s).position == ((NI) 0))) goto LA41_;
									{
										NIM_BOOL T45_;
										T45_ = (NIM_BOOL)0;
										T45_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
										if (!T45_) goto LA46_;
										importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*a).info, s);
									}
									goto LA43_;
									LA46_: ;
									{
										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* sa;
										sa = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*s).typ, (*a).info, (*c).config);
										{
											if (!!(!(((*sa).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27))))) goto LA51_;
											failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_177));
										}
										LA51_: ;
										add__P8dDSotTW25BkfbyspojGg((*c).globals, sa);
										(*s).position = len__P89cqdlERShb9alU3iC0yj8wast((*c).globals);
									}
									LA43_: ;
								}
								LA41_: ;
								{
									NI tmp;
									NI val;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									if (!!(((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA55_;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 0)], 2);
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									val = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 2)], 0);
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									genAdditionalCopy__yPz2tNhzBdEEj9c49aHO2Gzw(c, (*a).sons->data[((NI) 2)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 21), tmp, ((NI) 0), val);
									freeTemp__1nMAqbaMl87FxWu2gyhzog(c, val);
									freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
								}
								LA55_: ;
							}
							goto LA33_;
							LA37_: ;
							{
								setSlot__wdPbhGpyRtpS49bqSwMfggA(c, s);
								{
									tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T62_;
									NI T63_;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									if (!((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA60_;
									T62_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
									T62_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
									T63_ = (NI)0;
									T63_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
									gABx__aNIPMIOfai9c7QJx79aStfDw(c, a, T62_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), T63_);
								}
								goto LA58_;
								LA60_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
									{
										if (!!(!(((*s).typ == NIM_NIL)))) goto LA67_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_178));
									}
									LA67_: ;
									{
										NIM_BOOL T71_;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T74_;
										NI T75_;
										T71_ = (NIM_BOOL)0;
										T71_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*s).typ);
										if (!!(T71_)) goto LA72_;
										T74_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T74_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*s).typ);
										T75_ = (NI)0;
										T75_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*s).typ);
										gABx__aNIPMIOfai9c7QJx79aStfDw(c, a, T74_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), T75_);
									}
									LA72_: ;
									if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
									if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
									le = (*a).sons->data[((NI) 0)];
									{
										if (!!(!(((*le).typ == NIM_NIL)))) goto LA78_;
										failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_179));
									}
									LA78_: ;
									{
										NIM_BOOL T82_;
										NIM_BOOL T83_;
										NI cc;
										tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T87_;
										T82_ = (NIM_BOOL)0;
										T83_ = (NIM_BOOL)0;
										T83_ = fitsRegister__NRltpJT49cakdDyz9a9cNr4Kw((*le).typ);
										T82_ = !(T83_);
										if (!(T82_)) goto LA84_;
										T82_ = ((2312 &(1U<<((NU)((*s).kind)&31U)))!=0);
										LA84_: ;
										if (!T82_) goto LA85_;
										cc = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*le).typ);
										if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
										if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
										gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*a).sons->data[((NI) 2)], cc, 0);
										T87_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
										T87_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(le, NIM_TRUE);
										gABC__G2IxRmwmQahHciEYmnYxxg(c, le, T87_, ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), cc, ((NI) 0));
										freeTemp__1nMAqbaMl87FxWu2gyhzog(c, cc);
									}
									goto LA80_;
									LA85_: ;
									{
										if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
										if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
										gen__KQ9csS06JMUvwHLxUYEy8rA(c, (*a).sons->data[((NI) 2)], ((NI)chckRange((*s).position, ((NI) 0), ((NI) 255))), 0);
									}
									LA80_: ;
								}
								LA58_: ;
							}
							LA33_: ;
						}
						goto LA10_;
						LA31_: ;
						{
							{
								NI tmp_2;
								tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T94_;
								NI T95_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (!((*(*a).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA92_;
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*a).sons->data[((NI) 0)], 0);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								T94_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
								T94_ = ldNullOpcode__dZWW1z30r9beffMQ9bbGg9amA((*(*a).sons->data[((NI) 0)]).typ);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								T95_ = (NI)0;
								T95_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*(*a).sons->data[((NI) 0)]).typ);
								gABx__aNIPMIOfai9c7QJx79aStfDw(c, a, T94_, tmp_2, T95_);
								freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
							}
							goto LA90_;
							LA92_: ;
							{
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 0)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
								if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
								genAsgn__441oTPupNGUtbMyisB9aUyA(c, (*a).sons->data[((NI) 0)], (*a).sons->data[((NI) 2)], NIM_TRUE);
							}
							LA90_: ;
						}
						LA10_: ;
					} LA5: ;
					TM__24XApAWKNvaMkcyklm8bNA_180 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_180);
				} LA4: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__AcnszMkIUvrpRfWF4iqy5g_12)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI T6_;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* intType;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	intType = getSysType__VcTNc9cK1Ftuh0MFwOC9c0Tg((*c).graph, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
	seqType = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36275087632017424));
	{
		NI tmp;
		NI T11_;
		NI T12_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24))) goto LA9_;
		tmp = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T11_ = (NI)0;
		T11_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), tmp, T11_);
		T12_ = (NI)0;
		T12_ = genType__H4AMs0GuxljbeG3aMubkXA(c, seqType);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T12_);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 165), tmp, ((NI) 0));
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	LA9_: ;
	{
		NI T15_;
		NI tmp_2;
		NI T18_;
		T15_ = (NI)0;
		T15_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		if (!(((NI) 0) < T15_)) goto LA16_;
		tmp_2 = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, intType);
		T18_ = (NI)0;
		T18_ = genType__H4AMs0GuxljbeG3aMubkXA(c, intType);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 167), tmp_2, T18_);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						NI TM__24XApAWKNvaMkcyklm8bNA_181;
						if (!(i_2 < colontmp_)) goto LA22;
						i = i_2;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						x = (*n).sons->data[i];
						a = genx__CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 15), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, a);
						gABI__u2VxMEzYAC2GH9aMCRX5xhw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 25), tmp_2, tmp_2, IL64(1));
						freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a);
						TM__24XApAWKNvaMkcyklm8bNA_181 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_181);
					} LA22: ;
				}
			}
		}
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
	}
	LA16_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__AcnszMkIUvrpRfWF4iqy5g_13)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_182;
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					x = (*n).sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA13_;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
						a = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*x).sons->data[((NI) 0)], 0);
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
						b = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*x).sons->data[((NI) 1)], 0);
						gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 31), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a, b);
						freeTemp__1nMAqbaMl87FxWu2gyhzog(c, b);
						freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a);
					}
					goto LA11_;
					LA13_: ;
					{
						NI a_2;
						a_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, x, 0);
						gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 30), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), a_2, ((NI) 0));
						freeTemp__1nMAqbaMl87FxWu2gyhzog(c, a_2);
					}
					LA11_: ;
					TM__24XApAWKNvaMkcyklm8bNA_182 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_182);
				} LA10: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__AcnszMkIUvrpRfWF4iqy5g_14)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*n).typ, IL64(36134350136322064));
	{
		NI T10_;
		if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA8_;
		if ((NU)(((NI) 0)) >= (NU)((*t).sons ? (*t).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*t).sons ? (*t).sons->Sup.len : 0)-1);
		T10_ = (NI)0;
		T10_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*t).sons->data[((NI) 0)]);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 164), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
		gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T12_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_184;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NIM_BOOL T18_;
					NI idx;
					NI tmp;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
					if (!(T18_)) goto LA19_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					T18_ = ((*(*it).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					LA19_: ;
					if (!T18_) goto LA20_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					idx = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*it).sons->data[((NI) 0)]);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*it).sons->data[((NI) 1)], 0);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it).sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx, tmp);
					freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
				}
				goto LA16_;
				LA20_: ;
				{
					globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_183));
				}
				LA16_: ;
				TM__24XApAWKNvaMkcyklm8bNA_184 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_184);
			} LA15: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__AcnszMkIUvrpRfWF4iqy5g_15)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType__H4AMs0GuxljbeG3aMubkXA(c, (*n).typ);
	gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 166), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), T6_);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				NI TM__24XApAWKNvaMkcyklm8bNA_185;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				it = (*n).sons->data[i];
				{
					NI idx;
					NI tmp;
					if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA12_;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 0)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					idx = genField__9a15qaQFBwMjo9b9byRZNZAHw(c, (*it).sons->data[((NI) 0)]);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*it).sons->data[((NI) 1)], 0);
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(((NI) 1)) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*it).sons ? (*it).sons->Sup.len : 0)-1);
					preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, (*it).sons->data[((NI) 1)], ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), idx, tmp);
					freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
				}
				goto LA10_;
				LA12_: ;
				{
					NI tmp_2;
					tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, it, 0);
					preventFalseAlias__yPz2tNhzBdEEj9c49aHO2Gzw_2(c, it, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 17), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange(i, ((NI) 0), ((NI) 255))), tmp_2);
					freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
				}
				LA10_: ;
				TM__24XApAWKNvaMkcyklm8bNA_185 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_185);
			} LA9: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__AcnszMkIUvrpRfWF4iqy5g_16)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest) {	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag signedIntegers;
	tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag unsignedIntegers;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* src;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* dst;
	NI64 srcSize;
	NI64 dstSize;
	signedIntegers = IL64(66571993088);
	unsignedIntegers = IL64(34084860461060);
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	src = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 1)]).typ, IL64(36134350136322320));
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	dst = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 0)]).typ, IL64(36134350136322320));
	srcSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, src);
	dstSize = getSize__vCG1GF2Iu043oALVyuJfOw((*c).config, dst);
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T11_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T11_ = (NI)0;
			T11_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T11_));
		}
		LA9_: ;
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 4), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp, ((NI) 0));
		{
			if (!!((dstSize == IL64(8)))) goto LA14_;
			{
				if (!((signedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA18_;
				{
					NI64 TM__24XApAWKNvaMkcyklm8bNA_186;
					if (!(dstSize <= srcSize)) goto LA22_;
					TM__24XApAWKNvaMkcyklm8bNA_186 = mulInt64(dstSize, IL64(8));
					gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 93), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_186), ((NI) 0), ((NI) 255))), ((NI) 0));
				}
				LA22_: ;
			}
			goto LA16_;
			LA18_: ;
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA25_;
				{
					NIM_BOOL T29_;
					NI64 TM__24XApAWKNvaMkcyklm8bNA_187;
					T29_ = (NIM_BOOL)0;
					T29_ = ((signedIntegers &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
					if (T29_) goto LA30_;
					T29_ = (dstSize < srcSize);
					LA30_: ;
					if (!T29_) goto LA31_;
					TM__24XApAWKNvaMkcyklm8bNA_187 = mulInt64(dstSize, IL64(8));
					gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI)chckRange64((NI64)(TM__24XApAWKNvaMkcyklm8bNA_187), ((NI) 0), ((NI) 255))), ((NI) 0));
				}
				LA31_: ;
			}
			goto LA16_;
			LA25_: ;
			LA16_: ;
		}
		LA14_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T34_;
		NIM_BOOL T35_;
		NI tmp_2;
		T34_ = (NIM_BOOL)0;
		T35_ = (NIM_BOOL)0;
		T35_ = (srcSize == dstSize);
		if (!(T35_)) goto LA36_;
		T35_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA36_: ;
		T34_ = T35_;
		if (!(T34_)) goto LA37_;
		T34_ = ((IL64(481036337152) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA37_: ;
		if (!T34_) goto LA38_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T44_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA42_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T44_ = (NI)0;
			T44_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T44_));
		}
		LA42_: ;
		{
			if (!((*dst).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA47_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 8), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, ((NI) 0));
		}
		goto LA45_;
		LA47_: ;
		{
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 9), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_2, ((NI) 0));
		}
		LA45_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_2);
	}
	goto LA1_;
	LA38_: ;
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NI tmp_3;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = (srcSize == dstSize);
		if (!(T52_)) goto LA53_;
		T52_ = ((IL64(481036337152) &((NU64)1<<((NU)((*src).kind)&63U)))!=0);
		LA53_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA54_;
		T51_ = ((IL64(34151432454148) &((NU64)1<<((NU)((*dst).kind)&63U)))!=0);
		LA54_: ;
		if (!T51_) goto LA55_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp_3 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T61_ = (NI)0;
			T61_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*(*n).sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 37))) goto LA64_;
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 10), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
			{
				if (!((unsignedIntegers &((NU64)1<<((NU)((*dst).kind)&63U)))!=0)) goto LA68_;
				gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 92), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) 32), ((NI) 0));
			}
			LA68_: ;
		}
		goto LA62_;
		LA64_: ;
		{
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 11), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp_3, ((NI) 0));
		}
		LA62_: ;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp_3);
	}
	goto LA1_;
	LA55_: ;
	{
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_188));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__6vrKVoM8aZ4Rjealu5DZbw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI* dest, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s;
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		s = (*n).sym;
		checkCanEval__Y59crI4YgTHHCWclw3gn72A(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 21):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 11):
		{
			genRdVar__6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 13):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 16):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 18):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14):
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = procIsCallback__9cbdr2y54C9blDw0BnEN4mmQ(c, s);
				if (!T6_) goto LA7_;
			}
			goto LA4_;
			LA7_: ;
			{
				NIM_BOOL T10_;
				T10_ = (NIM_BOOL)0;
				T10_ = importcCond__FdCkMWi1o9ccnUFjzZDi9aUgvmgen(s);
				if (!T10_) goto LA11_;
				importcSym__tceHaTARuJZVYNYoyPbsEA(c, (*n).info, s);
			}
			goto LA4_;
			LA11_: ;
			LA4_: ;
			genLit__AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constVal;
			{
				if (!!(((*s).ast == NIM_NIL))) goto LA16_;
				constVal = (*s).ast;
			}
			goto LA14_;
			LA16_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA14_: ;
			gen__6vrKVoM8aZ4Rjealu5DZbw(c, constVal, dest, 0);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20):
		{
			{
				NI T24_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA22_;
				T24_ = (NI)0;
				T24_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T24_));
			}
			LA22_: ;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = (((NI) -32768) <= (*s).position);
				if (!(T27_)) goto LA28_;
				T27_ = ((*s).position <= ((NI) 32767));
				LA28_: ;
				if (!T27_) goto LA29_;
				gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), (*s).position);
			}
			goto LA25_;
			LA29_: ;
			{
				NI lit;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
				T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T32_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*s).position)));
				lit = genLiteral__PEuKCZcy9a56kIfBOLoHU5Q(c, T32_);
				gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 168), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), lit);
			}
			LA25_: ;
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 7):
		{
			genTypeLit__9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 4):
		{
			{
				NIM_BOOL T37_;
				T37_ = (NIM_BOOL)0;
				T37_ = !(((*(*c).prc).sym == NIM_NIL));
				if (!(T37_)) goto LA38_;
				T37_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
				LA38_: ;
				if (!T37_) goto LA39_;
				genRdVar__6vrKVoM8aZ4Rjealu5DZbw_2(c, n, dest, flags);
			}
			goto LA35_;
			LA39_: ;
			{
				NimStringDesc* T42_;
				T42_ = (NimStringDesc*)0;
				T42_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T42_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T42_, (*(*s).name).s);
				globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T42_);
			}
			LA35_: ;
		}
		break;
		default:
		{
			NimStringDesc* T44_;
			T44_ = (NimStringDesc*)0;
			T44_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T44_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_57));
appendString(T44_, (*(*s).name).s);
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T44_);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s_2;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!((*(*n).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA48_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
			s_2 = (*(*n).sons->data[((NI) 0)]).sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA52_;
				genMagic__5VcHfJsVaWxnq3vvengJ7Q(c, n, dest, (*s_2).magic);
			}
			goto LA50_;
			LA52_: ;
			{
				NimStringDesc* T57_;
				if (!((*s_2).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 14))) goto LA55_;
				T57_ = (NimStringDesc*)0;
				T57_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_136));
appendString(T57_, (*(*s_2).name).s);
appendString(T57_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_137));
				localError__NF6kBGchnhQYPbCedyefVA((*c).config, (*n).info, T57_);
			}
			goto LA50_;
			LA55_: ;
			{
				NIM_BOOL T59_;
				T59_ = (NIM_BOOL)0;
				T59_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_140, 3);
				if (!T59_) goto LA60_;
				genMarshalLoad__AcnszMkIUvrpRfWF4iqy5g_6(c, n, dest);
			}
			goto LA50_;
			LA60_: ;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				T63_ = matches__52uSyG4N9c9cuGgSFhItwpgQ(s_2, TM__24XApAWKNvaMkcyklm8bNA_144, 3);
				if (!T63_) goto LA64_;
				genMarshalStore__AcnszMkIUvrpRfWF4iqy5g_7(c, n, dest);
			}
			goto LA50_;
			LA64_: ;
			{
				genCall__AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
				clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
			}
			LA50_: ;
		}
		goto LA46_;
		LA48_: ;
		{
			genCall__AcnszMkIUvrpRfWF4iqy5g_5(c, n, dest);
			clearDest__dfAz2NYFCQaf0gjeZoi5HAvmgen(c, n, dest);
		}
		LA46_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 10):
	{
		{
			NIM_BOOL T71_;
			T71_ = (NIM_BOOL)0;
			T71_ = isInt16Lit__ZWNdbTkHEJo2QqoHaEPxGA_3(n);
			if (!T71_) goto LA72_;
			{
				NI T78_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA76_;
				T78_ = (NI)0;
				T78_ = getTemp__LRjzFZg4NHLjhn9bcZYMCiw(c, (*n).typ);
				(*dest) = ((NI) (T78_));
			}
			LA76_: ;
			if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
			gABx__aNIPMIOfai9c7QJx79aStfDw(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 172), ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), ((NI) ((*n).intVal)));
		}
		goto LA69_;
		LA72_: ;
		{
			genLit__AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
		}
		LA69_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 11) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
	{
		genLit__AcnszMkIUvrpRfWF4iqy5g(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
		{
			NIM_BOOL T84_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T87_;
			T84_ = (NIM_BOOL)0;
			T84_ = isEmptyType__nPImuPGZIdcrAfCNyf4oxA_3ast((*n).typ);
			if (!!(T84_)) goto LA85_;
			T87_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T87_ = getNullValue__MirnaGAtIj7Yo4Gl5MzUxA((*n).typ, (*n).info, (*c).config);
			genLit__AcnszMkIUvrpRfWF4iqy5g(c, T87_, dest);
		}
		goto LA82_;
		LA85_: ;
		{
			unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		}
		LA82_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genAsgn__441oTPupNGUtbMyisB9aUyA(c, (*n).sons->data[((NI) 0)], (*n).sons->data[((NI) 1)], ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		genObjAccess__6vrKVoM8aZ4Rjealu5DZbw_4(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		genCheckedObjAccess__6vrKVoM8aZ4Rjealu5DZbw_5(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	{
		genArrAccess__6vrKVoM8aZ4Rjealu5DZbw_6(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genDeref__6vrKVoM8aZ4Rjealu5DZbw_7(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
	{
		genAddr__6vrKVoM8aZ4Rjealu5DZbw_8(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf__AcnszMkIUvrpRfWF4iqy5g_8(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*n).sons->data[((NI) 0)]).sons ? (*(*n).sons->data[((NI) 0)]).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*(*n).sons->data[((NI) 0)]).sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase__AcnszMkIUvrpRfWF4iqy5g_9(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genWhile__Y59crI4YgTHHCWclw3gn72A_4(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock__AcnszMkIUvrpRfWF4iqy5g_10(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genReturn__Y59crI4YgTHHCWclw3gn72A_5(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise__Y59crI4YgTHHCWclw3gn72A_6(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genBreak__Y59crI4YgTHHCWclw3gn72A_7(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		genTry__AcnszMkIUvrpRfWF4iqy5g_11(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI TM__24XApAWKNvaMkcyklm8bNA_172;
						if (!(i_2 < colontmp_)) goto LA108;
						i = i_2;
						if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						x = (*n).sons->data[i];
						gen__M9cKwar4hMj62R1lH9bydpDQ(c, x, 0);
						TM__24XApAWKNvaMkcyklm8bNA_172 = addInt(i_2, ((NI) 1));
						i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_172);
					} LA108: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	{
		NI L;
		NI T110_;
		NI TM__24XApAWKNvaMkcyklm8bNA_173;
		T110_ = (NI)0;
		T110_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__24XApAWKNvaMkcyklm8bNA_173 = subInt(T110_, ((NI) 1));
		L = (NI)(TM__24XApAWKNvaMkcyklm8bNA_173);
		{
			NI i_3;
			NI i_4;
			i_3 = (NI)0;
			i_4 = ((NI) 0);
			{
				while (1) {
					NI TM__24XApAWKNvaMkcyklm8bNA_174;
					if (!(i_4 < L)) goto LA113;
					i_3 = i_4;
					if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
					if ((NU)(i_3) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i_3,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[i_3], 0);
					TM__24XApAWKNvaMkcyklm8bNA_174 = addInt(i_4, ((NI) 1));
					i_4 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_174);
				} LA113: ;
			}
		}
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(L) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(L,((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[L], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T115_;
		T115_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T115_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, T115_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, (*n).sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv__3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv__3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		genConv__3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 88));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
		genVarSection__Y59crI4YgTHHCWclw3gn72A_8(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T123_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_9[(NU)((*(*n).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_10));
		T123_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T123_ = newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*(*n).sons->data[((NI) 0)]).sym);
		genLit__AcnszMkIUvrpRfWF4iqy5g(c, T123_, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp0 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 0)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp1 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 1)], 0);
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		tmp2 = genx__CcIHODsUfIZ32Dw7elmEjQ(c, (*n).sons->data[((NI) 2)], 0);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 97), tmp0, tmp1, tmp2);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp1);
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp2);
		{
			tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ T129_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA127_;
			T129_ = (tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)0;
			T129_ = whichAsgnOpc__Xku9bcs8OlYSPEVUU3jxj9bg(n, NIM_TRUE);
			gABC__G2IxRmwmQahHciEYmnYxxg(c, n, T129_, ((NI)chckRange((*dest), ((NI) 0), ((NI) 255))), tmp0, ((NI) 0));
			freeTemp__1nMAqbaMl87FxWu2gyhzog(c, tmp0);
		}
		goto LA125_;
		LA127_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA125_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 120):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
	{
		unused__YYwGXQyo9cz9adaT9bL9bw45Bwvmgen(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		gen__6vrKVoM8aZ4Rjealu5DZbw(c, (*n).sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	{
		genArrayConstr__AcnszMkIUvrpRfWF4iqy5g_12(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	{
		genSetConstr__AcnszMkIUvrpRfWF4iqy5g_13(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	{
		genObjConstr__AcnszMkIUvrpRfWF4iqy5g_14(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		genTupleConstr__AcnszMkIUvrpRfWF4iqy5g_15(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	{
		{
			if (!(((*c).features &(1U<<((NU)(((tyEnum_TSandboxFlag__JyPEhkAmDAldmLHNNrLR0A) 0))&7U)))!=0)) goto LA140_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			genConv__3t9aH9c9bW3NlM77J0pxtz3hg(c, n, (*n).sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 89));
		}
		goto LA138_;
		LA140_: ;
		{
			genCastIntFloat__AcnszMkIUvrpRfWF4iqy5g_16(c, n, dest);
		}
		LA138_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
	{
		genTypeLit__9a1Lon9cJzf9a69cj4KKhxzxrQ(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 24):
	{
	}
	break;
	default:
	{
		NimStringDesc* T146_;
		NimStringDesc* T147_;
		T146_ = (NimStringDesc*)0;
		T147_ = (NimStringDesc*)0;
		T147_ = dollar___qX5C9b0n9bOP7jk69amC8dA7A(n);
		T146_ = rawNewString((T147_ ? T147_->Sup.len : 0) + 28);
appendString(T146_, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_189));
appendString(T146_, T147_);
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, T146_);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, gen__M9cKwar4hMj62R1lH9bydpDQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TGenFlag__dpr9bkeHD0U9bDk615O0L1FQ flags) {	NI tmp;
	tmp = ((NI) -1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		freeTemp__1nMAqbaMl87FxWu2gyhzog(c, ((NI)chckRange(tmp, ((NI) 0), ((NI) 255))));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI pc, NI diff) {	NU32 oldInstr;
	NI TM__24XApAWKNvaMkcyklm8bNA_201;
	{
		NIM_BOOL T3_;
		NimStringDesc* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -32767) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 32767));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar___r38WafKlW80RkvoZTcia4Q(TM__24XApAWKNvaMkcyklm8bNA_200);
		internalError__5hPl6LjCYJxMYxh9af9b9bXzw((*c).config, T7_);
	}
	LA5_: ;
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1);
	oldInstr = (*c).code->data[pc];
	if ((NU)(pc) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(pc,((*c).code ? (*c).code->Sup.len : 0)-1);
	TM__24XApAWKNvaMkcyklm8bNA_201 = addInt(diff, ((NI) 32768));
	(*c).code->data[pc] = (NU32)((NU32)(oldInstr & ((NU32) 65535)) | (NU32)((NU32)(((NU32) ((NI)(TM__24XApAWKNvaMkcyklm8bNA_201)))) << (NU32)(((NU32) 16))));
}
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__c4Ny4S2QTBXPlybhF7naeg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, NI start) {	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ opc;
				NI TM__24XApAWKNvaMkcyklm8bNA_211;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
				opc = ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[i] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180)));
				switch (opc) {
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156):
				{
					NI reg;
					NI d;
					NI TM__24XApAWKNvaMkcyklm8bNA_190;
					NI TM__24XApAWKNvaMkcyklm8bNA_191;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					reg = ((NI)chckRange((NU32)((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255)));
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					TM__24XApAWKNvaMkcyklm8bNA_190 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
					TM__24XApAWKNvaMkcyklm8bNA_191 = addInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_190));
					d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_191);
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								NI TM__24XApAWKNvaMkcyklm8bNA_197;
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
								switch (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180)))) {
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157):
								{
									NI TM__24XApAWKNvaMkcyklm8bNA_192;
									NI TM__24XApAWKNvaMkcyklm8bNA_193;
									if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
									TM__24XApAWKNvaMkcyklm8bNA_192 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
									TM__24XApAWKNvaMkcyklm8bNA_193 = addInt(d, (NI)(TM__24XApAWKNvaMkcyklm8bNA_192));
									d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_193);
								}
								break;
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 155):
								case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 156):
								{
									{
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										if (!!((((NI) (((NI)chckRange((NU32)((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										NI TM__24XApAWKNvaMkcyklm8bNA_194;
										NI TM__24XApAWKNvaMkcyklm8bNA_195;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180))) == opc)) goto LA17_;
										if ((NU)(d) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d,((*c).code ? (*c).code->Sup.len : 0)-1);
										TM__24XApAWKNvaMkcyklm8bNA_194 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
										TM__24XApAWKNvaMkcyklm8bNA_195 = addInt(d, (NI)(TM__24XApAWKNvaMkcyklm8bNA_194));
										d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_195);
									}
									goto LA15_;
									LA17_: ;
									{
										NI TM__24XApAWKNvaMkcyklm8bNA_196;
										TM__24XApAWKNvaMkcyklm8bNA_196 = addInt(d, ((NI) 1));
										d = (NI)(TM__24XApAWKNvaMkcyklm8bNA_196);
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								TM__24XApAWKNvaMkcyklm8bNA_197 = subInt(res, ((NI) 1));
								res = (NI)(TM__24XApAWKNvaMkcyklm8bNA_197);
							} LA8: ;
						}
					} LA6: ;
					{
						NI TM__24XApAWKNvaMkcyklm8bNA_198;
						NI TM__24XApAWKNvaMkcyklm8bNA_199;
						NI TM__24XApAWKNvaMkcyklm8bNA_202;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						TM__24XApAWKNvaMkcyklm8bNA_198 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
						TM__24XApAWKNvaMkcyklm8bNA_199 = addInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_198));
						if (!!((d == (NI)(TM__24XApAWKNvaMkcyklm8bNA_199)))) goto LA23_;
						TM__24XApAWKNvaMkcyklm8bNA_202 = subInt(d, i);
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_202));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157):
				case ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 158):
				{
					NI d_2;
					NI TM__24XApAWKNvaMkcyklm8bNA_203;
					NI TM__24XApAWKNvaMkcyklm8bNA_204;
					NI iters_2;
					if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
					TM__24XApAWKNvaMkcyklm8bNA_203 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
					TM__24XApAWKNvaMkcyklm8bNA_204 = addInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_203));
					d_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_204);
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T28_;
							NI TM__24XApAWKNvaMkcyklm8bNA_205;
							NI TM__24XApAWKNvaMkcyklm8bNA_206;
							NI TM__24XApAWKNvaMkcyklm8bNA_207;
							T28_ = (NIM_BOOL)0;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
							T28_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d_2] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157));
							if (!(T28_)) goto LA29_;
							T28_ = (((NI) 0) < iters_2);
							LA29_: ;
							if (!T28_) goto LA27;
							if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
							TM__24XApAWKNvaMkcyklm8bNA_205 = subInt(((NI) ((NU32)((NU32)((*c).code->data[d_2]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
							TM__24XApAWKNvaMkcyklm8bNA_206 = addInt(d_2, (NI)(TM__24XApAWKNvaMkcyklm8bNA_205));
							d_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_206);
							TM__24XApAWKNvaMkcyklm8bNA_207 = subInt(iters_2, ((NI) 1));
							iters_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_207);
						} LA27: ;
					}
					{
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
						if (!(((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[d_2] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1))) goto LA32_;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						if ((NU)(d_2) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(d_2,((*c).code ? (*c).code->Sup.len : 0)-1);
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA30_;
					LA32_: ;
					{
						NI TM__24XApAWKNvaMkcyklm8bNA_208;
						NI TM__24XApAWKNvaMkcyklm8bNA_209;
						NI TM__24XApAWKNvaMkcyklm8bNA_210;
						if ((NU)(i) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(i,((*c).code ? (*c).code->Sup.len : 0)-1);
						TM__24XApAWKNvaMkcyklm8bNA_208 = subInt(((NI) ((NU32)((NU32)((*c).code->data[i]) >> (NU32)(((NU32) 16))))), ((NI) 32768));
						TM__24XApAWKNvaMkcyklm8bNA_209 = addInt(i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_208));
						if (!!((d_2 == (NI)(TM__24XApAWKNvaMkcyklm8bNA_209)))) goto LA35_;
						TM__24XApAWKNvaMkcyklm8bNA_210 = subInt(d_2, i);
						finalJumpTarget__itRVHu2VjfuWF9aKlZ4FY7A(c, i, (NI)(TM__24XApAWKNvaMkcyklm8bNA_210));
					}
					goto LA30_;
					LA35_: ;
					LA30_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				TM__24XApAWKNvaMkcyklm8bNA_211 = addInt(i_2, ((NI) 1));
				i_2 = (NI)(TM__24XApAWKNvaMkcyklm8bNA_211);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genProc__82SK3f7Ee6e9aktSfHKYXUw)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s) {	NI result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	result = (NI)0;
	if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
	if ((NU)(((NI) 5)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 5),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
	x = (*(*s).ast).sons->data[((NI) 5)];
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NI TM__24XApAWKNvaMkcyklm8bNA_4;
		NU32 eofInstr;
		NI T14_;
		NI TM__24XApAWKNvaMkcyklm8bNA_5;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
		NIM_BOOL T21_;
		NI procStart;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* p;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* T22_;
		tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ* oldPrc;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		if (T3_) goto LA4_;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		T3_ = ((*(*x).sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		TM__24XApAWKNvaMkcyklm8bNA_4 = subInt(T7_, ((NI) 1));
		last = (NI)(TM__24XApAWKNvaMkcyklm8bNA_4);
		eofInstr = (NU32)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
			T10_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[last] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
			eofInstr = (*c).code->data[last];
			asgnRef((void**) (&(*c).code), (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__9bAGqSvkAaFL9bWjsEPslrFA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
			asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		TM__24XApAWKNvaMkcyklm8bNA_5 = addInt(T14_, ((NI) 1));
		result = (NI)(TM__24XApAWKNvaMkcyklm8bNA_5);
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
			if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA17_;
			nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T19_[0] = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result)));
			T19_[1] = x;
			x = newTree__FpOm4fidh9bWdkMa1BMRJkQ(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), T19_, 2);
		}
		goto LA15_;
		LA17_: ;
		{
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*x).sons->data[((NI) 0)]), newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) (result))));
		}
		LA15_: ;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 5)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 5),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*s).ast).sons->data[((NI) 5)]), x);
		T21_ = (NIM_BOOL)0;
		T21_ = isCompileTimeProc__Ye2MiAptq3GrXxTQeyXNeA_4ast(s);
		body = transformBody__gFZW9bFffCiuUrdu3Rnih2g((*c).graph, s, !(T21_), NIM_TRUE);
		procStart = xjmp__LLVWVnfPUz40PkTu6VMsfA(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 157), ((NI) 0));
		T22_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*)0;
		T22_ = (tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ*) newObj((&NTI__FM7mzTFsA8pyUhXVKKO6Gw_), sizeof(tyObject_PProccolonObjectType___VFEBuxrDHC6kHPzc1TWaRQ));
		if ((*T22_).blocks) { nimGCunrefRC1((*T22_).blocks); (*T22_).blocks = NIM_NIL; }
		asgnRef((void**) (&(*T22_).sym), s);
		p = T22_;
		oldPrc = (*c).prc;
		asgnRef((void**) (&(*c).prc), p);
		genParams__yHS9cbYsE7NJ9b9appE7eVGpA(c, (*(*s).typ).n);
		{
			NIM_BOOL T25_;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 17));
			if (!(T25_)) goto LA26_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
			T25_ = !(((*(*(*s).ast).sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
			LA26_: ;
			if (!T25_) goto LA27_;
			if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*(*s).ast).kind)>>3] &(1U<<((NU)((*(*s).ast).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
			if ((NU)(((NI) 2)) >= (NU)((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*s).ast).sons ? (*(*s).ast).sons->Sup.len : 0)-1);
			genGenericParams__4wahcx9bmpD7ffT1schyhBg(c, (*(*s).ast).sons->data[((NI) 2)]);
		}
		LA27_: ;
		{
			NIM_BOOL colontmp_;
			tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ colontmp__2;
			NI TM__24XApAWKNvaMkcyklm8bNA_15;
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 12))&63U)))!=0)) goto LA31_;
			colontmp_ = NIM_TRUE;
			colontmp__2 = ((tyEnum_TSlotKind__QOyrDzzey9cf6gDtSRPuZMQ) 2);
			if ((NU)((*(*c).prc).maxSlots) > (NU)(255)) raiseIndexError2((*(*c).prc).maxSlots, 255);
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field0 = colontmp_;
			(*(*c).prc).slots[((*(*c).prc).maxSlots)- 0].Field1 = colontmp__2;
			TM__24XApAWKNvaMkcyklm8bNA_15 = addInt((*(*c).prc).maxSlots, ((NI) 1));
			(*(*c).prc).maxSlots = (NI)(TM__24XApAWKNvaMkcyklm8bNA_15);
		}
		LA31_: ;
		gen__M9cKwar4hMj62R1lH9bydpDQ(c, body, 0);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch__Ej9bBLeYWuXsMMig9c4loqzw(c, procStart);
		gABC__G2IxRmwmQahHciEYmnYxxg(c, body, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI)chckRange((NU32)((NU32)((NU32)(eofInstr) >> (NU32)(((NU32) 8))) & ((NU32) 255)), ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
		optimizeJumps__c4Ny4S2QTBXPlybhF7naeg(c, result);
		(*s).offset = (*(*c).prc).maxSlots;
		asgnRef((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		(*(*c).prc).maxSlots = (*s).offset;
		if (((TM__24XApAWKNvaMkcyklm8bNA_2[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_3));
		if ((NU)(((NI) 0)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*x).sons ? (*x).sons->Sup.len : 0)-1);
		if (!(((TM__24XApAWKNvaMkcyklm8bNA_50[(NU)((*(*x).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*x).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_51));
		result = ((NI) ((*(*x).sons->data[((NI) 0)]).intVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__11BORrgbqmd0BtSK02pBqQ)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c) {	NI last;
	NI T1_;
	NI TM__24XApAWKNvaMkcyklm8bNA_212;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	TM__24XApAWKNvaMkcyklm8bNA_212 = subInt(T1_, ((NI) 1));
	last = (NI)(TM__24XApAWKNvaMkcyklm8bNA_212);
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		if ((NU)(last) >= (NU)((*c).code ? (*c).code->Sup.len : 0)) raiseIndexError2(last,((*c).code ? (*c).code->Sup.len : 0)-1);
		T4_ = (((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ)chckRange((NU32)((*c).code->data[last] & ((NU32) 255)), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 180))) == ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		{
			NI T10_;
			NI T11_;
			T10_ = ((*c).code ? (*c).code->Sup.len : 0);
			T11_ = ((*c).debug ? (*c).debug->Sup.len : 0);
			if (!!((T10_ == T11_))) goto LA12_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_213));
		}
		LA12_: ;
		asgnRef((void**) (&(*c).code), (tySequence__9bAGqSvkAaFL9bWjsEPslrFA*) setLengthSeqV2(&((*c).code)->Sup, (&NTI__9bAGqSvkAaFL9bWjsEPslrFA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
		asgnRef((void**) (&(*c).debug), (tySequence__PJMRIt5QxCm6bRaVyQ5CGA*) setLengthSeqV2(&((*c).debug)->Sup, (&NTI__PJMRIt5QxCm6bRaVyQ5CGA_), ((NI)chckRange(last, ((NI) 0), ((NI) IL64(9223372036854775807))))));
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genExpr__iSa9ao3PEkzo8fCmeMa1Kvg)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL requiresValue) {	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_214));
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI)chckRange(d, ((NI) 0), ((NI) 255))), ((NI) 0), ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genStmt__PEuKCZcy9a56kIfBOLoHU5Q_3)(tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__11BORrgbqmd0BtSK02pBqQ(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__6vrKVoM8aZ4Rjealu5DZbw(c, n, (&d), 0);
	gABC__G2IxRmwmQahHciEYmnYxxg(c, n, ((tyEnum_TOpcode__AHjjN19bk88ZQLW4paSubVQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		globalError__NF6kBGchnhQYPbCedyefVA_2((*c).config, (*n).info, ((NimStringDesc*) &TM__24XApAWKNvaMkcyklm8bNA_215));
	}
	LA4_: ;
	return result;
}
