/* Generated by Nim Compiler v1.0.6 */
/*   (c) 2019 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <stdio.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
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 RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg {
tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inp;
tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ state;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
NI indent;
NI emitPar;
NimStringDesc* x;
tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* outp;
NIM_CHAR subsChar;
NIM_CHAR nimDirective;
NimStringDesc* emit;
NimStringDesc* conc;
NimStringDesc* toStr;
NI curly;
NI bracket;
NI par;
NIM_BOOL pendingExprLine;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
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;
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 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;
};
struct RootObj {
TNimType* m_type;
};
typedef NU8 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ;
typedef struct {
N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
void* ClE_0;
} tyProc__vqN8F2I9cNb9agHf5QUpC2lg;
struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
  RootObj Sup;
tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
FILE* f;
NimStringDesc* s;
NI rd;
NI wr;
NI lineOffset;
tyProc__vqN8F2I9cNb9agHf5QUpC2lg repl;
};
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
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 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];
};
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__q6yS31W9c9bTxOv5YvOB1n7gmsgs)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__NPagzbOMpGo9aqJmfnDrITg)(NI32 fileInfoIdx, NI line, NI col);
N_LIB_PRIVATE N_NIMCALL(NI32, fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, llStreamOpen__jzv9bBGhVSDMwEPDegAAa2w)(NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, charArg__zwtWXyb9bxwLC8jk2KVKyAQ)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* name, NI pos, NIM_CHAR default_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, strArg__Nf4wML3oKvfTVSpIoKYpNg)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* name, NI pos, NimStringDesc* default_0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, llStreamReadLine__7RtV9aJubfIMSghb2POqd9ag)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, NimStringDesc** line);
N_LIB_PRIVATE N_NIMCALL(void, parseLine__Seop6SJMf7a68kj2jl0nsQ)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(void, newLine__Seop6SJMf7a68kj2jl0nsQ_2)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p);
N_LIB_PRIVATE N_NIMCALL(void, llStreamWrite__qdgWNgp9caij5krvzhfMCdQ)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, NimStringDesc* data);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
static N_INLINE(NimStringDesc*, spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils)(NI n);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, scanPar__LxubVMiL9c9aXekwPUmMO8iA)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p, NI d);
static N_INLINE(NI, subInt)(NI a, NI b);
static N_INLINE(NIM_BOOL, withInExpr__0z6MLNAfAxEgGF4TC7H4Gwfilter_tmpl)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endsWith__sberXLoaiFnBA9azzLZ5m2Q)(NimStringDesc* x, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw s);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_NIMCALL(NI, hashString)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(void, localError__NF6kBGchnhQYPbCedyefVA)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__iGg0RIKceRvsmvq8FUHOEw)(NimStringDesc* s, NI first);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__wAzSnEu9cCHHjvPQlWBZUeQ)(NimStringDesc* s, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuToHex)(NI64 x, NI len);
N_LIB_PRIVATE N_NIMCALL(void, llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, NIM_CHAR data);
N_LIB_PRIVATE N_NIMCALL(void, llStreamClose__pzACjlxXGrH2rRQU5WrSmg)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_2, "subschar", 8);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_3, "metachar", 8);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_4, "emit", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_5, "result.add", 10);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_6, "conc", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_7, " & ", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_8, "tostring", 8);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_9, "$", 1);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_11, "\012", 1);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__paI0W78l0CRDBLjAHJxn6w_22 = {
0x00, 0x00, 0x00, 0x00, 0x70, 0xbc, 0x00, 0x50,
0x01, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_23, "end", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_24, "if", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_25, "when", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_26, "try", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_27, "while", 5);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_28, "for", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_29, "block", 5);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_30, "case", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_31, "proc", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_32, "iterator", 8);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_33, "converter", 9);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_34, "macro", 5);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_35, "template", 8);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_36, "method", 6);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_37, "func", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_38, "elif", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_39, "of", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_40, "else", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_41, "except", 6);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_42, "finally", 7);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_43, "let", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_44, "var", 3);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_45, "const", 5);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_46, "type", 4);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_48, "\'end\' does not close a control flow construct", 45);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_49, "#end", 4);
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__paI0W78l0CRDBLjAHJxn6w_52 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_55, "\"", 1);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_56, "(\"", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_58, "\\x", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_60, "\\\\", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_62, "\\\'", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_64, "\\\"", 2);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_73, "expected closing \'}\'", 20);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_76, "invalid expression", 18);
STRING_LITERAL(TM__paI0W78l0CRDBLjAHJxn6w_78, "\\n\"", 3);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(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__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q, newLineInfo__q6yS31W9c9bTxOv5YvOB1n7gmsgs)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, NimStringDesc* filename, NI line, NI col) {	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q result;
	NI32 T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
	T1_ = (NI32)0;
	T1_ = fileInfoIdx__3HRSVgYDcnQTolSZGx1zjA(conf, filename);
	result = newLineInfo__NPagzbOMpGo9aqJmfnDrITg(T1_, line, col);
	return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringDesc*, spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils)(NI n) {	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = nsuRepeatChar(32, n);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, newLine__Seop6SJMf7a68kj2jl0nsQ_2)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p) {	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = nsuRepeatChar(41, ((NI)chckRange((*p).emitPar, ((NI) 0), ((NI) IL64(9223372036854775807)))));
	llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T1_);
	(*p).emitPar = ((NI) 0);
	{
		if (!((NU16)(((NU16) 1)) < (NU16)((*p).info.line))) goto LA4_;
		llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_11));
	}
	LA4_: ;
	{
		NimStringDesc* T10_;
		if (!(*p).pendingExprLine) goto LA8_;
		T10_ = (NimStringDesc*)0;
		T10_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI) 2));
		llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T10_);
		(*p).pendingExprLine = NIM_FALSE;
	}
	LA8_: ;
}
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, scanPar__LxubVMiL9c9aXekwPUmMO8iA)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p, NI d) {	NI i;
	i = d;
	{
		while (1) {
			NI TM__paI0W78l0CRDBLjAHJxn6w_21;
			if (!(i < ((*p).x ? (*p).x->Sup.len : 0))) goto LA2;
			if ((NU)(i) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(i,((*p).x ? (*p).x->Sup.len : 0)-1);
			switch (((NU8)((*p).x->data[i]))) {
			case 40:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_15;
				TM__paI0W78l0CRDBLjAHJxn6w_15 = addInt((*p).par, ((NI) 1));
				(*p).par = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_15);
			}
			break;
			case 41:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_16;
				TM__paI0W78l0CRDBLjAHJxn6w_16 = subInt((*p).par, ((NI) 1));
				(*p).par = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_16);
			}
			break;
			case 91:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_17;
				TM__paI0W78l0CRDBLjAHJxn6w_17 = addInt((*p).bracket, ((NI) 1));
				(*p).bracket = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_17);
			}
			break;
			case 93:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_18;
				TM__paI0W78l0CRDBLjAHJxn6w_18 = subInt((*p).bracket, ((NI) 1));
				(*p).bracket = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_18);
			}
			break;
			case 123:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_19;
				TM__paI0W78l0CRDBLjAHJxn6w_19 = addInt((*p).curly, ((NI) 1));
				(*p).curly = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_19);
			}
			break;
			case 125:
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_20;
				TM__paI0W78l0CRDBLjAHJxn6w_20 = subInt((*p).curly, ((NI) 1));
				(*p).curly = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_20);
			}
			break;
			default:
			{
			}
			break;
			}
			TM__paI0W78l0CRDBLjAHJxn6w_21 = addInt(i, ((NI) 1));
			i = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_21);
		} LA2: ;
	}
}
static N_INLINE(NIM_BOOL, withInExpr__0z6MLNAfAxEgGF4TC7H4Gwfilter_tmpl)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p) {	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = (((NI) 0) < (*p).par);
	if (T2_) goto LA3_;
	T2_ = (((NI) 0) < (*p).bracket);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = (((NI) 0) < (*p).curly);
	LA4_: ;
	result = T1_;
	return result;
}
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__9bGgqEk7RXXl6eqM9c1HdELAsystem)(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__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parseLine__Seop6SJMf7a68kj2jl0nsQ)(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg* p) {	NI j;
	NI len;
	j = ((NI) 0);
	len = ((*p).x ? (*p).x->Sup.len : 0);
	{
		while (1) {
			NIM_BOOL T3_;
			NI TM__paI0W78l0CRDBLjAHJxn6w_10;
			T3_ = (NIM_BOOL)0;
			T3_ = (j < len);
			if (!(T3_)) goto LA4_;
			if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
			T3_ = ((NU8)((*p).x->data[j]) == (NU8)(32));
			LA4_: ;
			if (!T3_) goto LA2;
			TM__paI0W78l0CRDBLjAHJxn6w_10 = addInt(j, ((NI) 1));
			j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_10);
		} LA2: ;
	}
	{
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T8_ = (((NI) 2) <= len);
		if (!(T8_)) goto LA9_;
		if ((NU)(((NI) 0)) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(((NI) 0),((*p).x ? (*p).x->Sup.len : 0)-1);
		T8_ = ((NU8)((*p).x->data[((NI) 0)]) == (NU8)((*p).nimDirective));
		LA9_: ;
		T7_ = T8_;
		if (!(T7_)) goto LA10_;
		if ((NU)(((NI) 1)) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(((NI) 1),((*p).x ? (*p).x->Sup.len : 0)-1);
		T7_ = ((NU8)((*p).x->data[((NI) 1)]) == (NU8)(63));
		LA10_: ;
		if (!T7_) goto LA11_;
		newLine__Seop6SJMf7a68kj2jl0nsQ_2(p);
	}
	goto LA5_;
	LA11_: ;
	{
		NIM_BOOL T14_;
		NI TM__paI0W78l0CRDBLjAHJxn6w_12;
		NI d;
		NimStringDesc* keyw;
		NIM_BOOL T26_;
		T14_ = (NIM_BOOL)0;
		T14_ = (j < len);
		if (!(T14_)) goto LA15_;
		if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
		T14_ = ((NU8)((*p).x->data[j]) == (NU8)((*p).nimDirective));
		LA15_: ;
		if (!T14_) goto LA16_;
		newLine__Seop6SJMf7a68kj2jl0nsQ_2(p);
		TM__paI0W78l0CRDBLjAHJxn6w_12 = addInt(j, ((NI) 1));
		j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_12);
		{
			while (1) {
				NIM_BOOL T20_;
				NI TM__paI0W78l0CRDBLjAHJxn6w_13;
				T20_ = (NIM_BOOL)0;
				T20_ = (j < len);
				if (!(T20_)) goto LA21_;
				if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
				T20_ = ((NU8)((*p).x->data[j]) == (NU8)(32));
				LA21_: ;
				if (!T20_) goto LA19;
				TM__paI0W78l0CRDBLjAHJxn6w_13 = addInt(j, ((NI) 1));
				j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_13);
			} LA19: ;
		}
		d = j;
		keyw = ((NimStringDesc*) NIM_NIL);
		{
			while (1) {
				NIM_BOOL T24_;
				NI TM__paI0W78l0CRDBLjAHJxn6w_14;
				T24_ = (NIM_BOOL)0;
				T24_ = (j < len);
				if (!(T24_)) goto LA25_;
				if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
				T24_ = (((NU8)((*p).x->data[j])) >= ((NU8)(97)) && ((NU8)((*p).x->data[j])) <= ((NU8)(122)) || ((NU8)((*p).x->data[j])) >= ((NU8)(65)) && ((NU8)((*p).x->data[j])) <= ((NU8)(90)) || ((NU8)((*p).x->data[j])) >= ((NU8)(48)) && ((NU8)((*p).x->data[j])) <= ((NU8)(57)) || ((NU8)((*p).x->data[j])) >= ((NU8)(128)) && ((NU8)((*p).x->data[j])) <= ((NU8)(255)) || ((NU8)((*p).x->data[j])) == ((NU8)(46)) || ((NU8)((*p).x->data[j])) == ((NU8)(95)));
				LA25_: ;
				if (!T24_) goto LA23;
				if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
				keyw = addChar(keyw, (*p).x->data[j]);
				TM__paI0W78l0CRDBLjAHJxn6w_14 = addInt(j, ((NI) 1));
				j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_14);
			} LA23: ;
		}
		scanPar__LxubVMiL9c9aXekwPUmMO8iA(p, j);
		T26_ = (NIM_BOOL)0;
		T26_ = withInExpr__0z6MLNAfAxEgGF4TC7H4Gwfilter_tmpl((&(*p)));
		if (T26_) goto LA27_;
		T26_ = endsWith__sberXLoaiFnBA9azzLZ5m2Q((*p).x, TM__paI0W78l0CRDBLjAHJxn6w_22);
		LA27_: ;
		(*p).pendingExprLine = T26_;
		switch (hashString(keyw) & 31) {
		case 1: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_27))) goto LA29_;
break;
		case 3: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_39))) goto LA30_;
break;
		case 6: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_30))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_34))) goto LA29_;
break;
		case 7: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_24))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_36))) goto LA29_;
break;
		case 9: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_41))) goto LA30_;
break;
		case 10: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_31))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_43))) goto LA31_;
break;
		case 12: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_44))) goto LA31_;
break;
		case 16: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_25))) goto LA29_;
break;
		case 17: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_32))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_38))) goto LA30_;
break;
		case 18: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_35))) goto LA29_;
break;
		case 19: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_28))) goto LA29_;
break;
		case 21: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_40))) goto LA30_;
break;
		case 23: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_23))) goto LA28_;
break;
		case 24: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_33))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_42))) goto LA30_;
break;
		case 26: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_45))) goto LA31_;
break;
		case 27: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_26))) goto LA29_;
break;
		case 29: 
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_29))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_37))) goto LA29_;
if (eqStrings(keyw, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_46))) goto LA31_;
break;
		}
		goto LA32_;
		LA28_: ;
		{
			NimStringDesc* T40_;
			{
				NI TM__paI0W78l0CRDBLjAHJxn6w_47;
				if (!(((NI) 2) <= (*p).indent)) goto LA37_;
				TM__paI0W78l0CRDBLjAHJxn6w_47 = subInt((*p).indent, ((NI) 2));
				(*p).indent = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_47);
			}
			goto LA35_;
			LA37_: ;
			{
				(*p).info.col = ((NI16)chckRange(j, ((NI16) -32768), ((NI16) 32767)));
				localError__NF6kBGchnhQYPbCedyefVA((*p).config, (*p).info, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_48));
			}
			LA35_: ;
			T40_ = (NimStringDesc*)0;
			T40_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((*p).indent, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T40_);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_49));
		}
		goto LA33_;
		LA29_: ;
		{
			NimStringDesc* T42_;
			NimStringDesc* T43_;
			NI TM__paI0W78l0CRDBLjAHJxn6w_50;
			T42_ = (NimStringDesc*)0;
			T42_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((*p).indent, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T42_);
			T43_ = (NimStringDesc*)0;
			T43_ = substr__iGg0RIKceRvsmvq8FUHOEw((*p).x, d);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T43_);
			TM__paI0W78l0CRDBLjAHJxn6w_50 = addInt((*p).indent, ((NI) 2));
			(*p).indent = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_50);
		}
		goto LA33_;
		LA30_: ;
		{
			NI TM__paI0W78l0CRDBLjAHJxn6w_51;
			NimStringDesc* T45_;
			NimStringDesc* T46_;
			TM__paI0W78l0CRDBLjAHJxn6w_51 = subInt((*p).indent, ((NI) 2));
			T45_ = (NimStringDesc*)0;
			T45_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((NI)(TM__paI0W78l0CRDBLjAHJxn6w_51), ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T45_);
			T46_ = (NimStringDesc*)0;
			T46_ = substr__iGg0RIKceRvsmvq8FUHOEw((*p).x, d);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T46_);
		}
		goto LA33_;
		LA31_: ;
		{
			NimStringDesc* T48_;
			NimStringDesc* T49_;
			T48_ = (NimStringDesc*)0;
			T48_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((*p).indent, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T48_);
			T49_ = (NimStringDesc*)0;
			T49_ = substr__iGg0RIKceRvsmvq8FUHOEw((*p).x, d);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T49_);
			{
				NIM_BOOL T52_;
				NI TM__paI0W78l0CRDBLjAHJxn6w_53;
				T52_ = (NIM_BOOL)0;
				T52_ = contains__wAzSnEu9cCHHjvPQlWBZUeQ((*p).x, TM__paI0W78l0CRDBLjAHJxn6w_52);
				if (!!(T52_)) goto LA53_;
				TM__paI0W78l0CRDBLjAHJxn6w_53 = addInt((*p).indent, ((NI) 2));
				(*p).indent = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_53);
			}
			LA53_: ;
		}
		goto LA33_;
		LA32_: ;
		{
			NimStringDesc* T56_;
			NimStringDesc* T57_;
			T56_ = (NimStringDesc*)0;
			T56_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((*p).indent, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T56_);
			T57_ = (NimStringDesc*)0;
			T57_ = substr__iGg0RIKceRvsmvq8FUHOEw((*p).x, d);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T57_);
		}
		LA33_: ;
		(*p).state = ((tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ) 0);
	}
	goto LA5_;
	LA16_: ;
	{
		(*p).par = ((NI) 0);
		(*p).curly = ((NI) 0);
		(*p).bracket = ((NI) 0);
		j = ((NI) 0);
		switch ((*p).state) {
		case ((tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ) 1):
		{
			NI TM__paI0W78l0CRDBLjAHJxn6w_54;
			NimStringDesc* T60_;
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).conc);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_11));
			TM__paI0W78l0CRDBLjAHJxn6w_54 = addInt((*p).indent, ((NI) 2));
			T60_ = (NimStringDesc*)0;
			T60_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((NI)(TM__paI0W78l0CRDBLjAHJxn6w_54), ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T60_);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_55));
		}
		break;
		case ((tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ) 0):
		{
			NimStringDesc* T62_;
			NI TM__paI0W78l0CRDBLjAHJxn6w_57;
			newLine__Seop6SJMf7a68kj2jl0nsQ_2(p);
			T62_ = (NimStringDesc*)0;
			T62_ = spaces__rssDy7zs9cDeoYTeCoIy0Wgstrutils(((NI)chckRange((*p).indent, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T62_);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).emit);
			llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_56));
			TM__paI0W78l0CRDBLjAHJxn6w_57 = addInt((*p).emitPar, ((NI) 1));
			(*p).emitPar = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_57);
		}
		break;
		}
		(*p).state = ((tyEnum_TParseState__TMyoReN7VAtsUpVF9bL9cXRQ) 1);
		{
			while (1) {
				if (!(j < len)) goto LA64;
				if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
				switch (((NU8)((*p).x->data[j]))) {
				case 1 ... 31:
				case 128 ... 255:
				{
					NimStringDesc* T66_;
					NI TM__paI0W78l0CRDBLjAHJxn6w_59;
					llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_58));
					if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
					T66_ = (NimStringDesc*)0;
					T66_ = nsuToHex(((NI64) (((NU8)((*p).x->data[j])))), ((NI) 2));
					llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, T66_);
					TM__paI0W78l0CRDBLjAHJxn6w_59 = addInt(j, ((NI) 1));
					j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_59);
				}
				break;
				case 92:
				{
					NI TM__paI0W78l0CRDBLjAHJxn6w_61;
					llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_60));
					TM__paI0W78l0CRDBLjAHJxn6w_61 = addInt(j, ((NI) 1));
					j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_61);
				}
				break;
				case 39:
				{
					NI TM__paI0W78l0CRDBLjAHJxn6w_63;
					llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_62));
					TM__paI0W78l0CRDBLjAHJxn6w_63 = addInt(j, ((NI) 1));
					j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_63);
				}
				break;
				case 34:
				{
					NI TM__paI0W78l0CRDBLjAHJxn6w_65;
					llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_64));
					TM__paI0W78l0CRDBLjAHJxn6w_65 = addInt(j, ((NI) 1));
					j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_65);
				}
				break;
				default:
				{
					{
						NI TM__paI0W78l0CRDBLjAHJxn6w_66;
						if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
						if (!((NU8)((*p).x->data[j]) == (NU8)((*p).subsChar))) goto LA73_;
						TM__paI0W78l0CRDBLjAHJxn6w_66 = addInt(j, ((NI) 1));
						j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_66);
						if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
						switch (((NU8)((*p).x->data[j]))) {
						case 123:
						{
							NI TM__paI0W78l0CRDBLjAHJxn6w_67;
							NI curly;
							(*p).info.col = ((NI16)chckRange(j, ((NI16) -32768), ((NI16) 32767)));
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 34);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).conc);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).toStr);
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 40);
							TM__paI0W78l0CRDBLjAHJxn6w_67 = addInt(j, ((NI) 1));
							j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_67);
							curly = ((NI) 0);
							{
								while (1) {
									if (!(j < len)) goto LA77;
									if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
									switch (((NU8)((*p).x->data[j]))) {
									case 123:
									{
										NI TM__paI0W78l0CRDBLjAHJxn6w_68;
										NI TM__paI0W78l0CRDBLjAHJxn6w_69;
										TM__paI0W78l0CRDBLjAHJxn6w_68 = addInt(j, ((NI) 1));
										j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_68);
										TM__paI0W78l0CRDBLjAHJxn6w_69 = addInt(curly, ((NI) 1));
										curly = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_69);
										llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 123);
									}
									break;
									case 125:
									{
										NI TM__paI0W78l0CRDBLjAHJxn6w_70;
										TM__paI0W78l0CRDBLjAHJxn6w_70 = addInt(j, ((NI) 1));
										j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_70);
										{
											if (!(curly == ((NI) 0))) goto LA82_;
											goto LA76;
										}
										LA82_: ;
										{
											NI TM__paI0W78l0CRDBLjAHJxn6w_71;
											if (!(((NI) 0) < curly)) goto LA86_;
											TM__paI0W78l0CRDBLjAHJxn6w_71 = subInt(curly, ((NI) 1));
											curly = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_71);
										}
										LA86_: ;
										llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 125);
									}
									break;
									default:
									{
										NI TM__paI0W78l0CRDBLjAHJxn6w_72;
										if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
										llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, (*p).x->data[j]);
										TM__paI0W78l0CRDBLjAHJxn6w_72 = addInt(j, ((NI) 1));
										j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_72);
									}
									break;
									}
								} LA77: ;
							} LA76: ;
							{
								if (!(((NI) 0) < curly)) goto LA91_;
								localError__NF6kBGchnhQYPbCedyefVA((*p).config, (*p).info, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_73));
								goto LA63;
							}
							LA91_: ;
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 41);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).conc);
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 34);
						}
						break;
						case 97 ... 122:
						case 65 ... 90:
						case 128 ... 255:
						{
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 34);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).conc);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).toStr);
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 40);
							{
								while (1) {
									NIM_BOOL T96_;
									NI TM__paI0W78l0CRDBLjAHJxn6w_74;
									T96_ = (NIM_BOOL)0;
									T96_ = (j < len);
									if (!(T96_)) goto LA97_;
									if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
									T96_ = (((NU8)((*p).x->data[j])) >= ((NU8)(97)) && ((NU8)((*p).x->data[j])) <= ((NU8)(122)) || ((NU8)((*p).x->data[j])) >= ((NU8)(65)) && ((NU8)((*p).x->data[j])) <= ((NU8)(90)) || ((NU8)((*p).x->data[j])) >= ((NU8)(48)) && ((NU8)((*p).x->data[j])) <= ((NU8)(57)) || ((NU8)((*p).x->data[j])) >= ((NU8)(128)) && ((NU8)((*p).x->data[j])) <= ((NU8)(255)) || ((NU8)((*p).x->data[j])) == ((NU8)(46)) || ((NU8)((*p).x->data[j])) == ((NU8)(95)));
									LA97_: ;
									if (!T96_) goto LA95;
									if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
									llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, (*p).x->data[j]);
									TM__paI0W78l0CRDBLjAHJxn6w_74 = addInt(j, ((NI) 1));
									j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_74);
								} LA95: ;
							}
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 41);
							llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, (*p).conc);
							llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, 34);
						}
						break;
						default:
						{
							{
								NI TM__paI0W78l0CRDBLjAHJxn6w_75;
								if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
								if (!((NU8)((*p).x->data[j]) == (NU8)((*p).subsChar))) goto LA101_;
								llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, (*p).subsChar);
								TM__paI0W78l0CRDBLjAHJxn6w_75 = addInt(j, ((NI) 1));
								j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_75);
							}
							goto LA99_;
							LA101_: ;
							{
								(*p).info.col = ((NI16)chckRange(j, ((NI16) -32768), ((NI16) 32767)));
								localError__NF6kBGchnhQYPbCedyefVA((*p).config, (*p).info, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_76));
							}
							LA99_: ;
						}
						break;
						}
					}
					goto LA71_;
					LA73_: ;
					{
						NI TM__paI0W78l0CRDBLjAHJxn6w_77;
						if ((NU)(j) >= (NU)((*p).x ? (*p).x->Sup.len : 0)) raiseIndexError2(j,((*p).x ? (*p).x->Sup.len : 0)-1);
						llStreamWrite__eHN6oO0rdFcz7KOdSd4bXw((*p).outp, (*p).x->data[j]);
						TM__paI0W78l0CRDBLjAHJxn6w_77 = addInt(j, ((NI) 1));
						j = (NI)(TM__paI0W78l0CRDBLjAHJxn6w_77);
					}
					LA71_: ;
				}
				break;
				}
			} LA64: ;
		} LA63: ;
		llStreamWrite__qdgWNgp9caij5krvzhfMCdQ((*p).outp, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_78));
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*, filterTmpl__ktXx03A4I583g1JBDSVOmw)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stdin_0, NimStringDesc* filename, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf) {	tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* result;
	tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg p;
	result = (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g*)0;
	nimZeroMem((void*)(&p), sizeof(tyObject_TTmplParser__hVXV9cC75rOvsaODz9bp1zeg));
	p.config = conf;
	p.info = newLineInfo__q6yS31W9c9bTxOv5YvOB1n7gmsgs(conf, filename, ((NI) 0), ((NI) 0));
	p.outp = llStreamOpen__jzv9bBGhVSDMwEPDegAAa2w(((NimStringDesc*) NIM_NIL));
	p.inp = stdin_0;
	p.subsChar = charArg__zwtWXyb9bxwLC8jk2KVKyAQ(conf, call, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_2), ((NI) 1), 36);
	p.nimDirective = charArg__zwtWXyb9bxwLC8jk2KVKyAQ(conf, call, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_3), ((NI) 2), 35);
	p.emit = strArg__Nf4wML3oKvfTVSpIoKYpNg(conf, call, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_4), ((NI) 3), ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_5));
	p.conc = strArg__Nf4wML3oKvfTVSpIoKYpNg(conf, call, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_6), ((NI) 4), ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_7));
	p.toStr = strArg__Nf4wML3oKvfTVSpIoKYpNg(conf, call, ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_8), ((NI) 5), ((NimStringDesc*) &TM__paI0W78l0CRDBLjAHJxn6w_9));
	p.x = rawNewString(((NI) 120));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = llStreamReadLine__7RtV9aJubfIMSghb2POqd9ag(p.inp, (&p.x));
		if (!T3_) goto LA4_;
		p.info.line = (NU16)((NU16)(p.info.line) + (NU16)(((NU16) 1)));
	}
	LA4_: ;
	{
		while (1) {
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = llStreamReadLine__7RtV9aJubfIMSghb2POqd9ag(p.inp, (&p.x));
			if (!T8_) goto LA7;
			p.info.line = (NU16)((NU16)(p.info.line) + (NU16)(((NU16) 1)));
			parseLine__Seop6SJMf7a68kj2jl0nsQ((&p));
		} LA7: ;
	}
	newLine__Seop6SJMf7a68kj2jl0nsQ_2((&p));
	result = p.outp;
	llStreamClose__pzACjlxXGrH2rRQU5WrSmg(p.inp);
	return result;
}
