/* 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/@mbasic@snimbleparser.nim.c.o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@mbasic@snimbleparser.nim.c */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#include <stdio.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_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw;
typedef struct tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_Table__9c9cL6DR4DCGVMI1lXj9akt8w tyObject_Table__9c9cL6DR4DCGVMI1lXj9akt8w;
typedef struct tySequence__JiteSJxrvz63iP2o9bcn2Sg tySequence__JiteSJxrvz63iP2o9bcn2Sg;
typedef struct tySequence__JiteSJxrvz63iP2o9bcn2Sg_Content tySequence__JiteSJxrvz63iP2o9bcn2Sg_Content;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q_Content tySequence__4eQHGndY6XBYpFOH09apV8Q_Content;
typedef struct tySequence__Cv9czsNzurrmCo02svI9bGaw tySequence__Cv9czsNzurrmCo02svI9bGaw;
typedef struct tySequence__Cv9czsNzurrmCo02svI9bGaw_Content tySequence__Cv9czsNzurrmCo02svI9bGaw_Content;
typedef struct tyObject_Table__chgX4ZRn9aA0cwNzdIgL9a3w tyObject_Table__chgX4ZRn9aA0cwNzdIgL9a3w;
typedef struct tySequence__5tFKfHpt6l4YRslMO5BC9aA tySequence__5tFKfHpt6l4YRslMO5BC9aA;
typedef struct tySequence__5tFKfHpt6l4YRslMO5BC9aA_Content tySequence__5tFKfHpt6l4YRslMO5BC9aA_Content;
typedef struct tyObject_Table__RkXBcORzX4aZm9bJbtHRiMA tyObject_Table__RkXBcORzX4aZm9bJbtHRiMA;
typedef struct tySequence__eDvmA6YdVXqDawROf8i9aCg tySequence__eDvmA6YdVXqDawROf8i9aCg;
typedef struct tySequence__eDvmA6YdVXqDawROf8i9aCg_Content tySequence__eDvmA6YdVXqDawROf8i9aCg_Content;
typedef struct tyObject_Table__k9b9b9a4QBdl9cae9coIuQmAotQ tyObject_Table__k9b9b9a4QBdl9cae9coIuQmAotQ;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tyTuple__dBxVupcoYTgJDF3A9aE30Ng tyTuple__dBxVupcoYTgJDF3A9aE30Ng;
typedef struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA;
typedef struct tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA;
typedef struct tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__3EvzHGO0xyXGnJBUggwfKQ tySequence__3EvzHGO0xyXGnJBUggwfKQ;
typedef struct tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content;
typedef struct tyTuple__XXBtNszxg1rbD9cnycyLK7A tyTuple__XXBtNszxg1rbD9cnycyLK7A;
typedef struct tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tyTuple__g1w83cyyBYiVU9c8WEJWnjQ tyTuple__g1w83cyyBYiVU9c8WEJWnjQ;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyTuple__SgjupenGH7y9bVV9aV67zqsw tyTuple__SgjupenGH7y9bVV9aV67zqsw;
typedef struct tyTuple__DuXgJ7FhP2gM03hW7KEKAA tyTuple__DuXgJ7FhP2gM03hW7KEKAA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
struct tySequence__JiteSJxrvz63iP2o9bcn2Sg {
  NI len; tySequence__JiteSJxrvz63iP2o9bcn2Sg_Content* p;
};
struct tyObject_Table__9c9cL6DR4DCGVMI1lXj9akt8w {
	tySequence__JiteSJxrvz63iP2o9bcn2Sg data;
	NI counter;
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
  NI len; tySequence__4eQHGndY6XBYpFOH09apV8Q_Content* p;
};
struct tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ requires;
	tyObject_Table__9c9cL6DR4DCGVMI1lXj9akt8w features;
	NimStringV2 srcDir;
	NimStringV2 version;
	tySequence__4eQHGndY6XBYpFOH09apV8Q tasks;
	NIM_BOOL hasInstallHooks;
	NIM_BOOL hasErrors;
};
typedef NU8 tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg;
struct tySequence__Cv9czsNzurrmCo02svI9bGaw {
  NI len; tySequence__Cv9czsNzurrmCo02svI9bGaw_Content* p;
};
struct tySequence__5tFKfHpt6l4YRslMO5BC9aA {
  NI len; tySequence__5tFKfHpt6l4YRslMO5BC9aA_Content* p;
};
struct tyObject_Table__chgX4ZRn9aA0cwNzdIgL9a3w {
	tySequence__5tFKfHpt6l4YRslMO5BC9aA data;
	NI counter;
};
struct tySequence__eDvmA6YdVXqDawROf8i9aCg {
  NI len; tySequence__eDvmA6YdVXqDawROf8i9aCg_Content* p;
};
struct tyObject_Table__RkXBcORzX4aZm9bJbtHRiMA {
	tySequence__eDvmA6YdVXqDawROf8i9aCg data;
	NI counter;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__k9b9b9a4QBdl9cae9coIuQmAotQ {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
struct tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw {
	NimStringV2 version;
	NimStringV2 nimVersion;
	tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg status;
	tySequence__Cv9czsNzurrmCo02svI9bGaw requirements;
	tyObject_Table__chgX4ZRn9aA0cwNzdIgL9a3w reqsByFeatures;
	NIM_BOOL hasInstallHooks;
	NimStringV2 srcDir;
	NimStringV2 err;
	tyObject_Table__RkXBcORzX4aZm9bJbtHRiMA features;
	tyObject_Table__k9b9b9a4QBdl9cae9coIuQmAotQ featureVars;
};
struct tyTuple__dBxVupcoYTgJDF3A9aE30Ng {
	NimStringV2 Field0;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ Field1;
	NI Field2;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
	NimStringV2 Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA {
	NimStringV2 scheme;
	NimStringV2 username;
	NimStringV2 password;
	NimStringV2 hostname;
	NimStringV2 port;
	NimStringV2 path;
	NimStringV2 query;
	NimStringV2 anchor;
	NIM_BOOL opaque;
	NIM_BOOL isIpv6;
};
struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw {
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg qualifiedName;
	NIM_BOOL hasShortName;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA u;
};
typedef NU8 tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw;
struct tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng {
	tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw r;
	NimStringV2 v;
};
struct tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA {
	tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng a;
	tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng b;
	NIM_BOOL isInterval;
};
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
struct tySequence__3EvzHGO0xyXGnJBUggwfKQ {
  NI len; tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content* p;
};
struct Exception {
	RootObj Sup;
	Exception* parent;
	NCSTRING name;
	NimStringV2 message;
	tySequence__3EvzHGO0xyXGnJBUggwfKQ trace;
	Exception* up;
};
typedef NimStringV2 tyArray__Seu7uK9aaOSN0BK3EAjjSHw[4];
typedef NimStringV2 tyArray__YgExxhfgKcesA5EOUj1MOA[1];
struct tyTuple__XXBtNszxg1rbD9cnycyLK7A {
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw Field0;
	tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
struct tyTuple__g1w83cyyBYiVU9c8WEJWnjQ {
	NI Field0;
	NimStringV2 Field1;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ Field2;
};
typedef NimStringV2 tyArray__A2YC0h9cZydgH7zGAndH9bLg[6];
typedef NimStringV2 tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ[2];
typedef NU8 tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng;
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
struct tySequence__JiteSJxrvz63iP2o9bcn2Sg_Content { NI cap; tyTuple__g1w83cyyBYiVU9c8WEJWnjQ data[SEQ_DECL_SIZE]; };
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
	NimStringV2 Field0;
	NimStringV2 Field1;
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q_Content { NI cap; tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE]; };
struct tySequence__Cv9czsNzurrmCo02svI9bGaw_Content { NI cap; tyTuple__XXBtNszxg1rbD9cnycyLK7A data[SEQ_DECL_SIZE]; };
struct tyTuple__SgjupenGH7y9bVV9aV67zqsw {
	NI Field0;
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw Field1;
	tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q Field2;
};
struct tySequence__5tFKfHpt6l4YRslMO5BC9aA_Content { NI cap; tyTuple__SgjupenGH7y9bVV9aV67zqsw data[SEQ_DECL_SIZE]; };
struct tyTuple__DuXgJ7FhP2gM03hW7KEKAA {
	NI Field0;
	NimStringV2 Field1;
	tySequence__Cv9czsNzurrmCo02svI9bGaw Field2;
};
struct tySequence__eDvmA6YdVXqDawROf8i9aCg_Content { NI cap; tyTuple__DuXgJ7FhP2gM03hW7KEKAA data[SEQ_DECL_SIZE]; };
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
	NI Field0;
	NimStringV2 Field1;
	NI32 Field2;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content { NI cap; tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE]; };
struct tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content { NI cap; tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2188)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, extractRequiresInfo__basicZparse95requires_u4666)(NimStringV2 nimbleFile_p0, tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw* Result);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2751)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, parseExplicitVersion__basicZversions_u565)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
N_LIB_PRIVATE N_NIMCALL(void, processRequirement__basicZnimbleparser_u18)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1, NimStringV2 req_p2, NimStringV2 feature_p3, tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw** result_p4);
N_LIB_PRIVATE N_NIMCALL(void, extractRequirementName__basicZversions_u5078)(NimStringV2 req_p0, tyTuple__dBxVupcoYTgJDF3A9aE30Ng* Result);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u5579)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, createUrl__basicZnimblecontext_u3215)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nameOrig_p1, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* Result);
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(NimStringV2, getCurrentExceptionMsg__system_u8393)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2754)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, warn__basicZgitops_u3033)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, addError__basicZnimbleparser_u14)(NimStringV2* err_p0, NimStringV2 nimbleFile_p1, NimStringV2 msg_p2);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, toPkgUriRaw__basicZpkgurls_u301)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* u_p0, NIM_BOOL hasShortName_p1, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* Result);
N_LIB_PRIVATE N_NIMCALL(void, parseUri__pureZuri_u295)(NimStringV2 uri_p0, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* Result);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZuri_u213)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* dest_p0);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3719)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(void, parseVersionInterval__basicZversions_u649)(NimStringV2 s_p0, NI start_p1, NIM_BOOL* err_p2, tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* Result);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringV2 a_p0, NimStringV2 b_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___basicZpkgurls_u47)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* u_p0);
static N_INLINE(void, eqdestroy___system_u281)(NimStringV2 x_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, extractGeQuery__basicZversions_u266)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* i_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___basicZversions_u359)(NimStringV2 a_p0, NimStringV2 b_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2760)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__basicZnimbleparser_u1466)(tySequence__Cv9czsNzurrmCo02svI9bGaw* x_p0, tyTuple__XXBtNszxg1rbD9cnycyLK7A* y_p1);
N_LIB_PRIVATE N_NIMCALL(tySequence__Cv9czsNzurrmCo02svI9bGaw*, mgetOrPut__basicZnimbleparser_u101)(tyObject_Table__RkXBcORzX4aZm9bJbtHRiMA* t_p0, NimStringV2 key_p1, tySequence__Cv9czsNzurrmCo02svI9bGaw val_p2);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___basicZpkgurls_u258)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___basicZversions_u243)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdup___basicZpkgurls_u267)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* src_p0, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* Result);
N_LIB_PRIVATE N_NIMCALL(void, incl__basicZversions_u858)(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q* s_p0, NimStringV2 key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q*, mgetOrPut__basicZnimbleparser_u1558)(tyObject_Table__chgX4ZRn9aA0cwNzdIgL9a3w* t_p0, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* key_p1, tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q val_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q, initHashSet__OOZOOZOOZcompilerZoptions_u1045)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZversions_u5014)(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u95)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZversions_u246)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZpkgurls_u261)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u5582)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZversions_u5159)(tyTuple__dBxVupcoYTgJDF3A9aE30Ng* dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(NI, len__basicZnimbleparser_u3029)(tyObject_Table__9c9cL6DR4DCGVMI1lXj9akt8w t_p0);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u31)(NI hcode_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u5585)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* dest_p0, tySequence__sM4lkSb7zS6F7OVMvW9cffQ src_p1);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZconfigutils_u18)(tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, debug__basicZgitops_u1252)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmpty__basicZpkgurls_u23)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, error__basicZconfigutils_u107)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZdeptypes_u1632)(tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringV2 filename_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw*, parseNimbleFile__basicZnimbleparser_u2965)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1);
static N_INLINE(NIM_BOOL, eqeq___basicZpkgurls_u67)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* a_p0, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___basicZpkgurls_u71)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* x_p0, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, info__basicZconfigutils_u114)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, shortName__basicZpkgurls_u32)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* u_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZuri_u409)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* u_p0);
N_LIB_PRIVATE N_NIMCALL(void, url__basicZpkgurls_u44)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* p_p0, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* Result);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, genRequiresLine__basicZnimbleparser_u3268)(NimStringV2 u_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatSingleElem)(NimStringV2 formatstr_p0, NimStringV2 a_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuEscape)(NimStringV2 s_p0, NimStringV2 prefix_p1, NimStringV2 suffix_p2);
N_LIB_PRIVATE N_NIMCALL(FILE*, open__stdZsyncio_u492)(NimStringV2 filename_p0, tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng mode_p1, NI bufSize_p2);
static N_INLINE(void, writeLine__OOZOOZOOZcompilerZmsgs_u467)(FILE* f_p0, NimStringV2* x_p1, NI x_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, write__stdZsyncio_u254)(FILE* f_p0, NimStringV2 s_p1);
N_LIB_PRIVATE N_NIMCALL(void, close__stdZsyncio_u269)(FILE* f_p0);
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_2 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_3 = {0, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_2};
static const struct {
  NI cap; NIM_CHAR data[39+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_4 = { 39 | NIM_STRLIT_FLAG, "cannot resolve dependency package name:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_5 = {39, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_4};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_6 = { 6 | NIM_STRLIT_FLAG, "error:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_7 = {6, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_6};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_8 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_9 = {1, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_8};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_10 = { 9 | NIM_STRLIT_FLAG, "in file: " };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_11 = {9, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_10};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_12 = {1, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_8};
static const struct {
  NI cap; NIM_CHAR data[29+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_13 = { 29 | NIM_STRLIT_FLAG, "cannot resolve package name: " };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_14 = {29, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_13};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_15 = { 8 | NIM_STRLIT_FLAG, "error://" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_16 = {8, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_15};
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_17 = { 20 | NIM_STRLIT_FLAG, "broken nimble file: " };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_18 = {20, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_17};
static const struct {
  NI cap; NIM_CHAR data[42+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_19 = { 42 | NIM_STRLIT_FLAG, "invalid \'requires\' syntax in nimble file: " };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_20 = {42, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_19};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_21 = { 3 | NIM_STRLIT_FLAG, "nim" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_22 = {3, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_21};
static const struct {
  NI cap; NIM_CHAR data[31+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_23 = { 31 | NIM_STRLIT_FLAG, "https://github.com/nim-lang/Nim" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_24 = {31, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_23};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_25 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_26 = {0, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_25};
static const struct {
  NI cap; NIM_CHAR data[90+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_27 = { 90 | NIM_STRLIT_FLAG, "iterators.nim(254, 11) `len(a) == L` the length of the seq changed while iterating over it" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_28 = {90, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_27};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_29 = {0, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_2};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_30 = {90, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_27};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_31 = {90, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_27};
static const struct {
  NI cap; NIM_CHAR data[89+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_32 = { 89 | NIM_STRLIT_FLAG, "tables.nim(771, 13) `len(t) == L` the length of the table changed while iterating over it" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_33 = {89, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_32};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_35 = { 21 | NIM_STRLIT_FLAG, "patching nimble file:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_36 = {21, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_35};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_37 = { 15 | NIM_STRLIT_FLAG, "to use package:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_38 = {15, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_37};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_39 = { 4 | NIM_STRLIT_FLAG, "url:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_40 = {4, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_39};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_41 = {29, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_13};
static const struct {
  NI cap; NIM_CHAR data[57+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_42 = { 57 | NIM_STRLIT_FLAG, "nimbleparser.nim(86, 3) `nimbleFile.string.fileExists()` " };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_43 = {57, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_42};
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_44 = { 20 | NIM_STRLIT_FLAG, "checking if dep url:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_45 = {20, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_44};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_46 = { 8 | NIM_STRLIT_FLAG, "matches:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_47 = {8, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_46};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_49 = { 22 | NIM_STRLIT_FLAG, "nimble file up to date" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_50 = {90, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_27};
static const struct {
  NI cap; NIM_CHAR data[27+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_51 = { 27 | NIM_STRLIT_FLAG, "patching nimble file using:" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_52 = {27, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_51};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_53 = { 14 | NIM_STRLIT_FLAG, "requires \"$1\"\012" };
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_54 = {14, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_53};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_55 = {0, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_2};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_56 = {0, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_2};
static const NimStringV2 TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_57 = {1, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_8};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_59 = { 7 | NIM_STRLIT_FLAG, "updated" };
static NIM_CONST tyArray__YgExxhfgKcesA5EOUj1MOA TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_48 = {{22, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_49}}
;
static NIM_CONST tyArray__YgExxhfgKcesA5EOUj1MOA TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_58 = {{7, (NimStrPayload*)&TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_59}}
;
extern NIM_THREADVAR Exception* currException__system_u3686;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4198;
static N_INLINE(void, nimSetMem__system_u2188)(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_u2188(p_p0, ((int)0), size_p1);
}
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (targetDepth_p1 <= (*source_p0).depth);
	if (!(T1_)) goto LA2_;
	T1_ = ((*source_p0).display[targetDepth_p1] == token_p2);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = currException__system_u3686;
	return result;
}
static N_INLINE(NimStringV2, getCurrentExceptionMsg__system_u8393)(void) {
	NimStringV2 result;
	NimStringV2 T1_;
{	result.len = 0; result.p = NIM_NIL;
	T1_.len = 0; T1_.p = NIM_NIL;
	{
		if (!(currException__system_u3686 == ((Exception*) NIM_NIL))) goto LA4_;
		result = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_3;
	}
	goto LA2_;
LA4_: ;
	{
		eqcopy___system_u2754((&result), (*currException__system_u3686).message);
	}
LA2_: ;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1755(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addError__basicZnimbleparser_u14)(NimStringV2* err_p0, NimStringV2 nimbleFile_p1, NimStringV2 msg_p2) {
	{
		if (!(((NI)0) < (*err_p0).len)) goto LA3_;
		prepareAdd((&(*err_p0)), 1);
appendString((&(*err_p0)), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_9);
	}
	goto LA1_;
LA3_: ;
	{
		NimStringV2 colontmpD_;
		NimStringV2 T6_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		T6_.len = 0; T6_.p = NIM_NIL;
		T6_ = rawNewString(nimbleFile_p1.len + 10);
appendString((&T6_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_11);
appendString((&T6_), nimbleFile_p1);
appendString((&T6_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_12);
		colontmpD_ = T6_;
		prepareAdd((&(*err_p0)), colontmpD_.len + 0);
appendString((&(*err_p0)), colontmpD_);
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
	}
LA1_: ;
	prepareAdd((&(*err_p0)), msg_p2.len + 0);
appendString((&(*err_p0)), msg_p2);
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___system_u3719(&currException__system_u3686, (*currException__system_u3686).up, NIM_FALSE);
}
static N_INLINE(void, eqdestroy___system_u281)(NimStringV2 x_p0) {
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4198);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, processRequirement__basicZnimbleparser_u18)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1, NimStringV2 req_p2, NimStringV2 feature_p3, tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw** result_p4) {
	tyTuple__dBxVupcoYTgJDF3A9aE30Ng tmpTuple_1;
	NimStringV2 name_1;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ reqsByFeatures_1;
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw url_1;
	tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA query_1;
	NI verIdx_1;
	NIM_BOOL err_2;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&tmpTuple_1), sizeof(tyTuple__dBxVupcoYTgJDF3A9aE30Ng));
	name_1.len = 0; name_1.p = NIM_NIL;
	reqsByFeatures_1.len = 0; reqsByFeatures_1.p = NIM_NIL;
	nimZeroMem((void*)(&url_1), sizeof(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw));
	nimZeroMem((void*)(&query_1), sizeof(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA));
	extractRequirementName__basicZversions_u5078(req_p2, (&tmpTuple_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	name_1 = tmpTuple_1.Field0;
	eqwasMoved___system_u2751((&tmpTuple_1.Field0));
	reqsByFeatures_1 = tmpTuple_1.Field1;
	eqwasMoved___system_u5579((&tmpTuple_1.Field1));
	verIdx_1 = tmpTuple_1.Field2;
	createUrl__basicZnimblecontext_u3215(nc_p0, name_1, (&url_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
	if (NIM_UNLIKELY(*nimErr_)) {
		LA2_:;
		if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 1287918080)||isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 3275107584)||isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 1079566592)) {
			NimStringV2 err_1;
			NimStringV2 colontmpD_;
			NimStringV2 colontmpD__2;
			tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA colontmpD__3;
			tyArray__Seu7uK9aaOSN0BK3EAjjSHw T7_;
			NimStringV2 T8_;
			NimStringV2 T9_;
			*nimErr_ = NIM_FALSE;
			err_1.len = 0; err_1.p = NIM_NIL;
			colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
			colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
			nimZeroMem((void*)(&colontmpD__3), sizeof(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA));
			err_1 = getCurrentExceptionMsg__system_u8393();
			(*(*result_p4)).status = ((tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)5);
			T7_[0] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_5;
			T7_[1] = name_1;
			T7_[2] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_7;
			T7_[3] = err_1;
			warn__basicZgitops_u3033(nimbleFile_p1, T7_, 4);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T8_.len = 0; T8_.p = NIM_NIL;
			T8_ = rawNewString(name_1.len + 29);
appendString((&T8_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_14);
appendString((&T8_), name_1);
			colontmpD_ = T8_;
			addError__basicZnimbleparser_u14((&(*(*result_p4)).err), nimbleFile_p1, colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			T9_.len = 0; T9_.p = NIM_NIL;
			T9_ = rawNewString(name_1.len + 8);
appendString((&T9_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_16);
appendString((&T9_), name_1);
			colontmpD__2 = T9_;
			parseUri__pureZuri_u295(colontmpD__2, (&colontmpD__3));
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			toPkgUriRaw__basicZpkgurls_u301((&colontmpD__3), NIM_FALSE, (&url_1));
			if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
			{
				LA6_:;
			}
			{
				eqdestroy___pureZuri_u213((&colontmpD__3));
				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);
}
				if (err_1.p && !(err_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(err_1.p);
}
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
			popCurrentException();
			LA4_:;
		}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	err_2 = NIM_FALSE;
	parseVersionInterval__basicZversions_u649(req_p2, verIdx_1, (&err_2), (&query_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!err_2) goto LA14_;
		{
			NimStringV2 colontmpD__4;
			NimStringV2 colontmpD__5;
			tyArray__YgExxhfgKcesA5EOUj1MOA T21_;
			NimStringV2 T22_;
			NimStringV2 T23_;
			if (!!(((*(*result_p4)).status == ((tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)5)))) goto LA18_;
			colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
			colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
			T22_.len = 0; T22_.p = NIM_NIL;
			T22_ = rawNewString(name_1.len + 20);
appendString((&T22_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_18);
appendString((&T22_), name_1);
			colontmpD__4 = T22_;
			T21_[0] = colontmpD__4;
			warn__basicZgitops_u3033(nimbleFile_p1, T21_, 1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			(*(*result_p4)).status = ((tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)2);
			T23_.len = 0; T23_.p = NIM_NIL;
			T23_ = rawNewString(req_p2.len + 42);
appendString((&T23_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_20);
appendString((&T23_), req_p2);
			colontmpD__5 = T23_;
			addError__basicZnimbleparser_u14((&(*(*result_p4)).err), nimbleFile_p1, colontmpD__5);
			if (NIM_UNLIKELY(*nimErr_)) goto LA20_;
			{
				LA20_:;
			}
			{
				if (colontmpD__5.p && !(colontmpD__5.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__5.p);
}
				if (colontmpD__4.p && !(colontmpD__4.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__4.p);
}
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		}
LA18_: ;
	}
	goto LA12_;
LA14_: ;
	{
		NimStringV2 colontmpD__6;
		colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
		{
			NIM_BOOL T29_;
			NI T30_;
			NimStringV2 T32_;
			NI T33_;
			NimStringV2 v_1;
			NimStringV2 T36_;
			T29_ = (NIM_BOOL)0;
			T30_ = (NI)0;
			T30_ = nsuCmpIgnoreCase(name_1, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_22);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T29_ = (T30_ == ((NI)0));
			if (T29_) goto LA31_;
			T32_.len = 0; T32_.p = NIM_NIL;
			T32_ = dollar___basicZpkgurls_u47((&url_1));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u281(T32_); goto LA1_;}
			colontmpD__6 = T32_;
			T33_ = (NI)0;
			T33_ = nsuCmpIgnoreCase(colontmpD__6, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_24);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T29_ = (T33_ == ((NI)0));
LA31_: ;
			if (!T29_) goto LA34_;
			v_1.len = 0; v_1.p = NIM_NIL;
			T36_.len = 0; T36_.p = NIM_NIL;
			T36_ = extractGeQuery__basicZversions_u266((&query_1));
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u281(T36_); goto LA1_;}
			v_1 = T36_;
			{
				NIM_BOOL T39_;
				T39_ = (NIM_BOOL)0;
				T39_ = eqeq___basicZversions_u359(v_1, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_26);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				if (!!(T39_)) goto LA40_;
				eqsink___system_u2760((&(*(*result_p4)).nimVersion), v_1);
				eqwasMoved___system_u2751((&v_1));
			}
LA40_: ;
			if (v_1.p && !(v_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(v_1.p);
}
		}
		goto LA27_;
LA34_: ;
		{
			tySequence__Cv9czsNzurrmCo02svI9bGaw T45_;
			tySequence__Cv9czsNzurrmCo02svI9bGaw* T46_;
			tyTuple__XXBtNszxg1rbD9cnycyLK7A T47_;
			tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw blitTmp_1;
			tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA blitTmp_2;
			if (!(((NI)0) < feature_p3.len)) goto LA43_;
			T45_.len = 0; T45_.p = NIM_NIL;
			T45_.len = 0; T45_.p = (tySequence__Cv9czsNzurrmCo02svI9bGaw_Content*) newSeqPayload(0, sizeof(tyTuple__XXBtNszxg1rbD9cnycyLK7A), NIM_ALIGNOF(tyTuple__XXBtNszxg1rbD9cnycyLK7A));
			T46_ = (tySequence__Cv9czsNzurrmCo02svI9bGaw*)0;
			T46_ = mgetOrPut__basicZnimbleparser_u101((&(*(*result_p4)).features), feature_p3, T45_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			nimZeroMem((void*)(&blitTmp_1), sizeof(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw));
			blitTmp_1 = url_1;
			eqwasMoved___basicZpkgurls_u258((&url_1));
			T47_.Field0 = blitTmp_1;
			nimZeroMem((void*)(&blitTmp_2), sizeof(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA));
			blitTmp_2 = query_1;
			eqwasMoved___basicZversions_u243((&query_1));
			T47_.Field1 = blitTmp_2;
			add__basicZnimbleparser_u1466((&(*T46_)), (&T47_));
		}
		goto LA27_;
LA43_: ;
		{
			tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw colontmpD__7;
			tyTuple__XXBtNszxg1rbD9cnycyLK7A T49_;
			tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA blitTmp_3;
			eqdup___basicZpkgurls_u267((&url_1), (&colontmpD__7));
			T49_.Field0 = colontmpD__7;
			nimZeroMem((void*)(&blitTmp_3), sizeof(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA));
			blitTmp_3 = query_1;
			eqwasMoved___basicZversions_u243((&query_1));
			T49_.Field1 = blitTmp_3;
			add__basicZnimbleparser_u1466((&(*(*result_p4)).requirements), (&T49_));
			{
				NimStringV2* feature_2;
				NI i_1;
				NI L_1;
				NI T51_;
				feature_2 = (NimStringV2*)0;
				i_1 = ((NI)0);
				T51_ = reqsByFeatures_1.len;
				L_1 = T51_;
				{
					while (1) {
						tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q colontmpD__8;
						tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q T54_;
						tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q* T55_;
						if (!(i_1 < L_1)) goto LA53;
						nimZeroMem((void*)(&colontmpD__8), sizeof(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q));
						if (i_1 < 0 || i_1 >= reqsByFeatures_1.len){ raiseIndexError2(i_1,reqsByFeatures_1.len-1); goto LA1_;
						}
						feature_2 = (&reqsByFeatures_1.p->data[i_1]);
						nimZeroMem((void*)(&T54_), sizeof(tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q));
						T54_ = initHashSet__OOZOOZOOZcompilerZoptions_u1045(((NI)64));
						if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___basicZversions_u5014(&T54_); goto LA1_;}
						colontmpD__8 = T54_;
						T55_ = (tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q*)0;
						T55_ = mgetOrPut__basicZnimbleparser_u1558((&(*(*result_p4)).reqsByFeatures), (&url_1), colontmpD__8);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						incl__basicZversions_u858(T55_, (*feature_2));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						i_1 += ((NI)1);
						{
							NI T58_;
							T58_ = reqsByFeatures_1.len;
							if (!!((T58_ == L_1))) goto LA59_;
							failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_28);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA59_: ;
						eqdestroy___basicZversions_u5014((&colontmpD__8));
					} LA53: ;
				}
			}
		}
LA27_: ;
		if (colontmpD__6.p && !(colontmpD__6.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__6.p);
}
	}
LA12_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___basicZversions_u246((&query_1));
		eqdestroy___basicZpkgurls_u261((&url_1));
		eqdestroy___system_u5582(reqsByFeatures_1);
		if (name_1.p && !(name_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(name_1.p);
}
		eqdestroy___basicZversions_u5159((&tmpTuple_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u31)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	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(tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw*, parseNimbleFile__basicZnimbleparser_u2965)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1) {
	tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw* result;
	tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw nimbleInfo_1;
	tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg colontmpD_;
	tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg colontmpD__2;
	tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw* T2_;
	NimStringV2 blitTmp_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&nimbleInfo_1), sizeof(tyObject_NimbleFileInfo__i7bgYVgkuliKc9bzshfZ2Rw));
	colontmpD_ = (tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)0;
	colontmpD__2 = (tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)0;
	extractRequiresInfo__basicZparse95requires_u4666(nimbleFile_p1, (&nimbleInfo_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = NIM_NIL;
	T2_ = (tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw*) nimNewObj(sizeof(tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw), NIM_ALIGNOF(tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw));
	(*T2_).hasInstallHooks = nimbleInfo_1.hasInstallHooks;
	blitTmp_1 = nimbleInfo_1.srcDir;
	eqwasMoved___system_u2751((&nimbleInfo_1.srcDir));
	(*T2_).srcDir = blitTmp_1;
	{
		if (!nimbleInfo_1.hasErrors) goto LA5_;
		colontmpD_ = ((tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)2);
		(*T2_).status = colontmpD_;
	}
	goto LA3_;
LA5_: ;
	{
		colontmpD__2 = ((tyEnum_ReleaseStatus__WQoraXO80GBXtge9ad8aCBg)0);
		(*T2_).status = colontmpD__2;
	}
LA3_: ;
	(*T2_).version = parseExplicitVersion__basicZversions_u565(nimbleInfo_1.version);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = T2_;
	{
		NimStringV2* req_1;
		NI i_1;
		NI L_1;
		NI T9_;
		req_1 = (NimStringV2*)0;
		i_1 = ((NI)0);
		T9_ = nimbleInfo_1.requires.len;
		L_1 = T9_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA11;
				if (i_1 < 0 || i_1 >= nimbleInfo_1.requires.len){ raiseIndexError2(i_1,nimbleInfo_1.requires.len-1); goto LA1_;
				}
				req_1 = (&nimbleInfo_1.requires.p->data[i_1]);
				processRequirement__basicZnimbleparser_u18(nc_p0, nimbleFile_p1, (*req_1), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_29, &result);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				i_1 += ((NI)1);
				{
					NI T14_;
					T14_ = nimbleInfo_1.requires.len;
					if (!!((T14_ == L_1))) goto LA15_;
					failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_30);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA15_: ;
			} LA11: ;
		}
	}
	{
		NimStringV2 feature_1;
		tySequence__sM4lkSb7zS6F7OVMvW9cffQ reqs_1;
		NI L_2;
		feature_1.len = 0; feature_1.p = NIM_NIL;
		reqs_1.len = 0; reqs_1.p = NIM_NIL;
		L_2 = len__basicZnimbleparser_u3029(nimbleInfo_1.features);
		if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
		{
			NI h_1;
			NI colontmp_;
			NI T20_;
			NI res_1;
			h_1 = (NI)0;
			colontmp_ = (NI)0;
			T20_ = (nimbleInfo_1.features.data.len-1);
			colontmp_ = T20_;
			res_1 = ((NI)0);
			{
				while (1) {
					NI TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_34;
					if (!(res_1 <= colontmp_)) goto LA22;
					h_1 = ((NI) (res_1));
					{
						NIM_BOOL T25_;
						if (h_1 < 0 || h_1 >= nimbleInfo_1.features.data.len){ raiseIndexError2(h_1,nimbleInfo_1.features.data.len-1); goto LA18_;
						}
						T25_ = (NIM_BOOL)0;
						T25_ = isFilled__pureZcollectionsZtables_u31(nimbleInfo_1.features.data.p->data[h_1].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						if (!T25_) goto LA26_;
						if (h_1 < 0 || h_1 >= nimbleInfo_1.features.data.len){ raiseIndexError2(h_1,nimbleInfo_1.features.data.len-1); goto LA18_;
						}
						eqcopy___system_u2754((&feature_1), nimbleInfo_1.features.data.p->data[h_1].Field1);
						if (h_1 < 0 || h_1 >= nimbleInfo_1.features.data.len){ raiseIndexError2(h_1,nimbleInfo_1.features.data.len-1); goto LA18_;
						}
						eqcopy___system_u5585((&reqs_1), nimbleInfo_1.features.data.p->data[h_1].Field2);
						{
							NimStringV2* req_2;
							NI i_2;
							NI L_3;
							NI T29_;
							req_2 = (NimStringV2*)0;
							i_2 = ((NI)0);
							T29_ = reqs_1.len;
							L_3 = T29_;
							{
								while (1) {
									if (!(i_2 < L_3)) goto LA31;
									if (i_2 < 0 || i_2 >= reqs_1.len){ raiseIndexError2(i_2,reqs_1.len-1); goto LA18_;
									}
									req_2 = (&reqs_1.p->data[i_2]);
									processRequirement__basicZnimbleparser_u18(nc_p0, nimbleFile_p1, (*req_2), feature_1, &result);
									if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
									i_2 += ((NI)1);
									{
										NI T34_;
										T34_ = reqs_1.len;
										if (!!((T34_ == L_3))) goto LA35_;
										failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_31);
										if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
									}
LA35_: ;
								} LA31: ;
							}
						}
						{
							NI T39_;
							T39_ = (NI)0;
							T39_ = len__basicZnimbleparser_u3029(nimbleInfo_1.features);
							if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
							if (!!((T39_ == L_2))) goto LA40_;
							failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_33);
							if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						}
LA40_: ;
					}
LA26_: ;
					if (nimAddInt(res_1, ((NI)1), &TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_34)) { raiseOverflow(); goto LA18_;
					};
					res_1 = (NI)(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_34);
				} LA22: ;
			}
		}
		{
			LA18_:;
		}
		{
			eqdestroy___system_u5582(reqs_1);
			if (feature_1.p && !(feature_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(feature_1.p);
}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	{
		LA1_:;
	}
	{
		eqdestroy___basicZconfigutils_u18((&nimbleInfo_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___basicZpkgurls_u67)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* a_p0, tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* b_p1) {
	NIM_BOOL result;
	result = eqeq___basicZpkgurls_u71((&(*a_p0).u), (&(*b_p1).u));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, genRequiresLine__basicZnimbleparser_u3268)(NimStringV2 u_p0) {
	NimStringV2 result;
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD_ = nsuEscape(u_p0, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_55, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_56);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = nsuFormatSingleElem(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_54, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, writeLine__OOZOOZOOZcompilerZmsgs_u467)(FILE* f_p0, NimStringV2* x_p1, NI x_p1Len_0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NimStringV2* i_1;
		NI i_2;
		i_1 = (NimStringV2*)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < x_p1Len_0)) goto LA3;
				if (i_2 < 0 || i_2 >= x_p1Len_0){ raiseIndexError2(i_2,x_p1Len_0-1); goto BeforeRet_;
				}
				i_1 = (&x_p1[i_2]);
				write__stdZsyncio_u254(f_p0, (*i_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	write__stdZsyncio_u254(f_p0, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_57);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, patchNimbleFile__basicZnimbleparser_u3271)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1, NimStringV2 name_p2) {
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw url_1;
	NimStringV2 colontmpD_;
	tyObject_NimbleReleasecolonObjectType___Cd1woUEuIWSParVQIsOkuw* release_1;
	NimStringV2 name_2;
	NimStringV2 line_1;
	tyArray__A2YC0h9cZydgH7zGAndH9bLg T2_;
	NimStringV2 T36_;
	tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T42_;
	FILE* f_1;
	tyArray__YgExxhfgKcesA5EOUj1MOA T44_;
NIM_BOOL oldNimErrFin43_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&url_1), sizeof(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw));
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	release_1 = NIM_NIL;
	name_2.len = 0; name_2.p = NIM_NIL;
	line_1.len = 0; line_1.p = NIM_NIL;
	createUrl__basicZnimblecontext_u3215(nc_p0, name_p2, (&url_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_[0] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_36;
	T2_[1] = nimbleFile_p1;
	T2_[2] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_38;
	T2_[3] = name_p2;
	T2_[4] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_40;
	colontmpD_ = dollar___basicZpkgurls_u47((&url_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_[5] = colontmpD_;
	debug__basicZgitops_u1252(nimbleFile_p1, T2_, 6);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T5_;
		NimStringV2 colontmpD__2;
		tyArray__YgExxhfgKcesA5EOUj1MOA T9_;
		NimStringV2 T10_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmpty__basicZpkgurls_u23((&url_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!T5_) goto LA6_;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		T10_.len = 0; T10_.p = NIM_NIL;
		T10_ = rawNewString(name_p2.len + 29);
appendString((&T10_), TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_41);
appendString((&T10_), name_p2);
		colontmpD__2 = T10_;
		T9_[0] = colontmpD__2;
		error__basicZconfigutils_u107(name_p2, T9_, 1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
		if (colontmpD__2.p && !(colontmpD__2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__2.p);
}
		if (line_1.p && !(line_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(line_1.p);
}
		if (name_2.p && !(name_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(name_2.p);
}
		eqdestroy___basicZdeptypes_u1632(release_1);
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
		eqdestroy___basicZpkgurls_u261((&url_1));
		goto BeforeRet_;
		{
			LA8_:;
		}
		{
			if (colontmpD__2.p && !(colontmpD__2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__2.p);
}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = nosfileExists(nimbleFile_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!!(T15_)) goto LA16_;
		failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_43);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA16_: ;
	release_1 = parseNimbleFile__basicZnimbleparser_u2965(nc_p0, nimbleFile_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* dep_1;
		tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* ver_1;
		NI i_1;
		NI L_1;
		NI T19_;
		dep_1 = (tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw*)0;
		ver_1 = (tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA*)0;
		i_1 = ((NI)0);
		T19_ = (*release_1).requirements.len;
		L_1 = T19_;
		{
			while (1) {
				NimStringV2 colontmpD__3;
				NimStringV2 colontmpD__4;
				tyArray__Seu7uK9aaOSN0BK3EAjjSHw T23_;
				if (!(i_1 < L_1)) goto LA21;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
				if (i_1 < 0 || i_1 >= (*release_1).requirements.len){ raiseIndexError2(i_1,(*release_1).requirements.len-1); goto LA22_;
				}
				dep_1 = (&(*release_1).requirements.p->data[i_1].Field0);
				if (i_1 < 0 || i_1 >= (*release_1).requirements.len){ raiseIndexError2(i_1,(*release_1).requirements.len-1); goto LA22_;
				}
				ver_1 = (&(*release_1).requirements.p->data[i_1].Field1);
				T23_[0] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_45;
				colontmpD__3 = dollar___basicZpkgurls_u47((&url_1));
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				T23_[1] = colontmpD__3;
				T23_[2] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_47;
				colontmpD__4 = dollar___basicZpkgurls_u47((&(*dep_1)));
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				T23_[3] = colontmpD__4;
				debug__basicZgitops_u1252(nimbleFile_p1, T23_, 4);
				if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				{
					NIM_BOOL T26_;
					T26_ = (NIM_BOOL)0;
					T26_ = eqeq___basicZpkgurls_u67((&url_1), (&(*dep_1)));
					if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
					if (!T26_) goto LA27_;
					info__basicZconfigutils_u114(nimbleFile_p1, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_48, 1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
					if (colontmpD__4.p && !(colontmpD__4.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__4.p);
}
					if (colontmpD__3.p && !(colontmpD__3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__3.p);
}
					if (line_1.p && !(line_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(line_1.p);
}
					if (name_2.p && !(name_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(name_2.p);
}
					eqdestroy___basicZdeptypes_u1632(release_1);
					if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
					eqdestroy___basicZpkgurls_u261((&url_1));
					goto BeforeRet_;
				}
LA27_: ;
				i_1 += ((NI)1);
				{
					NI T31_;
					T31_ = (*release_1).requirements.len;
					if (!!((T31_ == L_1))) goto LA32_;
					failedAssertImpl__stdZassertions_u95(TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_50);
					if (NIM_UNLIKELY(*nimErr_)) goto LA22_;
				}
LA32_: ;
				{
					LA22_:;
				}
				{
					if (colontmpD__4.p && !(colontmpD__4.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__4.p);
}
					if (colontmpD__3.p && !(colontmpD__3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__3.p);
}
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA21: ;
		}
	}
	T36_.len = 0; T36_.p = NIM_NIL;
	{
		if (!url_1.hasShortName) goto LA39_;
		name_2 = shortName__basicZpkgurls_u32((&url_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	goto LA37_;
LA39_: ;
	{
		tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA colontmpD__5;
		nimZeroMem((void*)(&colontmpD__5), sizeof(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA));
		url__basicZpkgurls_u44((&url_1), (&colontmpD__5));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		name_2 = dollar___pureZuri_u409((&colontmpD__5));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___pureZuri_u213((&colontmpD__5));
	}
LA37_: ;
	T42_[0] = TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_52;
	T42_[1] = name_2;
	debug__basicZgitops_u1252(nimbleFile_p1, T42_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	line_1 = genRequiresLine__basicZnimbleparser_u3268(name_2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	f_1 = open__stdZsyncio_u492(nimbleFile_p1, ((tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng)4), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T44_[0] = line_1;
	writeLine__OOZOOZOOZcompilerZmsgs_u467(f_1, T44_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA43_;
	{
		LA43_:;
	}
	{
		oldNimErrFin43_ = *nimErr_; *nimErr_ = NIM_FALSE;
		close__stdZsyncio_u269(f_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		*nimErr_ = oldNimErrFin43_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	info__basicZconfigutils_u114(nimbleFile_p1, TM__9b5xJ9cUQ6X9b9ab9bj8ZN4pcOA_58, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		if (line_1.p && !(line_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(line_1.p);
}
		if (name_2.p && !(name_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(name_2.p);
}
		eqdestroy___basicZdeptypes_u1632(release_1);
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
		eqdestroy___basicZpkgurls_u261((&url_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
