text: /* Generated by Nim Compiler v1.0.11 */
  /*   (c) 2019 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  #define NIM_INTBITS 32
  
  #include "nimbase.h"
  #include <string.h>
  #include <setjmp.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
  #define nimfr_(x, y)
  #define nimln_(x, y)
  typedef struct tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
  typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A tyTuple__JfHvHzMrhKkWAUvQKe0i1A;
  typedef struct tyObject_Env_cmdlinehelperdotnim___diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_cmdlinehelperdotnim___diB2NTuAIWY0FO9c5IUJRGg;
  typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
  typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
  typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
  typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
  typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
  typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
  typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
  typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
  typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
  typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
  typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
  typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
  typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
  typedef struct Exception Exception;
  typedef struct RootObj RootObj;
  typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
  typedef struct TSafePoint TSafePoint;
  typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
  typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
  typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
  typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
  typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
  typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
  typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
  typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
  typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
  typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
  typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
  typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
  typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
  typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
  typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
  typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
  typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
  typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
  typedef struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ tySequence__DfgJFJEYoj4YBAHLZPl5lQ;
  typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
  typedef struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg;
  typedef struct tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ;
  typedef struct tySequence__9brg1xNurxcus33lU4IE1Dw tySequence__9brg1xNurxcus33lU4IE1Dw;
  typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
  typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
  typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
  typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
  typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
  typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
  typedef struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ tySequence__bWZXqEvLFwhLvAqSRoFNgQ;
  typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
  typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
  typedef struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA;
  typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
  typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
  typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
  typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
  typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
  typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
  typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
  typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
  typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
  typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
  typedef struct tySequence__PzqTLBFNawCGiqTk0UORYw tySequence__PzqTLBFNawCGiqTk0UORYw;
  typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
  typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
  typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
  typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
  typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
  typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
  typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
  typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
  typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
  typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
  typedef struct tyTuple__quA39a2QdEQU9cSEIUSibApQ tyTuple__quA39a2QdEQU9cSEIUSibApQ;
  typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
  typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
  typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
  typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
  typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
  typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
  typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
  typedef struct tyTuple__euPCXX9bc3XzndEhYlqNS7g tyTuple__euPCXX9bc3XzndEhYlqNS7g;
  typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
  typedef NU8 tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA;
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, void* ClE_0);
  void* ClE_0;
  } tyProc__i9bFoqtqxp04BtVm7kl4aWw;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, void* ClE_0);
  void* ClE_0;
  } tyProc__8Pq7MMcEYdoHud6JxiCxig;
  struct tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg {
  NIM_BOOL suggestMode;
  NIM_BOOL supportsStdinFile;
  tyProc__i9bFoqtqxp04BtVm7kl4aWw processCmdLine;
  tyProc__8Pq7MMcEYdoHud6JxiCxig mainCommand;
  };
  typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
  typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
  typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
  typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
  struct TNimType {
  NI size;
  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A {
  void* Field0;
  tyObject_Env_cmdlinehelperdotnim___diB2NTuAIWY0FO9c5IUJRGg* Field1;
  };
  typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
  typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
  struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
  tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
  tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
  NI intSize;
  NI floatSize;
  NI ptrSize;
  NimStringDesc* tnl;
  };
  typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
  typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
  NU16 line;
  NI16 col;
  NI32 fileIndex;
  };
  typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
  struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
  tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
  NI counter;
  };
  struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
  NIM_BOOL trackPosAttached;
  tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
  tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
  tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
  tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
  NI32 systemFileIdx;
  };
  typedef NU8 tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw;
  typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
  typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
  struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
  tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
  NI counter;
  };
  typedef NU16 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
  typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
  typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
  typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
  typedef NU64 tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
  void* ClE_0;
  } tyProc__QYEVXrYc9beQ379crS3rzqRA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
  void* ClE_0;
  } tyProc__Q1W5D85O9cNu3iq9cZ9alS9aWA;
  typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
  void* ClE_0;
  } tyProc__22mgIiTBBoqNe1T0FSw9ahQ;
  struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
  tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
  NI linesCompiled;
  tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
  tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
  tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
  NI evalTemplateCounter;
  NI evalMacroCounter;
  NI8 exitcode;
  tyEnum_TCommands__VH3ghgQVwLSg3krOAoXigw cmd;
  tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
  NI verbosity;
  NI numberOfProcessors;
  NimStringDesc* evalExpr;
  NF lastCmdTime;
  tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
  tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
  NimStringDesc* headerFile;
  tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
  tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
  NimStringDesc* arguments;
  tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
  NIM_BOOL oldNewlines;
  tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
  tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ enableNotes;
  tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ disableNotes;
  tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ foreignPackageNotes;
  tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ notes;
  tySet_tyEnum_TMsgKind__aF3wrShfYWgzGfsrtvM3hQ mainPackageNotes;
  NI mainPackageId;
  NI errorCounter;
  NI hintCounter;
  NI warnCounter;
  NI errorMax;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
  NimStringDesc* outFile;
  NimStringDesc* outDir;
  NimStringDesc* prefixDir;
  NimStringDesc* libpath;
  NimStringDesc* nimcacheDir;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
  tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
  NimStringDesc* projectName;
  NimStringDesc* projectPath;
  NimStringDesc* projectFull;
  NIM_BOOL projectIsStdin;
  NI32 projectMainIdx;
  NimStringDesc* command;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
  NimStringDesc* commandLine;
  NIM_BOOL keepComments;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
  NimStringDesc* docSeeSrcUrl;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
  NimStringDesc* linkOptionsCmd;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
  NimStringDesc* linkOptions;
  NimStringDesc* compileOptions;
  NimStringDesc* cCompilerPath;
  tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
  tyProc__QYEVXrYc9beQ379crS3rzqRA suggestionResultHook;
  NI suggestVersion;
  NI suggestMaxResults;
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
  tyProc__Q1W5D85O9cNu3iq9cZ9alS9aWA writelnHook;
  tyProc__22mgIiTBBoqNe1T0FSw9ahQ structuredErrorHook;
  NimStringDesc* cppCustomNamespace;
  };
  typedef N_CLOSURE_PTR(void, TM__BxyDeRCaUtiykBhMyyq9cqA_6) (tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
  struct RootObj {
  TNimType* m_type;
  };
  struct Exception {
    RootObj Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
  NU raiseId;
  Exception* up;
  };
  typedef struct {
  N_NIMCALL_PTR(NIM_BOOL, ClP_0) (Exception* e, void* ClE_0);
  void* ClE_0;
  } tyProc__NT9bSe2DDkjdtx7j9aov2Z6g;
  struct TSafePoint {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  NIM_BOOL hasRaiseAction;
  tyProc__NT9bSe2DDkjdtx7j9aov2Z6g raiseAction;
  };
  struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
  NI refcount;
  TNimType* typ;
  };
  struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
  void* bottom;
  };
  struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
  NI len;
  NI cap;
  tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
  };
  typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SiRwrEKZdLgxqz9a9aoVBglg[512];
  typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
  typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
  typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
  typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
  struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
  tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
  };
  typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
  struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
  tyArray__0aOLqZchNi8nWtMTi8ND8w link;
  NI key;
  NI upperBound;
  NI level;
  };
  struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
  tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
  NI Field1;
  };
  typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
  struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
  NI len;
  tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
  };
  struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
  NI minLargeObj;
  NI maxLargeObj;
  tyArray__SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
  NU32 flBitmap;
  tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
  tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
  tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
  NI currMem;
  NI maxMem;
  NI freeMem;
  NI occ;
  NI lastSize;
  tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
  NIM_BOOL locked;
  NIM_BOOL blockChunkSizeIncrease;
  NI nextChunkSize;
  tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
  tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
  };
  struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
  NI stackScans;
  NI cycleCollections;
  NI maxThreshold;
  NI maxStackSize;
  NI maxStackCells;
  NI cycleTableSize;
  NI64 maxPause;
  };
  struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
  NI counter;
  NI max;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
  tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
  };
  struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
  tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
  NI cycleThreshold;
  NI zctThreshold;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
  NI recGcLock;
  tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
  tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
  tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
  tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
  NI gcThreadId;
  };
  struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  };
  typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
  typedef N_CLOSURE_PTR(void, TM__BxyDeRCaUtiykBhMyyq9cqA_14) (tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA pass, NimStringDesc* cmd, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
  typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
  struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
  NI counter;
  tySequence__DfgJFJEYoj4YBAHLZPl5lQ* data;
  };
  typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
  struct tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg {
  NI elems;
  NI counter;
  NI max;
  tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* head;
  tySequence__9brg1xNurxcus33lU4IE1Dw* data;
  tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
  };
  struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
  tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
  NI counter;
  };
  struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
  tySequence__kxu4GK0onha2t9bo86mdVAg* data;
  NI counter;
  };
  typedef struct {
  N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
  void* ClE_0;
  } tyProc__xdLb0cyzx3FuM6Q4NnRTpQ;
  typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__OLX364rHC66WkzRbMp49aQg[64];
  typedef tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* tyArray__6GDJmNRiFxkWAAdMgUie8g[70];
  struct tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA {
  char dummy;
  };
  struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
  tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
  NI counter;
  };
  struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
  tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
  NI counter;
  };
  typedef N_NIMCALL_PTR(tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w*, tyProc__c6vdo1yHyj19b9bS17tijS2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
  typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__d5yEkT9aXkAtHvVerr7IeCQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, NI32 fileIdx);
  typedef N_NIMCALL_PTR(void, tyProc__sP1I7TbCn358eLy9bX4IphA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* m, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
  tySequence__23SMqauuRsbDANhthj9bWlA* data;
  NI counter;
  };
  struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
  tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
  NI counter;
  };
  struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
  tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
  NI counter;
  };
  typedef N_NIMCALL_PTR(void, tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
  struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
  tySequence__DfgJFJEYoj4YBAHLZPl5lQ* modules;
  tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
  tyObject_IntSet__PQrmFm4BXFkFSVOUl1ojSg deps;
  tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
  NIM_BOOL suggestMode;
  NIM_BOOL invalidTransitiveClosure;
  tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
  tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
  RootObj* backend;
  tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
  tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
  RootObj* vm;
  tyProc__xdLb0cyzx3FuM6Q4NnRTpQ doStopCompile;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* usageSym;
  tySequence__DfgJFJEYoj4YBAHLZPl5lQ* owners;
  tySequence__bWZXqEvLFwhLvAqSRoFNgQ* methods;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* systemModule;
  tyArray__OLX364rHC66WkzRbMp49aQg sysTypes;
  tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
  tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
  tyArray__6GDJmNRiFxkWAAdMgUie8g intTypeCache;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opContains;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* opNot;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
  tyObject_IncrementalCtx__sdH7TnbKACuAzE7DBabnCA incr;
  tyObject_Table__IioUJGdqPI6xC7S7QF8MBw canonTypes;
  tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
  tyProc__c6vdo1yHyj19b9bS17tijS2w importModuleCallback;
  tyProc__d5yEkT9aXkAtHvVerr7IeCQ includeFileCallback;
  tyProc__sP1I7TbCn358eLy9bX4IphA recordStmt;
  tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
  tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
  tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
  tySequence__PzqTLBFNawCGiqTk0UORYw* passes;
  tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinition;
  tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onDefinitionResolveForward;
  tyProc__R9aa9aO9cNhvWgTGK9bAAvuSRA onUsage;
  tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
  };
  typedef N_CLOSURE_PTR(void, TM__BxyDeRCaUtiykBhMyyq9cqA_16) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph);
  struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
  tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
  NimStringDesc* Field1;
  };
  struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
  NI Field0;
  NimStringDesc* Field1;
  NI32 Field2;
  };
  struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
  NimStringDesc* fullPath;
  NimStringDesc* projPath;
  NimStringDesc* shortName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
  tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
  tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
  NimStringDesc* dirtyFile;
  NimStringDesc* hash;
  NIM_BOOL dirty;
  };
  struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
  NI Field0;
  NimStringDesc* Field1;
  };
  typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
  struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
  NimStringDesc* nimname;
  NimStringDesc* cname;
  NimStringDesc* obj;
  tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
  };
  struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
  NCSTRING procname;
  NI line;
  NCSTRING filename;
  };
  struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
  NI Field0;
  NI32 Field1;
  tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
  };
  struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
  NI Field0;
  NI32 Field1;
  NI32 Field2;
  };
  struct tyTuple__quA39a2QdEQU9cSEIUSibApQ {
  tySequence__DfgJFJEYoj4YBAHLZPl5lQ* Field0;
  tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
  };
  typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
  struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
  NI Field0;
  tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
  };
  struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
  NI Field0;
  NI Field1;
  tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
  };
  struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
  NI Field0;
  NimStringDesc* Field1;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
  };
  struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
  NI Field0;
  NimStringDesc* Field1;
  NI64 Field2;
  };
  struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
  tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
  NI entries;
  };
  struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
  NI Field0;
  NimStringDesc* Field1;
  tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
  };
  typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__8ooe5vdoqmvpHnfXV29bP3w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* module);
  typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
  typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
  struct tyTuple__euPCXX9bc3XzndEhYlqNS7g {
  tyProc__8ooe5vdoqmvpHnfXV29bP3w Field0;
  tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
  tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
  NIM_BOOL Field3;
  };
  struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
    TGenericSeq Sup;
    tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
  };
  struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
    TGenericSeq Sup;
    tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
  };
  struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
    TGenericSeq Sup;
    tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
  };
  struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
    TGenericSeq Sup;
    tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
  };
  struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
    TGenericSeq Sup;
    NimStringDesc* data[SEQ_DECL_SIZE];
  };
  struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
    TGenericSeq Sup;
    tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
  };
  struct tySequence__uB9b75OUPRENsBAu4AnoePA {
    TGenericSeq Sup;
    tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
  };
  struct tySequence__DfgJFJEYoj4YBAHLZPl5lQ {
    TGenericSeq Sup;
    tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* data[SEQ_DECL_SIZE];
  };
  struct tySequence__9brg1xNurxcus33lU4IE1Dw {
    TGenericSeq Sup;
    tyObject_Trunk__ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
  };
  struct tySequence__48JTohSgTy339bRxHzUD8KA {
    TGenericSeq Sup;
    NI32 data[SEQ_DECL_SIZE];
  };
  struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
    TGenericSeq Sup;
    tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
  };
  struct tySequence__kxu4GK0onha2t9bo86mdVAg {
    TGenericSeq Sup;
    tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
  };
  struct tySequence__bWZXqEvLFwhLvAqSRoFNgQ {
    TGenericSeq Sup;
    tyTuple__quA39a2QdEQU9cSEIUSibApQ data[SEQ_DECL_SIZE];
  };
  struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
    TGenericSeq Sup;
    tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
  };
  struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
    TGenericSeq Sup;
    tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
  };
  struct tySequence__23SMqauuRsbDANhthj9bWlA {
    TGenericSeq Sup;
    tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
  };
  struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
    TGenericSeq Sup;
    tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
  };
  struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
    TGenericSeq Sup;
    tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
  };
  struct tySequence__PzqTLBFNawCGiqTk0UORYw {
    TGenericSeq Sup;
    tyTuple__euPCXX9bc3XzndEhYlqNS7g data[SEQ_DECL_SIZE];
  };
  struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
    TGenericSeq Sup;
    tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
  };
  N_NIMCALL(void, nimGCvisit)(void* d, NI op);
  static N_NIMCALL(void, Marker_tyRef__oQuE3daAnIJJmmxLCZ80bA)(void* p, NI op);
  N_LIB_PRIVATE N_NIMCALL(void, initDefines__hODM2As3BZvC4AAFuVvWwQ)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols);
  N_LIB_PRIVATE N_NIMCALL(void, defineSymbol__znuJizGq3isbcihOOtUY0A)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols, NimStringDesc* symbol, NimStringDesc* value);
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
  static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size);
  static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
  N_LIB_PRIVATE N_NIMCALL(void, handleStdinInput__t8RT1Qk4s0rBX8YbKQ0DBQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, canonicalizePath__9bhgFqdEZM7DoX7p3U69bQEg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* path);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
  static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(void, popSafePoint)(void);
  N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
  static N_INLINE(Exception*, getCurrentException)(void);
  N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p);
  static N_INLINE(void, popCurrentException)(void);
  N_NIMCALL(void, reraiseException)(void);
  static N_INLINE(void, nimZeroMem)(void* p, NI size);
  static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size);
  N_LIB_PRIVATE N_NIMCALL(void, splitFile__z7B4FbwzX3Y0L1EA2lLGXw)(NimStringDesc* x, tyTuple__7q7q3E6Oj24ZNVJb9aonhAg* Result);
  static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
  N_LIB_PRIVATE N_NIMCALL(void, loadConfigs__YEwEmZgkg9cjY353WcQKcEQ)(NimStringDesc* cfg, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getSystemConfigPath__20ZvyukzMEoGWloXckQXaw)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
  static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename);
  N_LIB_PRIVATE N_NIMCALL(void, runNimScript__9aK66nKYiNl2TBdU36GDs9aA)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, NimStringDesc* scriptName, NIM_BOOL freshDefines, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA)(NimStringDesc* filename);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, slash___QVqo5OOQAdrjFqBsPctklw)(NimStringDesc* base, NimStringDesc* f);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__2yh9cer0ymNRHlOOg8P7IuA)(NimStringDesc* s, NI first, NI last);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___UCoYdHlZt2oxX9ceSn0adYg)(NimStringDesc* x, NimStringDesc* y);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
  N_LIB_PRIVATE N_NIMCALL(void, initVars__LewyFn4Dwlat7Ce2QWFbZA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
  N_LIB_PRIVATE N_NIMCALL(void, rawMessage__h30HgTFwbGq0PsyHmRqZ8g)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg);
  N_LIB_PRIVATE N_NIMCALL(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ*, newModuleGraph__i9b4NK8jPhAUAsvbtMitNLw)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config);
  TNimType NTI__bzPe2PlnnyJH4wKrjRuvwg_;
  extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
  TNimType NTI__i9bFoqtqxp04BtVm7kl4aWw_;
  extern TNimType NTI__vr5DoT1jILTGdRlYv1OYpw_;
  extern TNimType NTI__HsJiUUcO9cHBdUCi0HwkSTA_;
  TNimType NTI__8Pq7MMcEYdoHud6JxiCxig_;
  TNimType NTI__oQuE3daAnIJJmmxLCZ80bA_;
  extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
  extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
  extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
  extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
  extern TSafePoint* excHandler__rqLlY5bs9atDw2OXYqJEn5g;
  extern TNimType NTI__BeJgrOdDsczOwEWOZbRfKA_;
  extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
  extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
  extern Exception* currException__9bVPeDJlYTi9bQApZpfH8wjg;
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_5, "true", 4);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_7, "-", 1);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_9, "nim.cfg", 7);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_10, "nimsuggest", 10);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_11, "config.nims", 11);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_12, "nims", 4);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_13, "e", 1);
  STRING_LITERAL(TM__BxyDeRCaUtiykBhMyyq9cqA_15, "command missing", 15);
  static N_NIMCALL(void, Marker_tyRef__oQuE3daAnIJJmmxLCZ80bA)(void* p, NI op) {
  	tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg* a;
  	a = (tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg*)p;
  	nimGCvisit((void*)(*a).processCmdLine.ClE_0, op);
  	nimGCvisit((void*)(*a).mainCommand.ClE_0, op);
  }
  N_LIB_PRIVATE N_NIMCALL(void, initDefinesProg__59abjgA38liT9axvqVqzqA1A)(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg* self, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* name) {	initDefines__hODM2As3BZvC4AAFuVvWwQ((*conf).symbols);
  	defineSymbol__znuJizGq3isbcihOOtUY0A((*conf).symbols, name, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_5));
  }
  static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {	int result;
  	result = (int)0;
  	result = memcmp(a, b, ((size_t) (size)));
  	return result;
  }
  static N_INLINE(NIM_BOOL, equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem)(void* a, void* b, NI size) {	NIM_BOOL result;
  	int T1_;
  	result = (NIM_BOOL)0;
  	T1_ = (int)0;
  	T1_ = nimCmpMem(a, b, size);
  	result = (T1_ == ((NI32) 0));
  	return result;
  }
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {	NIM_BOOL result;
  	NI alen;
  	NI blen;
  {	result = (NIM_BOOL)0;
  	alen = (a ? a->Sup.len : 0);
  	blen = (b ? b->Sup.len : 0);
  	{
  		if (!(alen == blen)) goto LA3_;
  		{
  			if (!(alen == ((NI) 0))) goto LA7_;
  			result = NIM_TRUE;
  			goto BeforeRet_;
  		}
  		LA7_: ;
  		result = equalMem__Bj9c9cm9cBM9coLsuNsT5BvZ9awsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	}BeforeRet_: ;
  	return result;
  }
  static N_INLINE(void, pushSafePoint)(TSafePoint* s) {	(*s).hasRaiseAction = NIM_FALSE;
  	(*s).prev = excHandler__rqLlY5bs9atDw2OXYqJEn5g;
  	excHandler__rqLlY5bs9atDw2OXYqJEn5g = s;
  }
  static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI) 8)))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
  }
  static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU32)((*c).refcount) - (NU32)(((NI) 8)));
  	{
  		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
  		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
  	}
  	LA3_: ;
  }
  static N_INLINE(void, asgnRef)(void** dest, void* src) {	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
  		if (!!((src == NIM_NIL))) goto LA3_;
  		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
  		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
  		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
  	}
  	LA8_: ;
  	(*dest) = src;
  }
  static N_INLINE(void, popSafePoint)(void) {	excHandler__rqLlY5bs9atDw2OXYqJEn5g = (*excHandler__rqLlY5bs9atDw2OXYqJEn5g).prev;
  }
  static N_INLINE(Exception*, getCurrentException)(void) {	Exception* result;
  	result = (Exception*)0;
  	result = currException__9bVPeDJlYTi9bQApZpfH8wjg;
  	return result;
  }
  static N_INLINE(void, nimGCunrefNoCycle)(void* p) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
  	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
  	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
  }
  static N_INLINE(void, popCurrentException)(void) {	asgnRef((void**) (&currException__9bVPeDJlYTi9bQApZpfH8wjg), (*currException__9bVPeDJlYTi9bQApZpfH8wjg).up);
  }
  static N_INLINE(void, nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory)(void* a, int v, NI size) {	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memset(a, v, ((size_t) (size)));
  }
  static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__JE6t4x7Z3v2iVz27Nx0MRAmemory(p, ((int) 0), size);
  }
  static N_INLINE(NIM_BOOL, isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils)(NimStringDesc* x) {	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((x ? x->Sup.len : 0) == ((NI) 0));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, processCmdLineAndProjectPath__Cg1dOQGwciny9ad7gh4258w)(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg* self, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	(*self).processCmdLine.ClE_0? (*self).processCmdLine.ClP_0(((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 0), ((NimStringDesc*) NIM_NIL), conf, (*self).processCmdLine.ClE_0):((TM__BxyDeRCaUtiykBhMyyq9cqA_6)((*self).processCmdLine.ClP_0))(((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 0), ((NimStringDesc*) NIM_NIL), conf);
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (*self).supportsStdinFile;
  		if (!(T3_)) goto LA4_;
  		T3_ = eqStrings((*conf).projectName, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_7));
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		handleStdinInput__t8RT1Qk4s0rBX8YbKQ0DBQ(conf);
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		TSafePoint TM__BxyDeRCaUtiykBhMyyq9cqA_8;
  		tyTuple__7q7q3E6Oj24ZNVJb9aonhAg p;
  		NimStringDesc* dir;
  		NimStringDesc* T20_;
  		if (!!((((*conf).projectName ? (*conf).projectName->Sup.len : 0) == 0))) goto LA8_;
  		pushSafePoint(&TM__BxyDeRCaUtiykBhMyyq9cqA_8);
  		TM__BxyDeRCaUtiykBhMyyq9cqA_8.status = setjmp(TM__BxyDeRCaUtiykBhMyyq9cqA_8.context);
  		if (TM__BxyDeRCaUtiykBhMyyq9cqA_8.status == 0) {
  			asgnRef((void**) (&(*conf).projectFull), canonicalizePath__9bhgFqdEZM7DoX7p3U69bQEg(conf, (*conf).projectName));
  			popSafePoint();
  		}
  		else {
  			popSafePoint();
  			if (isObj(getCurrentException()->Sup.m_type, (&NTI__BeJgrOdDsczOwEWOZbRfKA_))) {
  				NimStringDesc* T13_;
  				TM__BxyDeRCaUtiykBhMyyq9cqA_8.status = 0;
  				T13_ = (NimStringDesc*)0;
  				T13_ = (*conf).projectFull; (*conf).projectFull = copyStringRC1((*conf).projectName);
  				if (T13_) nimGCunrefNoCycle(T13_);
  				popCurrentException();
  			}
  		}
  		if (TM__BxyDeRCaUtiykBhMyyq9cqA_8.status != 0) reraiseException();
  		nimZeroMem((void*)(&p), sizeof(tyTuple__7q7q3E6Oj24ZNVJb9aonhAg));
  		splitFile__z7B4FbwzX3Y0L1EA2lLGXw((*conf).projectFull, (&p));
  		{
  			NIM_BOOL T16_;
  			T16_ = (NIM_BOOL)0;
  			T16_ = isEmpty__ZNWb41IwBSHCUIjlqlGoxgpathutils(p.Field0);
  			if (!T16_) goto LA17_;
  			dir = nosgetCurrentDir();
  		}
  		goto LA14_;
  		LA17_: ;
  		{
  			dir = p.Field0;
  		}
  		LA14_: ;
  		asgnRef((void**) (&(*conf).projectPath), canonicalizePath__9bhgFqdEZM7DoX7p3U69bQEg(conf, dir));
  		T20_ = (NimStringDesc*)0;
  		T20_ = (*conf).projectName; (*conf).projectName = copyStringRC1(p.Field1);
  		if (T20_) nimGCunrefNoCycle(T20_);
  	}
  	goto LA1_;
  	LA8_: ;
  	{
  		NimStringDesc* T22_;
  		T22_ = (NimStringDesc*)0;
  		T22_ = nosgetCurrentDir();
  		asgnRef((void**) (&(*conf).projectPath), canonicalizePath__9bhgFqdEZM7DoX7p3U69bQEg(conf, T22_));
  	}
  	LA1_: ;
  }
  static N_INLINE(NIM_BOOL, fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos)(NimStringDesc* filename) {	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = nosexistsFile(filename);
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, loadConfigsAndRunMainCommand__Zakie0oLAV2ve6DuAr547w)(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg* self, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	NIM_BOOL result;
  	tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
  {	result = (NIM_BOOL)0;
  	loadConfigs__YEwEmZgkg9cjY353WcQKcEQ(((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_9), cache, conf);
  	{
  		NimStringDesc* T5_;
  		if (!(*self).suggestMode) goto LA3_;
  		T5_ = (NimStringDesc*)0;
  		T5_ = (*conf).command; (*conf).command = copyStringRC1(((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_10));
  		if (T5_) nimGCunrefNoCycle(T5_);
  	}
  	LA3_: ;
  	{
  		NimStringDesc* pX60gensym1152120_;
  		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 15))&63U)))!=0))) goto LA8_;
  		pX60gensym1152120_ = getSystemConfigPath__20ZvyukzMEoGWloXckQXaw(conf, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  		{
  			NIM_BOOL T12_;
  			T12_ = (NIM_BOOL)0;
  			T12_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152120_);
  			if (!T12_) goto LA13_;
  			runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152120_, NIM_FALSE, conf);
  		}
  		LA13_: ;
  	}
  	LA8_: ;
  	{
  		NimStringDesc* pX60gensym1152128_;
  		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 17))&63U)))!=0))) goto LA17_;
  		pX60gensym1152128_ = getUserConfigPath__JWCVdcP9a8q9acNEgF9aYr8sA(((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  		{
  			NIM_BOOL T21_;
  			T21_ = (NIM_BOOL)0;
  			T21_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152128_);
  			if (!T21_) goto LA22_;
  			runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152128_, NIM_FALSE, conf);
  		}
  		LA22_: ;
  	}
  	LA17_: ;
  	{
  		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 18))&63U)))!=0))) goto LA26_;
  		{
  			NimStringDesc* dir;
  			NimStringDesc* colontmp_;
  			dir = (NimStringDesc*)0;
  			colontmp_ = (NimStringDesc*)0;
  			colontmp_ = (*conf).projectPath;
  			{
  				NimStringDesc* current;
  				if (!NIM_FALSE) goto LA31_;
  				current = copyString(colontmp_);
  				{
  					NimStringDesc* pX60gensym1152137_;
  					if (!NIM_FALSE) goto LA35_;
  					dir = colontmp_;
  					pX60gensym1152137_ = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  					{
  						NIM_BOOL T39_;
  						T39_ = (NIM_BOOL)0;
  						T39_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152137_);
  						if (!T39_) goto LA40_;
  						runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152137_, NIM_FALSE, conf);
  					}
  					LA40_: ;
  				}
  				LA35_: ;
  				{
  					while (1) {
  						NimStringDesc* pX60gensym1152137__2;
  						{
  							NIM_BOOL T46_;
  							T46_ = (NIM_BOOL)0;
  							T46_ = nosisRootDir(current);
  							if (!T46_) goto LA47_;
  							goto LA42;
  						}
  						LA47_: ;
  						current = nosparentDir(current);
  						dir = current;
  						pX60gensym1152137__2 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  						{
  							NIM_BOOL T51_;
  							T51_ = (NIM_BOOL)0;
  							T51_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152137__2);
  							if (!T51_) goto LA52_;
  							runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152137__2, NIM_FALSE, conf);
  						}
  						LA52_: ;
  					}
  				} LA42: ;
  			}
  			goto LA29_;
  			LA31_: ;
  			{
  				{
  					NI i;
  					NI colontmp__2;
  					NI res;
  					i = (NI)0;
  					colontmp__2 = (NI)0;
  					colontmp__2 = (NI)((colontmp_ ? colontmp_->Sup.len : 0) - ((NI) 2));
  					res = ((NI) 0);
  					{
  						while (1) {
  							if (!(res <= colontmp__2)) goto LA57;
  							i = res;
  							{
  								NIM_BOOL T60_;
  								NIM_BOOL T62_;
  								NimStringDesc* pX60gensym1152137__3;
  								T60_ = (NIM_BOOL)0;
  								T60_ = (((NU8)(colontmp_->data[i])) == ((NU8)(47)) || ((NU8)(colontmp_->data[i])) == ((NU8)(47)));
  								if (!(T60_)) goto LA61_;
  								T62_ = (NIM_BOOL)0;
  								T62_ = (i == ((NI) 0));
  								if (T62_) goto LA63_;
  								T62_ = !((((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47)) || ((NU8)(colontmp_->data[(NI)(i - ((NI) 1))])) == ((NU8)(47))));
  								LA63_: ;
  								T60_ = T62_;
  								LA61_: ;
  								if (!T60_) goto LA64_;
  								dir = substr__2yh9cer0ymNRHlOOg8P7IuA(colontmp_, ((NI) 0), i);
  								pX60gensym1152137__3 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  								{
  									NIM_BOOL T68_;
  									T68_ = (NIM_BOOL)0;
  									T68_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152137__3);
  									if (!T68_) goto LA69_;
  									runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152137__3, NIM_FALSE, conf);
  								}
  								LA69_: ;
  							}
  							LA64_: ;
  							res += ((NI) 1);
  						} LA57: ;
  					}
  				}
  				{
  					NimStringDesc* pX60gensym1152137__4;
  					if (!NIM_FALSE) goto LA73_;
  					dir = colontmp_;
  					pX60gensym1152137__4 = slash___QVqo5OOQAdrjFqBsPctklw(dir, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  					{
  						NIM_BOOL T77_;
  						T77_ = (NIM_BOOL)0;
  						T77_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152137__4);
  						if (!T77_) goto LA78_;
  						runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152137__4, NIM_FALSE, conf);
  					}
  					LA78_: ;
  				}
  				LA73_: ;
  			}
  			LA29_: ;
  		}
  	}
  	LA26_: ;
  	{
  		NimStringDesc* pX60gensym1152145_;
  		if (!!((((*conf).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 16))&63U)))!=0))) goto LA82_;
  		pX60gensym1152145_ = slash___QVqo5OOQAdrjFqBsPctklw((*conf).projectPath, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_11));
  		{
  			NIM_BOOL T86_;
  			T86_ = (NIM_BOOL)0;
  			T86_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152145_);
  			if (!T86_) goto LA87_;
  			runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152145_, NIM_FALSE, conf);
  		}
  		LA87_: ;
  	}
  	LA82_: ;
  	{
  		NimStringDesc* scriptFile;
  		scriptFile = noschangeFileExt((*conf).projectFull, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_12));
  		{
  			NimStringDesc* pX60gensym1152148_;
  			if (!!((*self).suggestMode)) goto LA92_;
  			pX60gensym1152148_ = scriptFile;
  			{
  				NIM_BOOL T96_;
  				T96_ = (NIM_BOOL)0;
  				T96_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152148_);
  				if (!T96_) goto LA97_;
  				runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152148_, NIM_FALSE, conf);
  			}
  			LA97_: ;
  			{
  				NIM_BOOL T101_;
  				T101_ = (NIM_BOOL)0;
  				T101_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(scriptFile);
  				if (!(T101_)) goto LA102_;
  				T101_ = eqeq___UCoYdHlZt2oxX9ceSn0adYg(scriptFile, (*conf).projectFull);
  				LA102_: ;
  				if (!T101_) goto LA103_;
  				{
  					NimStringDesc* T109_;
  					if (!(((*conf).command ? (*conf).command->Sup.len : 0) == 0)) goto LA107_;
  					T109_ = (NimStringDesc*)0;
  					T109_ = (*conf).command; (*conf).command = copyStringRC1(((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_13));
  					if (T109_) nimGCunrefNoCycle(T109_);
  					result = NIM_FALSE;
  					goto BeforeRet_;
  				}
  				goto LA105_;
  				LA107_: ;
  				{
  					NimStringDesc* T111_;
  					T111_ = (NimStringDesc*)0;
  					T111_ = nsuNormalize((*conf).command);
  					if (!eqStrings(T111_, ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_13))) goto LA112_;
  					result = NIM_FALSE;
  					goto BeforeRet_;
  				}
  				goto LA105_;
  				LA112_: ;
  				LA105_: ;
  			}
  			LA103_: ;
  		}
  		goto LA90_;
  		LA92_: ;
  		{
  			{
  				NIM_BOOL T117_;
  				NimStringDesc* pX60gensym1152178_;
  				T117_ = (NIM_BOOL)0;
  				T117_ = eqeq___UCoYdHlZt2oxX9ceSn0adYg(scriptFile, (*conf).projectFull);
  				if (!!(T117_)) goto LA118_;
  				pX60gensym1152178_ = scriptFile;
  				{
  					NIM_BOOL T122_;
  					T122_ = (NIM_BOOL)0;
  					T122_ = fileExists__2KLbGVKGy3qOdtJ4Bb1ADgos(pX60gensym1152178_);
  					if (!T122_) goto LA123_;
  					runNimScript__9aK66nKYiNl2TBdU36GDs9aA(cache, pX60gensym1152178_, NIM_FALSE, conf);
  				}
  				LA123_: ;
  			}
  			goto LA115_;
  			LA118_: ;
  			{
  			}
  			LA115_: ;
  		}
  		LA90_: ;
  	}
  	initVars__LewyFn4Dwlat7Ce2QWFbZA(conf);
  	(*self).processCmdLine.ClE_0? (*self).processCmdLine.ClP_0(((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 1), ((NimStringDesc*) NIM_NIL), conf, (*self).processCmdLine.ClE_0):((TM__BxyDeRCaUtiykBhMyyq9cqA_14)((*self).processCmdLine.ClP_0))(((tyEnum_TCmdLinePass__IiBn9cB6WYIMDHOT44O82wA) 1), ((NimStringDesc*) NIM_NIL), conf);
  	{
  		if (!(((*conf).command ? (*conf).command->Sup.len : 0) == 0)) goto LA128_;
  		rawMessage__h30HgTFwbGq0PsyHmRqZ8g(conf, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 9), ((NimStringDesc*) &TM__BxyDeRCaUtiykBhMyyq9cqA_15));
  	}
  	LA128_: ;
  	graph = newModuleGraph__i9b4NK8jPhAUAsvbtMitNLw(cache, conf);
  	(*graph).suggestMode = (*self).suggestMode;
  	(*self).mainCommand.ClE_0? (*self).mainCommand.ClP_0(graph, (*self).mainCommand.ClE_0):((TM__BxyDeRCaUtiykBhMyyq9cqA_16)((*self).mainCommand.ClP_0))(graph);
  	result = NIM_TRUE;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, compiler_cmdlinehelperDatInit000)(void) {
  static TNimNode* TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[4];
  static TNimNode* TM__BxyDeRCaUtiykBhMyyq9cqA_3_2[2];
  static TNimNode* TM__BxyDeRCaUtiykBhMyyq9cqA_4_2[2];
  static TNimNode TM__BxyDeRCaUtiykBhMyyq9cqA_0[11];
  NTI__bzPe2PlnnyJH4wKrjRuvwg_.size = sizeof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg);
  NTI__bzPe2PlnnyJH4wKrjRuvwg_.kind = 18;
  NTI__bzPe2PlnnyJH4wKrjRuvwg_.base = 0;
  TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[0] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[1];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[1].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[1].offset = offsetof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg, suggestMode);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[1].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[1].name = "suggestMode";
  TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[1] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[2];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[2].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[2].offset = offsetof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg, supportsStdinFile);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[2].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[2].name = "supportsStdinFile";
  TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[2] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[3];
  NTI__i9bFoqtqxp04BtVm7kl4aWw_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTI__i9bFoqtqxp04BtVm7kl4aWw_.kind = 18;
  NTI__i9bFoqtqxp04BtVm7kl4aWw_.base = 0;
  TM__BxyDeRCaUtiykBhMyyq9cqA_3_2[0] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[5];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[5].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[5].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[5].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[5].name = "Field0";
  TM__BxyDeRCaUtiykBhMyyq9cqA_3_2[1] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[6];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[6].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[6].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[6].typ = (&NTI__HsJiUUcO9cHBdUCi0HwkSTA_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[6].name = "Field1";
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[4].len = 2; TM__BxyDeRCaUtiykBhMyyq9cqA_0[4].kind = 2; TM__BxyDeRCaUtiykBhMyyq9cqA_0[4].sons = &TM__BxyDeRCaUtiykBhMyyq9cqA_3_2[0];
  NTI__i9bFoqtqxp04BtVm7kl4aWw_.node = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[4];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[3].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[3].offset = offsetof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg, processCmdLine);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[3].typ = (&NTI__i9bFoqtqxp04BtVm7kl4aWw_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[3].name = "processCmdLine";
  TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[3] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[7];
  NTI__8Pq7MMcEYdoHud6JxiCxig_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTI__8Pq7MMcEYdoHud6JxiCxig_.kind = 18;
  NTI__8Pq7MMcEYdoHud6JxiCxig_.base = 0;
  TM__BxyDeRCaUtiykBhMyyq9cqA_4_2[0] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[9];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[9].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[9].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[9].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[9].name = "Field0";
  TM__BxyDeRCaUtiykBhMyyq9cqA_4_2[1] = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[10];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[10].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[10].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[10].typ = (&NTI__HsJiUUcO9cHBdUCi0HwkSTA_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[10].name = "Field1";
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[8].len = 2; TM__BxyDeRCaUtiykBhMyyq9cqA_0[8].kind = 2; TM__BxyDeRCaUtiykBhMyyq9cqA_0[8].sons = &TM__BxyDeRCaUtiykBhMyyq9cqA_4_2[0];
  NTI__8Pq7MMcEYdoHud6JxiCxig_.node = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[8];
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[7].kind = 1;
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[7].offset = offsetof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg, mainCommand);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[7].typ = (&NTI__8Pq7MMcEYdoHud6JxiCxig_);
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[7].name = "mainCommand";
  TM__BxyDeRCaUtiykBhMyyq9cqA_0[0].len = 4; TM__BxyDeRCaUtiykBhMyyq9cqA_0[0].kind = 2; TM__BxyDeRCaUtiykBhMyyq9cqA_0[0].sons = &TM__BxyDeRCaUtiykBhMyyq9cqA_2_4[0];
  NTI__bzPe2PlnnyJH4wKrjRuvwg_.node = &TM__BxyDeRCaUtiykBhMyyq9cqA_0[0];
  NTI__oQuE3daAnIJJmmxLCZ80bA_.size = sizeof(tyObject_NimProgcolonObjectType___bzPe2PlnnyJH4wKrjRuvwg*);
  NTI__oQuE3daAnIJJmmxLCZ80bA_.kind = 22;
  NTI__oQuE3daAnIJJmmxLCZ80bA_.base = (&NTI__bzPe2PlnnyJH4wKrjRuvwg_);
  NTI__oQuE3daAnIJJmmxLCZ80bA_.marker = Marker_tyRef__oQuE3daAnIJJmmxLCZ80bA;
  }
  
  