/* Generated by Nim Compiler v2.2.10 */
#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
typedef struct tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw;
typedef struct tyTuple__4wIKrvA4KpCWPy4McN64Pg tyTuple__4wIKrvA4KpCWPy4McN64Pg;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
typedef NimStringV2 tyArray__mwX29agX3Ej9aN4i06bmNBzw[512];
typedef tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* tyArray__aWbWtSQ9c5GC1oFcQOIBaOw[512];
typedef tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* tyArray__LFBH1wNvhjP9blmECBD9bOMA[512];
struct tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q {
	NI entries;
	tyArray__mwX29agX3Ej9aN4i06bmNBzw keys;
	NIM_BOOL isInternal;
union{
	struct {
	tyArray__aWbWtSQ9c5GC1oFcQOIBaOw vals;
} _isInternal_1;
	struct {
	tyArray__LFBH1wNvhjP9blmECBD9bOMA links;
} _isInternal_2;
};
};
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typField;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind;
union{
	struct {
	NI64 intVal;
} _kind_1;
	struct {
	NF floatVal;
} _kind_2;
	struct {
	NimStringV2 strVal;
} _kind_3;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
} _kind_4;
	struct {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident;
} _kind_5;
	struct {
	tySequence__9ahcSjIErJohSBBFLwuF56Q sons;
} _kind_6;
};
};
struct tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* root;
	NI entries;
};
struct tyTuple__4wIKrvA4KpCWPy4McN64Pg {
	NimStringV2 Field0;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field1;
	NI Field2;
};
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3130)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3270)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u12632)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___vm_u8466)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* src_p1);
static N_INLINE(void, nimIncRef)(void* p_p0);
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_u1563)(NimStringV2 x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___vm_u8463)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* dest_p0);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*, insert__vm_u10108)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0, NimStringV2 key_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* val_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3261)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3249)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_u8472)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___vm_u8460)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2700)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2688)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*, split__vm_u10878)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0);
N_LIB_PRIVATE N_NIMCALL(void, copyHalf__vm_u10895)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* result_p1);
N_LIB_PRIVATE N_NIMCALL(NI, countSubTree__vm_u12595)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* it_p0);
extern NIM_BOOL nimInErrorMode__system_u4146;
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3130(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u12632)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* dest_p0) {
	NI colontmp__3;
	switch ((*dest_p0).isInternal) {
	case NIM_FALSE:
	{
		NI colontmp_;
		colontmp_ = ((NI)0);
		{
			while (1) {
				if (!(colontmp_ < ((NI)512))) goto LA3;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = nimDecRefIsLastDyn((*dest_p0)._isInternal_1.vals[(colontmp_)- 0]);
					if (!T6_) goto LA7_;
					eqdestroy___ast_u3270((&(*(*dest_p0)._isInternal_1.vals[(colontmp_)- 0])));
					nimRawDispose((*dest_p0)._isInternal_1.vals[(colontmp_)- 0], ((NI)8));
				}
LA7_: ;
				colontmp_ += ((NI)1);
			} LA3: ;
		}
	}
	break;
	case NIM_TRUE:
	{
		NI colontmp__2;
		colontmp__2 = ((NI)0);
		{
			while (1) {
				if (!(colontmp__2 < ((NI)512))) goto LA11;
				{
					NIM_BOOL T14_;
					T14_ = (NIM_BOOL)0;
					T14_ = nimDecRefIsLastDyn((*dest_p0)._isInternal_2.links[(colontmp__2)- 0]);
					if (!T14_) goto LA15_;
					eqdestroy___modulegraphs_u12632((&(*(*dest_p0)._isInternal_2.links[(colontmp__2)- 0])));
					nimRawDispose((*dest_p0)._isInternal_2.links[(colontmp__2)- 0], ((NI)8));
				}
LA15_: ;
				colontmp__2 += ((NI)1);
			} LA11: ;
		}
	}
	break;
	default:
	{
	}
	break;
	}
	colontmp__3 = ((NI)0);
	{
		while (1) {
			if (!(colontmp__3 < ((NI)512))) goto LA19;
			eqdestroy___system_u2691((*dest_p0).keys[(colontmp__3)- 0]);
			colontmp__3 += ((NI)1);
		} LA19: ;
	}
}
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) + (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(void, nimIncRef)(void* p_p0) {
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	T2_ = (NI)0;
	T2_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	(*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_))).rc = pluspercent___system_u785((*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T2_))).rc, ((NI)16));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4146);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___vm_u8466)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!src_p1) goto LA3_;
		nimIncRef(src_p1);
	}
LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = nimDecRefIsLastDyn((*dest_p0));
		if (!T7_) goto LA8_;
		eqdestroy___modulegraphs_u12632((&(*(*dest_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0), ((NI)8));
	}
LA8_: ;
	(*dest_p0) = src_p1;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___vm_u8463)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn(dest_p0);
		if (!T3_) goto LA4_;
		eqdestroy___modulegraphs_u12632((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_u9814)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw b_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* x_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	x_1 = NIM_NIL;
	eqcopy___vm_u8466(&x_1, b_p0.root);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			if (!(*x_1).isInternal) goto LA3;
			{
				NI j_1;
				NI i_1;
				j_1 = (NI)0;
				i_1 = ((NI)0);
				{
					while (1) {
						if (!(i_1 < (*x_1).entries)) goto LA6;
						j_1 = i_1;
						{
							NIM_BOOL T9_;
							NI T11_;
							T9_ = (NIM_BOOL)0;
							T9_ = ((NI)(j_1 + ((NI)1)) == (*x_1).entries);
							if (T9_) goto LA10_;
							T11_ = (NI)0;
							T11_ = cmp__system_u1563(key_p1, (*x_1).keys[((NI)(j_1 + ((NI)1)))- 0]);
							T9_ = (T11_ < ((NI)0));
LA10_: ;
							if (!T9_) goto LA12_;
							eqcopy___vm_u8466(&x_1, (*x_1)._isInternal_2.links[(j_1)- 0]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							goto LA4;
						}
LA12_: ;
						i_1 += ((NI)1);
					} LA6: ;
				}
			} LA4: ;
		} LA3: ;
	}
	{
		NI j_2;
		NI i_2;
		j_2 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < (*x_1).entries)) goto LA16;
				j_2 = i_2;
				{
					NI T19_;
					T19_ = (NI)0;
					T19_ = cmp__system_u1563(key_p1, (*x_1).keys[(j_2)- 0]);
					if (!(T19_ == ((NI)0))) goto LA20_;
					result = NIM_TRUE;
					eqdestroy___vm_u8463(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA20_: ;
				i_2 += ((NI)1);
			} LA16: ;
		}
	}
	result = NIM_FALSE;
	eqdestroy___vm_u8463(x_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___vm_u8463(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_u8497)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw* dest_p0, tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).root);
		if (!T3_) goto LA4_;
		eqdestroy___modulegraphs_u12632((&(*(*dest_p0).root)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0).root, ((NI)8));
	}
LA4_: ;
	(*dest_p0).root = src_p1.root;
	(*dest_p0).entries = src_p1.entries;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___vm_u8485)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw* dest_p0) {
	(*dest_p0).root = 0;
	(*dest_p0).entries = 0;
}
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
N_LIB_PRIVATE N_NIMCALL(void, initBTree__vm_u8410)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw* Result) {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* T1_;
	nimZeroMem((void*)Result, sizeof(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw));
	nimZeroMem((void*)Result, sizeof(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw));
	T1_ = NIM_NIL;
	T1_ = (tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) nimNewObj(sizeof(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q), NIM_ALIGNOF(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q));
	(*T1_).entries = ((NI)0);
	(*T1_).isInternal = NIM_FALSE;
	nimZeroMem((void*)(*T1_)._isInternal_1.vals, sizeof(tyArray__aWbWtSQ9c5GC1oFcQOIBaOw));
	(*Result).root = T1_;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___vm_u8472)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0));
		if (!T3_) goto LA4_;
		eqdestroy___modulegraphs_u12632((&(*(*dest_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0), ((NI)8));
	}
LA4_: ;
	(*dest_p0) = src_p1;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___vm_u8460)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q** dest_p0) {
	(*dest_p0) = 0;
}
N_LIB_PRIVATE N_NIMCALL(void, copyHalf__vm_u10895)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0, tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* result_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI j_1;
		NI i_1;
		j_1 = (NI)0;
		i_1 = ((NI)0);
		{
			while (1) {
				if (!(i_1 < ((NI)256))) goto LA3;
				j_1 = i_1;
				eqcopy___system_u2694((&(*result_p1).keys[(j_1)- 0]), (*h_p0).keys[((NI)(((NI)256) + j_1))- 0]);
				i_1 += ((NI)1);
			} LA3: ;
		}
	}
	{
		if (!(*h_p0).isInternal) goto LA6_;
		{
			NI j_2;
			NI i_2;
			j_2 = (NI)0;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < ((NI)256))) goto LA10;
					j_2 = i_2;
					eqcopy___vm_u8466(&(*result_p1)._isInternal_2.links[(j_2)- 0], (*h_p0)._isInternal_2.links[((NI)(((NI)256) + j_2))- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA10: ;
			}
		}
	}
	goto LA4_;
LA6_: ;
	{
		{
			NI j_3;
			NI i_3;
			j_3 = (NI)0;
			i_3 = ((NI)0);
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T15_;
					if (!(i_3 < ((NI)256))) goto LA14;
					j_3 = i_3;
					T15_ = NIM_NIL;
					T15_ = (*h_p0)._isInternal_1.vals[((NI)(((NI)256) + j_3))- 0];
					eqwasMoved___ast_u3249((&(*h_p0)._isInternal_1.vals[((NI)(((NI)256) + j_3))- 0]));
					eqsink___ast_u3261(&(*result_p1)._isInternal_1.vals[(j_3)- 0], T15_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_3 += ((NI)1);
				} LA14: ;
			}
		}
	}
LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*, split__vm_u10878)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0) {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* result;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = (tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) nimNewObj(sizeof(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q), NIM_ALIGNOF(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q));
	(*T1_).entries = ((NI)256);
	(*T1_).isInternal = (*h_p0).isInternal;
	result = T1_;
	(*h_p0).entries = ((NI)256);
	copyHalf__vm_u10895(h_p0, result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*, insert__vm_u10108)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* h_p0, NimStringV2 key_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* val_p2) {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* result;
	NimStringV2 newKey_1;
	NI j_1;
NIM_BOOL oldNimErrFin33_;
NIM_BOOL oldNimErrFin23_;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* T48_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	newKey_1.len = 0; newKey_1.p = NIM_NIL;
	eqcopy___system_u2694((&newKey_1), key_p1);
	j_1 = ((NI)0);
	{
		if (!!((*h_p0).isInternal)) goto LA4_;
		{
			while (1) {
				if (!(j_1 < (*h_p0).entries)) goto LA7;
				{
					NI T10_;
					T10_ = (NI)0;
					T10_ = cmp__system_u1563(key_p1, (*h_p0).keys[(j_1)- 0]);
					if (!(T10_ == ((NI)0))) goto LA11_;
					eqcopy___ast_u3255(&(*h_p0)._isInternal_1.vals[(j_1)- 0], val_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___system_u2691(newKey_1);
					goto BeforeRet_;
				}
LA11_: ;
				{
					NI T15_;
					T15_ = (NI)0;
					T15_ = cmp__system_u1563(key_p1, (*h_p0).keys[(j_1)- 0]);
					if (!(T15_ < ((NI)0))) goto LA16_;
					goto LA6;
				}
LA16_: ;
				j_1 += ((NI)1);
			} LA7: ;
		} LA6: ;
		{
			NI i_1;
			NI colontmp_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(j_1 + ((NI)1));
			res_1 = (*h_p0).entries;
			{
				while (1) {
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T21_;
					if (!(colontmp_ <= res_1)) goto LA20;
					i_1 = ((NI) (res_1));
					T21_ = NIM_NIL;
					T21_ = (*h_p0)._isInternal_1.vals[((NI)(i_1 - ((NI)1)))- 0];
					eqwasMoved___ast_u3249((&(*h_p0)._isInternal_1.vals[((NI)(i_1 - ((NI)1)))- 0]));
					eqsink___ast_u3261(&(*h_p0)._isInternal_1.vals[(i_1)- 0], T21_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					res_1 -= ((NI)1);
				} LA20: ;
			}
		}
		eqcopy___ast_u3255(&(*h_p0)._isInternal_1.vals[(j_1)- 0], val_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA2_;
LA4_: ;
	{
		tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* newLink_1;
		newLink_1 = NIM_NIL;
		newLink_1 = ((tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) NIM_NIL);
		{
			while (1) {
				if (!(j_1 < (*h_p0).entries)) goto LA25;
				{
					NIM_BOOL T28_;
					NI T30_;
					tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* u_1;
					T28_ = (NIM_BOOL)0;
					T28_ = ((NI)(j_1 + ((NI)1)) == (*h_p0).entries);
					if (T28_) goto LA29_;
					T30_ = (NI)0;
					T30_ = cmp__system_u1563(key_p1, (*h_p0).keys[((NI)(j_1 + ((NI)1)))- 0]);
					T28_ = (T30_ < ((NI)0));
LA29_: ;
					if (!T28_) goto LA31_;
					u_1 = NIM_NIL;
					u_1 = insert__vm_u10108((*h_p0)._isInternal_2.links[(j_1)- 0], key_p1, val_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
					j_1 += ((NI)1);
					{
						if (!(u_1 == ((tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) NIM_NIL))) goto LA36_;
						result = ((tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) NIM_NIL);
						eqdestroy___vm_u8463(u_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
						eqdestroy___vm_u8463(newLink_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						eqdestroy___system_u2691(newKey_1);
						goto BeforeRet_;
					}
LA36_: ;
					eqcopy___system_u2694((&newKey_1), (*u_1).keys[(((NI)0))- 0]);
					eqsink___vm_u8472(&newLink_1, u_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
					eqwasMoved___vm_u8460(&u_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA33_;
					eqdestroy___vm_u8463(u_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					goto LA24;
					{
						LA33_:;
					}
					{
						oldNimErrFin33_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___vm_u8463(u_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
						*nimErr_ = oldNimErrFin33_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
				}
LA31_: ;
				j_1 += ((NI)1);
			} LA25: ;
		} LA24: ;
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)(j_1 + ((NI)1));
			res_2 = (*h_p0).entries;
			{
				while (1) {
					if (!(colontmp__2 <= res_2)) goto LA42;
					i_2 = ((NI) (res_2));
					eqcopy___vm_u8466(&(*h_p0)._isInternal_2.links[(i_2)- 0], (*h_p0)._isInternal_2.links[((NI)(i_2 - ((NI)1)))- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					res_2 -= ((NI)1);
				} LA42: ;
			}
		}
		eqsink___vm_u8472(&(*h_p0)._isInternal_2.links[(j_1)- 0], newLink_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
		eqwasMoved___vm_u8460(&newLink_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
		{
			LA23_:;
		}
		{
			oldNimErrFin23_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___vm_u8463(newLink_1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin23_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA2_: ;
	{
		NI i_3;
		NI colontmp__3;
		NI res_3;
		i_3 = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = (NI)(j_1 + ((NI)1));
		res_3 = (*h_p0).entries;
		{
			while (1) {
				if (!(colontmp__3 <= res_3)) goto LA47;
				i_3 = ((NI) (res_3));
				eqcopy___system_u2694((&(*h_p0).keys[(i_3)- 0]), (*h_p0).keys[((NI)(i_3 - ((NI)1)))- 0]);
				res_3 -= ((NI)1);
			} LA47: ;
		}
	}
	eqsink___system_u2700((&(*h_p0).keys[(j_1)- 0]), newKey_1);
	eqwasMoved___system_u2688((&newKey_1));
	(*h_p0).entries += ((NI)1);
	T48_ = NIM_NIL;
	{
		if (!((*h_p0).entries < ((NI)512))) goto LA51_;
		result = ((tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) NIM_NIL);
	}
	goto LA49_;
LA51_: ;
	{
		result = split__vm_u10878(h_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA49_: ;
	eqdestroy___system_u2691(newKey_1);
	goto BeforeRet_;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(newKey_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__vm_u10092)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw* b_p0, NimStringV2 key_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* val_p2) {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* u_1;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* t_1;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* T6_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	u_1 = NIM_NIL;
	t_1 = NIM_NIL;
	u_1 = insert__vm_u10108((*b_p0).root, key_p1, val_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*b_p0).entries += ((NI)1);
	{
		if (!(u_1 == ((tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) NIM_NIL))) goto LA4_;
		eqdestroy___vm_u8463(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___vm_u8463(u_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = NIM_NIL;
	T6_ = (tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q*) nimNewObj(sizeof(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q), NIM_ALIGNOF(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q));
	(*T6_).entries = ((NI)2);
	(*T6_).isInternal = NIM_TRUE;
	nimZeroMem((void*)(*T6_)._isInternal_2.links, sizeof(tyArray__LFBH1wNvhjP9blmECBD9bOMA));
	t_1 = T6_;
	eqcopy___system_u2694((&(*t_1).keys[(((NI)0))- 0]), (*(*b_p0).root).keys[(((NI)0))- 0]);
	eqcopy___vm_u8466(&(*t_1)._isInternal_2.links[(((NI)0))- 0], (*b_p0).root);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___system_u2694((&(*t_1).keys[(((NI)1))- 0]), (*u_1).keys[(((NI)0))- 0]);
	eqsink___vm_u8472(&(*t_1)._isInternal_2.links[(((NI)1))- 0], u_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___vm_u8460(&u_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqsink___vm_u8472(&(*b_p0).root, t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqwasMoved___vm_u8460(&t_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___vm_u8463(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___vm_u8463(u_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, getOrDefault__vm_u12014)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw b_p0, NimStringV2 key_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* x_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	x_1 = NIM_NIL;
	result = 0;
	eqcopy___vm_u8466(&x_1, b_p0.root);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		while (1) {
			if (!(*x_1).isInternal) goto LA3;
			{
				NI j_1;
				NI i_1;
				j_1 = (NI)0;
				i_1 = ((NI)0);
				{
					while (1) {
						if (!(i_1 < (*x_1).entries)) goto LA6;
						j_1 = i_1;
						{
							NIM_BOOL T9_;
							NI T11_;
							T9_ = (NIM_BOOL)0;
							T9_ = ((NI)(j_1 + ((NI)1)) == (*x_1).entries);
							if (T9_) goto LA10_;
							T11_ = (NI)0;
							T11_ = cmp__system_u1563(key_p1, (*x_1).keys[((NI)(j_1 + ((NI)1)))- 0]);
							T9_ = (T11_ < ((NI)0));
LA10_: ;
							if (!T9_) goto LA12_;
							eqcopy___vm_u8466(&x_1, (*x_1)._isInternal_2.links[(j_1)- 0]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							goto LA4;
						}
LA12_: ;
						i_1 += ((NI)1);
					} LA6: ;
				}
			} LA4: ;
		} LA3: ;
	}
	{
		NI j_2;
		NI i_2;
		j_2 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < (*x_1).entries)) goto LA16;
				j_2 = i_2;
				{
					NI T19_;
					T19_ = (NI)0;
					T19_ = cmp__system_u1563(key_p1, (*x_1).keys[(j_2)- 0]);
					if (!(T19_ == ((NI)0))) goto LA20_;
					eqcopy___ast_u3255(&result, (*x_1)._isInternal_1.vals[(j_2)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					eqdestroy___vm_u8463(x_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto BeforeRet_;
				}
LA20_: ;
				i_2 += ((NI)1);
			} LA16: ;
		}
	}
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___vm_u8463(x_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasNext__vm_u12373)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw b_p0, NI index_p1) {
	NIM_BOOL result;
	result = (index_p1 < b_p0.entries);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, countSubTree__vm_u12595)(tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* it_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!(*it_p0).isInternal) goto LA3_;
		result = ((NI)0);
		{
			NI k_1;
			NI i_1;
			k_1 = (NI)0;
			i_1 = ((NI)0);
			{
				while (1) {
					NI T8_;
					if (!(i_1 < (*it_p0).entries)) goto LA7;
					k_1 = i_1;
					T8_ = (NI)0;
					T8_ = countSubTree__vm_u12595((*it_p0)._isInternal_2.links[(k_1)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					result += T8_;
					i_1 += ((NI)1);
				} LA7: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		result = (*it_p0).entries;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, next__vm_u12522)(tyObject_BTree__gZru4m5AxLV1lYyWPNBQBw b_p0, NI index_p1, tyTuple__4wIKrvA4KpCWPy4McN64Pg* Result) {
	tyObject_NodecolonObjectType___U4ON6JZL9cIHezBQjmQzJ8Q* it_1;
	NimStringV2 colontmp_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmp__2;
	NI i_1;
	NI colontmp__3;
	NimStringV2 blitTmp_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* blitTmp_2;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyTuple__4wIKrvA4KpCWPy4McN64Pg));
	it_1 = NIM_NIL;
	colontmp_.len = 0; colontmp_.p = NIM_NIL;
	colontmp__2 = NIM_NIL;
	eqcopy___vm_u8466(&it_1, b_p0.root);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	i_1 = index_p1;
	{
		while (1) {
			NI sum_1;
			if (!(*it_1).isInternal) goto LA3;
			sum_1 = ((NI)0);
			{
				NI k_1;
				NI i_2;
				k_1 = (NI)0;
				i_2 = ((NI)0);
				{
					while (1) {
						NI c_1;
						if (!(i_2 < (*it_1).entries)) goto LA6;
						k_1 = i_2;
						c_1 = countSubTree__vm_u12595((*it_1)._isInternal_2.links[(k_1)- 0]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						sum_1 += c_1;
						{
							if (!(i_1 < sum_1)) goto LA9_;
							eqcopy___vm_u8466(&it_1, (*it_1)._isInternal_2.links[(k_1)- 0]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							i_1 -= (NI)(sum_1 - c_1);
							goto LA4;
						}
LA9_: ;
						i_2 += ((NI)1);
					} LA6: ;
				}
			} LA4: ;
		} LA3: ;
	}
	eqcopy___system_u2694((&colontmp_), (*it_1).keys[(i_1)- 0]);
	eqcopy___ast_u3255(&colontmp__2, (*it_1)._isInternal_1.vals[(i_1)- 0]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmp__3 = (NI)(index_p1 + ((NI)1));
	blitTmp_1 = colontmp_;
	(*Result).Field0 = blitTmp_1;
	blitTmp_2 = colontmp__2;
	(*Result).Field1 = blitTmp_2;
	(*Result).Field2 = colontmp__3;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___vm_u8463(it_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___vm_u12834)(tyTuple__4wIKrvA4KpCWPy4McN64Pg* dest_p0) {
	eqdestroy___system_u2691((*dest_p0).Field0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).Field1);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3270((&(*(*dest_p0).Field1)));
		nimRawDispose((*dest_p0).Field1, ((NI)8));
	}
LA4_: ;
}
