/* Generated by Nim Compiler v2.2.10 */
/* Compiled for: MacOSX, arm64, clang */
/* Command for C compiler:
   clang -c  -w -ferror-limit=3 -fno-strict-aliasing -pthread -isysroot /Applications/Xcode_16.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -target arm64-apple-darwin24.2.0 -O3   -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/lib -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/src -o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@pcompiler@sidents.nim.c.o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@pcompiler@sidents.nim.c */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.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_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg;
typedef struct tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA;
typedef struct tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
struct tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA {
	NI rc;
	NI rootIdx;
};
typedef tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* tyArray__vT2s1OOU4oat4glWHm9bw9cg[8192];
struct tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg {
	tyArray__vT2s1OOU4oat4glWHm9bw9cg buckets;
	NI wordCounter;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* idAnon;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* idDelegator;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* emptyIdent;
};
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg {
	NI id;
	NimStringV2 s;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* next;
	NI h;
};
typedef NU16 tyEnum_TSpecialWord__WMa2GW2hKRy8m9b9blcHFCkg;
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u813)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3185)(tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u174)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
static N_INLINE(void, nimIncRef)(void* p_p0);
static N_INLINE(NI, pluspercent___system_u793)(NI x_p0, NI y_p1);
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u275)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___OOZOOZOOZcompilerZidents_u159)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg** dest_p0, tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* src_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__OOZOOZOOZcompilerZidents_u70)(NCSTRING a_p0, NCSTRING b_p1, NI blen_p2);
static N_INLINE(NIM_BOOL, nimSubInt)(NI a_p0, NI b_p1, NI* res_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u156)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__OOZOOZOOZcompilerZidents_u17)(NCSTRING a_p0, NCSTRING b_p1, NI blen_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u95)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2760)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2493)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u95)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NCSTRING identifier_p1, NI length_p2, NI h_p3);
N_LIB_PRIVATE N_NIMCALL(NI, hashIgnoreStyle__pureZhashes_u597)(NimStringV2 x_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___OOZOOZOOZcompilerZidents_u165)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg** dest_p0, tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u207)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NimStringV2 identifier_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u211)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NimStringV2 identifier_p1, NI h_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___OOZOOZOOZcompilerZwordrecg_u307)(tyEnum_TSpecialWord__WMa2GW2hKRy8m9b9blcHFCkg e_p0);
static const struct {
  NI cap; NIM_CHAR data[52+1];
} TM__L3r6bVdeFMiI9cwmLpWIeKw_12 = { 52 | NIM_STRLIT_FLAG, "idents.nim(83, 13) `(id == 0) or (id == result.id)` " };
static const NimStringV2 TM__L3r6bVdeFMiI9cwmLpWIeKw_13 = {52, (NimStrPayload*)&TM__L3r6bVdeFMiI9cwmLpWIeKw_12};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__L3r6bVdeFMiI9cwmLpWIeKw_16 = { 10 | NIM_STRLIT_FLAG, ":anonymous" };
static const NimStringV2 TM__L3r6bVdeFMiI9cwmLpWIeKw_17 = {10, (NimStrPayload*)&TM__L3r6bVdeFMiI9cwmLpWIeKw_16};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__L3r6bVdeFMiI9cwmLpWIeKw_18 = { 10 | NIM_STRLIT_FLAG, ":delegator" };
static const NimStringV2 TM__L3r6bVdeFMiI9cwmLpWIeKw_19 = {10, (NimStrPayload*)&TM__L3r6bVdeFMiI9cwmLpWIeKw_18};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__L3r6bVdeFMiI9cwmLpWIeKw_20 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__L3r6bVdeFMiI9cwmLpWIeKw_21 = {0, (NimStrPayload*)&TM__L3r6bVdeFMiI9cwmLpWIeKw_20};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4198;
static N_INLINE(NI, minuspercent___system_u813)(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__BVEqx9abcuAhztUEHxbqQJA* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u813(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u813((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3185(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u174)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).next);
		if (!T3_) goto LA4_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0).next)));
		nimRawDispose((*dest_p0).next, ((NI)8));
	}
LA4_: ;
	if ((*dest_p0).s.p && !((*dest_p0).s.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared((*dest_p0).s.p);
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u275)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* dest_p0) {
	NI colontmp_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).emptyIdent);
		if (!T3_) goto LA4_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0).emptyIdent)));
		nimRawDispose((*dest_p0).emptyIdent, ((NI)8));
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).idDelegator);
		if (!T8_) goto LA9_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0).idDelegator)));
		nimRawDispose((*dest_p0).idDelegator, ((NI)8));
	}
LA9_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = nimDecRefIsLastDyn((*dest_p0).idAnon);
		if (!T13_) goto LA14_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0).idAnon)));
		nimRawDispose((*dest_p0).idAnon, ((NI)8));
	}
LA14_: ;
	colontmp_ = ((NI)0);
	{
		while (1) {
			if (!(colontmp_ < ((NI)8192))) goto LA17;
			{
				NIM_BOOL T20_;
				T20_ = (NIM_BOOL)0;
				T20_ = nimDecRefIsLastDyn((*dest_p0).buckets[(colontmp_)- 0]);
				if (!T20_) goto LA21_;
				eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0).buckets[(colontmp_)- 0])));
				nimRawDispose((*dest_p0).buckets[(colontmp_)- 0], ((NI)8));
			}
LA21_: ;
			colontmp_ += ((NI)1);
		} LA17: ;
	}
}
static N_INLINE(NI, pluspercent___system_u793)(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_u813(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	T2_ = (NI)0;
	T2_ = minuspercent___system_u813(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
	(*((tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA*) (T1_))).rc = pluspercent___system_u793((*((tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA*) (T2_))).rc, ((NI)16));
}
static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u813(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA*) (T5_));
		{
			if (!((NI)((NI64)((*cell_1).rc) >> (NU64)(((NI)4) & (64 - 1))) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u813((*cell_1).rc, ((NI)16));
		}
LA6_: ;
	}
LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4198);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___OOZOOZOOZcompilerZidents_u342)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg** dest_p0, tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!src_p1) goto LA3_;
		nimIncRef(src_p1);
	}
LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = nimDecRefIsLast((*dest_p0));
		if (!T7_) goto LA8_;
		eqdestroy___OOZOOZOOZcompilerZidents_u275((&(*(*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, eqsink___OOZOOZOOZcompilerZidents_u165)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg** dest_p0, tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0));
		if (!T3_) goto LA4_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*(*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, eqcopy___OOZOOZOOZcompilerZidents_u159)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg** dest_p0, tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* 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___OOZOOZOOZcompilerZidents_u174((&(*(*dest_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0), ((NI)8));
	}
LA8_: ;
	(*dest_p0) = src_p1;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, nimSubInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) - (NU64)(((NU) (b_p1))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= (NI)(r_1 ^ a_p0));
		if (T3_) goto LA4_;
		T3_ = (((NI)0) <= (NI)(r_1 ^ (NI)((NU64) ~(b_p1))));
LA4_: ;
		if (!T3_) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA1_;
LA5_: ;
	{
		result = NIM_TRUE;
	}
LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) + (NU64)(((NU) (b_p1))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= (NI)(r_1 ^ a_p0));
		if (T3_) goto LA4_;
		T3_ = (((NI)0) <= (NI)(r_1 ^ b_p1));
LA4_: ;
		if (!T3_) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA1_;
LA5_: ;
	{
		result = NIM_TRUE;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__OOZOOZOOZcompilerZidents_u70)(NCSTRING a_p0, NCSTRING b_p1, NI blen_p2) {
	NI result;
	NI i_1;
	NI j_1;
{	i_1 = ((NI)0);
	j_1 = ((NI)0);
	result = ((NI)1);
	{
		while (1) {
			NIM_CHAR aa_1;
			NIM_CHAR bb_1;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_2;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_3;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_4;
			if (!(j_1 < blen_p2)) goto LA2;
			aa_1 = a_p0[i_1];
			bb_1 = b_p1[j_1];
			if (nimSubInt(((NU8)(aa_1)), ((NU8)(bb_1)), &TM__L3r6bVdeFMiI9cwmLpWIeKw_2)) { raiseOverflow(); goto BeforeRet_;
			};
			result = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_2);
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = !((result == ((NI)0)));
				if (T5_) goto LA6_;
				T5_ = ((NU8)(aa_1) == (NU8)(0));
LA6_: ;
				if (!T5_) goto LA7_;
				goto LA1;
			}
LA7_: ;
			if (nimAddInt(i_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_3)) { raiseOverflow(); goto BeforeRet_;
			};
			i_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_3);
			if (nimAddInt(j_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_4)) { raiseOverflow(); goto BeforeRet_;
			};
			j_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_4);
		} LA2: ;
	} LA1: ;
	{
		if (!(result == ((NI)0))) goto LA11_;
		{
			if (!!(((NU8)(a_p0[i_1]) == (NU8)(0)))) goto LA15_;
			result = ((NI)1);
		}
LA15_: ;
	}
LA11_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0) {
	NCSTRING result;
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		result = "";
	}
	goto LA1_;
LA3_: ;
	{
		result = ((NCSTRING) ((*s_p0.p).data));
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u156)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn(dest_p0);
		if (!T3_) goto LA4_;
		eqdestroy___OOZOOZOOZcompilerZidents_u174((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__OOZOOZOOZcompilerZidents_u17)(NCSTRING a_p0, NCSTRING b_p1, NI blen_p2) {
	NI result;
	NI i_1;
	NI j_1;
{	{
		if (!!(((NU8)(a_p0[((NI)0)]) == (NU8)(b_p1[((NI)0)])))) goto LA3_;
		result = ((NI)1);
		goto BeforeRet_;
	}
LA3_: ;
	i_1 = ((NI)0);
	j_1 = ((NI)0);
	result = ((NI)1);
	{
		while (1) {
			NIM_CHAR aa_1;
			NIM_CHAR bb_1;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_9;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_10;
			NI TM__L3r6bVdeFMiI9cwmLpWIeKw_11;
			if (!(j_1 < blen_p2)) goto LA6;
			{
				while (1) {
					NI TM__L3r6bVdeFMiI9cwmLpWIeKw_5;
					if (!((NU8)(a_p0[i_1]) == (NU8)(95))) goto LA8;
					if (nimAddInt(i_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_5)) { raiseOverflow(); goto BeforeRet_;
					};
					i_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_5);
				} LA8: ;
			}
			{
				while (1) {
					NI TM__L3r6bVdeFMiI9cwmLpWIeKw_6;
					if (!((NU8)(b_p1[j_1]) == (NU8)(95))) goto LA10;
					if (nimAddInt(j_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_6)) { raiseOverflow(); goto BeforeRet_;
					};
					j_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_6);
				} LA10: ;
			}
			aa_1 = a_p0[i_1];
			bb_1 = b_p1[j_1];
			{
				NIM_BOOL T13_;
				NI TM__L3r6bVdeFMiI9cwmLpWIeKw_7;
				T13_ = (NIM_BOOL)0;
				T13_ = ((NU8)(65) <= (NU8)(aa_1));
				if (!(T13_)) goto LA14_;
				T13_ = ((NU8)(aa_1) <= (NU8)(90));
LA14_: ;
				if (!T13_) goto LA15_;
				if (nimAddInt(((NU8)(aa_1)), ((NI)32), &TM__L3r6bVdeFMiI9cwmLpWIeKw_7)) { raiseOverflow(); goto BeforeRet_;
				};
				if (((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_7)) < ((NI)0) || ((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_7)) > ((NI)255)){ raiseRangeErrorI((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_7), ((NI)0), ((NI)255)); goto BeforeRet_;
				}
				aa_1 = ((NIM_CHAR) (((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_7))));
			}
LA15_: ;
			{
				NIM_BOOL T19_;
				NI TM__L3r6bVdeFMiI9cwmLpWIeKw_8;
				T19_ = (NIM_BOOL)0;
				T19_ = ((NU8)(65) <= (NU8)(bb_1));
				if (!(T19_)) goto LA20_;
				T19_ = ((NU8)(bb_1) <= (NU8)(90));
LA20_: ;
				if (!T19_) goto LA21_;
				if (nimAddInt(((NU8)(bb_1)), ((NI)32), &TM__L3r6bVdeFMiI9cwmLpWIeKw_8)) { raiseOverflow(); goto BeforeRet_;
				};
				if (((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_8)) < ((NI)0) || ((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_8)) > ((NI)255)){ raiseRangeErrorI((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_8), ((NI)0), ((NI)255)); goto BeforeRet_;
				}
				bb_1 = ((NIM_CHAR) (((NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_8))));
			}
LA21_: ;
			if (nimSubInt(((NU8)(aa_1)), ((NU8)(bb_1)), &TM__L3r6bVdeFMiI9cwmLpWIeKw_9)) { raiseOverflow(); goto BeforeRet_;
			};
			result = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_9);
			{
				NIM_BOOL T25_;
				T25_ = (NIM_BOOL)0;
				T25_ = !((result == ((NI)0)));
				if (T25_) goto LA26_;
				T25_ = ((NU8)(aa_1) == (NU8)(0));
LA26_: ;
				if (!T25_) goto LA27_;
				goto LA5;
			}
LA27_: ;
			if (nimAddInt(i_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_10)) { raiseOverflow(); goto BeforeRet_;
			};
			i_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_10);
			if (nimAddInt(j_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_11)) { raiseOverflow(); goto BeforeRet_;
			};
			j_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_11);
		} LA6: ;
	} LA5: ;
	{
		if (!(result == ((NI)0))) goto LA31_;
		{
			if (!!(((NU8)(a_p0[i_1]) == (NU8)(0)))) goto LA35_;
			result = ((NI)1);
		}
LA35_: ;
	}
LA31_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((NI)((*(*s_p0).p).cap & ((NI)IL64(4611686018427387904))) == ((NI)IL64(4611686018427387904)));
LA4_: ;
		if (!T3_) goto LA5_;
		nimPrepareStrMutationImpl__system_u2493(s_p0);
	}
LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u95)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NCSTRING identifier_p1, NI length_p2, NI h_p3) {
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* result;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* last_1;
	NI idx_1;
	NI id_1;
	NimStringV2 T23_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	last_1 = NIM_NIL;
	idx_1 = (NI)(h_p3 & ((NI)8191));
	if ((NU)(idx_1) > (NU)(8191)){ raiseIndexError2(idx_1, 8191); goto LA1_;
	}
	eqcopy___OOZOOZOOZcompilerZidents_u159(&result, (*ic_p0).buckets[(idx_1)- 0]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	last_1 = ((tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*) NIM_NIL);
	id_1 = ((NI)0);
	{
		while (1) {
			if (!!((result == ((tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*) NIM_NIL)))) goto LA3;
			{
				NI T6_;
				T6_ = (NI)0;
				T6_ = cmpExact__OOZOOZOOZcompilerZidents_u70(nimToCStringConv((*result).s), identifier_p1, length_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T6_ == ((NI)0))) goto LA7_;
				{
					if (!!((last_1 == ((tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*) NIM_NIL)))) goto LA11_;
					eqcopy___OOZOOZOOZcompilerZidents_u159(&(*last_1).next, (*result).next);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if ((NU)(idx_1) > (NU)(8191)){ raiseIndexError2(idx_1, 8191); goto LA1_;
					}
					eqcopy___OOZOOZOOZcompilerZidents_u159(&(*result).next, (*ic_p0).buckets[(idx_1)- 0]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if ((NU)(idx_1) > (NU)(8191)){ raiseIndexError2(idx_1, 8191); goto LA1_;
					}
					eqcopy___OOZOOZOOZcompilerZidents_u159(&(*ic_p0).buckets[(idx_1)- 0], result);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA11_: ;
				eqdestroy___OOZOOZOOZcompilerZidents_u156(last_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				goto BeforeRet_;
			}
			goto LA4_;
LA7_: ;
			{
				NI T14_;
				T14_ = (NI)0;
				T14_ = cmpIgnoreStyle__OOZOOZOOZcompilerZidents_u17(nimToCStringConv((*result).s), identifier_p1, length_p2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!(T14_ == ((NI)0))) goto LA15_;
				{
					NIM_BOOL T19_;
					T19_ = (NIM_BOOL)0;
					T19_ = (id_1 == ((NI)0));
					if (T19_) goto LA20_;
					T19_ = (id_1 == (*result).id);
LA20_: ;
					if (!!(T19_)) goto LA21_;
					failedAssertImpl__stdZassertions_u95(TM__L3r6bVdeFMiI9cwmLpWIeKw_13);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA21_: ;
				id_1 = (*result).id;
			}
			goto LA4_;
LA15_: ;
LA4_: ;
			eqcopy___OOZOOZOOZcompilerZidents_u159(&last_1, result);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			eqcopy___OOZOOZOOZcompilerZidents_u159(&result, (*result).next);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		} LA3: ;
	}
	eqdestroy___OOZOOZOOZcompilerZidents_u156(result);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = (tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*) nimNewObj(sizeof(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg), NIM_ALIGNOF(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg));
	(*result).h = h_p3;
	if ((length_p2) < ((NI)0) || (length_p2) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(length_p2, ((NI)0), ((NI)IL64(9223372036854775807))); goto LA1_;
	}
	T23_.len = 0; T23_.p = NIM_NIL;
	T23_ = mnewString((length_p2));
	eqsink___system_u2760((&(*result).s), T23_);
	{
		NI i_1;
		NI i_2;
		i_1 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				NI TM__L3r6bVdeFMiI9cwmLpWIeKw_14;
				if (!(i_2 < length_p2)) goto LA26;
				i_1 = i_2;
				if (i_1 < 0 || i_1 >= (*result).s.len){ raiseIndexError2(i_1,(*result).s.len-1); goto LA1_;
				}
				nimPrepareStrMutationV2((&(*result).s));
				(*result).s.p->data[i_1] = identifier_p1[i_1];
				if (nimAddInt(i_2, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_14)) { raiseOverflow(); goto LA1_;
				};
				i_2 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_14);
			} LA26: ;
		}
	}
	if ((NU)(idx_1) > (NU)(8191)){ raiseIndexError2(idx_1, 8191); goto LA1_;
	}
	eqcopy___OOZOOZOOZcompilerZidents_u159(&(*result).next, (*ic_p0).buckets[(idx_1)- 0]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	if ((NU)(idx_1) > (NU)(8191)){ raiseIndexError2(idx_1, 8191); goto LA1_;
	}
	eqcopy___OOZOOZOOZcompilerZidents_u159(&(*ic_p0).buckets[(idx_1)- 0], result);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NI TM__L3r6bVdeFMiI9cwmLpWIeKw_15;
		if (!(id_1 == ((NI)0))) goto LA29_;
		if (nimAddInt((*ic_p0).wordCounter, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_15)) { raiseOverflow(); goto LA1_;
		};
		(*ic_p0).wordCounter = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_15);
		if ((*ic_p0).wordCounter == (IL64(-9223372036854775807) - IL64(1))){ raiseOverflow(); goto LA1_;
		}
		(*result).id = ((NI64)-((*ic_p0).wordCounter));
	}
	goto LA27_;
LA29_: ;
	{
		(*result).id = id_1;
	}
LA27_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___OOZOOZOOZcompilerZidents_u156(last_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u207)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NimStringV2 identifier_p1) {
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = hashIgnoreStyle__pureZhashes_u597(identifier_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = getIdent__OOZOOZOOZcompilerZidents_u95(ic_p0, nimToCStringConv(identifier_p1), identifier_p1.len, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, eqdup___OOZOOZOOZcompilerZidents_u162)(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* src_p0) {
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* result;
	result = src_p0;
	{
		if (!src_p0) goto LA3_;
		nimIncRef(src_p0);
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg*, getIdent__OOZOOZOOZcompilerZidents_u211)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* ic_p0, NimStringV2 identifier_p1, NI h_p2) {
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = getIdent__OOZOOZOOZcompilerZidents_u95(ic_p0, nimToCStringConv(identifier_p1), identifier_p1.len, h_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg*, newIdentCache__OOZOOZOOZcompilerZidents_u216)(void) {
	tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* result;
	tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* T1_;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* T2_;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* T3_;
	tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = NIM_NIL;
	T1_ = (tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg*) nimNewObj(sizeof(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg), NIM_ALIGNOF(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg));
	result = T1_;
	T2_ = NIM_NIL;
	T2_ = getIdent__OOZOOZOOZcompilerZidents_u207(result, TM__L3r6bVdeFMiI9cwmLpWIeKw_17);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___OOZOOZOOZcompilerZidents_u156(T2_); goto BeforeRet_;}
	eqsink___OOZOOZOOZcompilerZidents_u165(&(*result).idAnon, T2_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*result).wordCounter = ((NI)1);
	T3_ = NIM_NIL;
	T3_ = getIdent__OOZOOZOOZcompilerZidents_u207(result, TM__L3r6bVdeFMiI9cwmLpWIeKw_19);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___OOZOOZOOZcompilerZidents_u156(T3_); goto BeforeRet_;}
	eqsink___OOZOOZOOZcompilerZidents_u165(&(*result).idDelegator, T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T4_ = NIM_NIL;
	T4_ = getIdent__OOZOOZOOZcompilerZidents_u207(result, TM__L3r6bVdeFMiI9cwmLpWIeKw_21);
	if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___OOZOOZOOZcompilerZidents_u156(T4_); goto BeforeRet_;}
	eqsink___OOZOOZOOZcompilerZidents_u165(&(*result).emptyIdent, T4_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyEnum_TSpecialWord__WMa2GW2hKRy8m9b9blcHFCkg s_1;
		NI res_1;
		s_1 = (tyEnum_TSpecialWord__WMa2GW2hKRy8m9b9blcHFCkg)0;
		res_1 = ((NI)1);
		{
			while (1) {
				NimStringV2 colontmpD_;
				NimStringV2 colontmpD__2;
				tyObject_TIdent__dfGofgHRLZgz9aF6YlFTsqg* colontmpD__3;
				NI T8_;
				NI TM__L3r6bVdeFMiI9cwmLpWIeKw_22;
				if (!(res_1 <= ((NI)303))) goto LA7;
				colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
				colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
				colontmpD__3 = NIM_NIL;
				s_1 = ((tyEnum_TSpecialWord__WMa2GW2hKRy8m9b9blcHFCkg) (res_1));
				colontmpD_ = dollar___OOZOOZOOZcompilerZwordrecg_u307(s_1);
				colontmpD__2 = dollar___OOZOOZOOZcompilerZwordrecg_u307(s_1);
				T8_ = (NI)0;
				T8_ = hashIgnoreStyle__pureZhashes_u597(colontmpD__2);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				colontmpD__3 = getIdent__OOZOOZOOZcompilerZidents_u211(result, colontmpD_, T8_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*colontmpD__3).id = s_1;
				if (nimAddInt(res_1, ((NI)1), &TM__L3r6bVdeFMiI9cwmLpWIeKw_22)) { raiseOverflow(); goto BeforeRet_;
				};
				res_1 = (NI)(TM__L3r6bVdeFMiI9cwmLpWIeKw_22);
				eqdestroy___OOZOOZOOZcompilerZidents_u156(colontmpD__3);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (colontmpD__2.p && !(colontmpD__2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__2.p);
}
				if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___OOZOOZOOZcompilerZidents_u339)(tyObject_IdentCachecolonObjectType___kM30JRennovNjSy87Q0tZg* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLast(dest_p0);
		if (!T3_) goto LA4_;
		eqdestroy___OOZOOZOOZcompilerZidents_u275((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
