/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#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 tySequence__3rs2HI7A9bn1iHmZchCo1lg tySequence__3rs2HI7A9bn1iHmZchCo1lg;
typedef struct tySequence__3rs2HI7A9bn1iHmZchCo1lg_Content tySequence__3rs2HI7A9bn1iHmZchCo1lg_Content;
typedef struct tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA tySequence__nSO1ltijM4vhc0UrrXKEqA;
typedef struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content tySequence__nSO1ltijM4vhc0UrrXKEqA_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tyTuple__V6P73hvHy70PBBwharKjig tyTuple__V6P73hvHy70PBBwharKjig;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ tySequence__juxPMVNF1FoR2ltzeQu8NQ;
typedef struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tySequence__EHM5DWw09bc16yo24mdZPsw tySequence__EHM5DWw09bc16yo24mdZPsw;
typedef struct tySequence__EHM5DWw09bc16yo24mdZPsw_Content tySequence__EHM5DWw09bc16yo24mdZPsw_Content;
typedef struct tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw;
typedef struct tyTuple__4Ywt2LYBMs9aMJ09cL7digow tyTuple__4Ywt2LYBMs9aMJ09cL7digow;
typedef struct tySequence__vdmFdgox3dhDOMkkFi9ayfg tySequence__vdmFdgox3dhDOMkkFi9ayfg;
typedef struct tySequence__vdmFdgox3dhDOMkkFi9ayfg_Content tySequence__vdmFdgox3dhDOMkkFi9ayfg_Content;
typedef struct tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg;
typedef struct tySequence__b9cVyuSHmrW80P0ZGgU2KHA tySequence__b9cVyuSHmrW80P0ZGgU2KHA;
typedef struct tySequence__b9cVyuSHmrW80P0ZGgU2KHA_Content tySequence__b9cVyuSHmrW80P0ZGgU2KHA_Content;
typedef struct tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ;
typedef struct tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ_Content tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ_Content;
typedef struct tyObject_TLineInfo__BXRmDJv4YG3TQBaYGJdgNA tyObject_TLineInfo__BXRmDJv4YG3TQBaYGJdgNA;
typedef struct tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw;
typedef struct tySequence__ElKBSoViSyNazy7qD89atSA tySequence__ElKBSoViSyNazy7qD89atSA;
typedef struct tySequence__ElKBSoViSyNazy7qD89atSA_Content tySequence__ElKBSoViSyNazy7qD89atSA_Content;
typedef struct tyObject_RstNode__MwWo0WeOohi1r0R1XZBjdA tyObject_RstNode__MwWo0WeOohi1r0R1XZBjdA;
typedef struct tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg;
typedef struct tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg;
typedef struct tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg_Content tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg_Content;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA_Content tySequence__48JTohSgTy339bRxHzUD8KA_Content;
typedef struct tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ;
typedef struct tySequence__36jA1xDCIBAS29cySYLQ7kQ tySequence__36jA1xDCIBAS29cySYLQ7kQ;
typedef struct tySequence__36jA1xDCIBAS29cySYLQ7kQ_Content tySequence__36jA1xDCIBAS29cySYLQ7kQ_Content;
typedef struct tyObject_ItemFragment__9cKkh5afVY29bucZKa5Y0qcQ tyObject_ItemFragment__9cKkh5afVY29bucZKa5Y0qcQ;
struct tySequence__3rs2HI7A9bn1iHmZchCo1lg {
  NI len; tySequence__3rs2HI7A9bn1iHmZchCo1lg_Content* p;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ x_p0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ y_p1, void* ClE_0);
void* ClE_0;
} tyProc__xz7yk0BhBUJaxr9crW1hYpQ;
typedef NU8 tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	NimStringV2 Field1;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_2) (tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ x_p0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_3) (tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ x_p0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__Bw3od9aVB1x0nc8QWI54cVQ;
struct tySequence__nSO1ltijM4vhc0UrrXKEqA {
  NI len; tySequence__nSO1ltijM4vhc0UrrXKEqA_Content* p;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_4) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_5) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* x_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (NimStringV2 x_p0, NimStringV2 y_p1, void* ClE_0);
void* ClE_0;
} tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA;
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_6) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_7) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_8) (NimStringV2 x_p0, NimStringV2 y_p1, void* ClE_0);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__LPif9b9aloZA2k1Nxo0IoeCQ;
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_9) (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_10) (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyTuple__V6P73hvHy70PBBwharKjig x_p0, tyTuple__V6P73hvHy70PBBwharKjig y_p1, void* ClE_0);
void* ClE_0;
} tyProc__g7Esx9cq1gmistcRSWe5VCg;
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ {
  NI len; tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content* p;
};
struct tyTuple__V6P73hvHy70PBBwharKjig {
	NI Field0;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* Field1;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_11) (tyTuple__V6P73hvHy70PBBwharKjig x_p0, tyTuple__V6P73hvHy70PBBwharKjig y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_12) (tyTuple__V6P73hvHy70PBBwharKjig x_p0, tyTuple__V6P73hvHy70PBBwharKjig y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_13) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_14) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_15) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_16) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_17) (NimStringV2 x_p0, NimStringV2 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_18) (NimStringV2 x_p0, NimStringV2 y_p1, void* ClE_0);
struct tySequence__EHM5DWw09bc16yo24mdZPsw {
  NI len; tySequence__EHM5DWw09bc16yo24mdZPsw_Content* p;
};
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* x_p0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__TiiGZQ4go3yiVxZnG2EF5A;
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_19) (tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* x_p0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_20) (tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* x_p0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyTuple__4Ywt2LYBMs9aMJ09cL7digow* x_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__9apQn1dBBEAHFxoqe40lJYg;
struct tySequence__vdmFdgox3dhDOMkkFi9ayfg {
  NI len; tySequence__vdmFdgox3dhDOMkkFi9ayfg_Content* p;
};
typedef NU8 tyEnum_FootnoteType__AwBNmZfS9azDCP9cRgTUCl6g;
struct tyTuple__4Ywt2LYBMs9aMJ09cL7digow {
	tyEnum_FootnoteType__AwBNmZfS9azDCP9cRgTUCl6g Field0;
	NI Field1;
	NI Field2;
	NI Field3;
	NimStringV2 Field4;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_21) (tyTuple__4Ywt2LYBMs9aMJ09cL7digow* x_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_22) (tyTuple__4Ywt2LYBMs9aMJ09cL7digow* x_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_23) (tyTuple__4Ywt2LYBMs9aMJ09cL7digow* x_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* y_p1, void* ClE_0);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* x_p0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__LEXkfikBreOpENJW4Qw2Tg;
struct tySequence__b9cVyuSHmrW80P0ZGgU2KHA {
  NI len; tySequence__b9cVyuSHmrW80P0ZGgU2KHA_Content* p;
};
struct tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ {
  NI len; tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ_Content* p;
};
struct tyObject_TLineInfo__BXRmDJv4YG3TQBaYGJdgNA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg {
	tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ descRst;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ substitutions;
	NimStringV2 sortName;
	tyObject_TLineInfo__BXRmDJv4YG3TQBaYGJdgNA info;
	NimStringV2 anchor;
	NimStringV2 name;
	NimStringV2 detailedName;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_24) (tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* x_p0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_25) (tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* x_p0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* x_p0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__7dBieSzuUwU9acqXqFfvHMg;
struct tySequence__ElKBSoViSyNazy7qD89atSA {
  NI len; tySequence__ElKBSoViSyNazy7qD89atSA_Content* p;
};
typedef NU8 tyEnum_AnchorRule__2EJ03fugiw0bGfuZoUTntQ;
struct tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw {
	tyEnum_AnchorRule__2EJ03fugiw0bGfuZoUTntQ ar;
	NI priority;
	NimStringV2 tooltip;
	tyObject_RstNode__MwWo0WeOohi1r0R1XZBjdA* target;
	tyObject_TLineInfo__BXRmDJv4YG3TQBaYGJdgNA info;
	NimStringV2 externFilename;
	NIM_BOOL isTitle;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_26) (tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* x_p0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_27) (tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* x_p0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* x_p0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__uvNcvuBCVAehqicKbFevrQ;
struct tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg {
  NI len; tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg_Content* p;
};
struct tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg {
	NimStringV2 content;
	NimStringV2 sortName;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_28) (tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* x_p0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_29) (tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* x_p0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* y_p1);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (NI32 x_p0, NI32 y_p1, void* ClE_0);
void* ClE_0;
} tyProc__CBoNLvw7Pjo72NRN8hQDEA;
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  NI len; tySequence__48JTohSgTy339bRxHzUD8KA_Content* p;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_30) (NI32 x_p0, NI32 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_31) (NI32 x_p0, NI32 y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_32) (NI32 x_p0, NI32 y_p1, void* ClE_0);
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* x_p0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* y_p1, void* ClE_0);
void* ClE_0;
} tyProc__p4iTrPV9bLhWFNG1rpOIFgQ;
struct tySequence__36jA1xDCIBAS29cySYLQ7kQ {
  NI len; tySequence__36jA1xDCIBAS29cySYLQ7kQ_Content* p;
};
typedef NU8 tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ;
struct tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ {
	tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ kind;
	NimStringV2 keyword;
	NimStringV2 link;
	NimStringV2 linkTitle;
	NimStringV2 linkDesc;
	NI line;
	NimStringV2 module;
	NimStringV2 aux;
};
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_33) (tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* x_p0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* y_p1);
typedef N_CLOSURE_PTR(NI, TM__JdC9c6SaUkvO1XjYuWP1JWQ_34) (tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* x_p0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* y_p1);
struct tySequence__3rs2HI7A9bn1iHmZchCo1lg_Content { NI cap; tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ data[SEQ_DECL_SIZE]; };
struct tySequence__nSO1ltijM4vhc0UrrXKEqA_Content { NI cap; tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__juxPMVNF1FoR2ltzeQu8NQ_Content { NI cap; tyTuple__V6P73hvHy70PBBwharKjig data[SEQ_DECL_SIZE]; };
struct tySequence__EHM5DWw09bc16yo24mdZPsw_Content { NI cap; tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* data[SEQ_DECL_SIZE]; };
struct tySequence__vdmFdgox3dhDOMkkFi9ayfg_Content { NI cap; tyTuple__4Ywt2LYBMs9aMJ09cL7digow data[SEQ_DECL_SIZE]; };
struct tySequence__b9cVyuSHmrW80P0ZGgU2KHA_Content { NI cap; tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg data[SEQ_DECL_SIZE]; };
struct tyObject_ItemFragment__9cKkh5afVY29bucZKa5Y0qcQ {
	NIM_BOOL isRst;
union{
	struct {
	tyObject_RstNode__MwWo0WeOohi1r0R1XZBjdA* rst;
} _isRst_1;
	struct {
	NimStringV2 str;
} _isRst_2;
};
};
struct tySequence__zR5BJ0RqjaJ2JwWCRI3XSQ_Content { NI cap; tyObject_ItemFragment__9cKkh5afVY29bucZKa5Y0qcQ data[SEQ_DECL_SIZE]; };
struct tySequence__ElKBSoViSyNazy7qD89atSA_Content { NI cap; tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw data[SEQ_DECL_SIZE]; };
struct tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg_Content { NI cap; tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg data[SEQ_DECL_SIZE]; };
struct tySequence__48JTohSgTy339bRxHzUD8KA_Content { NI cap; NI32 data[SEQ_DECL_SIZE]; };
struct tySequence__36jA1xDCIBAS29cySYLQ7kQ_Content { NI cap; tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(tySequence__3rs2HI7A9bn1iHmZchCo1lg, newSeq__lookups_u2830)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___lookups_u2778)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* dest_p0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, sort__lookups_u2980)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* a_p0, NI a_p0Len_0, tyProc__xz7yk0BhBUJaxr9crW1hYpQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__lookups_u3027)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* a_p0, NI a_p0Len_0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__xz7yk0BhBUJaxr9crW1hYpQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
static N_INLINE(NI, star___pureZalgorithm_u9)(NI x_p0, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___lookups_u2784)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* dest_p0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ src_p1);
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, eqwasMoved___lookups_u2772)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u2932)(tySequence__3rs2HI7A9bn1iHmZchCo1lg dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__nSO1ltijM4vhc0UrrXKEqA, newSeq__sigmatch_u5940)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sigmatch_u5960)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** a_p0, NI a_p0Len_0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__Bw3od9aVB1x0nc8QWI54cVQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___modulegraphs_u11914)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** dest_p0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___modulegraphs_u11902)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u11761)(tySequence__nSO1ltijM4vhc0UrrXKEqA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_u2565)(NimStringV2* a_p0, NI a_p0Len_0, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, newSeq__stdZsyncio_u579)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sem_u2612)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
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(void, eqdestroy___system_u5530)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__sem_u2545)(NimStringV2 x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__9ahcSjIErJohSBBFLwuF56Q, newSeq__closureiters_u2254)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sem_u6082)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** a_p0, NI a_p0Len_0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__LPif9b9aloZA2k1Nxo0IoeCQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
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, eqdestroy___ast_u3696)(tySequence__9ahcSjIErJohSBBFLwuF56Q dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__juxPMVNF1FoR2ltzeQu8NQ, newSeq__vtables_u711)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__vtables_u731)(tyTuple__V6P73hvHy70PBBwharKjig* a_p0, NI a_p0Len_0, tyTuple__V6P73hvHy70PBBwharKjig* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__g7Esx9cq1gmistcRSWe5VCg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u5821)(tyTuple__V6P73hvHy70PBBwharKjig* dest_p0, tyTuple__V6P73hvHy70PBBwharKjig src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u5809)(tyTuple__V6P73hvHy70PBBwharKjig* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___modulegraphs_u14134)(tySequence__juxPMVNF1FoR2ltzeQu8NQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(NI, binarySearch__packagesZdocutilsZhighlite_u373)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2 key_p1, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p2);
N_LIB_PRIVATE N_NIMCALL(tySequence__EHM5DWw09bc16yo24mdZPsw, newSeq__reorder_u714)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___reorder_u144)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** dest_p0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(void, sort__reorder_u739)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** a_p0, NI a_p0Len_0, tyProc__TiiGZQ4go3yiVxZnG2EF5A cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__reorder_u786)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** a_p0, NI a_p0Len_0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__TiiGZQ4go3yiVxZnG2EF5A cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___reorder_u152)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** dest_p0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___reorder_u138)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___reorder_u38)(tySequence__EHM5DWw09bc16yo24mdZPsw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, sort__packagesZdocutilsZrst_u8475)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* a_p0, NI a_p0Len_0, tyProc__9apQn1dBBEAHFxoqe40lJYg cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(tySequence__vdmFdgox3dhDOMkkFi9ayfg, newSeq__packagesZdocutilsZrst_u8516)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrst_u8536)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* a_p0, NI a_p0Len_0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__9apQn1dBBEAHFxoqe40lJYg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___packagesZdocutilsZrst_u3447)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* dest_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___packagesZdocutilsZrst_u3435)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___packagesZdocutilsZrst_u3372)(tySequence__vdmFdgox3dhDOMkkFi9ayfg dest_p0);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__packagesZdocutilsZrst_u8396)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* x_p0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__b9cVyuSHmrW80P0ZGgU2KHA, newSeq__docgen_u6649)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__docgen_u11125)(tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* a_p0, NI a_p0Len_0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__LEXkfikBreOpENJW4Qw2Tg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___docgen_u2359)(tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* dest_p0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___docgen_u2347)(tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___docgen_u2284)(tySequence__b9cVyuSHmrW80P0ZGgU2KHA dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__ElKBSoViSyNazy7qD89atSA, newSeq__packagesZdocutilsZrst_u16792)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrst_u16972)(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* a_p0, NI a_p0Len_0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__7dBieSzuUwU9acqXqFfvHMg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___packagesZdocutilsZrst_u16879)(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* dest_p0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___packagesZdocutilsZrst_u16867)(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___packagesZdocutilsZrst_u16929)(tySequence__ElKBSoViSyNazy7qD89atSA dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg, newSeq__docgen_u8080)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__docgen_u12984)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* a_p0, NI a_p0Len_0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__uvNcvuBCVAehqicKbFevrQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___docgen_u2654)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* dest_p0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___docgen_u2642)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___docgen_u2579)(tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___docgen_u2648)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* dest_p0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, sort__docgen_u12936)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* a_p0, NI a_p0Len_0, tyProc__uvNcvuBCVAehqicKbFevrQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(void, sort__icZcbackend_u315)(NI32* a_p0, NI a_p0Len_0, tyProc__CBoNLvw7Pjo72NRN8hQDEA cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2);
N_LIB_PRIVATE N_NIMCALL(tySequence__48JTohSgTy339bRxHzUD8KA, newSeq__icZic_u8712)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__icZcbackend_u363)(NI32* a_p0, NI a_p0Len_0, NI32* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__CBoNLvw7Pjo72NRN8hQDEA cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___stdZoserrors_u34)(NI32* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZic_u8792)(tySequence__48JTohSgTy339bRxHzUD8KA dest_p0);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int128_u382)(NI32 x_p0, NI32 y_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__36jA1xDCIBAS29cySYLQ7kQ, newSeq__packagesZdocutilsZrstgen_u1665)(NI len_p0);
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrstgen_u1677)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* a_p0, NI a_p0Len_0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__p4iTrPV9bLhWFNG1rpOIFgQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___packagesZdocutilsZrstidx_u206)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* dest_p0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___packagesZdocutilsZrstidx_u194)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___packagesZdocutilsZrstidx_u281)(tySequence__36jA1xDCIBAS29cySYLQ7kQ dest_p0);
extern NIM_BOOL nimInErrorMode__system_u4138;
N_LIB_PRIVATE N_NIMCALL(void, fill__pureZstrutils_u1567)(NI* a_p0, NI a_p0Len_0, NI value_p1) {
	NI xX60gensym161__1;
	xX60gensym161__1 = ((NI)0);
	{
		while (1) {
			if (!(xX60gensym161__1 <= (a_p0Len_0-1))) goto LA2;
			a_p0[xX60gensym161__1] = value_p1;
			xX60gensym161__1 += ((NI)1);
		} LA2: ;
	}
}
static N_INLINE(NI, star___pureZalgorithm_u9)(NI x_p0, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p1) {
	NI result;
	NI y_1;
	y_1 = (NI)(order_p1 - ((NI)1));
	result = (NI)((NI)(x_p0 ^ y_1) - y_1);
	return result;
}
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);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4138);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__lookups_u3027)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* a_p0, NI a_p0Len_0, tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__xz7yk0BhBUJaxr9crW1hYpQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_2)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			nimZeroMem((void*)(&T9_), sizeof(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ));
			T9_.Field0 = a_p0[j_1].Field0;
			T9_.Field1 = a_p0[j_1].Field1;
			eqwasMoved___lookups_u2772((&a_p0[j_1]));
			eqsink___lookups_u2784((&b_p1[bb_1]), T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_3)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				nimZeroMem((void*)(&T20_), sizeof(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ));
				T20_.Field0 = b_p1[i_1].Field0;
				T20_.Field1 = b_p1[i_1].Field1;
				eqwasMoved___lookups_u2772((&b_p1[i_1]));
				eqsink___lookups_u2784((&a_p0[k_1]), T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ T22_;
				nimZeroMem((void*)(&T22_), sizeof(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ));
				T22_.Field0 = a_p0[j_1].Field0;
				T22_.Field1 = a_p0[j_1].Field1;
				eqwasMoved___lookups_u2772((&a_p0[j_1]));
				eqsink___lookups_u2784((&a_p0[k_1]), T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ T25_;
			if (!(k_1 < j_1)) goto LA24;
			nimZeroMem((void*)(&T25_), sizeof(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ));
			T25_.Field0 = b_p1[i_1].Field0;
			T25_.Field1 = b_p1[i_1].Field1;
			eqwasMoved___lookups_u2772((&b_p1[i_1]));
			eqsink___lookups_u2784((&a_p0[k_1]), T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__lookups_u2980)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* a_p0, NI a_p0Len_0, tyProc__xz7yk0BhBUJaxr9crW1hYpQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__3rs2HI7A9bn1iHmZchCo1lg b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__lookups_u2830(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__lookups_u3027(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___lookups_u2932(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__3rs2HI7A9bn1iHmZchCo1lg, sorted__lookups_u2801)(tyTuple__7lGUWvuwbQfT9aC9a1FBbHLQ* a_p0, NI a_p0Len_0, tyProc__xz7yk0BhBUJaxr9crW1hYpQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__3rs2HI7A9bn1iHmZchCo1lg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = newSeq__lookups_u2830((a_p0Len_0));
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (a_p0Len_0-1);
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				eqcopy___lookups_u2778((&result.p->data[i_1]), a_p0[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	sort__lookups_u2980(((result).p) ? (result.p->data) : NIM_NIL, result.len, cmp_p1, order_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sigmatch_u5960)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** a_p0, NI a_p0Len_0, tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__Bw3od9aVB1x0nc8QWI54cVQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_4)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = NIM_NIL;
			T9_ = a_p0[j_1];
			eqwasMoved___modulegraphs_u11902((&a_p0[j_1]));
			eqsink___modulegraphs_u11914(&b_p1[bb_1], T9_);
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_5)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = NIM_NIL;
				T20_ = b_p1[i_1];
				eqwasMoved___modulegraphs_u11902((&b_p1[i_1]));
				eqsink___modulegraphs_u11914(&a_p0[k_1], T20_);
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T22_;
				T22_ = NIM_NIL;
				T22_ = a_p0[j_1];
				eqwasMoved___modulegraphs_u11902((&a_p0[j_1]));
				eqsink___modulegraphs_u11914(&a_p0[k_1], T22_);
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = NIM_NIL;
			T25_ = b_p1[i_1];
			eqwasMoved___modulegraphs_u11902((&b_p1[i_1]));
			eqsink___modulegraphs_u11914(&a_p0[k_1], T25_);
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__sigmatch_u5899)(tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA** a_p0, NI a_p0Len_0, tyProc__Bw3od9aVB1x0nc8QWI54cVQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__nSO1ltijM4vhc0UrrXKEqA b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__sigmatch_u5940(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__sigmatch_u5960(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___modulegraphs_u11761(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sem_u2612)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_6)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			NimStringV2 T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_.len = 0; T9_.p = NIM_NIL;
			T9_ = a_p0[j_1];
			eqwasMoved___system_u2688((&a_p0[j_1]));
			eqsink___system_u2700((&b_p1[bb_1]), T9_);
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				NimStringV2 T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_7)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_.len = 0; T20_.p = NIM_NIL;
				T20_ = b_p1[i_1];
				eqwasMoved___system_u2688((&b_p1[i_1]));
				eqsink___system_u2700((&a_p0[k_1]), T20_);
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				NimStringV2 T22_;
				T22_.len = 0; T22_.p = NIM_NIL;
				T22_ = a_p0[j_1];
				eqwasMoved___system_u2688((&a_p0[j_1]));
				eqsink___system_u2700((&a_p0[k_1]), T22_);
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			NimStringV2 T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_.len = 0; T25_.p = NIM_NIL;
			T25_ = b_p1[i_1];
			eqwasMoved___system_u2688((&b_p1[i_1]));
			eqsink___system_u2700((&a_p0[k_1]), T25_);
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_u2565)(NimStringV2* a_p0, NI a_p0Len_0, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__stdZsyncio_u579(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__sem_u2612(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___system_u5530(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_u2516)(NimStringV2* a_p0, NI a_p0Len_0, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p1) {
	tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&T1_), sizeof(tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA));
	T1_.ClP_0 = ((TM__JdC9c6SaUkvO1XjYuWP1JWQ_8) (cmp__sem_u2545)); T1_.ClE_0 = NIM_NIL;
	sort__sem_u2565(a_p0, a_p0Len_0, T1_, order_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__sem_u6082)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** a_p0, NI a_p0Len_0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__LPif9b9aloZA2k1Nxo0IoeCQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_9)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = NIM_NIL;
			T9_ = a_p0[j_1];
			eqwasMoved___ast_u3249((&a_p0[j_1]));
			eqsink___ast_u3261(&b_p1[bb_1], T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_10)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = NIM_NIL;
				T20_ = b_p1[i_1];
				eqwasMoved___ast_u3249((&b_p1[i_1]));
				eqsink___ast_u3261(&a_p0[k_1], T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T22_;
				T22_ = NIM_NIL;
				T22_ = a_p0[j_1];
				eqwasMoved___ast_u3249((&a_p0[j_1]));
				eqsink___ast_u3261(&a_p0[k_1], T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = NIM_NIL;
			T25_ = b_p1[i_1];
			eqwasMoved___ast_u3249((&b_p1[i_1]));
			eqsink___ast_u3261(&a_p0[k_1], T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__sem_u6035)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** a_p0, NI a_p0Len_0, tyProc__LPif9b9aloZA2k1Nxo0IoeCQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__9ahcSjIErJohSBBFLwuF56Q b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__closureiters_u2254(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__sem_u6082(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___ast_u3696(b_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__vtables_u731)(tyTuple__V6P73hvHy70PBBwharKjig* a_p0, NI a_p0Len_0, tyTuple__V6P73hvHy70PBBwharKjig* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__g7Esx9cq1gmistcRSWe5VCg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_11)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyTuple__V6P73hvHy70PBBwharKjig T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			nimZeroMem((void*)(&T9_), sizeof(tyTuple__V6P73hvHy70PBBwharKjig));
			T9_.Field0 = a_p0[j_1].Field0;
			T9_.Field1 = a_p0[j_1].Field1;
			eqwasMoved___ast_u5809((&a_p0[j_1]));
			eqsink___ast_u5821((&b_p1[bb_1]), T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyTuple__V6P73hvHy70PBBwharKjig T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_12)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				nimZeroMem((void*)(&T20_), sizeof(tyTuple__V6P73hvHy70PBBwharKjig));
				T20_.Field0 = b_p1[i_1].Field0;
				T20_.Field1 = b_p1[i_1].Field1;
				eqwasMoved___ast_u5809((&b_p1[i_1]));
				eqsink___ast_u5821((&a_p0[k_1]), T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyTuple__V6P73hvHy70PBBwharKjig T22_;
				nimZeroMem((void*)(&T22_), sizeof(tyTuple__V6P73hvHy70PBBwharKjig));
				T22_.Field0 = a_p0[j_1].Field0;
				T22_.Field1 = a_p0[j_1].Field1;
				eqwasMoved___ast_u5809((&a_p0[j_1]));
				eqsink___ast_u5821((&a_p0[k_1]), T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyTuple__V6P73hvHy70PBBwharKjig T25_;
			if (!(k_1 < j_1)) goto LA24;
			nimZeroMem((void*)(&T25_), sizeof(tyTuple__V6P73hvHy70PBBwharKjig));
			T25_.Field0 = b_p1[i_1].Field0;
			T25_.Field1 = b_p1[i_1].Field1;
			eqwasMoved___ast_u5809((&b_p1[i_1]));
			eqsink___ast_u5821((&a_p0[k_1]), T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__vtables_u670)(tyTuple__V6P73hvHy70PBBwharKjig* a_p0, NI a_p0Len_0, tyProc__g7Esx9cq1gmistcRSWe5VCg cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__juxPMVNF1FoR2ltzeQu8NQ b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__vtables_u711(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__vtables_u731(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___modulegraphs_u14134(b_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, binarySearch__packagesZdocutilsZhighlite_u373)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2 key_p1, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p2) {
	NI result;
	NI len_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	len_1 = a_p0Len_0;
	{
		if (!(len_1 == ((NI)0))) goto LA3_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA3_: ;
	{
		if (!(len_1 == ((NI)1))) goto LA7_;
		{
			NI T11_;
			T11_ = (NI)0;
			T11_ = cmp_p2.ClE_0? cmp_p2.ClP_0(a_p0[((NI)0)], key_p1, cmp_p2.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_13)(cmp_p2.ClP_0))(a_p0[((NI)0)], key_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(T11_ == ((NI)0))) goto LA12_;
			result = ((NI)0);
			goto BeforeRet_;
		}
		goto LA9_;
LA12_: ;
		{
			result = ((NI)-1);
			goto BeforeRet_;
		}
LA9_: ;
	}
LA7_: ;
	result = ((NI)0);
	{
		NI step_1;
		NI cmpRes_1;
		if (!((NI)(len_1 & (NI)(len_1 - ((NI)1))) == ((NI)0))) goto LA17_;
		step_1 = (NI)((NI64)(len_1) >> (NU64)(((NI)1) & (64 - 1)));
		cmpRes_1 = (NI)0;
		{
			while (1) {
				NI i_1;
				if (!(((NI)0) < step_1)) goto LA20;
				i_1 = (NI)(result | step_1);
				cmpRes_1 = cmp_p2.ClE_0? cmp_p2.ClP_0(a_p0[i_1], key_p1, cmp_p2.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_14)(cmp_p2.ClP_0))(a_p0[i_1], key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(cmpRes_1 == ((NI)0))) goto LA23_;
					result = i_1;
					goto BeforeRet_;
				}
LA23_: ;
				{
					if (!(cmpRes_1 < ((NI)0))) goto LA27_;
					result = i_1;
				}
LA27_: ;
				step_1 = (NI)((NI64)(step_1) >> (NU64)(((NI)1) & (64 - 1)));
			} LA20: ;
		}
		{
			NI T31_;
			T31_ = (NI)0;
			T31_ = cmp_p2.ClE_0? cmp_p2.ClP_0(a_p0[result], key_p1, cmp_p2.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_15)(cmp_p2.ClP_0))(a_p0[result], key_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!!((T31_ == ((NI)0)))) goto LA32_;
			result = ((NI)-1);
		}
LA32_: ;
	}
	goto LA15_;
LA17_: ;
	{
		NI b_1;
		NI cmpRes_2;
		b_1 = len_1;
		cmpRes_2 = (NI)0;
		{
			while (1) {
				NI mid_1;
				if (!(result < b_1)) goto LA36;
				mid_1 = (NI)((NI64)((NI)(result + b_1)) >> (NU64)(((NI)1) & (64 - 1)));
				cmpRes_2 = cmp_p2.ClE_0? cmp_p2.ClP_0(a_p0[mid_1], key_p1, cmp_p2.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_16)(cmp_p2.ClP_0))(a_p0[mid_1], key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					if (!(cmpRes_2 == ((NI)0))) goto LA39_;
					result = mid_1;
					goto BeforeRet_;
				}
LA39_: ;
				{
					if (!(cmpRes_2 < ((NI)0))) goto LA43_;
					result = (NI)(mid_1 + ((NI)1));
				}
				goto LA41_;
LA43_: ;
				{
					b_1 = mid_1;
				}
LA41_: ;
			} LA36: ;
		}
		{
			NIM_BOOL T48_;
			NI T50_;
			T48_ = (NIM_BOOL)0;
			T48_ = (len_1 <= result);
			if (T48_) goto LA49_;
			T50_ = (NI)0;
			T50_ = cmp_p2.ClE_0? cmp_p2.ClP_0(a_p0[result], key_p1, cmp_p2.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_17)(cmp_p2.ClP_0))(a_p0[result], key_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T48_ = !((T50_ == ((NI)0)));
LA49_: ;
			if (!T48_) goto LA51_;
			result = ((NI)-1);
		}
LA51_: ;
	}
LA15_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, binarySearch__packagesZdocutilsZhighlite_u362)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2 key_p1) {
	NI result;
	tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	nimZeroMem((void*)(&T1_), sizeof(tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA));
	T1_.ClP_0 = ((TM__JdC9c6SaUkvO1XjYuWP1JWQ_18) (cmp__sem_u2545)); T1_.ClE_0 = NIM_NIL;
	result = binarySearch__packagesZdocutilsZhighlite_u373(a_p0, a_p0Len_0, key_p1, T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__reorder_u786)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** a_p0, NI a_p0Len_0, tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__TiiGZQ4go3yiVxZnG2EF5A cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_19)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = NIM_NIL;
			T9_ = a_p0[j_1];
			eqwasMoved___reorder_u138((&a_p0[j_1]));
			eqsink___reorder_u152(&b_p1[bb_1], T9_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_20)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = NIM_NIL;
				T20_ = b_p1[i_1];
				eqwasMoved___reorder_u138((&b_p1[i_1]));
				eqsink___reorder_u152(&a_p0[k_1], T20_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* T22_;
				T22_ = NIM_NIL;
				T22_ = a_p0[j_1];
				eqwasMoved___reorder_u138((&a_p0[j_1]));
				eqsink___reorder_u152(&a_p0[k_1], T22_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw* T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = NIM_NIL;
			T25_ = b_p1[i_1];
			eqwasMoved___reorder_u138((&b_p1[i_1]));
			eqsink___reorder_u152(&a_p0[k_1], T25_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__reorder_u739)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** a_p0, NI a_p0Len_0, tyProc__TiiGZQ4go3yiVxZnG2EF5A cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__EHM5DWw09bc16yo24mdZPsw b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__reorder_u714(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__reorder_u786(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___reorder_u38(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__EHM5DWw09bc16yo24mdZPsw, sorted__reorder_u685)(tyObject_DepNcolonObjectType___mjl9coa4es5lRGs5j7zUDHw** a_p0, NI a_p0Len_0, tyProc__TiiGZQ4go3yiVxZnG2EF5A cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__EHM5DWw09bc16yo24mdZPsw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = newSeq__reorder_u714((a_p0Len_0));
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (a_p0Len_0-1);
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				eqcopy___reorder_u144(&result.p->data[i_1], a_p0[i_1], NIM_TRUE);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	sort__reorder_u739(((result).p) ? (result.p->data) : NIM_NIL, result.len, cmp_p1, order_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrst_u8536)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* a_p0, NI a_p0Len_0, tyTuple__4Ywt2LYBMs9aMJ09cL7digow* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__9apQn1dBBEAHFxoqe40lJYg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_21)(cmp_p5.ClP_0))((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyTuple__4Ywt2LYBMs9aMJ09cL7digow T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = a_p0[j_1];
			eqwasMoved___packagesZdocutilsZrst_u3435((&a_p0[j_1]));
			eqsink___packagesZdocutilsZrst_u3447((&b_p1[bb_1]), (&T9_));
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyTuple__4Ywt2LYBMs9aMJ09cL7digow T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&b_p1[i_1]), (&a_p0[j_1]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_22)(cmp_p5.ClP_0))((&b_p1[i_1]), (&a_p0[j_1]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = b_p1[i_1];
				eqwasMoved___packagesZdocutilsZrst_u3435((&b_p1[i_1]));
				eqsink___packagesZdocutilsZrst_u3447((&a_p0[k_1]), (&T20_));
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyTuple__4Ywt2LYBMs9aMJ09cL7digow T22_;
				T22_ = a_p0[j_1];
				eqwasMoved___packagesZdocutilsZrst_u3435((&a_p0[j_1]));
				eqsink___packagesZdocutilsZrst_u3447((&a_p0[k_1]), (&T22_));
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyTuple__4Ywt2LYBMs9aMJ09cL7digow T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = b_p1[i_1];
			eqwasMoved___packagesZdocutilsZrst_u3435((&b_p1[i_1]));
			eqsink___packagesZdocutilsZrst_u3447((&a_p0[k_1]), (&T25_));
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__packagesZdocutilsZrst_u8475)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* a_p0, NI a_p0Len_0, tyProc__9apQn1dBBEAHFxoqe40lJYg cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__vdmFdgox3dhDOMkkFi9ayfg b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__packagesZdocutilsZrst_u8516(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__packagesZdocutilsZrst_u8536(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___packagesZdocutilsZrst_u3372(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__packagesZdocutilsZrst_u8367)(tyTuple__4Ywt2LYBMs9aMJ09cL7digow* a_p0, NI a_p0Len_0, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p1) {
	tyProc__9apQn1dBBEAHFxoqe40lJYg T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&T1_), sizeof(tyProc__9apQn1dBBEAHFxoqe40lJYg));
	T1_.ClP_0 = ((TM__JdC9c6SaUkvO1XjYuWP1JWQ_23) (cmp__packagesZdocutilsZrst_u8396)); T1_.ClE_0 = NIM_NIL;
	sort__packagesZdocutilsZrst_u8475(a_p0, a_p0Len_0, T1_, order_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, sorted__docgen_u10907)(NimStringV2* a_p0, NI a_p0Len_0, tyProc__3pmh9bG9bLpdxUjFu9cDtbZaA cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = newSeq__stdZsyncio_u579((a_p0Len_0));
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (a_p0Len_0-1);
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				eqcopy___system_u2694((&result.p->data[i_1]), a_p0[i_1]);
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	sort__sem_u2565(((result).p) ? (result.p->data) : NIM_NIL, result.len, cmp_p1, order_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__docgen_u11125)(tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* a_p0, NI a_p0Len_0, tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__LEXkfikBreOpENJW4Qw2Tg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_24)(cmp_p5.ClP_0))((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = a_p0[j_1];
			eqwasMoved___docgen_u2347((&a_p0[j_1]));
			eqsink___docgen_u2359((&b_p1[bb_1]), (&T9_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&b_p1[i_1]), (&a_p0[j_1]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_25)(cmp_p5.ClP_0))((&b_p1[i_1]), (&a_p0[j_1]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = b_p1[i_1];
				eqwasMoved___docgen_u2347((&b_p1[i_1]));
				eqsink___docgen_u2359((&a_p0[k_1]), (&T20_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg T22_;
				T22_ = a_p0[j_1];
				eqwasMoved___docgen_u2347((&a_p0[j_1]));
				eqsink___docgen_u2359((&a_p0[k_1]), (&T22_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = b_p1[i_1];
			eqwasMoved___docgen_u2347((&b_p1[i_1]));
			eqsink___docgen_u2359((&a_p0[k_1]), (&T25_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__docgen_u11077)(tyObject_Item__6YT6w3nuWvd9a2fq9adrqT9cg* a_p0, NI a_p0Len_0, tyProc__LEXkfikBreOpENJW4Qw2Tg cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__b9cVyuSHmrW80P0ZGgU2KHA b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__docgen_u6649(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__docgen_u11125(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___docgen_u2284(b_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrst_u16972)(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* a_p0, NI a_p0Len_0, tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__7dBieSzuUwU9acqXqFfvHMg cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_26)(cmp_p5.ClP_0))((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			nimZeroMem((void*)(&T9_), sizeof(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw));
			T9_ = a_p0[j_1];
			eqwasMoved___packagesZdocutilsZrst_u16867((&a_p0[j_1]));
			eqsink___packagesZdocutilsZrst_u16879((&b_p1[bb_1]), (&T9_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&b_p1[i_1]), (&a_p0[j_1]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_27)(cmp_p5.ClP_0))((&b_p1[i_1]), (&a_p0[j_1]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				nimZeroMem((void*)(&T20_), sizeof(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw));
				T20_ = b_p1[i_1];
				eqwasMoved___packagesZdocutilsZrst_u16867((&b_p1[i_1]));
				eqsink___packagesZdocutilsZrst_u16879((&a_p0[k_1]), (&T20_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw T22_;
				nimZeroMem((void*)(&T22_), sizeof(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw));
				T22_ = a_p0[j_1];
				eqwasMoved___packagesZdocutilsZrst_u16867((&a_p0[j_1]));
				eqsink___packagesZdocutilsZrst_u16879((&a_p0[k_1]), (&T22_));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw T25_;
			if (!(k_1 < j_1)) goto LA24;
			nimZeroMem((void*)(&T25_), sizeof(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw));
			T25_ = b_p1[i_1];
			eqwasMoved___packagesZdocutilsZrst_u16867((&b_p1[i_1]));
			eqsink___packagesZdocutilsZrst_u16879((&a_p0[k_1]), (&T25_));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__packagesZdocutilsZrst_u16751)(tyObject_LinkDef__dKiLfAF6nJg4qkLA6rlltw* a_p0, NI a_p0Len_0, tyProc__7dBieSzuUwU9acqXqFfvHMg cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__ElKBSoViSyNazy7qD89atSA b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__packagesZdocutilsZrst_u16792(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__packagesZdocutilsZrst_u16972(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___packagesZdocutilsZrst_u16929(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__docgen_u12984)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* a_p0, NI a_p0Len_0, tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__uvNcvuBCVAehqicKbFevrQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_28)(cmp_p5.ClP_0))((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = a_p0[j_1];
			eqwasMoved___docgen_u2642((&a_p0[j_1]));
			eqsink___docgen_u2654((&b_p1[bb_1]), (&T9_));
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&b_p1[i_1]), (&a_p0[j_1]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_29)(cmp_p5.ClP_0))((&b_p1[i_1]), (&a_p0[j_1]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = b_p1[i_1];
				eqwasMoved___docgen_u2642((&b_p1[i_1]));
				eqsink___docgen_u2654((&a_p0[k_1]), (&T20_));
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg T22_;
				T22_ = a_p0[j_1];
				eqwasMoved___docgen_u2642((&a_p0[j_1]));
				eqsink___docgen_u2654((&a_p0[k_1]), (&T22_));
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = b_p1[i_1];
			eqwasMoved___docgen_u2642((&b_p1[i_1]));
			eqsink___docgen_u2654((&a_p0[k_1]), (&T25_));
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__docgen_u12936)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* a_p0, NI a_p0Len_0, tyProc__uvNcvuBCVAehqicKbFevrQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__docgen_u8080(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__docgen_u12984(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___docgen_u2579(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg, sorted__docgen_u13140)(tyObject_TocItem__oSW9aGqIJWbEhkEFiqAKSSg* a_p0, NI a_p0Len_0, tyProc__uvNcvuBCVAehqicKbFevrQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__zeOxdfG9c9aPaJ9cyA0OkEmQg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = newSeq__docgen_u8080((a_p0Len_0));
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (a_p0Len_0-1);
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				eqcopy___docgen_u2648((&result.p->data[i_1]), (&a_p0[i_1]));
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	sort__docgen_u12936(((result).p) ? (result.p->data) : NIM_NIL, result.len, cmp_p1, order_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__icZcbackend_u363)(NI32* a_p0, NI a_p0Len_0, NI32* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__CBoNLvw7Pjo72NRN8hQDEA cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_30)(cmp_p5.ClP_0))(a_p0[m_p3], a_p0[(NI)(m_p3 + ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			if (!(j_1 <= m_p3)) goto LA8;
			b_p1[bb_1] = a_p0[j_1];
			eqwasMoved___stdZoserrors_u34((&a_p0[j_1]));
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T11_;
			T11_ = (NIM_BOOL)0;
			T11_ = (k_1 < j_1);
			if (!(T11_)) goto LA12_;
			T11_ = (j_1 <= hi_p4);
LA12_: ;
			if (!T11_) goto LA10;
			{
				NI T15_;
				NI T16_;
				T15_ = (NI)0;
				T15_ = cmp_p5.ClE_0? cmp_p5.ClP_0(b_p1[i_1], a_p0[j_1], cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_31)(cmp_p5.ClP_0))(b_p1[i_1], a_p0[j_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T16_ = (NI)0;
				T16_ = star___pureZalgorithm_u9(T15_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T16_ <= ((NI)0))) goto LA17_;
				a_p0[k_1] = b_p1[i_1];
				eqwasMoved___stdZoserrors_u34((&b_p1[i_1]));
				i_1 += ((NI)1);
			}
			goto LA13_;
LA17_: ;
			{
				a_p0[k_1] = a_p0[j_1];
				eqwasMoved___stdZoserrors_u34((&a_p0[j_1]));
				j_1 += ((NI)1);
			}
LA13_: ;
			k_1 += ((NI)1);
		} LA10: ;
	}
	{
		while (1) {
			if (!(k_1 < j_1)) goto LA21;
			a_p0[k_1] = b_p1[i_1];
			eqwasMoved___stdZoserrors_u34((&b_p1[i_1]));
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA21: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__icZcbackend_u315)(NI32* a_p0, NI a_p0Len_0, tyProc__CBoNLvw7Pjo72NRN8hQDEA cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__48JTohSgTy339bRxHzUD8KA b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__icZic_u8712(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__icZcbackend_u363(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___icZic_u8792(b_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__icZcbackend_u262)(NI32* a_p0, NI a_p0Len_0, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p1) {
	tyProc__CBoNLvw7Pjo72NRN8hQDEA T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&T1_), sizeof(tyProc__CBoNLvw7Pjo72NRN8hQDEA));
	T1_.ClP_0 = ((TM__JdC9c6SaUkvO1XjYuWP1JWQ_32) (cmp__int128_u382)); T1_.ClE_0 = NIM_NIL;
	sort__icZcbackend_u315(a_p0, a_p0Len_0, T1_, order_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeAlt__packagesZdocutilsZrstgen_u1677)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* a_p0, NI a_p0Len_0, tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* b_p1, NI b_p1Len_0, NI lo_p2, NI m_p3, NI hi_p4, tyProc__p4iTrPV9bLhWFNG1rpOIFgQ cmp_p5, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p6) {
	NI j_1;
	NI bb_1;
	NI i_1;
	NI k_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI T4_;
		T3_ = (NI)0;
		T3_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_33)(cmp_p5.ClP_0))((&a_p0[m_p3]), (&a_p0[(NI)(m_p3 + ((NI)1))]));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T4_ = (NI)0;
		T4_ = star___pureZalgorithm_u9(T3_, order_p6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!(T4_ <= ((NI)0))) goto LA5_;
		goto BeforeRet_;
	}
LA5_: ;
	j_1 = lo_p2;
	bb_1 = ((NI)0);
	{
		while (1) {
			tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ T9_;
			if (!(j_1 <= m_p3)) goto LA8;
			T9_ = a_p0[j_1];
			eqwasMoved___packagesZdocutilsZrstidx_u194((&a_p0[j_1]));
			eqsink___packagesZdocutilsZrstidx_u206((&b_p1[bb_1]), (&T9_));
			bb_1 += ((NI)1);
			j_1 += ((NI)1);
		} LA8: ;
	}
	i_1 = ((NI)0);
	k_1 = lo_p2;
	{
		while (1) {
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = (k_1 < j_1);
			if (!(T12_)) goto LA13_;
			T12_ = (j_1 <= hi_p4);
LA13_: ;
			if (!T12_) goto LA11;
			{
				NI T16_;
				NI T17_;
				tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ T20_;
				T16_ = (NI)0;
				T16_ = cmp_p5.ClE_0? cmp_p5.ClP_0((&b_p1[i_1]), (&a_p0[j_1]), cmp_p5.ClE_0):((TM__JdC9c6SaUkvO1XjYuWP1JWQ_34)(cmp_p5.ClP_0))((&b_p1[i_1]), (&a_p0[j_1]));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T17_ = (NI)0;
				T17_ = star___pureZalgorithm_u9(T16_, order_p6);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T17_ <= ((NI)0))) goto LA18_;
				T20_ = b_p1[i_1];
				eqwasMoved___packagesZdocutilsZrstidx_u194((&b_p1[i_1]));
				eqsink___packagesZdocutilsZrstidx_u206((&a_p0[k_1]), (&T20_));
				i_1 += ((NI)1);
			}
			goto LA14_;
LA18_: ;
			{
				tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ T22_;
				T22_ = a_p0[j_1];
				eqwasMoved___packagesZdocutilsZrstidx_u194((&a_p0[j_1]));
				eqsink___packagesZdocutilsZrstidx_u206((&a_p0[k_1]), (&T22_));
				j_1 += ((NI)1);
			}
LA14_: ;
			k_1 += ((NI)1);
		} LA11: ;
	}
	{
		while (1) {
			tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ T25_;
			if (!(k_1 < j_1)) goto LA24;
			T25_ = b_p1[i_1];
			eqwasMoved___packagesZdocutilsZrstidx_u194((&b_p1[i_1]));
			eqsink___packagesZdocutilsZrstidx_u206((&a_p0[k_1]), (&T25_));
			k_1 += ((NI)1);
			i_1 += ((NI)1);
		} LA24: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, sort__packagesZdocutilsZrstgen_u1625)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* a_p0, NI a_p0Len_0, tyProc__p4iTrPV9bLhWFNG1rpOIFgQ cmp_p1, tyEnum_SortOrder__wt7l6Gbd8C9c61b6I621QeA order_p2) {
	tySequence__36jA1xDCIBAS29cySYLQ7kQ b_1;
	NI n_1;
	NI s_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	b_1.len = 0; b_1.p = NIM_NIL;
	n_1 = a_p0Len_0;
	b_1 = newSeq__packagesZdocutilsZrstgen_u1665(((NI)(n_1 / ((NI)2))));
	s_1 = ((NI)1);
	{
		while (1) {
			NI m_1;
			if (!(s_1 < n_1)) goto LA2;
			m_1 = (NI)((NI)(n_1 - ((NI)1)) - s_1);
			{
				while (1) {
					if (!(((NI)0) <= m_1)) goto LA4;
					mergeAlt__packagesZdocutilsZrstgen_u1677(a_p0, a_p0Len_0, ((b_1).p) ? (b_1.p->data) : NIM_NIL, b_1.len, (((NI)((NI)(m_1 - s_1) + ((NI)1)) >= ((NI)0)) ? (NI)((NI)(m_1 - s_1) + ((NI)1)) : ((NI)0)), m_1, (NI)(m_1 + s_1), cmp_p1, order_p2);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					m_1 -= (NI)(s_1 * ((NI)2));
				} LA4: ;
			}
			s_1 = (NI)(s_1 * ((NI)2));
		} LA2: ;
	}
	eqdestroy___packagesZdocutilsZrstidx_u281(b_1);
	}BeforeRet_: ;
}
