/* 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_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_Operators__apNm0zcYroUpNRird62c9aQ tyObject_Operators__apNm0zcYroUpNRird62c9aQ;
typedef struct TNimType TNimType;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct TNimNode TNimNode;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct RootObj RootObj;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA tySequence__DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
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 tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
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__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tySequence__nw2ozGiJbajPUc4Cj4vzYw tySequence__nw2ozGiJbajPUc4Cj4vzYw;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
struct tyObject_Operators__apNm0zcYroUpNRird62c9aQ {
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLe;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLt;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opAnd;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opOr;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opIsNil;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opEq;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opAdd;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opSub;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opMul;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opDiv;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opLen;
};
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;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
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;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA;
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
struct tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q {
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* s;
tyObject_Operators__apNm0zcYroUpNRird62c9aQ o;
};
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NU8 tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg[36];
struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
NimStringDesc* s;
tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* next;
NI h;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
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 NU64 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[4];
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__nw2ozGiJbajPUc4Cj4vzYw {
  TGenericSeq Sup;
  tyTuple__EFqgCXJ4d8PgqOdFJmldsQ data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
  TGenericSeq Sup;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, createMagic__MzNJxZ0htpjW89c9b2wBN5rQ)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__TghwFZPkC6wzh9bOuwSr8jQ)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, factImplies__ag9bsj603QsRYxrYUB8C9cMQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__4W1ZJaFiusqlhViRx9cbM9bw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
N_NOINLINE(void, raiseFieldError)(NimStringDesc* f);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___nnERY7FtzBMOEK1oaVzB1g)(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA x);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIsNil__t9c54XcpWxP4FFmaGo7UFXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__Uv9a9aANFtV79cIvUP5jEeyVA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* 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);
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, valueIsNil__toR49cyD1VaoDQ1st9avzzXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv__BH9abOhPX8pH0DnEWlRxmlw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__t9c54XcpWxP4FFmaGo7UFXw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__MH3XlBsw9ahhEwy5cK9cHBHA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameValue__uOYuOsiCZAbEPMGwBL8r8g)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, inSet__b4nxsJCvqXRlyalSWskgNA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elem);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__zW7m5VCjU13sae0oFr8Uww)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__zW7m5VCjU13sae0oFr8Uww_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, leValue__uOYuOsiCZAbEPMGwBL8r8g_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__sCNrMHnQvxnk67uE0fPE6w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__Dsjo9bte8vGxzhtcSrsTyiQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
static N_INLINE(NI64, subInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLt__zW7m5VCjU13sae0oFr8Uww_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__HL9bcwSOMkA5y4aYejstDyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, compareSets__uX14XLtbeJxCxyMrK1w8tQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalSets__Jr5d2PbcnAZ0pFa4Ny88lg_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, intersectSets__DJXyM0ZYUUgI9bAP6orixDA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__4YOyxaxo739b3eaIho5QEcA)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_Int128__9a9axPfb75jdWY25AamJewkA intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__hjogdnp59cMX1rwmjikBhqw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__zcNs9blLGYB6i9aGKob9bpzRw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, lastOrd__hjogdnp59cMX1rwmjikBhqw_2)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___7c5Zw7H31uJfWmmhZe9aEqw_3)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___Sp7OcCEIFoBYolB6PB1fAg_2)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, getInt__Ml9bTZ5dXYSLBfnGRkErokw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__161i7kexvUAISxPtGBRWYw)(NI arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___xL5gyZrjbGMarSdRAXOo9ag)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__Jdq9bmYnl9bApH9aGfXEZQN8Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__HwkqKTJeHjmJRQe2q847cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newOp);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__I2DV2TmmOysY1ZEGW19b9bRg)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_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);
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, add__P8dDSotTW25BkfbyspojGg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__rQdL9bdBvS9aqkRykTzQFSAw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a);
static N_INLINE(NI, subInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, message__mMj7lrOf3zBP9bl69amiKu5g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw renderFlags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__MsjoJ819bWzwqrafMUbvZUQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__MGKHwffiWyEzWzB6rWIB9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, settype__nWHoIj7eHK9ad9brJqEijt9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, newType__SNqpa06pdVCLFFBR28119aQ)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* father, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, astdef__PBkjYIaAGbtrZ8DiUArHcw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__UPSW0jLTX5qJL51YMUAHgw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, addFact__ybuIey7mglQLm61kxh9aaLg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__bzqLNgd7GiDpqZUsYKdenA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, minusOne__FWKgXUNtQfE7EUZKj6yRDQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__ozAjEhyMPuZLnzTVOjeVwA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(NI64, barplusbar___AMT0epkRpHisEnmPCWqESg)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barstarbar___AMT0epkRpHisEnmPCWqESg_2)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, zero__FWKgXUNtQfE7EUZKj6yRDQ_2)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NI64, barminusbar___AMT0epkRpHisEnmPCWqESg_3)(NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, ple__gquZ4TuLCn9anC5O4OWI4Og_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOrdinalType__6euCPZwUsyXzP1vAm4IthA)(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t, NIM_BOOL allowEnumWithHoles);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___nr9cP9b0OL9cabygV9bo19cJgZA)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, one__FWKgXUNtQfE7EUZKj6yRDQ_3)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
static N_INLINE(NI64, divInt64)(NI64 a, NI64 b);
N_NOINLINE(void, raiseDivByZero)(void);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__G9bUxQOJUHpRPU6xPkealOw)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* model, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__nw2ozGiJbajPUc4Cj4vzYw)(void* p, NI op);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__b6iA67SQaAf7h31PeZXmQQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* by);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModelRec__BXeoQpkXTRCPZ40rIGcsCA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
TNimType NTI__apNm0zcYroUpNRird62c9aQ_;
extern TNimType NTI__K9bspPztfoWajecnwjyHuYQ_;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
TNimType NTI__yUzvq5GhzqHyDCdSXqIv1Q_;
extern TNimType NTI__EFqgCXJ4d8PgqOdFJmldsQ_;
TNimType NTI__nw2ozGiJbajPUc4Cj4vzYw_;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_3, "<=", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_4, "<", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_5, "and", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_6, "or", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_7, "isnil", 5);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_8, "==", 2);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_9, "+", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_10, "-", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_11, "*", 1);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_12, "div", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_13, "len", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_14, "not", 3);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_15, "contains", 8);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_16, "guards.nim(718, 10) `prop.kind in nkCallKinds` ", 47);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_17 = {
0xec, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_18, "\'sons\' is not accessible using discriminant \'kind\' of type \'TNo"
"de\'", 66);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_19 = {
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_20, "\'sym\' is not accessible using discriminant \'kind\' of type \'TNod"
"e\'", 65);
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_21 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x12, 0x48, 0x32, 0x06, 0x00, 0x20, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_22 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xa4, 0x92, 0x44, 0x00, 0x00, 0x40, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_23 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x48, 0x25, 0x89, 0x00, 0x00, 0x80, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_24 = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_25, "\'ident\' is not accessible using discriminant \'kind\' of type \'TN"
"ode\'", 67);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_26 = {
0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_27, "\'intVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_28 = {
0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_29, "\'floatVal\' is not accessible using discriminant \'kind\' of type "
"\'TNode\'", 70);
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__6PEpSVg5zYQiUPcMieikwQ_30 = {
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_31, "\'strVal\' is not accessible using discriminant \'kind\' of type \'T"
"Node\'", 68);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_33, "guards.nim(579, 29) `false` impliesIsNil", 40);
NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__6PEpSVg5zYQiUPcMieikwQ_34 = {((NI) 1),
((NI) 2)}
;
NIM_CONST tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ TM__6PEpSVg5zYQiUPcMieikwQ_35 = {((NI) 2),
((NI) 1)}
;
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_36, "guards.nim(498, 29) `false` impliesEq", 37);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_37, "guards.nim(583, 10) `isLocation(x)` ", 36);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_39, "guards.nim(615, 29) `false` impliesGe", 37);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_40, "guards.nim(655, 29) `false` impliesLe", 37);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_50, "guards.nim(561, 29) `false` impliesIn", 37);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_52, "iterators.nim(189, 11) `len(a) == L` the length of the seq chan"
"ged while iterating over it", 90);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_55, "guards.nim(1041, 12) `check.getMagic == mNot` ", 46);
STRING_LITERAL(TM__6PEpSVg5zYQiUPcMieikwQ_65, "guards.nim(984, 12) `branch.kind != nkElse` ", 44);
static NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg TM__6PEpSVg5zYQiUPcMieikwQ_71 = {
0x00, 0x01, 0x00, 0x20, 0xe0, 0x07, 0xde, 0x0f,
0x0c, 0x12, 0x48, 0x32, 0x06, 0x00, 0x20, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg someAdd__zsb09bV9aQEXvpjZmyMwZvKA = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
NIM_CONST tySet_tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg someMul__SEELPgz9b0o9c1cvwttwifGg = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
N_LIB_PRIVATE N_NIMCALL(void, initOperators__3Mq69aIkPINTsOZ4I5g1jZA)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__apNm0zcYroUpNRird62c9aQ_));
	unsureAsgnRef((void**) (&(*Result).opLe), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_3), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74)));
	unsureAsgnRef((void**) (&(*Result).opLt), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_4), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75)));
	unsureAsgnRef((void**) (&(*Result).opAnd), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_5), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115)));
	unsureAsgnRef((void**) (&(*Result).opOr), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_6), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116)));
	unsureAsgnRef((void**) (&(*Result).opIsNil), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_7), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146)));
	unsureAsgnRef((void**) (&(*Result).opEq), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_8), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73)));
	unsureAsgnRef((void**) (&(*Result).opAdd), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_9), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49)));
	unsureAsgnRef((void**) (&(*Result).opSub), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_10), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50)));
	unsureAsgnRef((void**) (&(*Result).opMul), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_11), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51)));
	unsureAsgnRef((void**) (&(*Result).opDiv), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_12), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52)));
	unsureAsgnRef((void**) (&(*Result).opLen), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_13), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40)));
	unsureAsgnRef((void**) (&(*Result).opNot), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_14), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102)));
	unsureAsgnRef((void**) (&(*Result).opContains), createMagic__MzNJxZ0htpjW89c9b2wBN5rQ(g, ((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_15), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137)));
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, tilde___nnERY7FtzBMOEK1oaVzB1g)(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA x) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	switch (x) {
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	break;
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	break;
	case ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2):
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* a, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* b) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*a).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		result = ((TM__6PEpSVg5zYQiUPcMieikwQ_21[(NU)((*b).magic)>>3] &(1U<<((NU)((*b).magic)&7U)))!=0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		result = ((TM__6PEpSVg5zYQiUPcMieikwQ_22[(NU)((*b).magic)>>3] &(1U<<((NU)((*b).magic)&7U)))!=0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		result = ((TM__6PEpSVg5zYQiUPcMieikwQ_23[(NU)((*b).magic)>>3] &(1U<<((NU)((*b).magic)&7U)))!=0);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59):
	{
		result = ((*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52) || (*b).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59));
	}
	break;
	default:
	{
		result = (a == b);
	}
	break;
	}
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__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;
}
static N_INLINE(NI, len__P89cqdlERShb9alU3iC0yj8wast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	NI T1_;
	result = (NI)0;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameTree__Uv9a9aANFtV79cIvUP5jEeyVA)(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__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			result = ((*a).sym == (*b).sym);
			{
				NIM_BOOL T15_;
				NIM_BOOL T19_;
				T15_ = (NIM_BOOL)0;
				T15_ = !(result);
				if (!(T15_)) goto LA16_;
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				T15_ = !(((*(*a).sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)));
				LA16_: ;
				if (!T15_) goto LA17_;
				T19_ = (NIM_BOOL)0;
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				T19_ = ((*(*a).sym).magic == (*(*b).sym).magic);
				if (T19_) goto LA20_;
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				T19_ = sameOpr__PxH8Zivvp3Un9ckV9c1ofpBA((*a).sym, (*b).sym);
				LA20_: ;
				result = T19_;
			}
			LA17_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_24[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_25));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_24[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_25));
			result = ((*(*a).ident).Sup.id == (*(*b).ident).Sup.id);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			result = ((*a).intVal == (*b).intVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
			result = ((*a).floatVal == (*b).floatVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_30[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_31));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_30[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_31));
			result = eqStrings((*a).strVal, (*b).strVal);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T30_;
				NI T31_;
				T30_ = (NI)0;
				T30_ = len__P89cqdlERShb9alU3iC0yj8wast(a);
				T31_ = (NI)0;
				T31_ = len__P89cqdlERShb9alU3iC0yj8wast(b);
				if (!(T30_ == T31_)) goto LA32_;
				{
					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__6PEpSVg5zYQiUPcMieikwQ_32;
							if (!(i_2 < colontmp_)) goto LA36;
							i = i_2;
							{
								NIM_BOOL T39_;
								if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
								if ((NU)(i) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(i,((*a).sons ? (*a).sons->Sup.len : 0)-1);
								if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
								if ((NU)(i) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(i,((*b).sons ? (*b).sons->Sup.len : 0)-1);
								T39_ = (NIM_BOOL)0;
								T39_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*a).sons->data[i], (*b).sons->data[i]);
								if (!!(T39_)) goto LA40_;
								goto BeforeRet_;
							}
							LA40_: ;
							TM__6PEpSVg5zYQiUPcMieikwQ_32 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_32);
						} LA36: ;
					}
				}
				result = NIM_TRUE;
			}
			LA32_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, valueIsNil__toR49cyD1VaoDQ1st9avzzXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38))) goto LA6_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	goto LA1_;
	LA6_: ;
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIsNil__t9c54XcpWxP4FFmaGo7UFXw)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*fact).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*fact).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*fact).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		{
			NIM_BOOL T4_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T4_ = (NIM_BOOL)0;
			T4_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], (*eq).sons->data[((NI) 1)]);
			if (!T4_) goto LA5_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		}
		LA5_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T10_ = (NIM_BOOL)0;
			T10_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], (*eq).sons->data[((NI) 1)]);
			if (!T10_) goto LA11_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T13_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T13_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*fact).sons->data[((NI) 2)]);
			result = valueIsNil__toR49cyD1VaoDQ1st9avzzXw(T13_);
		}
		goto LA8_;
		LA11_: ;
		{
			NIM_BOOL T15_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T15_ = (NIM_BOOL)0;
			T15_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], (*eq).sons->data[((NI) 1)]);
			if (!T15_) goto LA16_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T18_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*fact).sons->data[((NI) 1)]);
			result = valueIsNil__toR49cyD1VaoDQ1st9avzzXw(T18_);
		}
		goto LA8_;
		LA16_: ;
		LA8_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		{
			if (!NIM_TRUE) goto LA22_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_33));
		}
		LA22_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLocation__MH3XlBsw9ahhEwy5cK9cHBHA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(n);
	result = !(T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (!(T3_)) goto LA4_;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = (NIM_BOOL)0;
		T7_ = sameValue__uOYuOsiCZAbEPMGwBL8r8g(a, b);
		result = !(T7_);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesEq__t9c54XcpWxP4FFmaGo7UFXw_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eq) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
	NI loc;
	NI val;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T4_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
		T4_ = (NIM_BOOL)0;
		T4_ = isLocation__MH3XlBsw9ahhEwy5cK9cHBHA((*eq).sons->data[((NI) 1)]);
		if (!T4_) goto LA5_;
		T1_ = TM__6PEpSVg5zYQiUPcMieikwQ_34;
	}
	goto LA2_;
	LA5_: ;
	{
		T1_ = TM__6PEpSVg5zYQiUPcMieikwQ_35;
	}
	LA2_: ;
	loc = T1_.Field0;
	val = T1_.Field1;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*fact).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*fact).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*fact).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T11_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(loc) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(loc,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T11_ = (NIM_BOOL)0;
			T11_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], (*eq).sons->data[loc]);
			if (!T11_) goto LA12_;
			{
				NIM_BOOL T16_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
				T16_ = (NIM_BOOL)0;
				T16_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], (*eq).sons->data[val]);
				if (!T16_) goto LA17_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA14_;
			LA17_: ;
			{
				NIM_BOOL T20_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
				T20_ = (NIM_BOOL)0;
				T20_ = valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2((*fact).sons->data[((NI) 2)], (*eq).sons->data[val]);
				if (!T20_) goto LA21_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA14_;
			LA21_: ;
			LA14_: ;
		}
		goto LA9_;
		LA12_: ;
		{
			NIM_BOOL T24_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(loc) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(loc,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T24_ = (NIM_BOOL)0;
			T24_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], (*eq).sons->data[loc]);
			if (!T24_) goto LA25_;
			{
				NIM_BOOL T29_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
				T29_ = (NIM_BOOL)0;
				T29_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], (*eq).sons->data[val]);
				if (!T29_) goto LA30_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA27_;
			LA30_: ;
			{
				NIM_BOOL T33_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
				T33_ = (NIM_BOOL)0;
				T33_ = valuesUnequal__Uv9a9aANFtV79cIvUP5jEeyVA_2((*fact).sons->data[((NI) 1)], (*eq).sons->data[val]);
				if (!T33_) goto LA34_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA27_;
			LA34_: ;
			LA27_: ;
		}
		goto LA9_;
		LA25_: ;
		LA9_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		{
			NIM_BOOL T39_;
			T39_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(loc) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(loc,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T39_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], (*eq).sons->data[loc]);
			if (!(T39_)) goto LA40_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
			T39_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*eq).sons->data[val]);
			LA40_: ;
			if (!T39_) goto LA41_;
			{
				NIM_BOOL T45_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*eq).kind)>>3] &(1U<<((NU)((*eq).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(val) >= (NU)((*eq).sons ? (*eq).sons->Sup.len : 0)) raiseIndexError2(val,((*eq).sons ? (*eq).sons->Sup.len : 0)-1);
				T45_ = (NIM_BOOL)0;
				T45_ = inSet__b4nxsJCvqXRlyalSWskgNA((*fact).sons->data[((NI) 1)], (*eq).sons->data[val]);
				if (!T45_) goto LA46_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA43_;
			LA46_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA43_: ;
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		{
			if (!NIM_TRUE) goto LA52_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_36));
		}
		LA52_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
static N_INLINE(NI64, subInt64)(NI64 a, NI64 b) {	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ (NI64)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pred__sCNrMHnQvxnk67uE0fPE6w)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NI64 TM__6PEpSVg5zYQiUPcMieikwQ_38;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T3_)) goto LA4_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		T3_ = !(((*n).intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(n);
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		TM__6PEpSVg5zYQiUPcMieikwQ_38 = subInt64((*result).intVal, ((NI) 1));
		(*result).intVal = (NI64)(TM__6PEpSVg5zYQiUPcMieikwQ_38);
	}
	goto LA1_;
	LA5_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesGe__zW7m5VCjU13sae0oFr8Uww_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLocation__MH3XlBsw9ahhEwy5cK9cHBHA(x);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_37));
	}
	LA4_: ;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*fact).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*fact).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*fact).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T9_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T9_) goto LA10_;
			{
				NIM_BOOL T14_;
				T14_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T14_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T14_)) goto LA15_;
				T14_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA15_: ;
				if (!T14_) goto LA16_;
				{
					NIM_BOOL T20_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T20_ = (NIM_BOOL)0;
					T20_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact).sons->data[((NI) 2)]);
					if (!T20_) goto LA21_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA18_;
				LA21_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA18_: ;
			}
			LA16_: ;
		}
		goto LA7_;
		LA10_: ;
		{
			NIM_BOOL T25_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T25_ = (NIM_BOOL)0;
			T25_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T25_) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T30_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T30_)) goto LA31_;
				T30_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA31_: ;
				if (!T30_) goto LA32_;
				{
					NIM_BOOL T36_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T36_ = (NIM_BOOL)0;
					T36_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact).sons->data[((NI) 1)]);
					if (!T36_) goto LA37_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA34_;
				LA37_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA34_: ;
			}
			LA32_: ;
		}
		goto LA7_;
		LA26_: ;
		LA7_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T43_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T43_ = (NIM_BOOL)0;
			T43_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T43_) goto LA44_;
			{
				NIM_BOOL T48_;
				T48_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T48_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T48_)) goto LA49_;
				T48_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA49_: ;
				if (!T48_) goto LA50_;
				{
					NIM_BOOL T54_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T54_ = (NIM_BOOL)0;
					T54_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 2)], c);
					if (!T54_) goto LA55_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA55_: ;
			}
			LA50_: ;
		}
		goto LA41_;
		LA44_: ;
		{
			NIM_BOOL T58_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T58_ = (NIM_BOOL)0;
			T58_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T58_) goto LA59_;
			{
				NIM_BOOL T63_;
				T63_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T63_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T63_)) goto LA64_;
				T63_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA64_: ;
				if (!T63_) goto LA65_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T69_;
					NIM_BOOL T70_;
					T69_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T69_ = pred__sCNrMHnQvxnk67uE0fPE6w(c);
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T70_ = (NIM_BOOL)0;
					T70_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(T69_, (*fact).sons->data[((NI) 1)]);
					if (!T70_) goto LA71_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA71_: ;
			}
			LA65_: ;
		}
		goto LA41_;
		LA59_: ;
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		{
			NIM_BOOL T76_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T76_ = (NIM_BOOL)0;
			T76_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T76_) goto LA77_;
			{
				NIM_BOOL T81_;
				T81_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T81_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T81_)) goto LA82_;
				T81_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA82_: ;
				if (!T81_) goto LA83_;
				{
					NIM_BOOL T87_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T87_ = (NIM_BOOL)0;
					T87_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 2)], c);
					if (!T87_) goto LA88_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA88_: ;
			}
			LA83_: ;
		}
		goto LA74_;
		LA77_: ;
		{
			NIM_BOOL T91_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T91_ = (NIM_BOOL)0;
			T91_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T91_) goto LA92_;
			{
				NIM_BOOL T96_;
				T96_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T96_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T96_)) goto LA97_;
				T96_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA97_: ;
				if (!T96_) goto LA98_;
				{
					NIM_BOOL T102_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T102_ = (NIM_BOOL)0;
					T102_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact).sons->data[((NI) 1)]);
					if (!T102_) goto LA103_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA103_: ;
			}
			LA98_: ;
		}
		goto LA74_;
		LA92_: ;
		LA74_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		{
			if (!NIM_TRUE) goto LA108_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_39));
		}
		LA108_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLe__zW7m5VCjU13sae0oFr8Uww)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLocation__MH3XlBsw9ahhEwy5cK9cHBHA(x);
		if (!!(T3_)) goto LA4_;
		result = impliesGe__zW7m5VCjU13sae0oFr8Uww_2(fact, c, x);
		goto BeforeRet_;
	}
	LA4_: ;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*fact).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*fact).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*fact).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T9_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T9_) goto LA10_;
			{
				NIM_BOOL T14_;
				T14_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T14_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T14_)) goto LA15_;
				T14_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA15_: ;
				if (!T14_) goto LA16_;
				{
					NIM_BOOL T20_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T20_ = (NIM_BOOL)0;
					T20_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 2)], c);
					if (!T20_) goto LA21_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA18_;
				LA21_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA18_: ;
			}
			LA16_: ;
		}
		goto LA7_;
		LA10_: ;
		{
			NIM_BOOL T25_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T25_ = (NIM_BOOL)0;
			T25_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T25_) goto LA26_;
			{
				NIM_BOOL T30_;
				T30_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T30_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T30_)) goto LA31_;
				T30_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA31_: ;
				if (!T30_) goto LA32_;
				{
					NIM_BOOL T36_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T36_ = (NIM_BOOL)0;
					T36_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 1)], c);
					if (!T36_) goto LA37_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				goto LA34_;
				LA37_: ;
				{
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA34_: ;
			}
			LA32_: ;
		}
		goto LA7_;
		LA26_: ;
		LA7_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T43_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T43_ = (NIM_BOOL)0;
			T43_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T43_) goto LA44_;
			{
				NIM_BOOL T48_;
				T48_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T48_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T48_)) goto LA49_;
				T48_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA49_: ;
				if (!T48_) goto LA50_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T54_;
					NIM_BOOL T55_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T54_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T54_ = pred__sCNrMHnQvxnk67uE0fPE6w(c);
					T55_ = (NIM_BOOL)0;
					T55_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 2)], T54_);
					if (!T55_) goto LA56_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA56_: ;
			}
			LA50_: ;
		}
		goto LA41_;
		LA44_: ;
		{
			NIM_BOOL T59_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T59_ = (NIM_BOOL)0;
			T59_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T59_) goto LA60_;
			{
				NIM_BOOL T64_;
				T64_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T64_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T64_)) goto LA65_;
				T64_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA65_: ;
				if (!T64_) goto LA66_;
				{
					NIM_BOOL T70_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T70_ = (NIM_BOOL)0;
					T70_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, (*fact).sons->data[((NI) 1)]);
					if (!T70_) goto LA71_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA71_: ;
			}
			LA66_: ;
		}
		goto LA41_;
		LA60_: ;
		LA41_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		{
			NIM_BOOL T76_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T76_ = (NIM_BOOL)0;
			T76_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], x);
			if (!T76_) goto LA77_;
			{
				NIM_BOOL T81_;
				T81_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T81_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 2)]);
				if (!(T81_)) goto LA82_;
				T81_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA82_: ;
				if (!T81_) goto LA83_;
				{
					NIM_BOOL T87_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T87_ = (NIM_BOOL)0;
					T87_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2((*fact).sons->data[((NI) 2)], c);
					if (!T87_) goto LA88_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				}
				LA88_: ;
			}
			LA83_: ;
		}
		goto LA74_;
		LA77_: ;
		{
			NIM_BOOL T91_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T91_ = (NIM_BOOL)0;
			T91_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], x);
			if (!T91_) goto LA92_;
			{
				NIM_BOOL T96_;
				T96_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T96_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*fact).sons->data[((NI) 1)]);
				if (!(T96_)) goto LA97_;
				T96_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(c);
				LA97_: ;
				if (!T96_) goto LA98_;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T102_;
					NIM_BOOL T103_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					T102_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T102_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact).sons->data[((NI) 1)]);
					T103_ = (NIM_BOOL)0;
					T103_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(c, T102_);
					if (!T103_) goto LA104_;
					result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
				}
				LA104_: ;
			}
			LA98_: ;
		}
		goto LA74_;
		LA92_: ;
		LA74_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		{
			if (!NIM_TRUE) goto LA109_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_40));
		}
		LA109_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesLt__zW7m5VCjU13sae0oFr8Uww_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	p = pred__sCNrMHnQvxnk67uE0fPE6w(c);
	{
		if (!!((p == c))) goto LA3_;
		result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, x, p);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* q;
		q = pred__sCNrMHnQvxnk67uE0fPE6w(x);
		{
			if (!!((q == x))) goto LA8_;
			result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, q, c);
		}
		LA8_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, compareSets__uX14XLtbeJxCxyMrK1w8tQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = equalSets__Jr5d2PbcnAZ0pFa4Ny88lg_2(NIM_NIL, a, b);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		NI T8_;
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = intersectSets__DJXyM0ZYUUgI9bAP6orixDA(NIM_NIL, a, b);
		T8_ = (NI)0;
		T8_ = len__P89cqdlERShb9alU3iC0yj8wast(T7_);
		if (!(T8_ == ((NI) 0))) goto LA9_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
	}
	goto LA1_;
	LA9_: ;
	LA1_: ;
	return result;
}
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
		if (!((*c).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*c).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		T5_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(NIM_NIL, (*x).typ);
		value = newIntNode__4YOyxaxo739b3eaIho5QEcA((*c).kind, T5_);
		{
			NI64 TM__6PEpSVg5zYQiUPcMieikwQ_41;
			NI i;
			NI pos;
			NI neg;
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*c).kind)>>3] &(1U<<((NU)((*c).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			TM__6PEpSVg5zYQiUPcMieikwQ_41 = subInt64((*c).intVal, (*value).intVal);
			if (!((NI64)(TM__6PEpSVg5zYQiUPcMieikwQ_41) < IL64(1000))) goto LA8_;
			i = (NI)0;
			pos = (NI)0;
			neg = (NI)0;
			{
				while (1) {
					NI TM__6PEpSVg5zYQiUPcMieikwQ_44;
					NI64 TM__6PEpSVg5zYQiUPcMieikwQ_45;
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*c).kind)>>3] &(1U<<((NU)((*c).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
					if (!((*value).intVal <= (*c).intVal)) goto LA11;
					{
						NIM_BOOL T14_;
						NI TM__6PEpSVg5zYQiUPcMieikwQ_42;
						T14_ = (NIM_BOOL)0;
						T14_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, value);
						if (!T14_) goto LA15_;
						TM__6PEpSVg5zYQiUPcMieikwQ_42 = addInt(pos, ((NI) 1));
						pos = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_42);
					}
					goto LA12_;
					LA15_: ;
					{
						NI TM__6PEpSVg5zYQiUPcMieikwQ_43;
						TM__6PEpSVg5zYQiUPcMieikwQ_43 = addInt(neg, ((NI) 1));
						neg = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_43);
					}
					LA12_: ;
					TM__6PEpSVg5zYQiUPcMieikwQ_44 = addInt(i, ((NI) 1));
					i = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_44);
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
					TM__6PEpSVg5zYQiUPcMieikwQ_45 = addInt64((*value).intVal, ((NI) 1));
					(*value).intVal = (NI64)(TM__6PEpSVg5zYQiUPcMieikwQ_45);
				} LA11: ;
			}
			{
				if (!(pos == i)) goto LA20_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA18_;
			LA20_: ;
			{
				if (!(neg == i)) goto LA23_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA18_;
			LA23_: ;
			LA18_: ;
		}
		LA8_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA max;
		if (!((*c).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*c).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*c).kind)>>3] &(1U<<((NU)((*c).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		value = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw((*c).kind, (*c).intVal);
		max = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(NIM_NIL, (*x).typ);
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_;
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
			NIM_BOOL T10_;
			NI i;
			NI pos;
			NI neg;
			T7_ = getInt__Ml9bTZ5dXYSLBfnGRkErokw(value);
			T8_ = minus___Sp7OcCEIFoBYolB6PB1fAg_2(max, T7_);
			T9_ = toInt128__161i7kexvUAISxPtGBRWYw(((NI) 1000));
			T10_ = (NIM_BOOL)0;
			T10_ = lt___7c5Zw7H31uJfWmmhZe9aEqw_3(T8_, T9_);
			if (!T10_) goto LA11_;
			i = (NI)0;
			pos = (NI)0;
			neg = (NI)0;
			{
				while (1) {
					NIM_BOOL T15_;
					NI TM__6PEpSVg5zYQiUPcMieikwQ_48;
					NI64 TM__6PEpSVg5zYQiUPcMieikwQ_49;
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
					T15_ = (NIM_BOOL)0;
					T15_ = lteq___xL5gyZrjbGMarSdRAXOo9ag((*value).intVal, max);
					if (!T15_) goto LA14;
					{
						NIM_BOOL T18_;
						NI TM__6PEpSVg5zYQiUPcMieikwQ_46;
						T18_ = (NIM_BOOL)0;
						T18_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, value);
						if (!T18_) goto LA19_;
						TM__6PEpSVg5zYQiUPcMieikwQ_46 = addInt(pos, ((NI) 1));
						pos = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_46);
					}
					goto LA16_;
					LA19_: ;
					{
						NI TM__6PEpSVg5zYQiUPcMieikwQ_47;
						TM__6PEpSVg5zYQiUPcMieikwQ_47 = addInt(neg, ((NI) 1));
						neg = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_47);
					}
					LA16_: ;
					TM__6PEpSVg5zYQiUPcMieikwQ_48 = addInt(i, ((NI) 1));
					i = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_48);
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*value).kind)>>3] &(1U<<((NU)((*value).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
					TM__6PEpSVg5zYQiUPcMieikwQ_49 = addInt64((*value).intVal, ((NI) 1));
					(*value).intVal = (NI64)(TM__6PEpSVg5zYQiUPcMieikwQ_49);
				} LA14: ;
			}
			{
				if (!(pos == i)) goto LA24_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA22_;
			LA24_: ;
			{
				if (!(neg == i)) goto LA27_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			goto LA22_;
			LA27_: ;
			LA22_: ;
		}
		LA11_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesIn__HL9bcwSOMkA5y4aYejstDyA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aSet) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*fact).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*fact).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*fact).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T4_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T4_ = (NIM_BOOL)0;
			T4_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], loc);
			if (!T4_) goto LA5_;
			{
				NIM_BOOL T9_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T9_ = (NIM_BOOL)0;
				T9_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, (*fact).sons->data[((NI) 2)]);
				if (!T9_) goto LA10_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA7_;
			LA10_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA7_: ;
		}
		goto LA2_;
		LA5_: ;
		{
			NIM_BOOL T14_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T14_ = (NIM_BOOL)0;
			T14_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], loc);
			if (!T14_) goto LA15_;
			{
				NIM_BOOL T19_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
				T19_ = (NIM_BOOL)0;
				T19_ = inSet__b4nxsJCvqXRlyalSWskgNA(aSet, (*fact).sons->data[((NI) 1)]);
				if (!T19_) goto LA20_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			}
			goto LA17_;
			LA20_: ;
			{
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
			}
			LA17_: ;
		}
		goto LA2_;
		LA15_: ;
		LA2_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		{
			NIM_BOOL T26_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T26_ = (NIM_BOOL)0;
			T26_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], loc);
			if (!T26_) goto LA27_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			result = compareSets__uX14XLtbeJxCxyMrK1w8tQ((*fact).sons->data[((NI) 1)], aSet);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		{
			NIM_BOOL T32_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T32_ = (NIM_BOOL)0;
			T32_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], loc);
			if (!T32_) goto LA33_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			result = leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA((*fact).sons->data[((NI) 1)], (*fact).sons->data[((NI) 2)], aSet);
		}
		goto LA30_;
		LA33_: ;
		{
			NIM_BOOL T36_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T36_ = (NIM_BOOL)0;
			T36_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], loc);
			if (!T36_) goto LA37_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			result = geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2((*fact).sons->data[((NI) 2)], (*fact).sons->data[((NI) 1)], aSet);
		}
		goto LA30_;
		LA37_: ;
		LA30_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T42_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T45_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T42_ = (NIM_BOOL)0;
			T42_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 1)], loc);
			if (!T42_) goto LA43_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T45_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T45_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact).sons->data[((NI) 2)]);
			result = leImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA((*fact).sons->data[((NI) 1)], T45_, aSet);
		}
		goto LA40_;
		LA43_: ;
		{
			NIM_BOOL T47_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T47_ = (NIM_BOOL)0;
			T47_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*fact).sons->data[((NI) 2)], loc);
			if (!T47_) goto LA48_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
			T50_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T50_ = pred__sCNrMHnQvxnk67uE0fPE6w((*fact).sons->data[((NI) 1)]);
			result = geImpliesIn__xO9bWO9cPcOzr2p3b8EOf5lA_2((*fact).sons->data[((NI) 2)], T50_, aSet);
		}
		goto LA40_;
		LA48_: ;
		LA40_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		{
			if (!NIM_TRUE) goto LA54_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_50));
		}
		LA54_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, factImplies__ag9bsj603QsRYxrYUB8C9cMQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T3_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
		arg = (*fact).sons->data[((NI) 1)];
		T3_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T3_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(arg);
		switch (T3_) {
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T5_;
			T5_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T5_ = factImplies__ag9bsj603QsRYxrYUB8C9cMQ(arg, prop);
			result = tilde___nnERY7FtzBMOEK1oaVzB1g(T5_);
			goto BeforeRet_;
		}
		break;
		case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
		{
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA a;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA b;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*arg).kind)>>3] &(1U<<((NU)((*arg).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*arg).sons ? (*arg).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*arg).sons ? (*arg).sons->Sup.len : 0)-1);
			a = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*arg).sons->data[((NI) 1)], prop);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*arg).kind)>>3] &(1U<<((NU)((*arg).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*arg).sons ? (*arg).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*arg).sons ? (*arg).sons->Sup.len : 0)-1);
			b = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*arg).sons->data[((NI) 2)], prop);
			{
				if (!(a == b)) goto LA9_;
				result = tilde___nnERY7FtzBMOEK1oaVzB1g(a);
				goto BeforeRet_;
			}
			LA9_: ;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
			goto BeforeRet_;
		}
		break;
		default:
		{
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
			goto BeforeRet_;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
		result = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*fact).sons->data[((NI) 1)], prop);
		{
			if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA15_;
			goto BeforeRet_;
		}
		LA15_: ;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
		result = factImplies__ag9bsj603QsRYxrYUB8C9cMQ((*fact).sons->data[((NI) 2)], prop);
		goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*prop).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*prop).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	switch ((*(*(*prop).sons->data[((NI) 0)]).sym).magic) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T19_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		T19_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T19_ = factImplies__ag9bsj603QsRYxrYUB8C9cMQ(fact, (*prop).sons->data[((NI) 1)]);
		result = tilde___nnERY7FtzBMOEK1oaVzB1g(T19_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		result = impliesIsNil__t9c54XcpWxP4FFmaGo7UFXw(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		result = impliesEq__t9c54XcpWxP4FFmaGo7UFXw_2(fact, prop);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, (*prop).sons->data[((NI) 1)], (*prop).sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		result = impliesLt__zW7m5VCjU13sae0oFr8Uww_3(fact, (*prop).sons->data[((NI) 1)], (*prop).sons->data[((NI) 2)]);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*prop).kind)>>3] &(1U<<((NU)((*prop).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*prop).sons ? (*prop).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*prop).sons ? (*prop).sons->Sup.len : 0)-1);
		result = impliesIn__HL9bcwSOMkA5y4aYejstDyA(fact, (*prop).sons->data[((NI) 2)], (*prop).sons->data[((NI) 1)]);
	}
	break;
	default:
	{
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, doesImply__TghwFZPkC6wzh9bOuwSr8jQ)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* facts, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* prop) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		if (!!(((*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*prop).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32)))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_16));
	}
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f;
		tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T6_;
		f = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*facts).s;
		i = ((NI) 0);
		T6_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				NI TM__6PEpSVg5zYQiUPcMieikwQ_51;
				if (!(i < L)) goto LA8;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				f = colontmp_->data[i];
				{
					if (!!((f == 0))) goto LA11_;
					result = factImplies__ag9bsj603QsRYxrYUB8C9cMQ(f, prop);
					{
						if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA15_;
						goto BeforeRet_;
					}
					LA15_: ;
				}
				LA11_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_51 = addInt(i, ((NI) 1));
				i = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_51);
				{
					NI T19_;
					T19_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T19_ == L))) goto LA20_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_52));
				}
				LA20_: ;
			} LA8: ;
		}
	}
	}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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, swapArgs__HwkqKTJeHjmJRQe2q847cg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* newOp) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*fact).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(newOp));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 1)]), (*fact).sons->data[((NI) 2)]);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 2)]), (*fact).sons->data[((NI) 1)]);
	return result;
}
static N_INLINE(NI, safeLen__P89cqdlERShb9alU3iC0yj8w_2ast)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__P89cqdlERShb9alU3iC0yj8wast(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, neg__Jdq9bmYnl9bApH9aGfXEZQN8Q)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T5_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!(n == NIM_NIL)) goto LA3_;
		result = NIM_NIL;
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T5_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
	switch (T5_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		result = (*n).sons->data[((NI) 1)];
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		result = swapArgs__HwkqKTJeHjmJRQe2q847cg(n, (*o).opLe);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		result = swapArgs__HwkqKTJeHjmJRQe2q847cg(n, (*o).opLt);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* t;
		{
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			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) 39)))) goto LA12_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA12_: ;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		t = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sons->data[((NI) 2)]).typ, IL64(36134350135273744));
		result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*result).sons->data[((NI) 0)]), (*n).sons->data[((NI) 0)]);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*result).sons->data[((NI) 2)]), (*n).sons->data[((NI) 2)]);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
			if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14))) goto LA16_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			s = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, (*(*n).sons->data[((NI) 1)]).typ);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* colontmp_;
				e = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				colontmp_ = (*t).n;
				{
					NI i;
					NI colontmp__2;
					NI i_2;
					i = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(colontmp_);
					i_2 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* eAsNode;
							NI TM__6PEpSVg5zYQiUPcMieikwQ_53;
							if (!(i_2 < colontmp__2)) goto LA21;
							i = i_2;
							if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*colontmp_).kind)>>3] &(1U<<((NU)((*colontmp_).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
							if ((NU)(i) >= (NU)((*colontmp_).sons ? (*colontmp_).sons->Sup.len : 0)) raiseIndexError2(i,((*colontmp_).sons ? (*colontmp_).sons->Sup.len : 0)-1);
							e = (*colontmp_).sons->data[i];
							if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*e).kind)>>3] &(1U<<((NU)((*e).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
							eAsNode = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*(*e).sym).position)));
							{
								NIM_BOOL T24_;
								if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
								if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
								T24_ = (NIM_BOOL)0;
								T24_ = inSet__b4nxsJCvqXRlyalSWskgNA((*n).sons->data[((NI) 1)], eAsNode);
								if (!!(T24_)) goto LA25_;
								add__P8dDSotTW25BkfbyspojGg(s, eAsNode);
							}
							LA25_: ;
							TM__6PEpSVg5zYQiUPcMieikwQ_53 = addInt(i_2, ((NI) 1));
							i_2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_53);
						} LA21: ;
					}
				}
			}
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), s);
		}
		goto LA14_;
		LA16_: ;
		{
			result = NIM_NIL;
		}
		LA14_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		a = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q((*n).sons->data[((NI) 1)], o);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		b = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q((*n).sons->data[((NI) 2)], o);
		{
			NIM_BOOL T31_;
			T31_ = (NIM_BOOL)0;
			T31_ = !((a == NIM_NIL));
			if (!(T31_)) goto LA32_;
			T31_ = !((b == NIM_NIL));
			LA32_: ;
			if (!T31_) goto LA33_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), a);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), b);
		}
		goto LA29_;
		LA33_: ;
		{
			if (!!((a == NIM_NIL))) goto LA36_;
			result = a;
		}
		goto LA29_;
		LA36_: ;
		{
			if (!!((b == NIM_NIL))) goto LA39_;
			result = b;
		}
		goto LA29_;
		LA39_: ;
		LA29_: ;
	}
	break;
	default:
	{
		result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 2));
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opNot));
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*result).sons->data[((NI) 1)]), n);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__rQdL9bdBvS9aqkRykTzQFSAw)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*a).info, ((NI) 2));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 1)]), a);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, impliesNotNil__x6MUw3H3bS3WZ5DYhXX61Q)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*m).o.opIsNil, arg);
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T1_, (&(*m).o));
	result = doesImply__TghwFZPkC6wzh9bOuwSr8jQ(m, T2_);
	return result;
}
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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*check).kind)>>3] &(1U<<((NU)((*check).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*check).sons ? (*check).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*check).sons ? (*check).sons->Sup.len : 0)-1);
		if (!((*(*check).sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39))) goto LA3_;
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2(check);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((*access).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA7_;
			a = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2(access);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*check).kind)>>3] &(1U<<((NU)((*check).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*check).sons ? (*check).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*check).sons ? (*check).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*a).sons->data[((NI) 1)]), (*check).sons->data[((NI) 2)]);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), a);
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T12_;
			T12_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T12_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(check);
			if (!!((T12_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102)))) goto LA13_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_55));
		}
		LA13_: ;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*check).kind)>>3] &(1U<<((NU)((*check).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*check).sons ? (*check).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*check).sons ? (*check).sons->Sup.len : 0)-1);
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg(access, (*check).sons->data[((NI) 1)], o);
		result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T15_, o);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkFieldAccess__gGwSETIBbm3kg36plDGFGg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI TM__6PEpSVg5zYQiUPcMieikwQ_54;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (NI)0;
		T2_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__6PEpSVg5zYQiUPcMieikwQ_54 = subInt(T2_, ((NI) 1));
		colontmp_ = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_54);
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
				NI TM__6PEpSVg5zYQiUPcMieikwQ_56;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				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__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				check = buildProperFieldCheck__9czJQa7AVwwBTDjddykusKg((*n).sons->data[((NI) 0)], (*n).sons->data[i], (&(*m).o));
				{
					NIM_BOOL T7_;
					tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T9_;
					NimStringDesc* T12_;
					T7_ = (NIM_BOOL)0;
					T7_ = !((check == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
					T9_ = doesImply__TghwFZPkC6wzh9bOuwSr8jQ(m, check);
					T7_ = !((T9_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2)));
					LA8_: ;
					if (!T7_) goto LA10_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T12_ = (NimStringDesc*)0;
					T12_ = renderTree__ppjdh9aQ5L0SGPF8yz1gZ9cA((*n).sons->data[((NI) 0)], 0);
					message__mMj7lrOf3zBP9bl69amiKu5g(conf, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 31), T12_);
					goto LA1;
				}
				LA10_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_56 = addInt(res, ((NI) 1));
				res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_56);
			} LA4: ;
		}
	} LA1: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasSubTree__MsjoJ819bWzwqrafMUbvZUQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(n, x);
		if (!T3_) goto LA4_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA4_: ;
	{
		{
			NI i;
			NI colontmp_;
			NI T8_;
			NI TM__6PEpSVg5zYQiUPcMieikwQ_57;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T8_ = (NI)0;
			T8_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			TM__6PEpSVg5zYQiUPcMieikwQ_57 = subInt(T8_, ((NI) 1));
			colontmp_ = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_57);
			res = ((NI) 0);
			{
				while (1) {
					NI TM__6PEpSVg5zYQiUPcMieikwQ_58;
					if (!(res <= colontmp_)) goto LA10;
					i = res;
					{
						NIM_BOOL T13_;
						if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
						if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
						T13_ = (NIM_BOOL)0;
						T13_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ((*n).sons->data[i], x);
						if (!T13_) goto LA14_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA14_: ;
					TM__6PEpSVg5zYQiUPcMieikwQ_58 = addInt(res, ((NI) 1));
					res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_58);
				} LA10: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, invalidateFacts__no3iuruVlFxE0wQ8HA9b4ZA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*m).s ? (*m).s->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM__6PEpSVg5zYQiUPcMieikwQ_59;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					if ((NU)(i) >= (NU)((*m).s ? (*m).s->Sup.len : 0)) raiseIndexError2(i,((*m).s ? (*m).s->Sup.len : 0)-1);
					T7_ = !(((*m).s->data[i] == NIM_NIL));
					if (!(T7_)) goto LA8_;
					if ((NU)(i) >= (NU)((*m).s ? (*m).s->Sup.len : 0)) raiseIndexError2(i,((*m).s ? (*m).s->Sup.len : 0)-1);
					T7_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ((*m).s->data[i], n);
					LA8_: ;
					if (!T7_) goto LA9_;
					if ((NU)(i) >= (NU)((*m).s ? (*m).s->Sup.len : 0)) raiseIndexError2(i,((*m).s ? (*m).s->Sup.len : 0)-1);
					asgnRef((void**) (&(*m).s->data[i]), NIM_NIL);
				}
				LA9_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_59 = addInt(res, ((NI) 1));
				res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_59);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, addAsgnFact__0CHSuARDyWZ57Xrosqy78w)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	NI T1_;
	fact = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*key).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*m).o.opEq));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 1)]), key);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 2)]), value);
	unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			if (!((2097696 &(1U<<((NU)((*(*n).sym).kind)&31U)))!=0)) goto LA7_;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA7_: ;
		{
			NIM_BOOL T10_;
			tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T12_;
			T10_ = (NIM_BOOL)0;
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			T10_ = ((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			if (!(T10_)) goto LA11_;
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			T12_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
			T12_ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*(*n).sym).typ, IL64(36134350135273744));
			T10_ = !(((*T12_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)));
			LA11_: ;
			if (!T10_) goto LA13_;
			result = NIM_TRUE;
		}
		goto LA5_;
		LA13_: ;
		LA5_: ;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4)(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) 3));
	if (!(T2_)) goto LA3_;
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	T2_ = ((2304 &(1U<<((NU)((*(*n).sym).kind)&31U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
	T1_ = ((65536 & (*(*n).sym).flags) == 0);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m, NIM_BOOL isApprox) {	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NI derefs;
	NIM_BOOL T18_;
{	result = (NIM_BOOL)0;
	n = m;
	derefs = ((NI) 0);
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
			{
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				n = (*n).sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			{
				NI TM__6PEpSVg5zYQiUPcMieikwQ_60;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				n = (*n).sons->data[((NI) 0)];
				TM__6PEpSVg5zYQiUPcMieikwQ_60 = addInt(derefs, ((NI) 1));
				derefs = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_60);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				{
					NIM_BOOL T8_;
					NIM_BOOL T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
					T8_ = (NIM_BOOL)0;
					T9_ = (NIM_BOOL)0;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T9_ = isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ((*n).sons->data[((NI) 1)]);
					if (T9_) goto LA10_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					T9_ = isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3((*n).sons->data[((NI) 1)]);
					LA10_: ;
					T8_ = T9_;
					if (T8_) goto LA11_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					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_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T12_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n).sons->data[((NI) 1)]);
					T8_ = isConstExpr__9cP6JNeOKqczaXCI4Zo4SBQ(T12_);
					LA11_: ;
					if (!T8_) goto LA13_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
					n = (*n).sons->data[((NI) 0)];
				}
				goto LA6_;
				LA13_: ;
				{
					goto BeforeRet_;
				}
				LA6_: ;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
			{
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				n = (*n).sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	T18_ = (NIM_BOOL)0;
	T18_ = isLet__MH3XlBsw9ahhEwy5cK9cHBHA_3(n);
	if (!(T18_)) goto LA19_;
	T18_ = (derefs <= isApprox);
	LA19_: ;
	result = T18_;
	{
		NIM_BOOL T22_;
		T22_ = (NIM_BOOL)0;
		T22_ = !(result);
		if (!(T22_)) goto LA23_;
		T22_ = isApprox;
		LA23_: ;
		if (!T22_) goto LA24_;
		result = isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4(n);
	}
	LA24_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, interestingCaseExpr__Cjb9am4YBBe69cf2PXGW7teQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA(m, NIM_TRUE);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, settype__nWHoIj7eHK9ad9brJqEijt9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	result = newType__SNqpa06pdVCLFFBR28119aQ(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19), (*(*n).typ).owner);
	addSonSkipIntLit__2IwAMgUJgjdjR7Qyvt9bjCQ(result, (*n).typ);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildOf__MGKHwffiWyEzWzB6rWIB9ag)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loc, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	NI T1_;
	NI TM__6PEpSVg5zYQiUPcMieikwQ_61;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (NI)0;
	T1_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
	TM__6PEpSVg5zYQiUPcMieikwQ_61 = subInt(T1_, ((NI) 1));
	s = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*it).info, (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_61));
	asgnRef((void**) (&(*s).typ), settype__nWHoIj7eHK9ad9brJqEijt9ag(loc));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI TM__6PEpSVg5zYQiUPcMieikwQ_62;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(it);
		TM__6PEpSVg5zYQiUPcMieikwQ_62 = subInt(T3_, ((NI) 2));
		colontmp_ = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_62);
		res = ((NI) 0);
		{
			while (1) {
				NI TM__6PEpSVg5zYQiUPcMieikwQ_63;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*s).kind)>>3] &(1U<<((NU)((*s).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(i) >= (NU)((*s).sons ? (*s).sons->Sup.len : 0)) raiseIndexError2(i,((*s).sons ? (*s).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*it).kind)>>3] &(1U<<((NU)((*it).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(i) >= (NU)((*it).sons ? (*it).sons->Sup.len : 0)) raiseIndexError2(i,((*it).sons ? (*it).sons->Sup.len : 0)-1);
				asgnRef((void**) (&(*s).sons->data[i]), (*it).sons->data[i]);
				TM__6PEpSVg5zYQiUPcMieikwQ_63 = addInt(res, ((NI) 1));
				res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_63);
			} LA5: ;
		}
	}
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*it).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opContains));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 1)]), s);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 2)]), loc);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	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_ = settype__nWHoIj7eHK9ad9brJqEijt9ag((*n).sons->data[((NI) 0)]);
	s = newNodeIT__2kgyckjaq2XB9bxBo5ZeIbg(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*n).info, T1_);
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI TM__6PEpSVg5zYQiUPcMieikwQ_64;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (NI)0;
		T3_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
		TM__6PEpSVg5zYQiUPcMieikwQ_64 = subInt(T3_, ((NI) 2));
		colontmp_ = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_64);
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
				NI TM__6PEpSVg5zYQiUPcMieikwQ_68;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
				branch = (*n).sons->data[i];
				{
					if (!!(!(((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88))))) goto LA8_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_65));
				}
				LA8_: ;
				{
					if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA12_;
					{
						NI j;
						NI colontmp__2;
						NI T15_;
						NI TM__6PEpSVg5zYQiUPcMieikwQ_66;
						NI res_2;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T15_ = (NI)0;
						T15_ = len__P89cqdlERShb9alU3iC0yj8wast(branch);
						TM__6PEpSVg5zYQiUPcMieikwQ_66 = subInt(T15_, ((NI) 2));
						colontmp__2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_66);
						res_2 = ((NI) 0);
						{
							while (1) {
								NI TM__6PEpSVg5zYQiUPcMieikwQ_67;
								if (!(res_2 <= colontmp__2)) goto LA17;
								j = res_2;
								if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*branch).kind)>>3] &(1U<<((NU)((*branch).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
								if ((NU)(j) >= (NU)((*branch).sons ? (*branch).sons->Sup.len : 0)) raiseIndexError2(j,((*branch).sons ? (*branch).sons->Sup.len : 0)-1);
								add__P8dDSotTW25BkfbyspojGg(s, (*branch).sons->data[j]);
								TM__6PEpSVg5zYQiUPcMieikwQ_67 = addInt(res_2, ((NI) 1));
								res_2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_67);
							} LA17: ;
						}
					}
				}
				LA12_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_68 = addInt(res, ((NI) 1));
				res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_68);
			} LA5: ;
		}
	}
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opContains));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 1)]), s);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 2)]), (*n).sons->data[((NI) 0)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addCaseBranchFacts__c6dE6J2nt777cGY9brPJUJA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI i) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
	branch = (*n).sons->data[i];
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
		NI T6_;
		if (!((*branch).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85))) goto LA3_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T5_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T5_ = buildOf__MGKHwffiWyEzWzB6rWIB9ag(branch, (*n).sons->data[((NI) 0)], (&(*m).o));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T6_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T6_]), T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
		NI T10_;
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = buildElse__Jdq9bmYnl9bApH9aGfXEZQN8Q_2(n, (&(*m).o));
		T9_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T9_ = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T8_, (&(*m).o));
		unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T10_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T10_]), T9_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(n);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	{
		{
			NIM_BOOL T5_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
			NIM_BOOL T8_;
			T5_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T6_ = skipConv__BH9abOhPX8pH0DnEWlRxmlw((*n).sons->data[((NI) 2)]);
			T5_ = ((*T6_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
			if (!(T5_)) goto LA7_;
			T8_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T8_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 1)], NIM_FALSE);
			if (T8_) goto LA9_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T8_ = isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4((*n).sons->data[((NI) 1)]);
			LA9_: ;
			T5_ = T8_;
			LA7_: ;
			if (!T5_) goto LA10_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			result = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opIsNil, (*n).sons->data[((NI) 1)]);
		}
		goto LA3_;
		LA10_: ;
		{
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T15_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 1)], NIM_TRUE);
				if (T15_) goto LA16_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
				T15_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 2)], NIM_TRUE);
				LA16_: ;
				if (!T15_) goto LA17_;
				result = n;
			}
			LA17_: ;
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T22_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 1)], NIM_TRUE);
			if (T22_) goto LA23_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T22_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 2)], NIM_TRUE);
			LA23_: ;
			if (!T22_) goto LA24_;
			result = n;
		}
		goto LA20_;
		LA24_: ;
		{
			NIM_BOOL T27_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T28_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T30_;
			T27_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T28_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T28_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*n).sons->data[((NI) 1)]);
			T27_ = (T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41) || T28_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42));
			if (T27_) goto LA29_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T30_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T30_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*n).sons->data[((NI) 2)]);
			T27_ = (T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39) || T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40) || T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41) || T30_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42));
			LA29_: ;
			if (!T27_) goto LA31_;
			result = n;
		}
		goto LA20_;
		LA31_: ;
		LA20_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 146):
	{
		{
			NIM_BOOL T36_;
			T36_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T36_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 1)], NIM_FALSE);
			if (T36_) goto LA37_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T36_ = isVar__MH3XlBsw9ahhEwy5cK9cHBHA_4((*n).sons->data[((NI) 1)]);
			LA37_: ;
			if (!T36_) goto LA38_;
			result = n;
		}
		LA38_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 136) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 137):
	{
		{
			NIM_BOOL T43_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
			T43_ = (NIM_BOOL)0;
			T43_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*n).sons->data[((NI) 1)], NIM_TRUE);
			if (!T43_) goto LA44_;
			result = n;
		}
		LA44_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 115):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		a = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3((*n).sons->data[((NI) 1)], o);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		b = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3((*n).sons->data[((NI) 2)], o);
		{
			NIM_BOOL T49_;
			T49_ = (NIM_BOOL)0;
			T49_ = !((a == NIM_NIL));
			if (!(T49_)) goto LA50_;
			T49_ = !((b == NIM_NIL));
			LA50_: ;
			if (!T49_) goto LA51_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), a);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), b);
		}
		goto LA47_;
		LA51_: ;
		{
			if (!!((a == NIM_NIL))) goto LA54_;
			result = a;
		}
		goto LA47_;
		LA54_: ;
		{
			if (!!((b == NIM_NIL))) goto LA57_;
			result = b;
		}
		goto LA47_;
		LA57_: ;
		LA47_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 102):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		a_2 = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3((*n).sons->data[((NI) 1)], o);
		{
			if (!!((a_2 == NIM_NIL))) goto LA62_;
			result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(a_2, o);
		}
		LA62_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 116):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_3;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T65_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T66_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T65_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T65_ = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3((*n).sons->data[((NI) 1)], o);
		a_3 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T65_, o);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T66_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T66_ = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3((*n).sons->data[((NI) 2)], o);
		b_2 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(T66_, o);
		{
			NIM_BOOL T69_;
			T69_ = (NIM_BOOL)0;
			T69_ = !((a_3 == NIM_NIL));
			if (!(T69_)) goto LA70_;
			T69_ = !((b_2 == NIM_NIL));
			LA70_: ;
			if (!T69_) goto LA71_;
			result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opAnd));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), a_3);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), b_2);
			result = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(result, o);
		}
		LA71_: ;
	}
	break;
	default:
	{
		{
			NIM_BOOL T76_;
			T76_ = (NIM_BOOL)0;
			T76_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T76_)) goto LA77_;
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			T76_ = ((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
			LA77_: ;
			if (!T76_) goto LA78_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T85_;
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T82_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n).sym);
				if (!!((T82_ == NIM_NIL))) goto LA83_;
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				T85_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T85_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n).sym);
				result = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T85_, o);
			}
			LA83_: ;
		}
		goto LA74_;
		LA78_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA87_;
			T89_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T89_ = lastSon__UPSW0jLTX5qJL51YMUAHgw(n);
			result = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(T89_, o);
		}
		goto LA74_;
		LA87_: ;
		LA74_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addFact__ybuIey7mglQLm61kxh9aaLg)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = usefulFact__Jdq9bmYnl9bApH9aGfXEZQN8Q_3(nn, (&(*m).o));
	{
		NI T5_;
		if (!!((n == NIM_NIL))) goto LA3_;
		unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		T5_ = (*m).s->Sup.len++;
		asgnRef((void**) (&(*m).s->data[T5_]), n);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactNeg__no3iuruVlFxE0wQ8HA9b4ZA_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
	n_2 = neg__Jdq9bmYnl9bApH9aGfXEZQN8Q(n, (&(*m).o));
	{
		if (!!((n_2 == NIM_NIL))) goto LA3_;
		addFact__ybuIey7mglQLm61kxh9aaLg(m, n_2);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addDiscriminantFact__no3iuruVlFxE0wQ8HA9b4ZA_3)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
	NI T1_;
	fact = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*m).o.opEq));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 1)]), (*n).sons->data[((NI) 0)]);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*fact).sons->data[((NI) 2)]), (*n).sons->data[((NI) 1)]);
	unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T1_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T1_]), fact);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildCall__bzqLNgd7GiDpqZUsYKdenA)(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI__UY1ElYk2XqXDzuz9cGLG1Kw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*a).info, ((NI) 3));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg(op));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 1)]), a);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
	asgnRef((void**) (&(*result).sons->data[((NI) 2)]), b);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, minusOne__FWKgXUNtQfE7EUZKj6yRDQ)(void) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(-1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, negate__ozAjEhyMPuZLnzTVOjeVwA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T3_)) goto LA4_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		T3_ = !(((*b).intVal == (IL64(-9223372036854775807) - IL64(1))));
		LA4_: ;
		if (!T3_) goto LA5_;
		b_2 = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(b);
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b_2).kind)>>3] &(1U<<((NU)((*b_2).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b_2).kind)>>3] &(1U<<((NU)((*b_2).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if ((*b_2).intVal == (IL64(-9223372036854775807) - IL64(1))) raiseOverflow();
		(*b_2).intVal = -((*b_2).intVal);
		{
			if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA9_;
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b_2).kind)>>3] &(1U<<((NU)((*b_2).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b_2).kind)>>3] &(1U<<((NU)((*b_2).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			(*b_2).intVal = barplusbar___AMT0epkRpHisEnmPCWqESg((*b_2).intVal, (*a).intVal);
			result = b_2;
		}
		goto LA7_;
		LA9_: ;
		{
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, a, b_2);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_3;
		if (!((*b).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) && (*b).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18))) goto LA13_;
		b_3 = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(b);
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b_3).kind)>>3] &(1U<<((NU)((*b_3).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b_3).kind)>>3] &(1U<<((NU)((*b_3).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		(*b_3).floatVal = -((*b_3).floatVal);
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, a, b_3);
	}
	goto LA1_;
	LA13_: ;
	{
		result = res;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		(*result).intVal = barplusbar___AMT0epkRpHisEnmPCWqESg((*a).intVal, (*b).intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		(*result).floatVal = ((NF)((*a).floatVal) + (NF)((*b).floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		(*result).intVal = barstarbar___AMT0epkRpHisEnmPCWqESg_2((*a).intVal, (*b).intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		(*result).floatVal = ((NF)((*a).floatVal) * (NF)((*b).floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, zero__FWKgXUNtQfE7EUZKj6yRDQ_2)(void) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	T1_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T1_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	switch (T1_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	{
		{
			NIM_BOOL T5_;
			NIM_BOOL T6_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T8_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T5_ = (NIM_BOOL)0;
			T6_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T6_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result).sons->data[((NI) 2)]);
			if (!(T6_)) goto LA7_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T8_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T8_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*result).sons->data[((NI) 1)]);
			T6_ = (T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T8_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
			LA7_: ;
			T5_ = T6_;
			if (!(T5_)) goto LA9_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			T5_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*result).sons->data[((NI) 1)]).sons->data[((NI) 2)]);
			LA9_: ;
			if (!T5_) goto LA10_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg((*(*result).sons->data[((NI) 1)]).sons->data[((NI) 2)], (*result).sons->data[((NI) 2)]);
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, (*(*result).sons->data[((NI) 1)]).sons->data[((NI) 1)], T12_);
			{
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*(*result).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
				if (!((*(*result).sons->data[((NI) 2)]).intVal == IL64(0))) goto LA15_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				result = (*result).sons->data[((NI) 1)];
			}
			LA15_: ;
		}
		LA10_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		{
			NIM_BOOL T20_;
			NIM_BOOL T21_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			T20_ = (NIM_BOOL)0;
			T21_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T21_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result).sons->data[((NI) 2)]);
			if (!(T21_)) goto LA22_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T23_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T23_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*result).sons->data[((NI) 1)]);
			T21_ = (T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) || T23_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58));
			LA22_: ;
			T20_ = T21_;
			if (!(T20_)) goto LA24_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			T20_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*result).sons->data[((NI) 1)]).sons->data[((NI) 2)]);
			LA24_: ;
			if (!T20_) goto LA25_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*result).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*result).sons->data[((NI) 1)]).sons ? (*(*result).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = barstarbar___9aW9bU7lixsz3Yv9aqmOB2BFg_2((*(*result).sons->data[((NI) 1)]).sons->data[((NI) 2)], (*result).sons->data[((NI) 2)]);
			result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opMul, (*(*result).sons->data[((NI) 1)]).sons->data[((NI) 1)], T27_);
			{
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*(*result).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
				if (!((*(*result).sons->data[((NI) 2)]).intVal == IL64(1))) goto LA30_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				result = (*result).sons->data[((NI) 1)];
			}
			goto LA28_;
			LA30_: ;
			{
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*(*result).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
				if (!((*(*result).sons->data[((NI) 2)]).intVal == IL64(0))) goto LA33_;
				result = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			}
			goto LA28_;
			LA33_: ;
			LA28_: ;
		}
		LA25_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(a);
	{
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		(*result).intVal = barminusbar___AMT0epkRpHisEnmPCWqESg_3((*a).intVal, (*b).intVal);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		(*result).floatVal = ((NF)((*a).floatVal) - (NF)((*b).floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T20_;
	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T46_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
		if (!(((NI) 1) <= T3_)) goto LA4_;
		result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__P89cqdlERShb9alU3iC0yj8wast(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					NI TM__6PEpSVg5zYQiUPcMieikwQ_70;
					if (!(i_2 < colontmp_)) goto LA8;
					i = i_2;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(i) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(i,((*result).sons ? (*result).sons->Sup.len : 0)-1);
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					asgnRef((void**) (&(*result).sons->data[i]), canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4((*n).sons->data[i], o));
					TM__6PEpSVg5zYQiUPcMieikwQ_70 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_70);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T11_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
		T10_ = (NIM_BOOL)0;
		T11_ = (NIM_BOOL)0;
		T11_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T11_)) goto LA12_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
		T11_ = ((*(*n).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9));
		LA12_: ;
		T10_ = T11_;
		if (!(T10_)) goto LA13_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
		T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T14_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n).sym);
		T15_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T15_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(T14_);
		T10_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_71[(NU)(T15_)>>3] &(1U<<((NU)(T15_)&7U)))!=0);
		LA13_: ;
		if (!T10_) goto LA16_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
		T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T18_ = astdef__PBkjYIaAGbtrZ8DiUArHcw((*n).sym);
		result = copyTree__Dsjo9bte8vGxzhtcSrsTyiQ_2(T18_);
	}
	goto LA1_;
	LA16_: ;
	{
		result = n;
	}
	LA1_: ;
	T20_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T20_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	switch (T20_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 73):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 76):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 83):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 86):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 89):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 92) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 97) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 98):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 117):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 120):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58):
	{
		{
			NIM_BOOL T24_;
			NIM_BOOL T26_;
			T24_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T24_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result).sons->data[((NI) 1)]);
			if (!(T24_)) goto LA25_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			T26_ = (NIM_BOOL)0;
			T26_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*result).sons->data[((NI) 2)]);
			T24_ = !(T26_);
			LA25_: ;
			if (!T24_) goto LA27_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*result).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
			result = swapArgs__HwkqKTJeHjmJRQe2q847cg(result, (*(*result).sons->data[((NI) 0)]).sym);
		}
		LA27_: ;
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 8):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T30_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opLen, (*result).sons->data[((NI) 1)]);
		T31_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T31_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, T30_, T31_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, (*result).sons->data[((NI) 1)], T33_);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		result = negate__ozAjEhyMPuZLnzTVOjeVwA((*result).sons->data[((NI) 1)], (*result).sons->data[((NI) 2)], result, o);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) ... ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42):
	{
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		asgnRef((void**) (&(*result).sons->data[((NI) 0)]), newSymNode__I2DV2TmmOysY1ZEGW19b9bRg((*o).opLen));
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 75):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 78):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 80):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 82):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 85):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 88):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 91):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 95):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 119):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* p;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* minus;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		y = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4((*n).sons->data[((NI) 2)], o);
		p = pred__sCNrMHnQvxnk67uE0fPE6w(y);
		{
			if (!!((p == y))) goto LA39_;
			minus = p;
		}
		goto LA37_;
		LA39_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
			T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T42_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T43_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, y, T42_);
			minus = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T43_, o);
		}
		LA37_: ;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*n).sons ? (*n).sons->Sup.len : 0)-1);
		T44_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T44_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4((*n).sons->data[((NI) 1)], o);
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opLe, T44_, minus);
	}
	break;
	default:
	{
	}
	break;
	}
	result = skipConv__BH9abOhPX8pH0DnEWlRxmlw(result);
	result = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(result, o);
	T46_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
	T46_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(result);
	switch (T46_) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 74):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 77):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 79):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 81):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 84):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 90):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 94):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 118):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y_2;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		x = (*result).sons->data[((NI) 1)];
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
		y_2 = (*result).sons->data[((NI) 2)];
		{
			NIM_BOOL T50_;
			NIM_BOOL T51_;
			NIM_BOOL T52_;
			NI T54_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T59_;
			T50_ = (NIM_BOOL)0;
			T51_ = (NIM_BOOL)0;
			T52_ = (NIM_BOOL)0;
			T52_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T52_)) goto LA53_;
			T54_ = (NI)0;
			T54_ = len__P89cqdlERShb9alU3iC0yj8wast(x);
			T52_ = (T54_ == ((NI) 3));
			LA53_: ;
			T51_ = T52_;
			if (!(T51_)) goto LA55_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			T51_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*x).sons->data[((NI) 2)]);
			LA55_: ;
			T50_ = T51_;
			if (!(T50_)) goto LA56_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
			T50_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*x).sons->data[((NI) 1)], NIM_TRUE);
			LA56_: ;
			if (!T50_) goto LA57_;
			T59_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T59_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(x);
			switch (T59_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T61_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*result).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*x).sons ? (*x).sons->Sup.len : 0)-1);
				T61_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T61_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, y_2, (*x).sons->data[((NI) 2)]);
				T62_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T62_ = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T61_, o);
				result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*(*result).sons->data[((NI) 0)]).sym, (*x).sons->data[((NI) 1)], T62_);
			}
			break;
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T64_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*x).sons ? (*x).sons->Sup.len : 0)-1);
				T64_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T64_ = negate__ozAjEhyMPuZLnzTVOjeVwA(y_2, (*x).sons->data[((NI) 2)], NIM_NIL, o);
				plus = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T64_, o);
				{
					if (!!((plus == NIM_NIL))) goto LA67_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*result).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
					result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*(*result).sons->data[((NI) 0)]).sym, (*x).sons->data[((NI) 1)], plus);
				}
				LA67_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA48_;
		LA57_: ;
		{
			NIM_BOOL T71_;
			NIM_BOOL T72_;
			NIM_BOOL T73_;
			NI T75_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T80_;
			T71_ = (NIM_BOOL)0;
			T72_ = (NIM_BOOL)0;
			T73_ = (NIM_BOOL)0;
			T73_ = ((*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*y_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32));
			if (!(T73_)) goto LA74_;
			T75_ = (NI)0;
			T75_ = len__P89cqdlERShb9alU3iC0yj8wast(y_2);
			T73_ = (T75_ == ((NI) 3));
			LA74_: ;
			T72_ = T73_;
			if (!(T72_)) goto LA76_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			T72_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*y_2).sons->data[((NI) 2)]);
			LA76_: ;
			T71_ = T72_;
			if (!(T71_)) goto LA77_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			T71_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA((*y_2).sons->data[((NI) 1)], NIM_TRUE);
			LA77_: ;
			if (!T71_) goto LA78_;
			T80_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T80_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			switch (T80_) {
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T83_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
				if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*result).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
				T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T82_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, x, (*y_2).sons->data[((NI) 2)]);
				T83_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T83_ = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T82_, o);
				result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*(*result).sons->data[((NI) 0)]).sym, (*y_2).sons->data[((NI) 1)], T83_);
			}
			break;
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54):
			case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* plus_2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T85_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
				T85_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T85_ = negate__ozAjEhyMPuZLnzTVOjeVwA(x, (*y_2).sons->data[((NI) 2)], NIM_NIL, o);
				plus_2 = reassociation__Jdq9bmYnl9bApH9aGfXEZQN8Q_5(T85_, o);
				{
					NIM_BOOL T88_;
					NIM_BOOL T90_;
					T88_ = (NIM_BOOL)0;
					T88_ = !((plus_2 == NIM_NIL));
					if (!(T88_)) goto LA89_;
					T90_ = (NIM_BOOL)0;
					T90_ = isLetLocation__k0CAmeGJ0QkU2k18EA9c3PA(x, NIM_TRUE);
					T88_ = !(T90_);
					LA89_: ;
					if (!T88_) goto LA91_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 0)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 0),((*result).sons ? (*result).sons->Sup.len : 0)-1);
					if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*(*result).sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*result).sons->data[((NI) 0)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
					result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*(*result).sons->data[((NI) 0)]).sym, plus_2, (*y_2).sons->data[((NI) 1)]);
				}
				LA91_: ;
			}
			break;
			default:
			{
			}
			break;
			}
		}
		goto LA48_;
		LA78_: ;
		{
			NIM_BOOL T95_;
			NIM_BOOL T96_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T98_;
			T95_ = (NIM_BOOL)0;
			T96_ = (NIM_BOOL)0;
			T96_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(x);
			if (!(T96_)) goto LA97_;
			T98_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T98_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			T96_ = (T98_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T98_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T98_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
			LA97_: ;
			T95_ = T96_;
			if (!(T95_)) goto LA99_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			T95_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*y_2).sons->data[((NI) 2)]);
			LA99_: ;
			if (!T95_) goto LA100_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), barminusbar___9aW9bU7lixsz3Yv9aqmOB2BFg_3(x, (*y_2).sons->data[((NI) 2)]));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), (*y_2).sons->data[((NI) 1)]);
		}
		goto LA48_;
		LA100_: ;
		{
			NIM_BOOL T103_;
			NIM_BOOL T104_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T106_;
			T103_ = (NIM_BOOL)0;
			T104_ = (NIM_BOOL)0;
			T104_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(x);
			if (!(T104_)) goto LA105_;
			T106_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T106_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y_2);
			T104_ = (T106_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 50) || T106_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 57) || T106_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 55));
			LA105_: ;
			T103_ = T104_;
			if (!(T103_)) goto LA107_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			T103_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*y_2).sons->data[((NI) 2)]);
			LA107_: ;
			if (!T103_) goto LA108_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 1)]), barplusbar___9aW9bU7lixsz3Yv9aqmOB2BFg(x, (*y_2).sons->data[((NI) 2)]));
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*result).sons ? (*result).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y_2).kind)>>3] &(1U<<((NU)((*y_2).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*y_2).sons ? (*y_2).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y_2).sons ? (*y_2).sons->Sup.len : 0)-1);
			asgnRef((void**) (&(*result).sons->data[((NI) 2)]), (*y_2).sons->data[((NI) 1)]);
		}
		goto LA48_;
		LA108_: ;
		LA48_: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addFactLe__i9aAoMzJNp9aw6KruJgPZ0Ng)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	NI T3_;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opLe, a, b);
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T1_, (&(*m).o));
	unsureAsgnRef((void**) (&(*m).s), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*m).s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
	T3_ = (*m).s->Sup.len++;
	asgnRef((void**) (&(*m).s->data[T3_]), T2_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, one__FWKgXUNtQfE7EUZKj6yRDQ_3)(void) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
	return result;
}
static N_INLINE(NI64, divInt64)(NI64 a, NI64 b) {	NI64 result;
{	result = (NI64)0;
	{
		if (!(b == IL64(0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (a == (IL64(-9223372036854775807) - IL64(1)));
		if (!(T7_)) goto LA8_;
		T7_ = (b == IL64(-1));
		LA8_: ;
		if (!T7_) goto LA9_;
		raiseOverflow();
	}
	LA9_: ;
	result = (NI64)(a / b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = copyNode__Dsjo9bte8vGxzhtcSrsTyiQ(a);
	{
		NI64 TM__6PEpSVg5zYQiUPcMieikwQ_72;
		if (!((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15))) goto LA3_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
		TM__6PEpSVg5zYQiUPcMieikwQ_72 = divInt64((*a).intVal, (*b).intVal);
		(*result).intVal = (NI64)(TM__6PEpSVg5zYQiUPcMieikwQ_72);
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_28[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_29));
		(*result).floatVal = ((NF)((*a).floatVal) / (NF)((*b).floatVal));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
	if (!(T1_)) goto LA2_;
	if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
	T1_ = ((*n).intVal == IL64(-1));
	LA2_: ;
	result = T1_;
	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_NIMCALL(void, Marker_tySequence__nw2ozGiJbajPUc4Cj4vzYw)(void* p, NI op) {
	tySequence__nw2ozGiJbajPUc4Cj4vzYw* a;
	NI T1_;
	a = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* by) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(n, x);
		if (!T3_) goto LA4_;
		result = by;
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = hasSubTree__MsjoJ819bWzwqrafMUbvZUQ(n, x);
		if (!T7_) goto LA8_;
		result = shallowCopy__Dsjo9bte8vGxzhtcSrsTyiQ_3(n);
		{
			NI i;
			NI colontmp_;
			NI T11_;
			NI TM__6PEpSVg5zYQiUPcMieikwQ_74;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (NI)0;
			T11_ = safeLen__P89cqdlERShb9alU3iC0yj8w_2ast(n);
			TM__6PEpSVg5zYQiUPcMieikwQ_74 = subInt(T11_, ((NI) 1));
			colontmp_ = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_74);
			res = ((NI) 0);
			{
				while (1) {
					NI TM__6PEpSVg5zYQiUPcMieikwQ_75;
					if (!(res <= colontmp_)) goto LA13;
					i = res;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*result).kind)>>3] &(1U<<((NU)((*result).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(i) >= (NU)((*result).sons ? (*result).sons->Sup.len : 0)) raiseIndexError2(i,((*result).sons ? (*result).sons->Sup.len : 0)-1);
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(i) >= (NU)((*n).sons ? (*n).sons->Sup.len : 0)) raiseIndexError2(i,((*n).sons ? (*n).sons->Sup.len : 0)-1);
					asgnRef((void**) (&(*result).sons->data[i]), replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg((*n).sons->data[i], x, by));
					TM__6PEpSVg5zYQiUPcMieikwQ_75 = addInt(res, ((NI) 1));
					res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_75);
				} LA13: ;
			}
		}
	}
	goto LA1_;
	LA8_: ;
	{
		result = n;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, applyReplacements__b6iA67SQaAf7h31PeZXmQQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__nw2ozGiJbajPUc4Cj4vzYw* rep) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = n;
	{
		tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x;
		NI i;
		NI L;
		NI T2_;
		nimZeroMem((void*)(&x), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
		i = ((NI) 0);
		T2_ = (rep ? rep->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__6PEpSVg5zYQiUPcMieikwQ_76;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(rep ? rep->Sup.len : 0)) raiseIndexError2(i,(rep ? rep->Sup.len : 0)-1);
				x.Field0 = rep->data[i].Field0;
				x.Field1 = rep->data[i].Field1;
				result = replaceSubTree__L5ySkEBBMvbFl1v5oW7tYg(result, x.Field0, x.Field1);
				TM__6PEpSVg5zYQiUPcMieikwQ_76 = addInt(i, ((NI) 1));
				i = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_76);
				{
					NI T7_;
					T7_ = (rep ? rep->Sup.len : 0);
					if (!!((T7_ == L))) goto LA8_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_52));
				}
				LA8_: ;
			} LA4: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModelRec__BXeoQpkXTRCPZ40rIGcsCA)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*m).s ? (*m).s->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
				NI TM__6PEpSVg5zYQiUPcMieikwQ_78;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if ((NU)(i) >= (NU)((*m).s ? (*m).s->Sup.len : 0)) raiseIndexError2(i,((*m).s ? (*m).s->Sup.len : 0)-1);
				fact = (*m).s->data[i];
				{
					NIM_BOOL T7_;
					tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
					T7_ = (NIM_BOOL)0;
					T7_ = !((fact == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact);
					T7_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_22[(NU)(T9_)>>3] &(1U<<((NU)(T9_)&7U)))!=0);
					LA8_: ;
					if (!T7_) goto LA10_;
					if ((NU)(i) >= (NU)((*m).s ? (*m).s->Sup.len : 0)) raiseIndexError2(i,((*m).s ? (*m).s->Sup.len : 0)-1);
					asgnRef((void**) (&(*m).s->data[i]), NIM_NIL);
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					x = (*fact).sons->data[((NI) 1)];
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					y = (*fact).sons->data[((NI) 2)];
					{
						NIM_BOOL T14_;
						NIM_BOOL T15_;
						NIM_BOOL T16_;
						tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T18_;
						tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T20_;
						T14_ = (NIM_BOOL)0;
						T15_ = (NIM_BOOL)0;
						T16_ = (NIM_BOOL)0;
						T16_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(x, a);
						if (!(T16_)) goto LA17_;
						T18_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T18_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(y);
						T16_ = (T18_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T18_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T18_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
						LA17_: ;
						T15_ = T16_;
						if (!(T15_)) goto LA19_;
						T20_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T20_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
						T15_ = (T20_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T20_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T20_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
						LA19_: ;
						T14_ = T15_;
						if (!(T14_)) goto LA21_;
						if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
						if ((NU)(((NI) 1)) >= (NU)((*y).sons ? (*y).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y).sons ? (*y).sons->Sup.len : 0)-1);
						if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
						if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
						T14_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*y).sons->data[((NI) 1)], (*b).sons->data[((NI) 1)]);
						LA21_: ;
						if (!T14_) goto LA22_;
						{
							tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T26_;
							if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
							if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
							if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
							if ((NU)(((NI) 2)) >= (NU)((*y).sons ? (*y).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y).sons ? (*y).sons->Sup.len : 0)-1);
							T26_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T26_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), (*b).sons->data[((NI) 2)], (*y).sons->data[((NI) 2)]);
							if (!(T26_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA27_;
							result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
							goto BeforeRet_;
						}
						LA27_: ;
					}
					LA22_: ;
					{
						tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T31_;
						T31_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
						T31_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), a, x);
						if (!(T31_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA32_;
						{
							tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T36_;
							T36_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
							T36_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2((&(*m)), y, b);
							if (!(T36_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA37_;
							result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
							goto BeforeRet_;
						}
						LA37_: ;
					}
					LA32_: ;
					result = impliesLe__zW7m5VCjU13sae0oFr8Uww(fact, a, b);
					{
						if (!!((result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0)))) goto LA41_;
						goto BeforeRet_;
					}
					LA41_: ;
				}
				LA10_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_78 = addInt(res, ((NI) 1));
				res = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_78);
			} LA4: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, pleViaModel__G9bUxQOJUHpRPU6xPkealOw)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* model, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* aa, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bb) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tySequence__nw2ozGiJbajPUc4Cj4vzYw* replacements;
	tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q m;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a_2;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b_2;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	replacements = NIM_NIL;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact;
		tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
		NI i;
		NI L;
		NI T2_;
		fact = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		colontmp_ = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
		colontmp_ = (*model).s;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI TM__6PEpSVg5zYQiUPcMieikwQ_73;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(colontmp_ ? colontmp_->Sup.len : 0)) raiseIndexError2(i,(colontmp_ ? colontmp_->Sup.len : 0)-1);
				fact = colontmp_->data[i];
				{
					NIM_BOOL T7_;
					tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T9_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
					T7_ = (NIM_BOOL)0;
					T7_ = !((fact == NIM_NIL));
					if (!(T7_)) goto LA8_;
					T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
					T9_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact);
					T7_ = ((TM__6PEpSVg5zYQiUPcMieikwQ_21[(NU)(T9_)>>3] &(1U<<((NU)(T9_)&7U)))!=0);
					LA8_: ;
					if (!T7_) goto LA10_;
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 1)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					a = (*fact).sons->data[((NI) 1)];
					if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*fact).kind)>>3] &(1U<<((NU)((*fact).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
					if ((NU)(((NI) 2)) >= (NU)((*fact).sons ? (*fact).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*fact).sons ? (*fact).sons->Sup.len : 0)-1);
					b = (*fact).sons->data[((NI) 2)];
					{
						tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T16_;
						NI T17_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA14_;
						nimZeroMem((void*)(&T16_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
						T16_.Field0 = a;
						T16_.Field1 = b;
						replacements = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*) incrSeqV3((TGenericSeq*)(replacements), (&NTI__nw2ozGiJbajPUc4Cj4vzYw_));
						T17_ = replacements->Sup.len++;
						asgnRef((void**) (&replacements->data[T17_].Field0), T16_.Field0);
						asgnRef((void**) (&replacements->data[T17_].Field1), T16_.Field1);
					}
					goto LA12_;
					LA14_: ;
					{
						tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T19_;
						NI T20_;
						nimZeroMem((void*)(&T19_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
						T19_.Field0 = b;
						T19_.Field1 = a;
						replacements = (tySequence__nw2ozGiJbajPUc4Cj4vzYw*) incrSeqV3((TGenericSeq*)(replacements), (&NTI__nw2ozGiJbajPUc4Cj4vzYw_));
						T20_ = replacements->Sup.len++;
						asgnRef((void**) (&replacements->data[T20_].Field0), T19_.Field0);
						asgnRef((void**) (&replacements->data[T20_].Field1), T19_.Field1);
					}
					LA12_: ;
				}
				LA10_: ;
				TM__6PEpSVg5zYQiUPcMieikwQ_73 = addInt(i, ((NI) 1));
				i = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_73);
				{
					NI T23_;
					T23_ = (colontmp_ ? colontmp_->Sup.len : 0);
					if (!!((T23_ == L))) goto LA24_;
					failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_52));
				}
				LA24_: ;
			} LA4: ;
		}
	}
	nimZeroMem((void*)(&m), sizeof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q));
	a_2 = aa;
	b_2 = bb;
	{
		NI T28_;
		T28_ = (replacements ? replacements->Sup.len : 0);
		if (!(((NI) 0) < T28_)) goto LA29_;
		m.s = NIM_NIL;
		genericAssign((void*)(&m.o), (void*)(&(*model).o), (&NTI__apNm0zcYroUpNRird62c9aQ_));
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fact_2;
			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
			NI i_2;
			NI L_2;
			NI T32_;
			fact_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			colontmp__2 = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*)0;
			colontmp__2 = (*model).s;
			i_2 = ((NI) 0);
			T32_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
			L_2 = T32_;
			{
				while (1) {
					NI TM__6PEpSVg5zYQiUPcMieikwQ_77;
					if (!(i_2 < L_2)) goto LA34;
					if ((NU)(i_2) >= (NU)(colontmp__2 ? colontmp__2->Sup.len : 0)) raiseIndexError2(i_2,(colontmp__2 ? colontmp__2->Sup.len : 0)-1);
					fact_2 = colontmp__2->data[i_2];
					{
						NIM_BOOL T37_;
						tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T39_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
						NI T44_;
						T37_ = (NIM_BOOL)0;
						T37_ = !((fact_2 == NIM_NIL));
						if (!(T37_)) goto LA38_;
						T39_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
						T39_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(fact_2);
						T37_ = !(((TM__6PEpSVg5zYQiUPcMieikwQ_21[(NU)(T39_)>>3] &(1U<<((NU)(T39_)&7U)))!=0));
						LA38_: ;
						if (!T37_) goto LA40_;
						T42_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T42_ = applyReplacements__b6iA67SQaAf7h31PeZXmQQ(fact_2, replacements);
						T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T43_ = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T42_, (&m.o));
						m.s = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(m.s), (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T44_ = m.s->Sup.len++;
						asgnRef((void**) (&m.s->data[T44_]), T43_);
					}
					LA40_: ;
					TM__6PEpSVg5zYQiUPcMieikwQ_77 = addInt(i_2, ((NI) 1));
					i_2 = (NI)(TM__6PEpSVg5zYQiUPcMieikwQ_77);
					{
						NI T47_;
						T47_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
						if (!!((T47_ == L_2))) goto LA48_;
						failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_52));
					}
					LA48_: ;
				} LA34: ;
			}
		}
		a_2 = applyReplacements__b6iA67SQaAf7h31PeZXmQQ(aa, replacements);
		b_2 = applyReplacements__b6iA67SQaAf7h31PeZXmQQ(bb, replacements);
	}
	goto LA26_;
	LA29_: ;
	{
		genericSeqAssign((&m.s), (*model).s, (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		genericAssign((void*)(&m.o), (void*)(&(*model).o), (&NTI__apNm0zcYroUpNRird62c9aQ_));
	}
	LA26_: ;
	result = pleViaModelRec__BXeoQpkXTRCPZ40rIGcsCA((&m), a_2, b_2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, ple__gquZ4TuLCn9anC5O4OWI4Og_2)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
{	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (!(T3_)) goto LA4_;
		T3_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			NIM_BOOL T9_;
			T9_ = (NIM_BOOL)0;
			T9_ = leValue__uOYuOsiCZAbEPMGwBL8r8g_2(a, b);
			if (!T9_) goto LA10_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		}
		goto LA7_;
		LA10_: ;
		{
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 1);
		}
		LA7_: ;
		goto BeforeRet_;
	}
	LA5_: ;
	{
		NIM_BOOL T15_;
		NIM_BOOL T16_;
		T15_ = (NIM_BOOL)0;
		T16_ = (NIM_BOOL)0;
		T16_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(b);
		if (!(T16_)) goto LA17_;
		T16_ = !(((*a).typ == NIM_NIL));
		LA17_: ;
		T15_ = T16_;
		if (!(T15_)) goto LA18_;
		T15_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*a).typ, NIM_FALSE);
		LA18_: ;
		if (!T15_) goto LA19_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T23_;
			NIM_BOOL T24_;
			T23_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(NIM_NIL, (*a).typ);
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			T24_ = (NIM_BOOL)0;
			T24_ = lteq___nr9cP9b0OL9cabygV9bo19cJgZA(T23_, (*b).intVal);
			if (!T24_) goto LA25_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA25_: ;
	}
	LA19_: ;
	{
		NIM_BOOL T29_;
		NIM_BOOL T30_;
		T29_ = (NIM_BOOL)0;
		T30_ = (NIM_BOOL)0;
		T30_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		if (!(T30_)) goto LA31_;
		T30_ = !(((*b).typ == NIM_NIL));
		LA31_: ;
		T29_ = T30_;
		if (!(T29_)) goto LA32_;
		T29_ = isOrdinalType__6euCPZwUsyXzP1vAm4IthA((*b).typ, NIM_FALSE);
		LA32_: ;
		if (!T29_) goto LA33_;
		{
			tyObject_Int128__9a9axPfb75jdWY25AamJewkA T37_;
			NIM_BOOL T38_;
			T37_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(NIM_NIL, (*b).typ);
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			T38_ = (NIM_BOOL)0;
			T38_ = lteq___nr9cP9b0OL9cabygV9bo19cJgZA(T37_, (*a).intVal);
			if (!T38_) goto LA39_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA39_: ;
	}
	LA33_: ;
	{
		NIM_BOOL T43_;
		T43_ = (NIM_BOOL)0;
		T43_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(a, b);
		if (!T43_) goto LA44_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA44_: ;
	{
		NIM_BOOL T48_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T49_;
		T48_ = (NIM_BOOL)0;
		T49_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T49_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		T48_ = (T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 37) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 38) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 40) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 41) || T49_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 42));
		if (!(T48_)) goto LA50_;
		T48_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2(a);
		LA50_: ;
		if (!T48_) goto LA51_;
		{
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			if (!((*a).intVal <= IL64(0))) goto LA55_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA55_: ;
	}
	LA51_: ;
	{
		NIM_BOOL T59_;
		NIM_BOOL T60_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T61_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T64_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T66_;
		T59_ = (NIM_BOOL)0;
		T60_ = (NIM_BOOL)0;
		T61_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T61_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		T60_ = (T61_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T61_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T61_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
		if (!(T60_)) goto LA62_;
		T63_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T63_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		T64_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T64_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T63_, (*b).sons->data[((NI) 2)]);
		T60_ = (T64_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA62_: ;
		T59_ = T60_;
		if (!(T59_)) goto LA65_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		T66_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T66_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b).sons->data[((NI) 1)]);
		T59_ = (T66_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA65_: ;
		if (!T59_) goto LA67_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA67_: ;
	{
		NIM_BOOL T71_;
		NIM_BOOL T72_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T73_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T75_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T76_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T78_;
		T71_ = (NIM_BOOL)0;
		T72_ = (NIM_BOOL)0;
		T73_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T73_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T72_ = (T73_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T73_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T73_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
		if (!(T72_)) goto LA74_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T75_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T75_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
		T76_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T76_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 2)], T75_);
		T72_ = (T76_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA74_: ;
		T71_ = T72_;
		if (!(T71_)) goto LA77_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T78_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T78_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 1)], b);
		T71_ = (T78_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
		LA77_: ;
		if (!T71_) goto LA79_;
		result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
		goto BeforeRet_;
	}
	LA79_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T83_;
		T83_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T83_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (!(T83_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) || T83_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58))) goto LA84_;
		{
			NIM_BOOL T88_;
			NIM_BOOL T89_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T90_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T92_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T93_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T95_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T96_;
			T88_ = (NIM_BOOL)0;
			T89_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T90_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T90_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b).sons->data[((NI) 1)]);
			T89_ = (T90_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T89_)) goto LA91_;
			T92_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T92_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T93_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T93_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T92_, (*b).sons->data[((NI) 2)]);
			T89_ = (T93_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA91_: ;
			T88_ = T89_;
			if (!(T88_)) goto LA94_;
			T95_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T95_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T96_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T96_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T95_, (*b).sons->data[((NI) 1)]);
			T88_ = (T96_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA94_: ;
			if (!T88_) goto LA97_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA97_: ;
	}
	LA84_: ;
	{
		NIM_BOOL T101_;
		NIM_BOOL T102_;
		NIM_BOOL T103_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T104_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T107_;
		T101_ = (NIM_BOOL)0;
		T102_ = (NIM_BOOL)0;
		T103_ = (NIM_BOOL)0;
		T104_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T104_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T103_ = (T104_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) || T104_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58));
		if (!(T103_)) goto LA105_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T103_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*a).sons->data[((NI) 2)]);
		LA105_: ;
		T102_ = T103_;
		if (!(T102_)) goto LA106_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T107_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T107_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*a).sons->data[((NI) 1)]);
		T102_ = (T107_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52) || T107_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59));
		LA106_: ;
		T101_ = T102_;
		if (!(T101_)) goto LA108_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		T101_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*(*a).sons->data[((NI) 1)]).sons->data[((NI) 2)]);
		LA108_: ;
		if (!T101_) goto LA109_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T113_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T114_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T115_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T113_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T113_ = bardivbar___9aW9bU7lixsz3Yv9aqmOB2BFg_4((*(*a).sons->data[((NI) 1)]).sons->data[((NI) 2)], (*a).sons->data[((NI) 2)]);
			T114_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T114_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opDiv, (*(*a).sons->data[((NI) 1)]).sons->data[((NI) 1)], T113_);
			T115_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T115_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T114_, b);
			if (!(T115_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2))) goto LA116_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA116_: ;
	}
	LA109_: ;
	{
		NIM_BOOL T120_;
		NIM_BOOL T121_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T122_;
		NIM_BOOL T124_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T125_;
		NIM_BOOL T127_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
		NIM_BOOL T129_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		NIM_BOOL T132_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T133_;
		NIM_BOOL T135_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec;
		T120_ = (NIM_BOOL)0;
		T121_ = (NIM_BOOL)0;
		T122_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T122_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T121_ = ((someAdd__zsb09bV9aQEXvpjZmyMwZvKA[(NU)(T122_)>>3] &(1U<<((NU)(T122_)&7U)))!=0);
		if (!(T121_)) goto LA123_;
		T124_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T125_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T125_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*a).sons->data[((NI) 1)]);
		T124_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T125_)>>3] &(1U<<((NU)(T125_)&7U)))!=0);
		if (!(T124_)) goto LA126_;
		T127_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		x = (*(*a).sons->data[((NI) 1)]).sons->data[((NI) 1)];
		T127_ = NIM_TRUE;
		if (!(T127_)) goto LA128_;
		T129_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		dc = (*(*a).sons->data[((NI) 1)]).sons->data[((NI) 2)];
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*a).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*a).sons->data[((NI) 1)]).sons ? (*(*a).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		T129_ = ((*(*(*a).sons->data[((NI) 1)]).sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*(*a).sons->data[((NI) 1)]).sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T129_)) goto LA130_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		y = (*a).sons->data[((NI) 2)];
		T129_ = NIM_TRUE;
		LA130_: ;
		T127_ = T129_;
		LA128_: ;
		T124_ = T127_;
		LA126_: ;
		T121_ = T124_;
		LA123_: ;
		T120_ = T121_;
		if (!(T120_)) goto LA131_;
		T132_ = (NIM_BOOL)0;
		T133_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T133_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		T132_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T133_)>>3] &(1U<<((NU)(T133_)&7U)))!=0);
		if (!(T132_)) goto LA134_;
		T135_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		x2 = (*b).sons->data[((NI) 1)];
		T135_ = NIM_TRUE;
		if (!(T135_)) goto LA136_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		ec = (*b).sons->data[((NI) 2)];
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		T135_ = ((*(*b).sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*b).sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA136_: ;
		T132_ = T135_;
		LA134_: ;
		T120_ = T132_;
		LA131_: ;
		if (!T120_) goto LA137_;
		{
			NIM_BOOL T141_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec1;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
			T141_ = (NIM_BOOL)0;
			T141_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(x, x2);
			if (!T141_) goto LA142_;
			T144_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T144_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			ec1 = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, ec, T144_);
			{
				NIM_BOOL T147_;
				NIM_BOOL T148_;
				NIM_BOOL T149_;
				NIM_BOOL T150_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T151_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T152_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T154_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T155_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T157_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T158_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T160_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T162_;
				T147_ = (NIM_BOOL)0;
				T148_ = (NIM_BOOL)0;
				T149_ = (NIM_BOOL)0;
				T150_ = (NIM_BOOL)0;
				T151_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T151_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T152_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T152_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T151_, x);
				T150_ = (T152_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T150_)) goto LA153_;
				T154_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T154_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T155_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T155_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T154_, ec);
				T150_ = (T155_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA153_: ;
				T149_ = T150_;
				if (!(T149_)) goto LA156_;
				T157_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T157_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T158_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T158_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T157_, dc);
				T149_ = (T158_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA156_: ;
				T148_ = T149_;
				if (!(T148_)) goto LA159_;
				T160_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T160_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, dc, ec1);
				T148_ = (T160_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA159_: ;
				T147_ = T148_;
				if (!(T147_)) goto LA161_;
				T162_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T162_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, y, x);
				T147_ = (T162_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA161_: ;
				if (!T147_) goto LA163_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA163_: ;
		}
		LA142_: ;
	}
	goto LA118_;
	LA137_: ;
	{
		NIM_BOOL T166_;
		NIM_BOOL T167_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T168_;
		NIM_BOOL T170_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dc_2;
		NIM_BOOL T173_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T174_;
		NIM_BOOL T176_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T177_;
		NIM_BOOL T179_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x2_2;
		NIM_BOOL T181_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec_2;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y_2;
		T166_ = (NIM_BOOL)0;
		T167_ = (NIM_BOOL)0;
		T168_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T168_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T167_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T168_)>>3] &(1U<<((NU)(T168_)&7U)))!=0);
		if (!(T167_)) goto LA169_;
		T170_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		x_2 = (*a).sons->data[((NI) 1)];
		T170_ = NIM_TRUE;
		if (!(T170_)) goto LA171_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		dc_2 = (*a).sons->data[((NI) 2)];
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
		T170_ = ((*(*a).sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*a).sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		LA171_: ;
		T167_ = T170_;
		LA169_: ;
		T166_ = T167_;
		if (!(T166_)) goto LA172_;
		T173_ = (NIM_BOOL)0;
		T174_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T174_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		T173_ = ((someAdd__zsb09bV9aQEXvpjZmyMwZvKA[(NU)(T174_)>>3] &(1U<<((NU)(T174_)&7U)))!=0);
		if (!(T173_)) goto LA175_;
		T176_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		T177_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T177_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw((*b).sons->data[((NI) 1)]);
		T176_ = ((someMul__SEELPgz9b0o9c1cvwttwifGg[(NU)(T177_)>>3] &(1U<<((NU)(T177_)&7U)))!=0);
		if (!(T176_)) goto LA178_;
		T179_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*b).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		x2_2 = (*(*b).sons->data[((NI) 1)]).sons->data[((NI) 1)];
		T179_ = NIM_TRUE;
		if (!(T179_)) goto LA180_;
		T181_ = (NIM_BOOL)0;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*b).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		ec_2 = (*(*b).sons->data[((NI) 1)]).sons->data[((NI) 2)];
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*(*b).sons->data[((NI) 1)]).kind)>>3] &(1U<<((NU)((*(*b).sons->data[((NI) 1)]).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*(*b).sons->data[((NI) 1)]).sons ? (*(*b).sons->data[((NI) 1)]).sons->Sup.len : 0)-1);
		T181_ = ((*(*(*b).sons->data[((NI) 1)]).sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*(*b).sons->data[((NI) 1)]).sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
		if (!(T181_)) goto LA182_;
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
		y_2 = (*b).sons->data[((NI) 2)];
		T181_ = NIM_TRUE;
		LA182_: ;
		T179_ = T181_;
		LA180_: ;
		T176_ = T179_;
		LA178_: ;
		T173_ = T176_;
		LA175_: ;
		T166_ = T173_;
		LA172_: ;
		if (!T166_) goto LA183_;
		{
			NIM_BOOL T187_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ec1_2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T190_;
			T187_ = (NIM_BOOL)0;
			T187_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(x_2, x2_2);
			if (!T187_) goto LA188_;
			T190_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T190_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
			ec1_2 = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, ec_2, T190_);
			{
				NIM_BOOL T193_;
				NIM_BOOL T194_;
				NIM_BOOL T195_;
				NIM_BOOL T196_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T197_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T198_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T200_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T201_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T203_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T204_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T206_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T208_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T209_;
				T193_ = (NIM_BOOL)0;
				T194_ = (NIM_BOOL)0;
				T195_ = (NIM_BOOL)0;
				T196_ = (NIM_BOOL)0;
				T197_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T197_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T198_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T198_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T197_, x_2);
				T196_ = (T198_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T196_)) goto LA199_;
				T200_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T200_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T201_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T201_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T200_, ec_2);
				T196_ = (T201_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA199_: ;
				T195_ = T196_;
				if (!(T195_)) goto LA202_;
				T203_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T203_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), IL64(1));
				T204_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T204_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T203_, dc_2);
				T195_ = (T204_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA202_: ;
				T194_ = T195_;
				if (!(T194_)) goto LA205_;
				T206_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T206_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, dc_2, ec1_2);
				T194_ = (T206_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA205_: ;
				T193_ = T194_;
				if (!(T193_)) goto LA207_;
				T208_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T208_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
				T209_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T209_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, y_2, T208_);
				T193_ = (T209_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA207_: ;
				if (!T193_) goto LA210_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA210_: ;
		}
		LA188_: ;
	}
	goto LA118_;
	LA183_: ;
	LA118_: ;
	{
		NIM_BOOL T214_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T215_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T217_;
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T218_;
		T214_ = (NIM_BOOL)0;
		T215_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T215_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T214_ = (T215_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) && T215_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 51) || T215_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54) && T215_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 58) || T215_ >= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66) && T215_ <= ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67));
		if (!(T214_)) goto LA216_;
		T217_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T217_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		T218_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T218_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		T214_ = (T217_ == T218_);
		LA216_: ;
		if (!T214_) goto LA219_;
		{
			NIM_BOOL T223_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T225_;
			T223_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T223_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*a).sons->data[((NI) 1)], (*b).sons->data[((NI) 1)]);
			if (!(T223_)) goto LA224_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T225_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T225_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 2)], (*b).sons->data[((NI) 2)]);
			T223_ = (T225_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA224_: ;
			if (!T223_) goto LA226_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA221_;
		LA226_: ;
		{
			NIM_BOOL T229_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T231_;
			T229_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T229_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*a).sons->data[((NI) 2)], (*b).sons->data[((NI) 2)]);
			if (!(T229_)) goto LA230_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T231_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T231_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 1)], (*b).sons->data[((NI) 1)]);
			T229_ = (T231_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA230_: ;
			if (!T229_) goto LA232_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		goto LA221_;
		LA232_: ;
		LA221_: ;
	}
	LA219_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T236_;
		T236_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T236_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (!(T236_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52) || T236_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59))) goto LA237_;
		{
			NIM_BOOL T241_;
			NIM_BOOL T242_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T243_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T244_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T246_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T247_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T249_;
			T241_ = (NIM_BOOL)0;
			T242_ = (NIM_BOOL)0;
			T243_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T243_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T244_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T244_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T243_, (*a).sons->data[((NI) 2)]);
			T242_ = (T244_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (!(T242_)) goto LA245_;
			T246_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T246_ = zero__FWKgXUNtQfE7EUZKj6yRDQ_2();
			T247_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T247_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, T246_, b);
			T242_ = (T247_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA245_: ;
			T241_ = T242_;
			if (!(T241_)) goto LA248_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T249_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T249_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 1)], b);
			T241_ = (T249_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA248_: ;
			if (!T241_) goto LA250_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA250_: ;
		{
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T254_;
			T254_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T254_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
			if (!(T254_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 52) || T254_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 59))) goto LA255_;
			{
				NIM_BOOL T259_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T261_;
				T259_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
				T259_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*a).sons->data[((NI) 1)], (*b).sons->data[((NI) 1)]);
				if (!(T259_)) goto LA260_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
				T261_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T261_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*b).sons->data[((NI) 2)], (*a).sons->data[((NI) 2)]);
				T259_ = (T261_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				LA260_: ;
				if (!T259_) goto LA262_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA262_: ;
		}
		LA255_: ;
		{
			NIM_BOOL T266_;
			NIM_BOOL T267_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T269_;
			T266_ = (NIM_BOOL)0;
			T267_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T267_ = isValue__MH3XlBsw9ahhEwy5cK9cHBHA_2((*a).sons->data[((NI) 2)]);
			if (!(T267_)) goto LA268_;
			T269_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T269_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
			T267_ = (T269_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T269_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T269_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
			LA268_: ;
			T266_ = T267_;
			if (!(T266_)) goto LA270_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T266_ = isMinusOne__MH3XlBsw9ahhEwy5cK9cHBHA_5((*b).sons->data[((NI) 2)]);
			LA270_: ;
			if (!T266_) goto LA271_;
			{
				NIM_BOOL T275_;
				tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T276_;
				T275_ = (NIM_BOOL)0;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
				T276_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
				T276_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 2)], (*a).sons->data[((NI) 1)]);
				T275_ = (T276_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
				if (!(T275_)) goto LA277_;
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
				if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
				if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
				T275_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA((*a).sons->data[((NI) 1)], (*b).sons->data[((NI) 1)]);
				LA277_: ;
				if (!T275_) goto LA278_;
				result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
				goto BeforeRet_;
			}
			LA278_: ;
		}
		LA271_: ;
	}
	LA237_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T282_;
		T282_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T282_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(b);
		if (!(T282_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 67))) goto LA283_;
		{
			NIM_BOOL T287_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T288_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T290_;
			T287_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T288_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T288_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b).sons->data[((NI) 1)]);
			T287_ = (T288_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T287_) goto LA289_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*b).kind)>>3] &(1U<<((NU)((*b).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*b).sons ? (*b).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*b).sons ? (*b).sons->Sup.len : 0)-1);
			T290_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T290_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, a, (*b).sons->data[((NI) 2)]);
			T287_ = (T290_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA289_: ;
			if (!T287_) goto LA291_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA291_: ;
	}
	LA283_: ;
	{
		tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T295_;
		T295_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
		T295_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
		if (!(T295_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 66))) goto LA296_;
		{
			NIM_BOOL T300_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T301_;
			tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T303_;
			T300_ = (NIM_BOOL)0;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 1)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T301_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T301_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 1)], b);
			T300_ = (T301_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			if (T300_) goto LA302_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T303_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
			T303_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*a).sons->data[((NI) 2)], b);
			T300_ = (T303_ == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2));
			LA302_: ;
			if (!T300_) goto LA304_;
			result = ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 2);
			goto BeforeRet_;
		}
		LA304_: ;
	}
	LA296_: ;
	result = pleViaModel__G9bUxQOJUHpRPU6xPkealOw(m, a, b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA, proveLe__gquZ4TuLCn9anC5O4OWI4Og)(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opLe, a, b);
	x = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T1_, (&(*m).o));
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 1)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*x).sons ? (*x).sons->Sup.len : 0)-1);
	if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
	if ((NU)(((NI) 2)) >= (NU)((*x).sons ? (*x).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*x).sons ? (*x).sons->Sup.len : 0)-1);
	result = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*x).sons->data[((NI) 1)], (*x).sons->data[((NI) 2)]);
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA T9_;
		if (!(result == ((tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA) 0))) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = one__FWKgXUNtQfE7EUZKj6yRDQ_3();
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opAdd, b, T6_);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*m).o.opLe, T7_, a);
		y = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T8_, (&(*m).o));
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 1)) >= (NU)((*y).sons ? (*y).sons->Sup.len : 0)) raiseIndexError2(((NI) 1),((*y).sons ? (*y).sons->Sup.len : 0)-1);
		if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*y).kind)>>3] &(1U<<((NU)((*y).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
		if ((NU)(((NI) 2)) >= (NU)((*y).sons ? (*y).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*y).sons ? (*y).sons->Sup.len : 0)-1);
		T9_ = (tyEnum_TImplication__t4F29a8ejY1DFQTYTML9c9byA)0;
		T9_ = ple__gquZ4TuLCn9anC5O4OWI4Og_2(m, (*y).sons->data[((NI) 1)], (*y).sons->data[((NI) 2)]);
		result = tilde___nnERY7FtzBMOEK1oaVzB1g(T9_);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowBound__Esza4n69a5U9bzlDTK04VArg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = firstOrd__hjogdnp59cMX1rwmjikBhqw(conf, (*x).typ);
	result = newIntNode__4YOyxaxo739b3eaIho5QEcA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T1_);
	(*result).info = (*x).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, highBound__9cbEq5HLZRHFpEqTjJwMYDA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	typ = skipTypes__zsqmUNR5OZrTUna0Y9bdu9bg((*x).typ, IL64(36134350135273744));
	{
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16))) goto LA3_;
		T5_ = lastOrd__hjogdnp59cMX1rwmjikBhqw_2(conf, typ);
		result = newIntNode__4YOyxaxo739b3eaIho5QEcA(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), T5_);
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NI T13_;
		NI TM__6PEpSVg5zYQiUPcMieikwQ_79;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
		if (!(T8_)) goto LA9_;
		T8_ = ((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
		T7_ = ((*(*x).sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 10));
		LA10_: ;
		if (!T7_) goto LA11_;
		if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_19[(NU)((*x).kind)>>3] &(1U<<((NU)((*x).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_20));
		T13_ = (NI)0;
		T13_ = len__P89cqdlERShb9alU3iC0yj8wast((*(*x).sym).ast);
		TM__6PEpSVg5zYQiUPcMieikwQ_79 = subInt(T13_, ((NI) 1));
		result = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((NI)(TM__6PEpSVg5zYQiUPcMieikwQ_79))));
	}
	goto LA1_;
	LA11_: ;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
		T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T15_ = buildCall__rQdL9bdBvS9aqkRykTzQFSAw((*o).opLen, x);
		T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T16_ = minusOne__FWKgXUNtQfE7EUZKj6yRDQ();
		result = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, T15_, T16_);
	}
	LA1_: ;
	(*result).info = (*x).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, buildAdd__jGtL4PYHin0Ec4iHpFgCdA)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, NI64 b, tyObject_Operators__apNm0zcYroUpNRird62c9aQ* o) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		if (!!((b == IL64(0)))) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = newIntNode__zcNs9blLGYB6i9aGKob9bpzRw(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), b);
		T1_ = buildCall__bzqLNgd7GiDpqZUsYKdenA((*o).opAdd, a, T6_);
	}
	goto LA2_;
	LA4_: ;
	{
		T1_ = a;
	}
	LA2_: ;
	result = canon__Jdq9bmYnl9bApH9aGfXEZQN8Q_4(T1_, o);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, simpleSlice__VGfXCY3TCP9cSnuVXj9a9a8nQ)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {	NI64 result;
	result = (NI64)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameTree__Uv9a9aANFtV79cIvUP5jEeyVA(a, b);
		if (!T3_) goto LA4_;
		{
			NIM_BOOL T8_;
			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T9_;
			T8_ = (NIM_BOOL)0;
			T9_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
			T9_ = getMagic__4W1ZJaFiusqlhViRx9cbM9bw(a);
			T8_ = (T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 49) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 56) || T9_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 54));
			if (!(T8_)) goto LA10_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			T8_ = ((*(*a).sons->data[((NI) 2)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*a).sons->data[((NI) 2)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15));
			LA10_: ;
			if (!T8_) goto LA11_;
			if (((TM__6PEpSVg5zYQiUPcMieikwQ_17[(NU)((*a).kind)>>3] &(1U<<((NU)((*a).kind)&7U)))!=0)) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_18));
			if ((NU)(((NI) 2)) >= (NU)((*a).sons ? (*a).sons->Sup.len : 0)) raiseIndexError2(((NI) 2),((*a).sons ? (*a).sons->Sup.len : 0)-1);
			if (!(((TM__6PEpSVg5zYQiUPcMieikwQ_26[(NU)((*(*a).sons->data[((NI) 2)]).kind)>>3] &(1U<<((NU)((*(*a).sons->data[((NI) 2)]).kind)&7U)))!=0))) raiseFieldError(((NimStringDesc*) &TM__6PEpSVg5zYQiUPcMieikwQ_27));
			result = (*(*a).sons->data[((NI) 2)]).intVal;
		}
		goto LA6_;
		LA11_: ;
		{
			result = IL64(0);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		result = IL64(-1);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_guardsDatInit000)(void) {
static TNimNode* TM__6PEpSVg5zYQiUPcMieikwQ_2_13[13];
static TNimNode* TM__6PEpSVg5zYQiUPcMieikwQ_69_2[2];
static TNimNode TM__6PEpSVg5zYQiUPcMieikwQ_0[17];
NTI__apNm0zcYroUpNRird62c9aQ_.size = sizeof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ);
NTI__apNm0zcYroUpNRird62c9aQ_.kind = 18;
NTI__apNm0zcYroUpNRird62c9aQ_.base = 0;
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[0] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[1];
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opNot);
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[1].name = "opNot";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[1] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[2];
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opContains);
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[2].name = "opContains";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[2] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[3];
TM__6PEpSVg5zYQiUPcMieikwQ_0[3].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[3].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLe);
TM__6PEpSVg5zYQiUPcMieikwQ_0[3].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[3].name = "opLe";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[3] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[4];
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLt);
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[4].name = "opLt";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[4] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[5];
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opAnd);
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[5].name = "opAnd";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[5] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[6];
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opOr);
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[6].name = "opOr";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[6] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[7];
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opIsNil);
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[7].name = "opIsNil";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[7] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[8];
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opEq);
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[8].name = "opEq";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[8] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[9];
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opAdd);
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[9].name = "opAdd";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[9] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[10];
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opSub);
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[10].name = "opSub";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[10] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[11];
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opMul);
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[11].name = "opMul";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[11] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[12];
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opDiv);
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[12].name = "opDiv";
TM__6PEpSVg5zYQiUPcMieikwQ_2_13[12] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[13];
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].offset = offsetof(tyObject_Operators__apNm0zcYroUpNRird62c9aQ, opLen);
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].typ = (&NTI__K9bspPztfoWajecnwjyHuYQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[13].name = "opLen";
TM__6PEpSVg5zYQiUPcMieikwQ_0[0].len = 13; TM__6PEpSVg5zYQiUPcMieikwQ_0[0].kind = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[0].sons = &TM__6PEpSVg5zYQiUPcMieikwQ_2_13[0];
NTI__apNm0zcYroUpNRird62c9aQ_.node = &TM__6PEpSVg5zYQiUPcMieikwQ_0[0];
NTI__yUzvq5GhzqHyDCdSXqIv1Q_.size = sizeof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q);
NTI__yUzvq5GhzqHyDCdSXqIv1Q_.kind = 18;
NTI__yUzvq5GhzqHyDCdSXqIv1Q_.base = 0;
TM__6PEpSVg5zYQiUPcMieikwQ_69_2[0] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[15];
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].offset = offsetof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q, s);
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].typ = (&NTI__ehmV9bTklH2Gt9cXHV9c0HLeQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[15].name = "s";
TM__6PEpSVg5zYQiUPcMieikwQ_69_2[1] = &TM__6PEpSVg5zYQiUPcMieikwQ_0[16];
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].kind = 1;
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].offset = offsetof(tyObject_TModel__yUzvq5GhzqHyDCdSXqIv1Q, o);
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].typ = (&NTI__apNm0zcYroUpNRird62c9aQ_);
TM__6PEpSVg5zYQiUPcMieikwQ_0[16].name = "o";
TM__6PEpSVg5zYQiUPcMieikwQ_0[14].len = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[14].kind = 2; TM__6PEpSVg5zYQiUPcMieikwQ_0[14].sons = &TM__6PEpSVg5zYQiUPcMieikwQ_69_2[0];
NTI__yUzvq5GhzqHyDCdSXqIv1Q_.node = &TM__6PEpSVg5zYQiUPcMieikwQ_0[14];
NTI__nw2ozGiJbajPUc4Cj4vzYw_.size = sizeof(tySequence__nw2ozGiJbajPUc4Cj4vzYw*);
NTI__nw2ozGiJbajPUc4Cj4vzYw_.kind = 24;
NTI__nw2ozGiJbajPUc4Cj4vzYw_.base = (&NTI__EFqgCXJ4d8PgqOdFJmldsQ_);
NTI__nw2ozGiJbajPUc4Cj4vzYw_.marker = Marker_tySequence__nw2ozGiJbajPUc4Cj4vzYw;
}

