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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tyObject_Profiler__YI4zs2CaXXndlYireD0I8A tyObject_Profiler__YI4zs2CaXXndlYireD0I8A;
typedef struct tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew;
typedef struct tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ;
typedef struct tyObject_Table__g39amaj5esSUbnvSF2f9bVgg tyObject_Table__g39amaj5esSUbnvSF2f9bVgg;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tySequence__9c9aWmheGsuf9aHtY7gTnUcPA tySequence__9c9aWmheGsuf9aHtY7gTnUcPA;
typedef struct tySequence__9c9aWmheGsuf9aHtY7gTnUcPA_Content tySequence__9c9aWmheGsuf9aHtY7gTnUcPA_Content;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q_Content tySequence__YdLNCDKYeipzJx3I8Xw82Q_Content;
typedef struct tySequence__TLbZ2GqL3Zio1f8bNpj2NA tySequence__TLbZ2GqL3Zio1f8bNpj2NA;
typedef struct tySequence__TLbZ2GqL3Zio1f8bNpj2NA_Content tySequence__TLbZ2GqL3Zio1f8bNpj2NA_Content;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_TNodeTable__RKuYIY5Phq1xnepo5DZI2g tyObject_TNodeTable__RKuYIY5Phq1xnepo5DZI2g;
typedef struct tySequence__GH1mmNKNA2QP4n1tnxJf1w tySequence__GH1mmNKNA2QP4n1tnxJf1w;
typedef struct tySequence__GH1mmNKNA2QP4n1tnxJf1w_Content tySequence__GH1mmNKNA2QP4n1tnxJf1w_Content;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef struct tyObject_PProccolonObjectType___BUXHs9a6Ck9awUko3NbJ3Fyg tyObject_PProccolonObjectType___BUXHs9a6Ck9awUko3NbJ3Fyg;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tySequence__TEgqV1E9aHqnwBUoeXjBI9aA tySequence__TEgqV1E9aHqnwBUoeXjBI9aA;
typedef struct tySequence__TEgqV1E9aHqnwBUoeXjBI9aA_Content tySequence__TEgqV1E9aHqnwBUoeXjBI9aA_Content;
typedef struct tyObject_Table__tro5f9chxPVpES1mQpDwZtQ tyObject_Table__tro5f9chxPVpES1mQpDwZtQ;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA;
typedef struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg;
typedef struct tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw;
typedef struct tySequence__fnH5Zt4fsGx0AgDTOw8pKw tySequence__fnH5Zt4fsGx0AgDTOw8pKw;
typedef struct tySequence__fnH5Zt4fsGx0AgDTOw8pKw_Content tySequence__fnH5Zt4fsGx0AgDTOw8pKw_Content;
typedef struct tyObject_Table__lPs28yjGTxD0LzUoPspSBQ tyObject_Table__lPs28yjGTxD0LzUoPspSBQ;
typedef struct tySequence__Fc8Q26tsngy2yxcpyrnT4Q tySequence__Fc8Q26tsngy2yxcpyrnT4Q;
typedef struct tySequence__Fc8Q26tsngy2yxcpyrnT4Q_Content tySequence__Fc8Q26tsngy2yxcpyrnT4Q_Content;
typedef struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA;
typedef struct tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA;
typedef struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA tySequence__ZeWVlH6DqG79b1pTDhrrUYA;
typedef struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content;
typedef struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA;
typedef struct tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg;
typedef struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA tySequence__E0kio2ZnplNTuln9bsnljSA;
typedef struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content tySequence__E0kio2ZnplNTuln9bsnljSA_Content;
typedef struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw_Content tySequence__7lEisrXlQEzwtUKW5pzRCw_Content;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA tySequence__hTEiKNj3evQAjIXUI21elA;
typedef struct tySequence__hTEiKNj3evQAjIXUI21elA_Content tySequence__hTEiKNj3evQAjIXUI21elA_Content;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q tySequence__xOJ2kx2lq9bBfIm3IXnde3Q;
typedef struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content;
typedef struct tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA;
typedef struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw;
typedef struct tySequence__FGxE1Nuen6pVDc58PZudJw tySequence__FGxE1Nuen6pVDc58PZudJw;
typedef struct tySequence__FGxE1Nuen6pVDc58PZudJw_Content tySequence__FGxE1Nuen6pVDc58PZudJw_Content;
typedef struct tyTuple__7xc1P89akJWzo77UAKrb3aA tyTuple__7xc1P89akJWzo77UAKrb3aA;
typedef struct tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A;
typedef struct tyObject_TNodePair__KE5IEbxbTGxhrXo6rzddjQ tyObject_TNodePair__KE5IEbxbTGxhrXo6rzddjQ;
typedef struct tyObject_VmArgs__PuiloXB3J4yNffJquqRVvg tyObject_VmArgs__PuiloXB3J4yNffJquqRVvg;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyTuple__ZQn9aE2eP9aC9aAInis8k8aDQ tyTuple__ZQn9aE2eP9aC9aAInis8k8aDQ;
typedef struct tyTuple__y6bKAf9a9aaVwun6lVDxSX7g tyTuple__y6bKAf9a9aaVwun6lVDxSX7g;
typedef struct tyObject_VmProcInfo__Jux30icZSrOlvcFTG81Ljg tyObject_VmProcInfo__Jux30icZSrOlvcFTG81Ljg;
typedef struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg;
struct tySequence__9c9aWmheGsuf9aHtY7gTnUcPA {
  NI len; tySequence__9c9aWmheGsuf9aHtY7gTnUcPA_Content* p;
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* prc;
	tySequence__9c9aWmheGsuf9aHtY7gTnUcPA slots;
	tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ* next;
	NI comesFrom;
	tySequence__qwqHTkRvwhrRyENtudHQ7g safePoints;
};
struct tyObject_Profiler__YI4zs2CaXXndlYireD0I8A {
	NF tEnter;
	tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ* tos;
};
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 tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ {
	RootObj Sup;
	tyObject_IdGeneratorcolonObjectType___G9bSmxY5z1At9bXNKpE9bKuug* idgen;
};
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
  NI len; tySequence__YdLNCDKYeipzJx3I8Xw82Q_Content* p;
};
struct tySequence__TLbZ2GqL3Zio1f8bNpj2NA {
  NI len; tySequence__TLbZ2GqL3Zio1f8bNpj2NA_Content* p;
};
struct tySequence__GH1mmNKNA2QP4n1tnxJf1w {
  NI len; tySequence__GH1mmNKNA2QP4n1tnxJf1w_Content* p;
};
struct tyObject_TNodeTable__RKuYIY5Phq1xnepo5DZI2g {
	NI counter;
	tySequence__GH1mmNKNA2QP4n1tnxJf1w data;
	NIM_BOOL ignoreTypes;
};
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg {
  NI len; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content* p;
};
typedef NU8 tyEnum_TEvalMode__sQljSFf0fjnsNV1fpgXakg;
typedef NU8 tySet_tyEnum_TSandboxFlag__II2KpGKWwJH9bdjbBum5d1g;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct tySequence__TEgqV1E9aHqnwBUoeXjBI9aA {
  NI len; tySequence__TEgqV1E9aHqnwBUoeXjBI9aA_Content* p;
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
  NI len; tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content* p;
};
struct tyObject_Table__tro5f9chxPVpES1mQpDwZtQ {
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og data;
	NI counter;
};
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tySequence__fnH5Zt4fsGx0AgDTOw8pKw {
  NI len; tySequence__fnH5Zt4fsGx0AgDTOw8pKw_Content* p;
};
struct tySequence__Fc8Q26tsngy2yxcpyrnT4Q {
  NI len; tySequence__Fc8Q26tsngy2yxcpyrnT4Q_Content* p;
};
struct tyObject_Table__lPs28yjGTxD0LzUoPspSBQ {
	tySequence__Fc8Q26tsngy2yxcpyrnT4Q data;
	NI counter;
};
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA {
  NI len; tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content* p;
};
typedef NI tyArray__k7D0lwfLmYccbQxUd49bbcQ[34];
struct tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA {
	NI elems;
	NI counter;
	NI max;
	tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* head;
	tySequence__ZeWVlH6DqG79b1pTDhrrUYA data;
	tyArray__k7D0lwfLmYccbQxUd49bbcQ a;
};
struct tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew {
	tyObject_TPassContext__QQOybmyOwFn29csyFzTSLNQ Sup;
	tySequence__YdLNCDKYeipzJx3I8Xw82Q code;
	tySequence__TLbZ2GqL3Zio1f8bNpj2NA debug;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* globals;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constants;
	tyObject_TNodeTable__RKuYIY5Phq1xnepo5DZI2g contstantTab;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg types;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* currentExceptionA;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* currentExceptionB;
	NI exceptionInstr;
	tyObject_PProccolonObjectType___BUXHs9a6Ck9awUko3NbJ3Fyg* prc;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* module;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* callsite;
	tyEnum_TEvalMode__sQljSFf0fjnsNV1fpgXakg mode;
	tySet_tyEnum_TSandboxFlag__II2KpGKWwJH9bdjbBum5d1g features;
	NIM_BOOL traceActive;
	NI loopIterations;
	NI callDepth;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA comesFromHeuristic;
	tySequence__TEgqV1E9aHqnwBUoeXjBI9aA callbacks;
	tyObject_Table__tro5f9chxPVpES1mQpDwZtQ callbackIndex;
	NimStringV2 errorFlag;
	tyObject_IdentCachecolonObjectType___ieLwK4T49bbUIZTTVH9cycZA* cache;
	tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config;
	tyObject_ModuleGraphcolonObjectType___TuJBn0NOJllZfOUYECIyKw* graph;
	NI oldErrorCount;
	tyObject_Profiler__YI4zs2CaXXndlYireD0I8A profiler;
	NI* templInstCounter;
	tySequence__fnH5Zt4fsGx0AgDTOw8pKw vmstateDiff;
	tyObject_Table__lPs28yjGTxD0LzUoPspSBQ procToCodePos;
	NIM_BOOL cannotEval;
	tyObject_PackedSet__uMCH0vzAEgrsmOKwCWxFrA locals;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
typedef NU8 tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw;
typedef NU8 tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw;
struct tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA {
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw targetCPU;
	tyEnum_TSystemCPU__3f9cinURS2hpZEHtBX69bm9cw hostCPU;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw targetOS;
	tyEnum_TSystemOS__Ze8KQVBa9adXItTgDtW0Iqw hostOS;
	NI intSize;
	NI floatSize;
	NI ptrSize;
	NimStringV2 tnl;
};
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU64 tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A;
typedef NU8 tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw;
struct tySequence__E0kio2ZnplNTuln9bsnljSA {
  NI len; tySequence__E0kio2ZnplNTuln9bsnljSA_Content* p;
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  NI len; tySequence__7lEisrXlQEzwtUKW5pzRCw_Content* p;
};
struct tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A {
	tySequence__7lEisrXlQEzwtUKW5pzRCw data;
	NI counter;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA {
  NI len; tySequence__hTEiKNj3evQAjIXUI21elA_Content* p;
};
struct tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA trackPos;
	NIM_BOOL trackPosAttached;
	tySet_tyEnum_TErrorOutput__wGgqZXVnY1wkKEe8EL9cL9aw errorOutputs;
	tySequence__E0kio2ZnplNTuln9bsnljSA msgContext;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastError;
	tyObject_Table__PBlYIBD9bHKBu5FQE5lPn7A filenameToIndexTbl;
	tySequence__hTEiKNj3evQAjIXUI21elA fileInfos;
	NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ;
typedef NU8 tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ;
typedef NU8 tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg;
typedef NU8 tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw;
typedef NU8 tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
typedef NU32 tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng;
typedef NU8 tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA;
typedef NU8 tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw[13];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw;
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q {
  NI len; tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content* p;
};
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___UyASNXAqAMRY5zJmcRD9ccA* result_p0, void* ClE_0);
void* ClE_0;
} tyProc__QQyR5yGA47tr5TwLxcC4Gw;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringV2 output_p0, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* config_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1, NimStringV2 msg_p2, tyEnum_Severity__mHEDvws7FmOtnFhcQsM8UA severity_p3, void* ClE_0);
void* ClE_0;
} tyProc__DA9aR62IikoxFqfC5rIT9cuw;
struct tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw backend;
	tyObject_Target__GzbDkV2u8Pgzlf9azvC43FA target;
	NI linesCompiled;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	tySet_tyEnum_TGlobalOption__bV0ebQD3RnR6keJ3pWsG8A globalOptions;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* macrosToExpand;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* arcToExpand;
	tyObject_MsgConfig__E1VAUnnaNIOngCdEgTI2Dw m;
	tyEnum_FilenameOption__o3jmnnVs6HdBg5KcNAzYiQ filenameOption;
	NimStringV2 unitSep;
	NI evalTemplateCounter;
	NI evalMacroCounter;
	NI8 exitcode;
	tyEnum_Command__juUdcDlEGhwCRcct3jVHmQ cmd;
	NimStringV2 cmdInput;
	NIM_BOOL projectIsCmd;
	NIM_BOOL implicitCmd;
	tyEnum_TGCMode__WW4nMw6ktfZDxJ6q84Mivg selectedGC;
	tyEnum_ExceptionSystem__dJ6sXW7k8NDYNNBUjVZmnw exc;
	NIM_BOOL hintProcessingDots;
	NI verbosity;
	NI numberOfProcessors;
	NF lastCmdTime;
	tyEnum_SymbolFilesOption__2eyIIreuRXhYT9buPPZbBYA symbolFiles;
	NI spellSuggestMax;
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw cppDefines;
	NimStringV2 headerFile;
	NimStringV2 nimbasePattern;
	tySet_tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ features;
	tySet_tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA legacyFeatures;
	NimStringV2 arguments;
	tyEnum_IdeCmd__mZiSMTDWSAKKDbZfXDQwng ideCmd;
	tyEnum_TSystemCC__A5wZwpTXF1SiKGvwgH1wrA cCompiler;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw modifiedyNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw cmdlineNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw foreignPackageNotes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw notes;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw warningAsErrors;
	tySet_tyEnum_TMsgKind__4CaO62Zp2vRXWqMPzLEOAw mainPackageNotes;
	NI mainPackageId;
	NI errorCounter;
	NI hintCounter;
	NI warnCounter;
	NI errorMax;
	NI maxLoopIterationsVM;
	NI maxCallDepthVM;
	NIM_BOOL isVmTrace;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* configVars;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* symbols;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* packageCache;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ nimblePaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ searchPaths;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lazyPaths;
	NimStringV2 outFile;
	NimStringV2 outDir;
	NimStringV2 jsonBuildFile;
	NimStringV2 prefixDir;
	NimStringV2 libpath;
	NimStringV2 nimcacheDir;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* dllOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* moduleOverrides;
	tyObject_StringTableObj__eKsdjq89aDBcvVY68b206Qg* cfileSpecificOptions;
	NimStringV2 projectName;
	NimStringV2 projectPath;
	NimStringV2 projectFull;
	NIM_BOOL projectIsStdin;
	NimStringV2 stdinFile;
	tySet_tyEnum_StdOrrKind__so1PI9cHP1cN622ePtqa0yw lastMsgWasDot;
	NI32 projectMainIdx;
	NI32 projectMainIdx2;
	NimStringV2 command;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ commandArgs;
	NimStringV2 commandLine;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ extraCmds;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitImports;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ implicitIncludes;
	NimStringV2 docSeeSrcUrl;
	NimStringV2 docRoot;
	NimStringV2 docCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ configFiles;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cIncludes;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ cLinkedLibs;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ externalToLink;
	NimStringV2 linkOptionsCmd;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ compileOptionsCmd;
	NimStringV2 linkOptions;
	NimStringV2 compileOptions;
	NimStringV2 cCompilerPath;
	tySequence__xOJ2kx2lq9bBfIm3IXnde3Q toCompile;
	tyProc__QQyR5yGA47tr5TwLxcC4Gw suggestionResultHook;
	NI suggestVersion;
	NI suggestMaxResults;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA lastLineInfo;
	tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
	tyProc__DA9aR62IikoxFqfC5rIT9cuw structuredErrorHook;
	NimStringV2 cppCustomNamespace;
	NimStringV2 nimMainPrefix;
	tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* vmProfileData;
	NIM_BOOL expandProgress;
	NI expandLevels;
	NimStringV2 expandNodeResult;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA expandPosition;
	NimStringV2 currentConfigDir;
	NI clientProcessId;
};
struct tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ {
	tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* data;
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ;
typedef NU8 tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw {
	tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ k;
	tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg storage;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lode;
	NimStringV2 snippet;
};
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
struct tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw {
	NF time;
	NI count;
};
struct tySequence__FGxE1Nuen6pVDc58PZudJw {
  NI len; tySequence__FGxE1Nuen6pVDc58PZudJw_Content* p;
};
struct tyObject_Table__g39amaj5esSUbnvSF2f9bVgg {
	tySequence__FGxE1Nuen6pVDc58PZudJw data;
	NI counter;
};
struct tyTuple__7xc1P89akJWzo77UAKrb3aA {
	NI Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
	tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw Field2;
};
typedef NU8 tyEnum_TRegisterKind__2gkFU0hIZHaIAvsaFxbBdA;
struct tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A {
	tyEnum_TRegisterKind__2gkFU0hIZHaIAvsaFxbBdA kind;
union{
	NI64 intVal;
	NF floatVal;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* node;
	tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A* regAddr;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** nodeAddr;
};
};
struct tySequence__9c9aWmheGsuf9aHtY7gTnUcPA_Content { NI cap; tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q_Content { NI cap; NU64 data[SEQ_DECL_SIZE]; };
struct tySequence__TLbZ2GqL3Zio1f8bNpj2NA_Content { NI cap; tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA data[SEQ_DECL_SIZE]; };
struct tyObject_TNodePair__KE5IEbxbTGxhrXo6rzddjQ {
	NI h;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* key;
	NI val;
};
struct tySequence__GH1mmNKNA2QP4n1tnxJf1w_Content { NI cap; tyObject_TNodePair__KE5IEbxbTGxhrXo6rzddjQ data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__PuiloXB3J4yNffJquqRVvg* args_p0, void* ClE_0);
void* ClE_0;
} tyProc__c9bXGQkBnyyGGVw063jrwZw;
struct tySequence__TEgqV1E9aHqnwBUoeXjBI9aA_Content { NI cap; tyProc__c9bXGQkBnyyGGVw063jrwZw data[SEQ_DECL_SIZE]; };
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
	NI Field0;
	NimStringV2 Field1;
	NI Field2;
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og_Content { NI cap; tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE]; };
struct tyTuple__ZQn9aE2eP9aC9aAInis8k8aDQ {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* Field0;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* Field1;
};
struct tySequence__fnH5Zt4fsGx0AgDTOw8pKw_Content { NI cap; tyTuple__ZQn9aE2eP9aC9aAInis8k8aDQ data[SEQ_DECL_SIZE]; };
struct tyObject_VmProcInfo__Jux30icZSrOlvcFTG81Ljg {
	NI32 pc;
	NI32 usedRegisters;
};
struct tyTuple__y6bKAf9a9aaVwun6lVDxSX7g {
	NI Field0;
	NI Field1;
	tyObject_VmProcInfo__Jux30icZSrOlvcFTG81Ljg Field2;
};
struct tySequence__Fc8Q26tsngy2yxcpyrnT4Q_Content { NI cap; tyTuple__y6bKAf9a9aaVwun6lVDxSX7g data[SEQ_DECL_SIZE]; };
struct tySequence__ZeWVlH6DqG79b1pTDhrrUYA_Content { NI cap; tyObject_TrunkcolonObjectType___lmbdIZwAo9agPlTE1wBREkA* data[SEQ_DECL_SIZE]; };
struct tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NimStringV2 Field1;
};
struct tySequence__E0kio2ZnplNTuln9bsnljSA_Content { NI cap; tyTuple__ji9a7IXpM9cONa0mh0VGCVrQ 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_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw {
	NimStringV2 fullPath;
	NimStringV2 projPath;
	NimStringV2 shortName;
	NimStringV2 quotedName;
	NimStringV2 quotedFullName;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ lines;
	NimStringV2 dirtyFile;
	NimStringV2 hash;
	NIM_BOOL dirty;
};
struct tySequence__hTEiKNj3evQAjIXUI21elA_Content { NI cap; tyObject_TFileInfo__xPdjmgevOVG8T0Aq8BK7jw data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
typedef NU8 tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ;
struct tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg {
	NimStringV2 nimname;
	NimStringV2 cname;
	NimStringV2 obj;
	tySet_tyEnum_CfileFlag__qhMBL5cBz484papsb5WgFQ flags;
	NimStringV2 customArgs;
};
struct tySequence__xOJ2kx2lq9bBfIm3IXnde3Q_Content { NI cap; tyObject_Cfile__DANcxQKXbKf7Ve5cK3l3Wg data[SEQ_DECL_SIZE]; };
struct tySequence__FGxE1Nuen6pVDc58PZudJw_Content { NI cap; tyTuple__7xc1P89akJWzo77UAKrb3aA data[SEQ_DECL_SIZE]; };
struct tyObject_VmArgs__PuiloXB3J4yNffJquqRVvg {
	NI ra;
	NI rb;
	NI rc;
	tyObject_TFullReg__kL8NONjyku1Uli8eXEVZ0A* slots;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* currentException;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA currentLineInfo;
};
N_LIB_PRIVATE N_NIMCALL(NF, cpuTime__pureZtimes_u5215)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___options_u889)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg** dest_p0, tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* src_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vmprofiler_u94)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vmprofiler_u497)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw val_p2);
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);
static N_INLINE(void, pluseq___pureZstrutils_u2535)(NF* x_p0, NF y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw*, X5BX5D___vmprofiler_u1630)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u886)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(NI, len__vmprofiler_u1960)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* t_p0);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u32)(NI hcode_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1742)(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(NimStringV2, nsuAlignString)(NimStringV2 s_p0, NI count_p1, NIM_CHAR padding_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u9)(NI xX60gensym0__p0);
static N_INLINE(NimStringV2, toFileLineCol__msgs_u707)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toMsgFilename__msgs_u688)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, NI32 fileIdx_p1);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_u187)(NimStringV2* result_p0, NI64 x_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_u2229)(tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1);
static const struct {
  NI cap; NIM_CHAR data[34+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_2 = { 34 | NIM_STRLIT_FLAG, "\012prof:     \302\265s    #instr  location" };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_3 = {34, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_2};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_4 = { 2 | NIM_STRLIT_FLAG, "  " };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_5 = {2, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_4};
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_6 = {2, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_4};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_7 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_8 = {0, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_7};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_9 = { 1 | NIM_STRLIT_FLAG, "(" };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_10 = {1, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_9};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_11 = { 2 | NIM_STRLIT_FLAG, ", " };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_12 = {2, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_11};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_13 = { 1 | NIM_STRLIT_FLAG, ")" };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_14 = {1, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_13};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__I0wckmaPYx4om2FQ6YfxMA_15 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__I0wckmaPYx4om2FQ6YfxMA_16 = {1, (NimStrPayload*)&TM__I0wckmaPYx4om2FQ6YfxMA_15};
extern NIM_BOOL nimInErrorMode__system_u4143;
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(void, pluseq___pureZstrutils_u2535)(NF* x_p0, NF y_p1) {
	(*x_p0) = ((NF)((*x_p0)) + (NF)(y_p1));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4143);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, leaveImpl__vmprofiler_u41)(tyObject_Profiler__YI4zs2CaXXndlYireD0I8A* prof_p0, tyObject_TCtx__FHLmhXedV9bg0OyLunsHRew* c_p1) {
	tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ* tos_1;
	tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* data_1;
	NF tLeave_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	tos_1 = NIM_NIL;
	data_1 = NIM_NIL;
	tLeave_1 = cpuTime__pureZtimes_u5215();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	tos_1 = (*prof_p0).tos;
	eqcopy___options_u889(&data_1, (*(*(*c_p1).config).vmProfileData).data);
	{
		while (1) {
			if (!!((tos_1 == ((tyObject_TStackFrame__a20zU43j9cYHpYOOr1c2hZQ*) NIM_NIL)))) goto LA3;
			{
				tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA li_1;
				tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw* T14_;
				if (!!(((*tos_1).prc == ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL)))) goto LA6_;
				li_1 = (*(*tos_1).prc).info;
				{
					NIM_BOOL T10_;
					tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw T13_;
					T10_ = (NIM_BOOL)0;
					T10_ = contains__vmprofiler_u94(data_1, li_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (!!(T10_)) goto LA11_;
					nimZeroMem((void*)(&T13_), sizeof(tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw));
					X5BX5Deq___vmprofiler_u497(data_1, li_1, T13_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA11_: ;
				T14_ = (tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw*)0;
				T14_ = X5BX5D___vmprofiler_u1630(data_1, li_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				pluseq___pureZstrutils_u2535((&(*T14_).time), ((NF)(tLeave_1) - (NF)((*prof_p0).tEnter)));
				{
					tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw* T19_;
					if (!(tos_1 == (*prof_p0).tos)) goto LA17_;
					T19_ = (tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw*)0;
					T19_ = X5BX5D___vmprofiler_u1630(data_1, li_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					(*T19_).count += ((NI)1);
				}
LA17_: ;
			}
LA6_: ;
			tos_1 = (*tos_1).next;
		} LA3: ;
	}
	{
		LA1_:;
	}
	{
		eqdestroy___options_u886(data_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u32)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	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_u1742)(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_u1742(((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_: ;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_u204)(NimStringV2* result_p0, NI x_p1) {
	addInt__stdZprivateZdigitsutils_u187(result_p0, ((NI64) (x_p1)));
}
static N_INLINE(NimStringV2, toFileLineCol__msgs_u707)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info_p1) {
	NimStringV2 result;
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	result = TM__I0wckmaPYx4om2FQ6YfxMA_8;
	colontmpD_ = toMsgFilename__msgs_u688(conf_p0, info_p1.fileIndex);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
	{
		if (!(((NI)0) < ((NI) (info_p1.line)))) goto LA4_;
		prepareAdd((&result), 1);
appendString((&result), TM__I0wckmaPYx4om2FQ6YfxMA_10);
		addInt__stdZprivateZdigitsutils_u204((&result), ((NI) (info_p1.line)));
		{
			if (!(((NI)0) < (NI)(((NI) (info_p1.col)) + ((NI)1)))) goto LA8_;
			prepareAdd((&result), 2);
appendString((&result), TM__I0wckmaPYx4om2FQ6YfxMA_12);
			addInt__stdZprivateZdigitsutils_u204((&result), (NI)(((NI) (info_p1.col)) + ((NI)1)));
		}
LA8_: ;
		prepareAdd((&result), 1);
appendString((&result), TM__I0wckmaPYx4om2FQ6YfxMA_14);
	}
LA4_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dump__vmprofiler_u1894)(tyObject_ConfigRefcolonObjectType___S9atckdgEHYT7qfQK9cvzJOg* conf_p0, tyObject_ProfileDatacolonObjectType___R9cEb9cNTzPRldVmD9bCDO0xQ* pd_p1) {
	NimStringV2 result;
	tyObject_Table__g39amaj5esSUbnvSF2f9bVgg* data_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	data_1 = NIM_NIL;
	eqcopy___options_u889(&data_1, (*pd_p1).data);
	result = TM__I0wckmaPYx4om2FQ6YfxMA_3;
	{
		NI i_1;
		NI i_2;
		i_1 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				NimStringV2 colontmpD_;
				NimStringV2 colontmpD__2;
				NimStringV2 colontmpD__3;
				NimStringV2 colontmpD__4;
				NimStringV2 colontmpD__5;
				NimStringV2 colontmpD__6;
				NF tMax_1;
				tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw infoMax_1;
				tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA flMax_1;
				NimStringV2 T24_;
				if (!(i_2 < ((NI)32))) goto LA4;
				colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
				colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
				colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
				colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
				i_1 = i_2;
				tMax_1 = (NF)0;
				nimZeroMem((void*)(&infoMax_1), sizeof(tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw));
				nimZeroMem((void*)(&flMax_1), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
				{
					tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA fl_1;
					tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw info_1;
					NI L_1;
					nimZeroMem((void*)(&fl_1), sizeof(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA));
					nimZeroMem((void*)(&info_1), sizeof(tyObject_ProfileInfo__RQcB2XBA7ZMf3l5GNRevKw));
					L_1 = len__vmprofiler_u1960(data_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
					{
						NI h_1;
						NI colontmp_;
						NI T8_;
						NI res_1;
						h_1 = (NI)0;
						colontmp_ = (NI)0;
						T8_ = ((*data_1).data.len-1);
						colontmp_ = T8_;
						res_1 = ((NI)0);
						{
							while (1) {
								if (!(res_1 <= colontmp_)) goto LA10;
								h_1 = ((NI) (res_1));
								{
									NIM_BOOL T13_;
									T13_ = (NIM_BOOL)0;
									T13_ = isFilled__pureZcollectionsZtables_u32((*data_1).data.p->data[h_1].Field0);
									if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
									if (!T13_) goto LA14_;
									fl_1 = (*data_1).data.p->data[h_1].Field1;
									info_1 = (*data_1).data.p->data[h_1].Field2;
									{
										if (!(infoMax_1.time < info_1.time)) goto LA18_;
										infoMax_1 = info_1;
										flMax_1 = fl_1;
									}
LA18_: ;
								}
LA14_: ;
								res_1 += ((NI)1);
							} LA10: ;
						}
					}
				}
				{
					if (!(infoMax_1.count == ((NI)0))) goto LA22_;
					eqdestroy___system_u2691(colontmpD__6);
					eqdestroy___system_u2691(colontmpD__5);
					eqdestroy___system_u2691(colontmpD__4);
					eqdestroy___system_u2691(colontmpD__3);
					eqdestroy___system_u2691(colontmpD__2);
					eqdestroy___system_u2691(colontmpD_);
					goto LA2;
				}
LA22_: ;
				T24_.len = 0; T24_.p = NIM_NIL;
				colontmpD_ = dollar___systemZdollars_u9((((NI) (((NI64) (((NF)(infoMax_1.time) * (NF)(1000000.0))))))));
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				colontmpD__2 = nsuAlignString(colontmpD_, ((NI)10), 32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				colontmpD__3 = dollar___systemZdollars_u9(infoMax_1.count);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				colontmpD__4 = nsuAlignString(colontmpD__3, ((NI)10), 32);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				colontmpD__5 = toFileLineCol__msgs_u707(conf_p0, flMax_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				T24_ = rawNewString(colontmpD__2.len + colontmpD__4.len + colontmpD__5.len + 5);
appendString((&T24_), TM__I0wckmaPYx4om2FQ6YfxMA_5);
appendString((&T24_), colontmpD__2);
appendString((&T24_), colontmpD__4);
appendString((&T24_), TM__I0wckmaPYx4om2FQ6YfxMA_6);
appendString((&T24_), colontmpD__5);
appendString((&T24_), TM__I0wckmaPYx4om2FQ6YfxMA_16);
				colontmpD__6 = T24_;
				prepareAdd((&result), colontmpD__6.len + 0);
appendString((&result), colontmpD__6);
				del__vmprofiler_u2229(data_1, flMax_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				i_2 += ((NI)1);
				{
					LA5_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__6);
					eqdestroy___system_u2691(colontmpD__5);
					eqdestroy___system_u2691(colontmpD__4);
					eqdestroy___system_u2691(colontmpD__3);
					eqdestroy___system_u2691(colontmpD__2);
					eqdestroy___system_u2691(colontmpD_);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA4: ;
		}
	} LA2: ;
	{
		LA1_:;
	}
	{
		eqdestroy___options_u886(data_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
