/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, amd64, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing -fPIC  -I/build/nim/src/Nim-0.16.0/lib -o lib/nimcache/stdlib_pegs.o lib/nimcache/stdlib_pegs.c */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#undef linux
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Node_0qztr5Keivtxacz23lA4IA Node_0qztr5Keivtxacz23lA4IA;
typedef struct Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA;
typedef struct TY_Wjn0aMA9aB3dP6CVOwwvGJg TY_Wjn0aMA9aB3dP6CVOwwvGJg;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Captures_tZhlqR24EekS3w5Qr6WNZQ Captures_tZhlqR24EekS3w5Qr6WNZQ;
typedef struct TY_1v9bKyksXWMsm0vNwmZ4EuQ TY_1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct TY_9cWsBWKSkYcDRI59aMfjP0sw TY_9cWsBWKSkYcDRI59aMfjP0sw;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 Pegkind_r9a6rAhGclsLWkBysfmtr6Q;
typedef NU8 TY_nmiMWKVIe46vacnhAFrQvw_Set[32];
struct  Node_0qztr5Keivtxacz23lA4IA  {
Pegkind_r9a6rAhGclsLWkBysfmtr6Q kind;
union{
NimStringDesc* term;
NIM_CHAR ch;
TY_nmiMWKVIe46vacnhAFrQvw_Set* charchoice;
Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA* nt;
NI index;
TY_Wjn0aMA9aB3dP6CVOwwvGJg* sons;
} kindU;
};
typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0);
struct  TNimType  {
NI size;
Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind;
Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 Nonterminalflag_raeF9a9anryo8cnwfITE0Glw_Set;
struct  Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA  {
NimStringDesc* name;
NI line;
NI col;
Nonterminalflag_raeF9a9anryo8cnwfITE0Glw_Set flags;
Node_0qztr5Keivtxacz23lA4IA rule;
};
typedef NU8 Nonterminalflag_raeF9a9anryo8cnwfITE0Glw;
typedef Node_0qztr5Keivtxacz23lA4IA TY_0wzx9bD7iZiIhnX89aaxf7Bg[1];
typedef Node_0qztr5Keivtxacz23lA4IA TY_IpSDqxH4n0peVF4qTgPoJg[2];
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
typedef NU8 TY_S8ib5N31oJbAkqOZTlNg5Q[8192];
struct TY_1v9bKyksXWMsm0vNwmZ4EuQ {
NI Field0;
NI Field1;
};
typedef TY_1v9bKyksXWMsm0vNwmZ4EuQ TY_fGQVl7HExKS7O8hYfcMlAQ[20];
struct  Captures_tZhlqR24EekS3w5Qr6WNZQ  {
TY_fGQVl7HExKS7O8hYfcMlAQ matches;
NI ml;
NI origstart;
};
typedef NimStringDesc* TY_Qdg3zgcNlmwGTTeVxyC9bbw[20];
struct TY_9cWsBWKSkYcDRI59aMfjP0sw {
Node_0qztr5Keivtxacz23lA4IA Field0;
NimStringDesc* Field1;
};
typedef struct {
N_NIMCALL_PTR(NimStringDesc*, ClPrc) (NI match0, NI cnt0, NimStringDesc** caps0, NI caps0Len0, void* ClEnv);
void* ClEnv;
} TY_kuVtcXAXJL2ZgjFzPoOoiw;
typedef N_CLOSURE_PTR(NimStringDesc*, T_YGOrctedenU9ao6jM7xmy6g_39) (NI match0, NI cnt0, NimStringDesc** caps0, NI caps0Len0);
struct TY_Wjn0aMA9aB3dP6CVOwwvGJg {
  TGenericSeq Sup;
  Node_0qztr5Keivtxacz23lA4IA data[SEQ_DECL_SIZE];
};
struct TY_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
N_LIB_EXPORT N_CDECL(void, npegstermStr)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyString)(NimStringDesc* src0);
N_LIB_EXPORT N_CDECL(void, npegstermIgnoreCase)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegstermIgnoreStyle)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegstermChar)(NIM_CHAR t0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegscharSet)(TY_nmiMWKVIe46vacnhAFrQvw_Set s0, Node_0qztr5Keivtxacz23lA4IA* Result);
static N_NIMCALL(void, Marker_TY_DWDl83X3sWmMXGYAzF5Aug)(void* p, NI op);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newObj)(TNimType* typ0, NI size0);
N_LIB_EXPORT N_CDECL(void, npegsOrderedChoice)(Node_0qztr5Keivtxacz23lA4IA* a0, NI a0Len0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, nimrtl_nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg)(void* p, NI op);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newSeq)(TNimType* typ0, NI len0);
N_NIMCALL(void, addchoice_qURyx5Nv2W8KsnqxL9cBPXA)(Node_0qztr5Keivtxacz23lA4IA* dest0, Node_0qztr5Keivtxacz23lA4IA elem0);
static N_INLINE(NI, len_9cBHaUQpyQBLcQlYPEHxK8Apegs)(Node_0qztr5Keivtxacz23lA4IA a0);
static N_INLINE(void, add_tajfTWGbqsAYeYalZD83kQpegs)(Node_0qztr5Keivtxacz23lA4IA* d0, Node_0qztr5Keivtxacz23lA4IA s0);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
N_NIMCALL(void, genericShallowAssign)(void* dest0, void* src0, TNimType* mt0);
N_LIB_EXPORT N_CDECL(void, npegssequence)(Node_0qztr5Keivtxacz23lA4IA* a0, NI a0Len0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(void, addsequence_qURyx5Nv2W8KsnqxL9cBPXA_2)(Node_0qztr5Keivtxacz23lA4IA* dest0, Node_0qztr5Keivtxacz23lA4IA elem0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
N_LIB_EXPORT N_CDECL(void, npegsOptional)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsGreedyRep)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsSearch)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npgegsCapturedSearch)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsGreedyPosRep)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NOINLINE(void, chckNil)(void* p0);
N_NIMCALL(void, genericReset)(void* dest0, TNimType* mt0);
N_LIB_EXPORT N_CDECL(void, npegsAndPredicate)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsNotPredicate)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsCapture)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackref)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreCase)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreStyle)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_LIB_EXPORT N_CDECL(void, npegsnonterminal)(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA* n0, Node_0qztr5Keivtxacz23lA4IA* Result);
N_NIMCALL(NI, spacecost_thhtdz88TSxzimHcXnMrxQ)(Node_0qztr5Keivtxacz23lA4IA n0);
N_LIB_EXPORT N_CDECL(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*, npegsnewNonTerminal)(NimStringDesc* name0, NI line0, NI column0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
N_LIB_EXPORT N_CDECL(void, nimrtl_rtlAddZCT)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsToString)(Node_0qztr5Keivtxacz23lA4IA r0);
N_NIMCALL(void, tostraux_sdo4g6S2xvqYtEG6OihSJw)(Node_0qztr5Keivtxacz23lA4IA r0, NimStringDesc** res0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_resizeString)(NimStringDesc* dest0, NI addlen0);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
N_NIMCALL(NimStringDesc*, singlequoteesc_DZwoJxXJYe731ZwSPd9cbMw)(NimStringDesc* str0);
N_NIMCALL(NimStringDesc*, esc_HFHwkP8FH7Igr7ChV6sh2w)(NIM_CHAR c0, TY_nmiMWKVIe46vacnhAFrQvw_Set reserved0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_nimCharToStr)(NIM_CHAR x0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_nimIntToStr)(NI x0);
N_NIMCALL(NimStringDesc*, singlequoteesc_B9cR1ihwJM5pxbOFaR0RkLw)(NIM_CHAR c0);
N_NIMCALL(NimStringDesc*, charsetesc_1Tg63uyJsbVNG6YaZy0kZg)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc0);
N_NIMCALL(NI, cardSet)(TY_S8ib5N31oJbAkqOZTlNg5Q s0, NI len0);
N_NIMCALL(NimStringDesc*, charsetescaux_1Tg63uyJsbVNG6YaZy0kZg_2)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc0);
N_LIB_EXPORT N_CDECL(NI, npegsrawMatch)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA p0, NI start0, Captures_tZhlqR24EekS3w5Qr6WNZQ* c0);
N_NIMCALL(NI, runelenat_8Ayuto32FxMnanfOP52vKg)(NimStringDesc* s0, NI i0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisAlpha)(NI32 c_yCeZuZJIFeNlPDLyLEQF2A);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisLower)(NI32 c_VP3wr7KlN9cVbKPYX9cFj0qg);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisUpper)(NI32 c_yB4kTPdzj20YGThmbUmGXQ);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisTitle)(NI32 c0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nucisWhiteSpace)(NI32 c_jhq3SC3calacOmKLSYil2Q);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_XBungsmTumAhS9ay9aY1EmQQ)(NI32 a0, NI32 b0);
N_LIB_EXPORT N_CDECL(NI32, nuctoLower)(NI32 c_wyrZtC0fu1sb7U4IdpwokA);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
N_LIB_EXPORT N_CDECL(NI, npegsmatchLenCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0);
N_LIB_EXPORT N_CDECL(NI, npegsmatchLen)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatchCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatch)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0);
N_LIB_EXPORT N_CDECL(NI, npegsfindCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0);
N_LIB_EXPORT N_CDECL(TY_1v9bKyksXWMsm0vNwmZ4EuQ, npegsfindBoundsCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0);
N_LIB_EXPORT N_CDECL(NI, npegsfind)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0);
N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegsfindAll)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontains)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontainsCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsstartsWith)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA prefix0, NI start0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsendsWith)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA suffix0, NI start0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacef)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, NimStringDesc* by0);
N_LIB_EXPORT N_CDECL(void, nsuAddf)(NimStringDesc** s0, NimStringDesc* formatstr0, NimStringDesc** a0, NI a0Len0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplace)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, NimStringDesc* by0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsparallelReplace)(NimStringDesc* s0, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs0, NI subs0Len0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacecb)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, TY_kuVtcXAXJL2ZgjFzPoOoiw cb0);
N_LIB_EXPORT N_CDECL(void, npegstransformFile)(NimStringDesc* infile0, NimStringDesc* outfile0, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs0, NI subs0Len0);
N_NIMCALL(NimStringDesc*, readfile_T9cm5LIRX2tKEH9aREBZ8A0w)(NimStringDesc* filename0);
N_NIMCALL(void, writefile_c1B29b0ZdDRPHc27YaKqwaA)(NimStringDesc* filename0, NimStringDesc* content0);
N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegssplit)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sep0);
extern TNimType NTI_nmiMWKVIe46vacnhAFrQvw;
TNimType NTI_HDqWPvEAxZK51ZcfaeQEdg;
TNimType NTI_DWDl83X3sWmMXGYAzF5Aug;
TNimType NTI_0qztr5Keivtxacz23lA4IA;
TNimType NTI_r9a6rAhGclsLWkBysfmtr6Q;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg;
TNimType NTI_VMn2tGRm8B9a9cqMEec3KPEA;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA;
TNimType NTI_raeF9a9anryo8cnwfITE0Glw;
TNimType NTI_lU0PfHKIn29cxb4xJ1TaXlA;
TNimType NTI_ne9c8mGWiMWXBIOmu9cRFBTw;
extern TNimType NTI_a9bIsIkdQvQMv0xYGrfgSag;
TNimType NTI_Wjn0aMA9aB3dP6CVOwwvGJg;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ;
TNimNode* NimDT__0qztr5Keivtxacz23lA4IA_kind[34];
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_9, "", 0);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_10, "()", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_11, "\\letter", 7);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_12, "\\lower", 6);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_13, "\\upper", 6);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_14, "\\title", 6);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_15, "\\white", 6);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_16, "\\n", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_17, "\'", 1);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_18, "\\b", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_19, "\\t", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_20, "\\c", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_21, "\\l", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_22, "\\v", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_23, "\\f", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_24, "\\e", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_25, "\\a", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_26, "\\\\", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_YGOrctedenU9ao6jM7xmy6g_27 = {
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
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(T_YGOrctedenU9ao6jM7xmy6g_28, "[^", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_YGOrctedenU9ao6jM7xmy6g_29 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_YGOrctedenU9ao6jM7xmy6g_30 = {
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
;
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_31, " / ", 3);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_32, ".*", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_33, "{@}", 3);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_34, "i$", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_35, "y$", 2);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_36, " <- ", 4);
STRING_LITERAL(T_YGOrctedenU9ao6jM7xmy6g_37, "\012", 1);
NIM_CONST TY_1v9bKyksXWMsm0vNwmZ4EuQ T_YGOrctedenU9ao6jM7xmy6g_38 = {((NI) -1),
((NI) 0)}
;

N_LIB_EXPORT N_CDECL(void, npegstermStr)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		if (!!(((t0 ? t0->Sup.len : 0) == ((NI) 1)))) goto LA3;
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9);
		unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t0));
	}
	goto LA1;
	LA3: ;
	{
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12);
		(*Result).kindU.ch = t0->data[((NI) 0)];
	}
	LA1: ;
}

N_LIB_EXPORT N_CDECL(void, npegstermIgnoreCase)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10);
	unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t0));
}

N_LIB_EXPORT N_CDECL(void, npegstermIgnoreStyle)(NimStringDesc* t0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11);
	unsureAsgnRef((void**) (&(*Result).kindU.term), nimrtl_copyString(t0));
}

N_LIB_EXPORT N_CDECL(void, npegstermChar)(NIM_CHAR t0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12);
	(*Result).kindU.ch = t0;
}
static N_NIMCALL(void, Marker_TY_DWDl83X3sWmMXGYAzF5Aug)(void* p, NI op) {
	TY_nmiMWKVIe46vacnhAFrQvw_Set* a;
	a = (TY_nmiMWKVIe46vacnhAFrQvw_Set*)p;
}

N_LIB_EXPORT N_CDECL(void, npegscharSet)(TY_nmiMWKVIe46vacnhAFrQvw_Set s0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13);
	unsureAsgnRef((void**) (&(*Result).kindU.charchoice), (TY_nmiMWKVIe46vacnhAFrQvw_Set*) nimrtl_newObj((&NTI_DWDl83X3sWmMXGYAzF5Aug), sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set)));
	memcpy((void*)(*(*Result).kindU.charchoice), (NIM_CONST void*)s0, 32);
}
static N_NIMCALL(void, Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw)(void* p, NI op) {
	Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA* a;
	a = (Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*)p;
	nimrtl_nimGCvisit((void*)(*a).name, op);
	switch ((*a).rule.kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 0) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.term, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.charchoice, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.nt, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	break;
	default:
	nimrtl_nimGCvisit((void*)(*a).rule.kindU.sons, op);
	break;
	} 
}
static N_NIMCALL(void, Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg)(void* p, NI op) {
	TY_Wjn0aMA9aB3dP6CVOwwvGJg* a;
	NI LOC1;
	a = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	switch (a->data[LOC1].kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 0) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	nimrtl_nimGCvisit((void*)a->data[LOC1].kindU.term, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	nimrtl_nimGCvisit((void*)a->data[LOC1].kindU.charchoice, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	nimrtl_nimGCvisit((void*)a->data[LOC1].kindU.nt, op);
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	break;
	default:
	nimrtl_nimGCvisit((void*)a->data[LOC1].kindU.sons, op);
	break;
	} 
	}
}

static N_INLINE(NI, len_9cBHaUQpyQBLcQlYPEHxK8Apegs)(Node_0qztr5Keivtxacz23lA4IA a0) {
	NI result0;
{	result0 = (NI)0;
	result0 = (a0.kindU.sons ? a0.kindU.sons->Sup.len : 0);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(void, add_tajfTWGbqsAYeYalZD83kQpegs)(Node_0qztr5Keivtxacz23lA4IA* d0, Node_0qztr5Keivtxacz23lA4IA s0) {
	(*d0).kindU.sons = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) incrSeqV2(&((*d0).kindU.sons)->Sup, sizeof(Node_0qztr5Keivtxacz23lA4IA));
	genericShallowAssign((void*)(&(*d0).kindU.sons->data[(*d0).kindU.sons->Sup.len]), (void*)(&s0), (&NTI_0qztr5Keivtxacz23lA4IA));
	++(*d0).kindU.sons->Sup.len;
}

N_NIMCALL(void, addchoice_qURyx5Nv2W8KsnqxL9cBPXA)(Node_0qztr5Keivtxacz23lA4IA* dest0, Node_0qztr5Keivtxacz23lA4IA elem0) {
	NI L0;
	NI LOC1;
	LOC1 = (NI)0;
	LOC1 = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*dest0));
	L0 = (NI)(LOC1 - ((NI) 1));
	{
		NIM_BOOL LOC4;
		LOC4 = (NIM_BOOL)0;
		LOC4 = (((NI) 0) <= L0);
		if (!(LOC4)) goto LA5;
		LOC4 = ((*dest0).kindU.sons->data[L0].kind == ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13));
		LA5: ;
		if (!LOC4) goto LA6;
		switch (elem0.kind) {
		case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
		{
			NI LOC9;
			TY_nmiMWKVIe46vacnhAFrQvw_Set LOC10;
			LOC9 = (NI)0;
			for (LOC9 = 0; LOC9 < 32; LOC9++) 
  LOC10[LOC9] = (*(*dest0).kindU.sons->data[L0].kindU.charchoice)[LOC9] | (*elem0.kindU.charchoice)[LOC9];
			npegscharSet(LOC10, (&(*dest0).kindU.sons->data[L0]));
		}
		break;
		case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
		{
			NI LOC12;
			TY_nmiMWKVIe46vacnhAFrQvw_Set LOC13;
			TY_nmiMWKVIe46vacnhAFrQvw_Set LOC14;
			LOC12 = (NI)0;
			memset(LOC13, 0, sizeof(LOC13));
			LOC13[(NU)(((NU8)(elem0.kindU.ch)))>>3] |=(1U<<((NU)(((NU8)(elem0.kindU.ch)))&7U));
			for (LOC12 = 0; LOC12 < 32; LOC12++) 
  LOC14[LOC12] = (*(*dest0).kindU.sons->data[L0].kindU.charchoice)[LOC12] | LOC13[LOC12];
			npegscharSet(LOC14, (&(*dest0).kindU.sons->data[L0]));
		}
		break;
		default:
		{
			add_tajfTWGbqsAYeYalZD83kQpegs(dest0, elem0);
		}
		break;
		}
	}
	goto LA2;
	LA6: ;
	{
		add_tajfTWGbqsAYeYalZD83kQpegs(dest0, elem0);
	}
	LA2: ;
}

N_LIB_EXPORT N_CDECL(void, npegsOrderedChoice)(Node_0qztr5Keivtxacz23lA4IA* a0, NI a0Len0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 16);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 0));
	{
		Node_0qztr5Keivtxacz23lA4IA x_F6THkVsIzEGnhWA44eMh3Q;
		NI i_78rVDcApRkOIvKsa4Re6Yg;
		memset((void*)(&x_F6THkVsIzEGnhWA44eMh3Q), 0, sizeof(x_F6THkVsIzEGnhWA44eMh3Q));
		i_78rVDcApRkOIvKsa4Re6Yg = ((NI) 0);
		{
			while (1) {
				if (!(i_78rVDcApRkOIvKsa4Re6Yg < a0Len0)) goto LA3;
				memcpy((void*)(&x_F6THkVsIzEGnhWA44eMh3Q), (NIM_CONST void*)(&a0[i_78rVDcApRkOIvKsa4Re6Yg]), sizeof(x_F6THkVsIzEGnhWA44eMh3Q));
				{
					if (!(x_F6THkVsIzEGnhWA44eMh3Q.kind == ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 16))) goto LA6;
					{
						Node_0qztr5Keivtxacz23lA4IA y_JQjNjrJuG2iEJf9cdUvBAAQ;
						TY_Wjn0aMA9aB3dP6CVOwwvGJg* HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ;
						NI i_78rVDcApRkOIvKsa4Re6Yg_2;
						NI L_8BqAbACWoTwOyzA4E9atgMQ;
						memset((void*)(&y_JQjNjrJuG2iEJf9cdUvBAAQ), 0, sizeof(y_JQjNjrJuG2iEJf9cdUvBAAQ));
						HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)0;
						HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ = x_F6THkVsIzEGnhWA44eMh3Q.kindU.sons;
						i_78rVDcApRkOIvKsa4Re6Yg_2 = ((NI) 0);
						L_8BqAbACWoTwOyzA4E9atgMQ = (HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ ? HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ->Sup.len : 0);
						{
							while (1) {
								if (!(i_78rVDcApRkOIvKsa4Re6Yg_2 < L_8BqAbACWoTwOyzA4E9atgMQ)) goto LA10;
								memcpy((void*)(&y_JQjNjrJuG2iEJf9cdUvBAAQ), (NIM_CONST void*)(&HEX3Atmp_uOm71gZxeBEW31ai7Pv9csQ->data[i_78rVDcApRkOIvKsa4Re6Yg_2]), sizeof(y_JQjNjrJuG2iEJf9cdUvBAAQ));
								addchoice_qURyx5Nv2W8KsnqxL9cBPXA(Result, y_JQjNjrJuG2iEJf9cdUvBAAQ);
								i_78rVDcApRkOIvKsa4Re6Yg_2 += ((NI) 1);
							} LA10: ;
						}
					}
				}
				goto LA4;
				LA6: ;
				{
					addchoice_qURyx5Nv2W8KsnqxL9cBPXA(Result, x_F6THkVsIzEGnhWA44eMh3Q);
				}
				LA4: ;
				i_78rVDcApRkOIvKsa4Re6Yg += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI LOC14;
		LOC14 = (NI)0;
		LOC14 = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*Result));
		if (!(LOC14 == ((NI) 1))) goto LA15;
		genericShallowAssign((void*)Result, (void*)(&(*Result).kindU.sons->data[((NI) 0)]), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	LA15: ;
}

static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0) {
	void* LOC1;
	LOC1 = (void*)0;
	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
}

static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
	copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) {
	(*dest0).data[((*dest0).Sup.len)- 0] = c0;
	(*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest0).Sup.len += ((NI) 1);
}

N_NIMCALL(void, addsequence_qURyx5Nv2W8KsnqxL9cBPXA_2)(Node_0qztr5Keivtxacz23lA4IA* dest0, Node_0qztr5Keivtxacz23lA4IA elem0) {
	NI L0;
	NI LOC1;
	LOC1 = (NI)0;
	LOC1 = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*dest0));
	L0 = (NI)(LOC1 - ((NI) 1));
	{
		NIM_BOOL LOC4;
		LOC4 = (NIM_BOOL)0;
		LOC4 = (((NI) 0) <= L0);
		if (!(LOC4)) goto LA5;
		LOC4 = ((*dest0).kindU.sons->data[L0].kind == ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9));
		LA5: ;
		if (!LOC4) goto LA6;
		switch (elem0.kind) {
		case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
		{
			NimStringDesc* LOC9;
			LOC9 = (NimStringDesc*)0;
			LOC9 = rawNewString((*dest0).kindU.sons->data[L0].kindU.term->Sup.len + elem0.kindU.term->Sup.len + 0);
appendString(LOC9, (*dest0).kindU.sons->data[L0].kindU.term);
appendString(LOC9, elem0.kindU.term);
			npegstermStr(LOC9, (&(*dest0).kindU.sons->data[L0]));
		}
		break;
		case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
		{
			NimStringDesc* LOC11;
			LOC11 = (NimStringDesc*)0;
			LOC11 = rawNewString((*dest0).kindU.sons->data[L0].kindU.term->Sup.len + 1);
appendString(LOC11, (*dest0).kindU.sons->data[L0].kindU.term);
appendChar(LOC11, elem0.kindU.ch);
			npegstermStr(LOC11, (&(*dest0).kindU.sons->data[L0]));
		}
		break;
		default:
		{
			add_tajfTWGbqsAYeYalZD83kQpegs(dest0, elem0);
		}
		break;
		}
	}
	goto LA2;
	LA6: ;
	{
		add_tajfTWGbqsAYeYalZD83kQpegs(dest0, elem0);
	}
	LA2: ;
}

N_LIB_EXPORT N_CDECL(void, npegssequence)(Node_0qztr5Keivtxacz23lA4IA* a0, NI a0Len0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 15);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 0));
	{
		Node_0qztr5Keivtxacz23lA4IA x_WimSsxPbx2l1Ta76sdc2vg;
		NI i_l0dWqQ2Fv1UcZ5KIIKOH2Q;
		memset((void*)(&x_WimSsxPbx2l1Ta76sdc2vg), 0, sizeof(x_WimSsxPbx2l1Ta76sdc2vg));
		i_l0dWqQ2Fv1UcZ5KIIKOH2Q = ((NI) 0);
		{
			while (1) {
				if (!(i_l0dWqQ2Fv1UcZ5KIIKOH2Q < a0Len0)) goto LA3;
				memcpy((void*)(&x_WimSsxPbx2l1Ta76sdc2vg), (NIM_CONST void*)(&a0[i_l0dWqQ2Fv1UcZ5KIIKOH2Q]), sizeof(x_WimSsxPbx2l1Ta76sdc2vg));
				{
					if (!(x_WimSsxPbx2l1Ta76sdc2vg.kind == ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 15))) goto LA6;
					{
						Node_0qztr5Keivtxacz23lA4IA y_JqSAQJFh9aB9cd6Uwy9aCnljw;
						TY_Wjn0aMA9aB3dP6CVOwwvGJg* HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w;
						NI i_l0dWqQ2Fv1UcZ5KIIKOH2Q_2;
						NI L_Qor9byPP8d0OPGRKqbJjNGQ;
						memset((void*)(&y_JqSAQJFh9aB9cd6Uwy9aCnljw), 0, sizeof(y_JqSAQJFh9aB9cd6Uwy9aCnljw));
						HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w = (TY_Wjn0aMA9aB3dP6CVOwwvGJg*)0;
						HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w = x_WimSsxPbx2l1Ta76sdc2vg.kindU.sons;
						i_l0dWqQ2Fv1UcZ5KIIKOH2Q_2 = ((NI) 0);
						L_Qor9byPP8d0OPGRKqbJjNGQ = (HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w ? HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w->Sup.len : 0);
						{
							while (1) {
								if (!(i_l0dWqQ2Fv1UcZ5KIIKOH2Q_2 < L_Qor9byPP8d0OPGRKqbJjNGQ)) goto LA10;
								memcpy((void*)(&y_JqSAQJFh9aB9cd6Uwy9aCnljw), (NIM_CONST void*)(&HEX3Atmp_hQIBpr9aQUFOL79c9aawqWp2w->data[i_l0dWqQ2Fv1UcZ5KIIKOH2Q_2]), sizeof(y_JqSAQJFh9aB9cd6Uwy9aCnljw));
								addsequence_qURyx5Nv2W8KsnqxL9cBPXA_2(Result, y_JqSAQJFh9aB9cd6Uwy9aCnljw);
								i_l0dWqQ2Fv1UcZ5KIIKOH2Q_2 += ((NI) 1);
							} LA10: ;
						}
					}
				}
				goto LA4;
				LA6: ;
				{
					addsequence_qURyx5Nv2W8KsnqxL9cBPXA_2(Result, x_WimSsxPbx2l1Ta76sdc2vg);
				}
				LA4: ;
				i_l0dWqQ2Fv1UcZ5KIIKOH2Q += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI LOC14;
		LOC14 = (NI)0;
		LOC14 = len_9cBHaUQpyQBLcQlYPEHxK8Apegs((*Result));
		if (!(LOC14 == ((NI) 1))) goto LA15;
		genericShallowAssign((void*)Result, (void*)(&(*Result).kindU.sons->data[((NI) 0)]), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	LA15: ;
}

N_LIB_EXPORT N_CDECL(void, npegsOptional)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		if (!((4063232 &((NU64)1<<((NU)(a0.kind)&63U)))!=0)) goto LA3;
		genericShallowAssign((void*)Result, (void*)(&a0), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	goto LA1;
	LA3: ;
	{
		TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC6;
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 21);
		unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
		memset((void*)LOC6, 0, sizeof(LOC6));
		memcpy((void*)(&LOC6[0]), (NIM_CONST void*)(&a0), sizeof(LOC6[0]));
		genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC6[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	LA1: ;
}

N_LIB_EXPORT N_CDECL(void, npegsGreedyRep)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	switch (a0.kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18);
		(*Result).kindU.ch = a0.kindU.ch;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19);
		unsureAsgnRef((void**) (&(*Result).kindU.charchoice), a0.kindU.charchoice);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 20);
	}
	break;
	default:
	{
		TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC6;
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 17);
		unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
		memset((void*)LOC6, 0, sizeof(LOC6));
		memcpy((void*)(&LOC6[0]), (NIM_CONST void*)(&a0), sizeof(LOC6[0]));
		genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC6[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	break;
	}
}

N_LIB_EXPORT N_CDECL(void, npegsSearch)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC1;
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 28);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC1[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
}

N_LIB_EXPORT N_CDECL(void, npgegsCapturedSearch)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC1;
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 29);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC1[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
}

N_LIB_EXPORT N_CDECL(void, npegsGreedyPosRep)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_IpSDqxH4n0peVF4qTgPoJg LOC1;
{	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	npegsGreedyRep(a0, (&LOC1[1]));
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI_0qztr5Keivtxacz23lA4IA));
	npegssequence(LOC1, 2, Result);
	goto BeforeRet;
	}BeforeRet: ;
}

N_LIB_EXPORT N_CDECL(void, npegsAndPredicate)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC1;
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 22);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC1[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
}

N_LIB_EXPORT N_CDECL(void, npegsNotPredicate)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC1;
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 23);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC1[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
}

N_LIB_EXPORT N_CDECL(void, npegsCapture)(Node_0qztr5Keivtxacz23lA4IA a0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	TY_0wzx9bD7iZiIhnX89aaxf7Bg LOC1;
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 24);
	unsureAsgnRef((void**) (&(*Result).kindU.sons), (TY_Wjn0aMA9aB3dP6CVOwwvGJg*) nimrtl_newSeq((&NTI_Wjn0aMA9aB3dP6CVOwwvGJg), 1));
	memset((void*)LOC1, 0, sizeof(LOC1));
	memcpy((void*)(&LOC1[0]), (NIM_CONST void*)(&a0), sizeof(LOC1[0]));
	genericShallowAssign((void*)(&(*Result).kindU.sons->data[0]), (void*)(&LOC1[0]), (&NTI_0qztr5Keivtxacz23lA4IA));
}

N_LIB_EXPORT N_CDECL(void, npegsbackref)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 25);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index0)) - ((NI) 1))));
}

N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreCase)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 26);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index0)) - ((NI) 1))));
}

N_LIB_EXPORT N_CDECL(void, npegsbackrefIgnoreStyle)(NI index0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 27);
	(*Result).kindU.index = ((NI) ((NI)(((NI) (index0)) - ((NI) 1))));
}

N_NIMCALL(NI, spacecost_thhtdz88TSxzimHcXnMrxQ)(Node_0qztr5Keivtxacz23lA4IA n0) {
	NI result0;
	result0 = (NI)0;
	switch (n0.kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 1) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		result0 = ((NI) 1);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		result0 = ((NI) 6);
	}
	break;
	default:
	{
		{
			NI i_R87nvrvMlQuQUgkNfhlcPw;
			NI HEX3Atmp_4mdKU35LZ0COlDKh39bK3Pw;
			NI LOC6;
			NI res_1R469a1Uss9bUCKyxi3LoAXQ;
			i_R87nvrvMlQuQUgkNfhlcPw = (NI)0;
			HEX3Atmp_4mdKU35LZ0COlDKh39bK3Pw = (NI)0;
			LOC6 = (NI)0;
			LOC6 = len_9cBHaUQpyQBLcQlYPEHxK8Apegs(n0);
			HEX3Atmp_4mdKU35LZ0COlDKh39bK3Pw = (NI)(LOC6 - ((NI) 1));
			res_1R469a1Uss9bUCKyxi3LoAXQ = ((NI) 0);
			{
				while (1) {
					NI LOC9;
					if (!(res_1R469a1Uss9bUCKyxi3LoAXQ <= HEX3Atmp_4mdKU35LZ0COlDKh39bK3Pw)) goto LA8;
					i_R87nvrvMlQuQUgkNfhlcPw = res_1R469a1Uss9bUCKyxi3LoAXQ;
					LOC9 = (NI)0;
					LOC9 = spacecost_thhtdz88TSxzimHcXnMrxQ(n0.kindU.sons->data[i_R87nvrvMlQuQUgkNfhlcPw]);
					result0 += LOC9;
					{
						if (!(((NI) 5) <= result0)) goto LA12;
						goto LA5;
					}
					LA12: ;
					res_1R469a1Uss9bUCKyxi3LoAXQ += ((NI) 1);
				} LA8: ;
			}
		} LA5: ;
	}
	break;
	}
	return result0;
}

N_LIB_EXPORT N_CDECL(void, npegsnonterminal)(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA* n0, Node_0qztr5Keivtxacz23lA4IA* Result) {
	{
		NIM_BOOL LOC3;
		NI LOC5;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (((*n0).flags &(1U<<((NU)(((Nonterminalflag_raeF9a9anryo8cnwfITE0Glw) 0))&7U)))!=0);
		if (!(LOC3)) goto LA4;
		LOC5 = (NI)0;
		LOC5 = spacecost_thhtdz88TSxzimHcXnMrxQ((*n0).rule);
		LOC3 = (LOC5 < ((NI) 5));
		LA4: ;
		if (!LOC3) goto LA6;
		genericShallowAssign((void*)Result, (void*)(&(*n0).rule), (&NTI_0qztr5Keivtxacz23lA4IA));
	}
	goto LA1;
	LA6: ;
	{
		(*Result).kind = ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14);
		unsureAsgnRef((void**) (&(*Result).kindU.nt), n0);
	}
	LA1: ;
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result0;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
	c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0);
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
		nimrtl_rtlAddZCT(c0);
	}
	LA3: ;
}

N_LIB_EXPORT N_CDECL(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*, npegsnewNonTerminal)(NimStringDesc* name0, NI line0, NI column0) {
	Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA* result0;
	NimStringDesc* LOC1;
	result0 = (Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*)0;
	result0 = (Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*) nimrtl_newObj((&NTI_ne9c8mGWiMWXBIOmu9cRFBTw), sizeof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA));
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*result0).name; (*result0).name = nimrtl_copyStringRC1(name0);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*result0).line = line0;
	(*result0).col = column0;
	return result0;
}

N_NIMCALL(NimStringDesc*, esc_HFHwkP8FH7Igr7ChV6sh2w)(NIM_CHAR c0, TY_nmiMWKVIe46vacnhAFrQvw_Set reserved0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	switch (((NU8)(c0))) {
	case 8:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_18));
	}
	break;
	case 9:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_19));
	}
	break;
	case 13:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_20));
	}
	break;
	case 10:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_21));
	}
	break;
	case 11:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_22));
	}
	break;
	case 12:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_23));
	}
	break;
	case 27:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_24));
	}
	break;
	case 7:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_25));
	}
	break;
	case 92:
	{
		result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_26));
	}
	break;
	case 97 ... 122:
	case 65 ... 90:
	case 48 ... 57:
	case 95:
	{
		result0 = nimrtl_nimCharToStr(c0);
	}
	break;
	default:
	{
		{
			NIM_BOOL LOC14;
			NimStringDesc* LOC18;
			NimStringDesc* LOC19;
			LOC14 = (NIM_BOOL)0;
			LOC14 = ((NU8)(c0) < (NU8)(32));
			if (LOC14) goto LA15;
			LOC14 = ((NU8)(128) <= (NU8)(c0));
			LA15: ;
			if (!LOC14) goto LA16;
			LOC18 = (NimStringDesc*)0;
			LOC19 = (NimStringDesc*)0;
			LOC19 = nimrtl_nimIntToStr(((NI) (((NU8)(c0)))));
			LOC18 = rawNewString(LOC19->Sup.len + 1);
appendChar(LOC18, 92);
appendString(LOC18, LOC19);
			result0 = LOC18;
		}
		goto LA12;
		LA16: ;
		{
			NimStringDesc* LOC23;
			if (!((reserved0[(NU)(((NU8)(c0)))>>3] &(1U<<((NU)(((NU8)(c0)))&7U)))!=0)) goto LA21;
			LOC23 = (NimStringDesc*)0;
			LOC23 = rawNewString(2);
appendChar(LOC23, 92);
appendChar(LOC23, c0);
			result0 = LOC23;
		}
		goto LA12;
		LA21: ;
		{
			result0 = nimrtl_nimCharToStr(c0);
		}
		LA12: ;
	}
	break;
	}
	return result0;
}

N_NIMCALL(NimStringDesc*, singlequoteesc_DZwoJxXJYe731ZwSPd9cbMw)(NimStringDesc* str0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_17));
	{
		NIM_CHAR c_NJlLlan0HyIE0TFzpfNpzQ;
		NI i_0bzujue4Sw4JWMyBYXw9cRA;
		NI L_SenWFwq0TiMX9ak4ArAtLfQ;
		c_NJlLlan0HyIE0TFzpfNpzQ = (NIM_CHAR)0;
		i_0bzujue4Sw4JWMyBYXw9cRA = ((NI) 0);
		L_SenWFwq0TiMX9ak4ArAtLfQ = (str0 ? str0->Sup.len : 0);
		{
			while (1) {
				NimStringDesc* LOC4;
				if (!(i_0bzujue4Sw4JWMyBYXw9cRA < L_SenWFwq0TiMX9ak4ArAtLfQ)) goto LA3;
				c_NJlLlan0HyIE0TFzpfNpzQ = str0->data[i_0bzujue4Sw4JWMyBYXw9cRA];
				LOC4 = (NimStringDesc*)0;
				LOC4 = esc_HFHwkP8FH7Igr7ChV6sh2w(c_NJlLlan0HyIE0TFzpfNpzQ, T_YGOrctedenU9ao6jM7xmy6g_27);
				result0 = nimrtl_resizeString(result0, LOC4->Sup.len + 0);
appendString(result0, LOC4);
				i_0bzujue4Sw4JWMyBYXw9cRA += ((NI) 1);
			} LA3: ;
		}
	}
	result0 = addChar(result0, 39);
	return result0;
}

N_NIMCALL(NimStringDesc*, singlequoteesc_B9cR1ihwJM5pxbOFaR0RkLw)(NIM_CHAR c0) {
	NimStringDesc* result0;
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
{	result0 = (NimStringDesc*)0;
	LOC1 = (NimStringDesc*)0;
	LOC2 = (NimStringDesc*)0;
	LOC2 = esc_HFHwkP8FH7Igr7ChV6sh2w(c0, T_YGOrctedenU9ao6jM7xmy6g_27);
	LOC1 = rawNewString(LOC2->Sup.len + 2);
appendString(LOC1, ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_17));
appendString(LOC1, LOC2);
appendString(LOC1, ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_17));
	result0 = LOC1;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NimStringDesc*, charsetescaux_1Tg63uyJsbVNG6YaZy0kZg_2)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc0) {
	NimStringDesc* result0;
	NI c10;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	c10 = ((NI) 0);
	{
		while (1) {
			if (!(c10 <= ((NI) 255))) goto LA2;
			{
				NI c20;
				if (!((cc0[(NU)(((NU8)(((NIM_CHAR) (((NI) (c10)))))))>>3] &(1U<<((NU)(((NU8)(((NIM_CHAR) (((NI) (c10)))))))&7U)))!=0)) goto LA5;
				c20 = c10;
				{
					while (1) {
						NIM_BOOL LOC9;
						LOC9 = (NIM_BOOL)0;
						LOC9 = (c20 < ((NI) 255));
						if (!(LOC9)) goto LA10;
						LOC9 = ((cc0[(NU)(((NU8)(((NIM_CHAR) (((NI) ((NI)(c20 + ((NI) 1)))))))))>>3] &(1U<<((NU)(((NU8)(((NIM_CHAR) (((NI) ((NI)(c20 + ((NI) 1)))))))))&7U)))!=0);
						LA10: ;
						if (!LOC9) goto LA8;
						c20 += ((NI) 1);
					} LA8: ;
				}
				{
					NimStringDesc* LOC15;
					if (!(c10 == c20)) goto LA13;
					LOC15 = (NimStringDesc*)0;
					LOC15 = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c10)))), T_YGOrctedenU9ao6jM7xmy6g_29);
					result0 = nimrtl_resizeString(result0, LOC15->Sup.len + 0);
appendString(result0, LOC15);
				}
				goto LA11;
				LA13: ;
				{
					NimStringDesc* LOC19;
					NimStringDesc* LOC20;
					NimStringDesc* LOC21;
					if (!(c20 == (NI)(c10 + ((NI) 1)))) goto LA17;
					LOC19 = (NimStringDesc*)0;
					LOC20 = (NimStringDesc*)0;
					LOC20 = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c10)))), T_YGOrctedenU9ao6jM7xmy6g_29);
					LOC21 = (NimStringDesc*)0;
					LOC21 = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c20)))), T_YGOrctedenU9ao6jM7xmy6g_29);
					LOC19 = rawNewString(LOC20->Sup.len + LOC21->Sup.len + 0);
appendString(LOC19, LOC20);
appendString(LOC19, LOC21);
					result0 = nimrtl_resizeString(result0, LOC19->Sup.len + 0);
appendString(result0, LOC19);
				}
				goto LA11;
				LA17: ;
				{
					NimStringDesc* LOC23;
					NimStringDesc* LOC24;
					NimStringDesc* LOC25;
					LOC23 = (NimStringDesc*)0;
					LOC24 = (NimStringDesc*)0;
					LOC24 = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c10)))), T_YGOrctedenU9ao6jM7xmy6g_29);
					LOC25 = (NimStringDesc*)0;
					LOC25 = esc_HFHwkP8FH7Igr7ChV6sh2w(((NIM_CHAR) (((NI) (c20)))), T_YGOrctedenU9ao6jM7xmy6g_29);
					LOC23 = rawNewString(LOC24->Sup.len + LOC25->Sup.len + 1);
appendString(LOC23, LOC24);
appendChar(LOC23, 45);
appendString(LOC23, LOC25);
					result0 = nimrtl_resizeString(result0, LOC23->Sup.len + 0);
appendString(result0, LOC23);
				}
				LA11: ;
				c10 = c20;
			}
			LA5: ;
			c10 += ((NI) 1);
		} LA2: ;
	}
	return result0;
}

N_NIMCALL(NimStringDesc*, charsetesc_1Tg63uyJsbVNG6YaZy0kZg)(TY_nmiMWKVIe46vacnhAFrQvw_Set cc0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	{
		NimStringDesc* LOC5;
		NI LOC6;
		TY_nmiMWKVIe46vacnhAFrQvw_Set LOC7;
		NimStringDesc* LOC8;
		if (!(((NI) 192) <= cardSet(cc0, 32))) goto LA3;
		LOC5 = (NimStringDesc*)0;
		LOC6 = (NI)0;
		for (LOC6 = 0; LOC6 < 32; LOC6++) 
  LOC7[LOC6] = T_YGOrctedenU9ao6jM7xmy6g_30[LOC6] & ~ cc0[LOC6];
		LOC8 = (NimStringDesc*)0;
		LOC8 = charsetescaux_1Tg63uyJsbVNG6YaZy0kZg_2(LOC7);
		LOC5 = rawNewString(LOC8->Sup.len + 3);
appendString(LOC5, ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_28));
appendString(LOC5, LOC8);
appendChar(LOC5, 93);
		result0 = LOC5;
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC10;
		NimStringDesc* LOC11;
		LOC10 = (NimStringDesc*)0;
		LOC11 = (NimStringDesc*)0;
		LOC11 = charsetescaux_1Tg63uyJsbVNG6YaZy0kZg_2(cc0);
		LOC10 = rawNewString(LOC11->Sup.len + 2);
appendChar(LOC10, 91);
appendString(LOC10, LOC11);
appendChar(LOC10, 93);
		result0 = LOC10;
	}
	LA1: ;
	return result0;
}

N_NIMCALL(void, tostraux_sdo4g6S2xvqYtEG6OihSJw)(Node_0qztr5Keivtxacz23lA4IA r0, NimStringDesc** res0) {
	switch (r0.kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
		(*res0) = nimrtl_resizeString((*res0), 2);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_10));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	{
		(*res0) = addChar((*res0), 46);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		(*res0) = addChar((*res0), 95);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 4):
	{
		(*res0) = nimrtl_resizeString((*res0), 7);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_11));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 5):
	{
		(*res0) = nimrtl_resizeString((*res0), 6);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_12));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 6):
	{
		(*res0) = nimrtl_resizeString((*res0), 6);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_13));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 7):
	{
		(*res0) = nimrtl_resizeString((*res0), 6);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_14));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	{
		(*res0) = nimrtl_resizeString((*res0), 6);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_15));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 3):
	{
		(*res0) = nimrtl_resizeString((*res0), 2);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_16));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	{
		NimStringDesc* LOC11;
		LOC11 = (NimStringDesc*)0;
		LOC11 = singlequoteesc_DZwoJxXJYe731ZwSPd9cbMw(r0.kindU.term);
		(*res0) = nimrtl_resizeString((*res0), LOC11->Sup.len + 0);
appendString((*res0), LOC11);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	{
		NimStringDesc* LOC13;
		(*res0) = addChar((*res0), 105);
		LOC13 = (NimStringDesc*)0;
		LOC13 = singlequoteesc_DZwoJxXJYe731ZwSPd9cbMw(r0.kindU.term);
		(*res0) = nimrtl_resizeString((*res0), LOC13->Sup.len + 0);
appendString((*res0), LOC13);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	{
		NimStringDesc* LOC15;
		(*res0) = addChar((*res0), 121);
		LOC15 = (NimStringDesc*)0;
		LOC15 = singlequoteesc_DZwoJxXJYe731ZwSPd9cbMw(r0.kindU.term);
		(*res0) = nimrtl_resizeString((*res0), LOC15->Sup.len + 0);
appendString((*res0), LOC15);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		NimStringDesc* LOC17;
		LOC17 = (NimStringDesc*)0;
		LOC17 = singlequoteesc_B9cR1ihwJM5pxbOFaR0RkLw(r0.kindU.ch);
		(*res0) = nimrtl_resizeString((*res0), LOC17->Sup.len + 0);
appendString((*res0), LOC17);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		NimStringDesc* LOC19;
		LOC19 = (NimStringDesc*)0;
		LOC19 = charsetesc_1Tg63uyJsbVNG6YaZy0kZg((*r0.kindU.charchoice));
		(*res0) = nimrtl_resizeString((*res0), LOC19->Sup.len + 0);
appendString((*res0), LOC19);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		(*res0) = nimrtl_resizeString((*res0), (*r0.kindU.nt).name->Sup.len + 0);
appendString((*res0), (*r0.kindU.nt).name);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 15):
	{
		(*res0) = addChar((*res0), 40);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		{
			NI i_PBPhf5z0Ve79afGlF36fZOA;
			NI HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A;
			NI res_Z5emCftI2A2DJa1l1yTUIw;
			i_PBPhf5z0Ve79afGlF36fZOA = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A = (r0.kindU.sons ? (r0.kindU.sons->Sup.len-1) : -1);
			res_Z5emCftI2A2DJa1l1yTUIw = ((NI) 1);
			{
				while (1) {
					if (!(res_Z5emCftI2A2DJa1l1yTUIw <= HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A)) goto LA24;
					i_PBPhf5z0Ve79afGlF36fZOA = res_Z5emCftI2A2DJa1l1yTUIw;
					(*res0) = addChar((*res0), 32);
					tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[i_PBPhf5z0Ve79afGlF36fZOA], res0);
					res_Z5emCftI2A2DJa1l1yTUIw += ((NI) 1);
				} LA24: ;
			}
		}
		(*res0) = addChar((*res0), 41);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 16):
	{
		(*res0) = addChar((*res0), 40);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		{
			NI i_PBPhf5z0Ve79afGlF36fZOA_2;
			NI HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_2;
			NI res_Z5emCftI2A2DJa1l1yTUIw_2;
			i_PBPhf5z0Ve79afGlF36fZOA_2 = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_2 = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_2 = (r0.kindU.sons ? (r0.kindU.sons->Sup.len-1) : -1);
			res_Z5emCftI2A2DJa1l1yTUIw_2 = ((NI) 1);
			{
				while (1) {
					if (!(res_Z5emCftI2A2DJa1l1yTUIw_2 <= HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_2)) goto LA28;
					i_PBPhf5z0Ve79afGlF36fZOA_2 = res_Z5emCftI2A2DJa1l1yTUIw_2;
					(*res0) = nimrtl_resizeString((*res0), 3);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_31));
					tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[i_PBPhf5z0Ve79afGlF36fZOA_2], res0);
					res_Z5emCftI2A2DJa1l1yTUIw_2 += ((NI) 1);
				} LA28: ;
			}
		}
		(*res0) = addChar((*res0), 41);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	{
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		(*res0) = addChar((*res0), 42);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	{
		NimStringDesc* LOC31;
		LOC31 = (NimStringDesc*)0;
		LOC31 = singlequoteesc_B9cR1ihwJM5pxbOFaR0RkLw(r0.kindU.ch);
		(*res0) = nimrtl_resizeString((*res0), LOC31->Sup.len + 0);
appendString((*res0), LOC31);
		(*res0) = addChar((*res0), 42);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	{
		NimStringDesc* LOC33;
		LOC33 = (NimStringDesc*)0;
		LOC33 = charsetesc_1Tg63uyJsbVNG6YaZy0kZg((*r0.kindU.charchoice));
		(*res0) = nimrtl_resizeString((*res0), LOC33->Sup.len + 0);
appendString((*res0), LOC33);
		(*res0) = addChar((*res0), 42);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		(*res0) = nimrtl_resizeString((*res0), 2);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_32));
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		(*res0) = addChar((*res0), 63);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 22):
	{
		(*res0) = addChar((*res0), 38);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 23):
	{
		(*res0) = addChar((*res0), 33);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 28):
	{
		(*res0) = addChar((*res0), 64);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 29):
	{
		(*res0) = nimrtl_resizeString((*res0), 3);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_33));
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 24):
	{
		(*res0) = addChar((*res0), 123);
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		(*res0) = addChar((*res0), 125);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 25):
	{
		NimStringDesc* LOC42;
		(*res0) = addChar((*res0), 36);
		LOC42 = (NimStringDesc*)0;
		LOC42 = nimrtl_nimIntToStr(((NI) (r0.kindU.index)));
		(*res0) = nimrtl_resizeString((*res0), LOC42->Sup.len + 0);
appendString((*res0), LOC42);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 26):
	{
		NimStringDesc* LOC44;
		(*res0) = nimrtl_resizeString((*res0), 2);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_34));
		LOC44 = (NimStringDesc*)0;
		LOC44 = nimrtl_nimIntToStr(((NI) (r0.kindU.index)));
		(*res0) = nimrtl_resizeString((*res0), LOC44->Sup.len + 0);
appendString((*res0), LOC44);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	{
		NimStringDesc* LOC46;
		(*res0) = nimrtl_resizeString((*res0), 2);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_35));
		LOC46 = (NimStringDesc*)0;
		LOC46 = nimrtl_nimIntToStr(((NI) (r0.kindU.index)));
		(*res0) = nimrtl_resizeString((*res0), LOC46->Sup.len + 0);
appendString((*res0), LOC46);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 30):
	{
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 0)], res0);
		(*res0) = nimrtl_resizeString((*res0), 4);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_36));
		tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[((NI) 1)], res0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 31):
	{
		{
			NI i_PBPhf5z0Ve79afGlF36fZOA_3;
			NI HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_3;
			NI res_Z5emCftI2A2DJa1l1yTUIw_3;
			i_PBPhf5z0Ve79afGlF36fZOA_3 = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_3 = (NI)0;
			HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_3 = (r0.kindU.sons ? (r0.kindU.sons->Sup.len-1) : -1);
			res_Z5emCftI2A2DJa1l1yTUIw_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_Z5emCftI2A2DJa1l1yTUIw_3 <= HEX3Atmp_aVjUwqLeeJtsPQnZ880D6A_3)) goto LA51;
					i_PBPhf5z0Ve79afGlF36fZOA_3 = res_Z5emCftI2A2DJa1l1yTUIw_3;
					tostraux_sdo4g6S2xvqYtEG6OihSJw(r0.kindU.sons->data[i_PBPhf5z0Ve79afGlF36fZOA_3], res0);
					(*res0) = nimrtl_resizeString((*res0), 1);
appendString((*res0), ((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_37));
					res_Z5emCftI2A2DJa1l1yTUIw_3 += ((NI) 1);
				} LA51: ;
			}
		}
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 32):
	{
		(*res0) = addChar((*res0), 94);
	}
	break;
	}
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsToString)(Node_0qztr5Keivtxacz23lA4IA r0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	tostraux_sdo4g6S2xvqYtEG6OihSJw(r0, (&result0));
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, npegsrawMatch)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA p0, NI start0, Captures_tZhlqR24EekS3w5Qr6WNZQ* c0) {
	NI result0;
{	result0 = (NI)0;
	switch (p0.kind) {
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 0):
	{
		result0 = ((NI) 0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 1):
	{
		{
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA5;
			result0 = ((NI) 1);
		}
		goto LA3;
		LA5: ;
		{
			result0 = ((NI) -1);
		}
		LA3: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 2):
	{
		{
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA11;
			result0 = runelenat_8Ayuto32FxMnanfOP52vKg(s0, ((NI) (start0)));
		}
		goto LA9;
		LA11: ;
		{
			result0 = ((NI) -1);
		}
		LA9: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 4):
	{
		{
			NI32 a0;
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA17;
			a0 = (NI32)0;
			result0 = start0;
			{
				if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA21;
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			goto LA19;
			LA21: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA24;
				a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
				result0 += ((NI) 2);
			}
			goto LA19;
			LA24: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA27;
				a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
				result0 += ((NI) 3);
			}
			goto LA19;
			LA27: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA30;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
				result0 += ((NI) 4);
			}
			goto LA19;
			LA30: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA33;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
				result0 += ((NI) 5);
			}
			goto LA19;
			LA33: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA36;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
				result0 += ((NI) 6);
			}
			goto LA19;
			LA36: ;
			{
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			LA19: ;
			{
				NIM_BOOL LOC41;
				LOC41 = (NIM_BOOL)0;
				LOC41 = nucisAlpha(a0);
				if (!LOC41) goto LA42;
				result0 -= start0;
			}
			goto LA39;
			LA42: ;
			{
				result0 = ((NI) -1);
			}
			LA39: ;
		}
		goto LA15;
		LA17: ;
		{
			result0 = ((NI) -1);
		}
		LA15: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 5):
	{
		{
			NI32 a0;
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA49;
			a0 = (NI32)0;
			result0 = start0;
			{
				if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA53;
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			goto LA51;
			LA53: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA56;
				a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
				result0 += ((NI) 2);
			}
			goto LA51;
			LA56: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA59;
				a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
				result0 += ((NI) 3);
			}
			goto LA51;
			LA59: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA62;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
				result0 += ((NI) 4);
			}
			goto LA51;
			LA62: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA65;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
				result0 += ((NI) 5);
			}
			goto LA51;
			LA65: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA68;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
				result0 += ((NI) 6);
			}
			goto LA51;
			LA68: ;
			{
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			LA51: ;
			{
				NIM_BOOL LOC73;
				LOC73 = (NIM_BOOL)0;
				LOC73 = nucisLower(a0);
				if (!LOC73) goto LA74;
				result0 -= start0;
			}
			goto LA71;
			LA74: ;
			{
				result0 = ((NI) -1);
			}
			LA71: ;
		}
		goto LA47;
		LA49: ;
		{
			result0 = ((NI) -1);
		}
		LA47: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 6):
	{
		{
			NI32 a0;
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA81;
			a0 = (NI32)0;
			result0 = start0;
			{
				if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA85;
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			goto LA83;
			LA85: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA88;
				a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
				result0 += ((NI) 2);
			}
			goto LA83;
			LA88: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA91;
				a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
				result0 += ((NI) 3);
			}
			goto LA83;
			LA91: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA94;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
				result0 += ((NI) 4);
			}
			goto LA83;
			LA94: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA97;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
				result0 += ((NI) 5);
			}
			goto LA83;
			LA97: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA100;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
				result0 += ((NI) 6);
			}
			goto LA83;
			LA100: ;
			{
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			LA83: ;
			{
				NIM_BOOL LOC105;
				LOC105 = (NIM_BOOL)0;
				LOC105 = nucisUpper(a0);
				if (!LOC105) goto LA106;
				result0 -= start0;
			}
			goto LA103;
			LA106: ;
			{
				result0 = ((NI) -1);
			}
			LA103: ;
		}
		goto LA79;
		LA81: ;
		{
			result0 = ((NI) -1);
		}
		LA79: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 7):
	{
		{
			NI32 a0;
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA113;
			a0 = (NI32)0;
			result0 = start0;
			{
				if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA117;
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			goto LA115;
			LA117: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA120;
				a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
				result0 += ((NI) 2);
			}
			goto LA115;
			LA120: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA123;
				a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
				result0 += ((NI) 3);
			}
			goto LA115;
			LA123: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA126;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
				result0 += ((NI) 4);
			}
			goto LA115;
			LA126: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA129;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
				result0 += ((NI) 5);
			}
			goto LA115;
			LA129: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA132;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
				result0 += ((NI) 6);
			}
			goto LA115;
			LA132: ;
			{
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			LA115: ;
			{
				NIM_BOOL LOC137;
				LOC137 = (NIM_BOOL)0;
				LOC137 = nucisTitle(a0);
				if (!LOC137) goto LA138;
				result0 -= start0;
			}
			goto LA135;
			LA138: ;
			{
				result0 = ((NI) -1);
			}
			LA135: ;
		}
		goto LA111;
		LA113: ;
		{
			result0 = ((NI) -1);
		}
		LA111: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 8):
	{
		{
			NI32 a0;
			if (!!(((NU8)(s0->data[start0]) == (NU8)(0)))) goto LA145;
			a0 = (NI32)0;
			result0 = start0;
			{
				if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA149;
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			goto LA147;
			LA149: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA152;
				a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
				result0 += ((NI) 2);
			}
			goto LA147;
			LA152: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA155;
				a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
				result0 += ((NI) 3);
			}
			goto LA147;
			LA155: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA158;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
				result0 += ((NI) 4);
			}
			goto LA147;
			LA158: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA161;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
				result0 += ((NI) 5);
			}
			goto LA147;
			LA161: ;
			{
				if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA164;
				a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
				result0 += ((NI) 6);
			}
			goto LA147;
			LA164: ;
			{
				a0 = ((NI32) (((NU8)(s0->data[result0]))));
				result0 += ((NI) 1);
			}
			LA147: ;
			{
				NIM_BOOL LOC169;
				LOC169 = (NIM_BOOL)0;
				LOC169 = nucisWhiteSpace(a0);
				if (!LOC169) goto LA170;
				result0 -= start0;
			}
			goto LA167;
			LA170: ;
			{
				result0 = ((NI) -1);
			}
			LA167: ;
		}
		goto LA143;
		LA145: ;
		{
			result0 = ((NI) -1);
		}
		LA143: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 20):
	{
		result0 = (NI)((s0 ? s0->Sup.len : 0) - start0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 3):
	{
		{
			if (!((NU8)(s0->data[start0]) == (NU8)(10))) goto LA178;
			result0 = ((NI) 1);
		}
		goto LA176;
		LA178: ;
		{
			if (!((NU8)(s0->data[start0]) == (NU8)(13))) goto LA181;
			{
				if (!((NU8)(s0->data[(NI)(start0 + ((NI) 1))]) == (NU8)(10))) goto LA185;
				result0 = ((NI) 2);
			}
			goto LA183;
			LA185: ;
			{
				result0 = ((NI) 1);
			}
			LA183: ;
		}
		goto LA176;
		LA181: ;
		{
			result0 = ((NI) -1);
		}
		LA176: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9):
	{
		result0 = (p0.kindU.term ? p0.kindU.term->Sup.len : 0);
		{
			NI i_YM9a1MJavsLgTR8FAuzXaWw;
			NI HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ;
			NI res_HFh8yJ8ImmYNa2izZkiHrA;
			i_YM9a1MJavsLgTR8FAuzXaWw = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ = (NI)(result0 - ((NI) 1));
			res_HFh8yJ8ImmYNa2izZkiHrA = ((NI) 0);
			{
				while (1) {
					if (!(res_HFh8yJ8ImmYNa2izZkiHrA <= HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ)) goto LA192;
					i_YM9a1MJavsLgTR8FAuzXaWw = res_HFh8yJ8ImmYNa2izZkiHrA;
					{
						if (!!(((NU8)(p0.kindU.term->data[i_YM9a1MJavsLgTR8FAuzXaWw]) == (NU8)(s0->data[(NI)(start0 + i_YM9a1MJavsLgTR8FAuzXaWw)])))) goto LA195;
						result0 = ((NI) -1);
						goto LA190;
					}
					LA195: ;
					res_HFh8yJ8ImmYNa2izZkiHrA += ((NI) 1);
				} LA192: ;
			}
		} LA190: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 10):
	{
		NI i0;
		NI32 a0;
		NI32 b0;
		i0 = ((NI) 0);
		a0 = (NI32)0;
		b0 = (NI32)0;
		result0 = start0;
		{
			while (1) {
				if (!(i0 < (p0.kindU.term ? p0.kindU.term->Sup.len : 0))) goto LA199;
				{
					if (!((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) <= (NU64)(((NI) 127)))) goto LA202;
					a0 = ((NI32) (((NU8)(p0.kindU.term->data[i0]))));
					i0 += ((NI) 1);
				}
				goto LA200;
				LA202: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA205;
					a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63)))))));
					i0 += ((NI) 2);
				}
				goto LA200;
				LA205: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA208;
					a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63)))))));
					i0 += ((NI) 3);
				}
				goto LA200;
				LA208: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA211;
					a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63)))))));
					i0 += ((NI) 4);
				}
				goto LA200;
				LA211: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA214;
					a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 4))])))) & ((NI) 63)))))));
					i0 += ((NI) 5);
				}
				goto LA200;
				LA214: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA217;
					a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 5))])))) & ((NI) 63)))))));
					i0 += ((NI) 6);
				}
				goto LA200;
				LA217: ;
				{
					a0 = ((NI32) (((NU8)(p0.kindU.term->data[i0]))));
					i0 += ((NI) 1);
				}
				LA200: ;
				{
					if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA222;
					b0 = ((NI32) (((NU8)(s0->data[result0]))));
					result0 += ((NI) 1);
				}
				goto LA220;
				LA222: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA225;
					b0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
					result0 += ((NI) 2);
				}
				goto LA220;
				LA225: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA228;
					b0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
					result0 += ((NI) 3);
				}
				goto LA220;
				LA228: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA231;
					b0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
					result0 += ((NI) 4);
				}
				goto LA220;
				LA231: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA234;
					b0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
					result0 += ((NI) 5);
				}
				goto LA220;
				LA234: ;
				{
					if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA237;
					b0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
					result0 += ((NI) 6);
				}
				goto LA220;
				LA237: ;
				{
					b0 = ((NI32) (((NU8)(s0->data[result0]))));
					result0 += ((NI) 1);
				}
				LA220: ;
				{
					NI32 LOC242;
					NI32 LOC243;
					NIM_BOOL LOC244;
					LOC242 = (NI32)0;
					LOC242 = nuctoLower(a0);
					LOC243 = (NI32)0;
					LOC243 = nuctoLower(b0);
					LOC244 = (NIM_BOOL)0;
					LOC244 = HEX3DHEX3D_XBungsmTumAhS9ay9aY1EmQQ(LOC242, LOC243);
					if (!!(LOC244)) goto LA245;
					result0 = ((NI) -1);
					goto LA198;
				}
				LA245: ;
			} LA199: ;
		} LA198: ;
		result0 -= start0;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 11):
	{
		NI i0;
		NI32 a0;
		NI32 b0;
		i0 = ((NI) 0);
		a0 = (NI32)0;
		b0 = (NI32)0;
		result0 = start0;
		{
			while (1) {
				if (!(i0 < (p0.kindU.term ? p0.kindU.term->Sup.len : 0))) goto LA249;
				{
					while (1) {
						{
							if (!((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) <= (NU64)(((NI) 127)))) goto LA254;
							a0 = ((NI32) (((NU8)(p0.kindU.term->data[i0]))));
							i0 += ((NI) 1);
						}
						goto LA252;
						LA254: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA257;
							a0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63)))))));
							i0 += ((NI) 2);
						}
						goto LA252;
						LA257: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA260;
							a0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63)))))));
							i0 += ((NI) 3);
						}
						goto LA252;
						LA260: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA263;
							a0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63)))))));
							i0 += ((NI) 4);
						}
						goto LA252;
						LA263: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA266;
							a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 4))])))) & ((NI) 63)))))));
							i0 += ((NI) 5);
						}
						goto LA252;
						LA266: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(p0.kindU.term->data[i0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA269;
							a0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[i0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(p0.kindU.term->data[(NI)(i0 + ((NI) 5))])))) & ((NI) 63)))))));
							i0 += ((NI) 6);
						}
						goto LA252;
						LA269: ;
						{
							a0 = ((NI32) (((NU8)(p0.kindU.term->data[i0]))));
							i0 += ((NI) 1);
						}
						LA252: ;
						{
							NIM_BOOL LOC274;
							LOC274 = (NIM_BOOL)0;
							LOC274 = HEX3DHEX3D_XBungsmTumAhS9ay9aY1EmQQ(a0, ((NI32) 95));
							if (!!(LOC274)) goto LA275;
							goto LA250;
						}
						LA275: ;
					}
				} LA250: ;
				{
					while (1) {
						{
							if (!((NU64)(((NI) (((NU8)(s0->data[result0]))))) <= (NU64)(((NI) 127)))) goto LA281;
							b0 = ((NI32) (((NU8)(s0->data[result0]))));
							result0 += ((NI) 1);
						}
						goto LA279;
						LA281: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA284;
							b0 = ((NI32) ((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 31))))) << (NU64)(((NI) 6))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63)))))));
							result0 += ((NI) 2);
						}
						goto LA279;
						LA284: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA287;
							b0 = ((NI32) ((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 15))))) << (NU64)(((NI) 12))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63)))))));
							result0 += ((NI) 3);
						}
						goto LA279;
						LA287: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA290;
							b0 = ((NI32) ((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 7))))) << (NU64)(((NI) 18))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63)))))));
							result0 += ((NI) 4);
						}
						goto LA279;
						LA290: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA293;
							b0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 3))))) << (NU64)(((NI) 24))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63)))))));
							result0 += ((NI) 5);
						}
						goto LA279;
						LA293: ;
						{
							if (!((NI)((NU64)(((NI) (((NU8)(s0->data[result0]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA296;
							b0 = ((NI32) ((NI)((NI)((NI)((NI)((NI)((NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[result0])))) & ((NI) 1))))) << (NU64)(((NI) 30))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 1))])))) & ((NI) 63))))) << (NU64)(((NI) 24)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 2))])))) & ((NI) 63))))) << (NU64)(((NI) 18)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 3))])))) & ((NI) 63))))) << (NU64)(((NI) 12)))) | (NI)((NU64)(((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 4))])))) & ((NI) 63))))) << (NU64)(((NI) 6)))) | ((NI) ((NI)(((NI) (((NU8)(s0->data[(NI)(result0 + ((NI) 5))])))) & ((NI) 63)))))));
							result0 += ((NI) 6);
						}
						goto LA279;
						LA296: ;
						{
							b0 = ((NI32) (((NU8)(s0->data[result0]))));
							result0 += ((NI) 1);
						}
						LA279: ;
						{
							NIM_BOOL LOC301;
							LOC301 = (NIM_BOOL)0;
							LOC301 = HEX3DHEX3D_XBungsmTumAhS9ay9aY1EmQQ(b0, ((NI32) 95));
							if (!!(LOC301)) goto LA302;
							goto LA277;
						}
						LA302: ;
					}
				} LA277: ;
				{
					NI32 LOC306;
					NI32 LOC307;
					NIM_BOOL LOC308;
					LOC306 = (NI32)0;
					LOC306 = nuctoLower(a0);
					LOC307 = (NI32)0;
					LOC307 = nuctoLower(b0);
					LOC308 = (NIM_BOOL)0;
					LOC308 = HEX3DHEX3D_XBungsmTumAhS9ay9aY1EmQQ(LOC306, LOC307);
					if (!!(LOC308)) goto LA309;
					result0 = ((NI) -1);
					goto LA248;
				}
				LA309: ;
			} LA249: ;
		} LA248: ;
		result0 -= start0;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 12):
	{
		{
			if (!((NU8)(p0.kindU.ch) == (NU8)(s0->data[start0]))) goto LA314;
			result0 = ((NI) 1);
		}
		goto LA312;
		LA314: ;
		{
			result0 = ((NI) -1);
		}
		LA312: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 13):
	{
		{
			if (!(((*p0.kindU.charchoice)[(NU)(((NU8)(s0->data[start0])))>>3] &(1U<<((NU)(((NU8)(s0->data[start0])))&7U)))!=0)) goto LA320;
			result0 = ((NI) 1);
		}
		goto LA318;
		LA320: ;
		{
			result0 = ((NI) -1);
		}
		LA318: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 14):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		result0 = npegsrawMatch(s0, (*p0.kindU.nt).rule, start0, c0);
		{
			if (!(result0 < ((NI) 0))) goto LA326;
			(*c0).ml = oldml0;
		}
		LA326: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 15):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		result0 = ((NI) 0);
		{
			NI i_YM9a1MJavsLgTR8FAuzXaWw_2;
			NI HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_2;
			NI res_HFh8yJ8ImmYNa2izZkiHrA_2;
			i_YM9a1MJavsLgTR8FAuzXaWw_2 = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_2 = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_2 = (p0.kindU.sons ? (p0.kindU.sons->Sup.len-1) : -1);
			res_HFh8yJ8ImmYNa2izZkiHrA_2 = ((NI) 0);
			{
				while (1) {
					NI x0;
					if (!(res_HFh8yJ8ImmYNa2izZkiHrA_2 <= HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_2)) goto LA331;
					i_YM9a1MJavsLgTR8FAuzXaWw_2 = res_HFh8yJ8ImmYNa2izZkiHrA_2;
					x0 = npegsrawMatch(s0, p0.kindU.sons->data[i_YM9a1MJavsLgTR8FAuzXaWw_2], (NI)(start0 + result0), c0);
					{
						if (!(x0 < ((NI) 0))) goto LA334;
						(*c0).ml = oldml0;
						result0 = ((NI) -1);
						goto LA329;
					}
					goto LA332;
					LA334: ;
					{
						result0 += x0;
					}
					LA332: ;
					res_HFh8yJ8ImmYNa2izZkiHrA_2 += ((NI) 1);
				} LA331: ;
			}
		} LA329: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 16):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		{
			NI i_YM9a1MJavsLgTR8FAuzXaWw_3;
			NI HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_3;
			NI res_HFh8yJ8ImmYNa2izZkiHrA_3;
			i_YM9a1MJavsLgTR8FAuzXaWw_3 = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_3 = (NI)0;
			HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_3 = (p0.kindU.sons ? (p0.kindU.sons->Sup.len-1) : -1);
			res_HFh8yJ8ImmYNa2izZkiHrA_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_HFh8yJ8ImmYNa2izZkiHrA_3 <= HEX3Atmp_Lyf2jTCHSSc8dHhkxkhocQ_3)) goto LA340;
					i_YM9a1MJavsLgTR8FAuzXaWw_3 = res_HFh8yJ8ImmYNa2izZkiHrA_3;
					result0 = npegsrawMatch(s0, p0.kindU.sons->data[i_YM9a1MJavsLgTR8FAuzXaWw_3], start0, c0);
					{
						if (!(((NI) 0) <= result0)) goto LA343;
						goto LA338;
					}
					LA343: ;
					(*c0).ml = oldml0;
					res_HFh8yJ8ImmYNa2izZkiHrA_3 += ((NI) 1);
				} LA340: ;
			}
		} LA338: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 28):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		result0 = ((NI) 0);
		{
			while (1) {
				NI x0;
				if (!((NI)(start0 + result0) <= (s0 ? s0->Sup.len : 0))) goto LA347;
				x0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], (NI)(start0 + result0), c0);
				{
					if (!(((NI) 0) <= x0)) goto LA350;
					result0 += x0;
					goto BeforeRet;
				}
				LA350: ;
				result0 += ((NI) 1);
			} LA347: ;
		}
		result0 = ((NI) -1);
		(*c0).ml = oldml0;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 29):
	{
		NI idx0;
		idx0 = (*c0).ml;
		(*c0).ml += ((NI) 1);
		result0 = ((NI) 0);
		{
			while (1) {
				NI x0;
				if (!((NI)(start0 + result0) <= (s0 ? s0->Sup.len : 0))) goto LA354;
				x0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], (NI)(start0 + result0), c0);
				{
					if (!(((NI) 0) <= x0)) goto LA357;
					{
						if (!(idx0 < ((NI) 20))) goto LA361;
						(*c0).matches[(idx0)- 0].Field0 = start0;
						(*c0).matches[(idx0)- 0].Field1 = (NI)((NI)(start0 + result0) - ((NI) 1));
					}
					LA361: ;
					result0 += x0;
					goto BeforeRet;
				}
				LA357: ;
				result0 += ((NI) 1);
			} LA354: ;
		}
		result0 = ((NI) -1);
		(*c0).ml = idx0;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 17):
	{
		result0 = ((NI) 0);
		{
			while (1) {
				NI x0;
				x0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], (NI)(start0 + result0), c0);
				{
					if (!(x0 <= ((NI) 0))) goto LA368;
					goto LA364;
				}
				LA368: ;
				result0 += x0;
			}
		} LA364: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 18):
	{
		NIM_CHAR ch0;
		result0 = ((NI) 0);
		ch0 = p0.kindU.ch;
		{
			while (1) {
				if (!((NU8)(ch0) == (NU8)(s0->data[(NI)(start0 + result0)]))) goto LA372;
				result0 += ((NI) 1);
			} LA372: ;
		}
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 19):
	{
		result0 = ((NI) 0);
		{
			while (1) {
				if (!(((*p0.kindU.charchoice)[(NU)(((NU8)(s0->data[(NI)(start0 + result0)])))>>3] &(1U<<((NU)(((NU8)(s0->data[(NI)(start0 + result0)])))&7U)))!=0)) goto LA375;
				result0 += ((NI) 1);
			} LA375: ;
		}
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 21):
	{
		NI LOC377;
		LOC377 = (NI)0;
		LOC377 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], start0, c0);
		result0 = ((((NI) 0) >= LOC377) ? ((NI) 0) : LOC377);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 22):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		result0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], start0, c0);
		{
			if (!(((NI) 0) <= result0)) goto LA381;
			result0 = ((NI) 0);
		}
		goto LA379;
		LA381: ;
		{
			(*c0).ml = oldml0;
		}
		LA379: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 23):
	{
		NI oldml0;
		oldml0 = (*c0).ml;
		result0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], start0, c0);
		{
			if (!(result0 < ((NI) 0))) goto LA387;
			result0 = ((NI) 0);
		}
		goto LA385;
		LA387: ;
		{
			(*c0).ml = oldml0;
			result0 = ((NI) -1);
		}
		LA385: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 24):
	{
		NI idx0;
		idx0 = (*c0).ml;
		(*c0).ml += ((NI) 1);
		result0 = npegsrawMatch(s0, p0.kindU.sons->data[((NI) 0)], start0, c0);
		{
			if (!(((NI) 0) <= result0)) goto LA393;
			{
				if (!(idx0 < ((NI) 20))) goto LA397;
				(*c0).matches[(idx0)- 0].Field0 = start0;
				(*c0).matches[(idx0)- 0].Field1 = (NI)((NI)(start0 + result0) - ((NI) 1));
			}
			LA397: ;
		}
		goto LA391;
		LA393: ;
		{
			(*c0).ml = idx0;
		}
		LA391: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 25) ... ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 27):
	{
		NI a0;
		NI b0;
		Node_0qztr5Keivtxacz23lA4IA n0;
		{
			if (!((*c0).ml <= ((NI) (p0.kindU.index)))) goto LA403;
			result0 = ((NI) -1);
			goto BeforeRet;
		}
		LA403: ;
		a0 = (*c0).matches[(p0.kindU.index)- 0].Field0;
		b0 = (*c0).matches[(p0.kindU.index)- 0].Field1;
		memset((void*)(&n0), 0, sizeof(n0));
		n0.kind = (Pegkind_r9a6rAhGclsLWkBysfmtr6Q)(((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 9) + ((NI) ((NI)(((NI) (p0.kind)) - ((NI) 25)))));
		n0.kindU.term = copyStrLast(s0, a0, b0);
		result0 = npegsrawMatch(s0, n0, start0, c0);
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 32):
	{
		{
			if (!((*c0).origstart == start0)) goto LA408;
			result0 = ((NI) 0);
		}
		goto LA406;
		LA408: ;
		{
			result0 = ((NI) -1);
		}
		LA406: ;
	}
	break;
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 30):
	case ((Pegkind_r9a6rAhGclsLWkBysfmtr6Q) 31):
	{
	}
	break;
	}
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, npegsmatchLenCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0) {
	NI result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	result0 = (NI)0;
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	result0 = npegsrawMatch(s0, pattern0, start0, (&c0));
	{
		if (!(((NI) 0) <= result0)) goto LA3;
		{
			NI k_4K2tyDBwzX9ac29aVq6rFAFQ;
			NI HEX3Atmp_6T2EpB8WkZx4R69cZSrqQ5g;
			NI res_3nABdYnbnXwn9bu2F9bve4LQ;
			k_4K2tyDBwzX9ac29aVq6rFAFQ = (NI)0;
			HEX3Atmp_6T2EpB8WkZx4R69cZSrqQ5g = (NI)0;
			HEX3Atmp_6T2EpB8WkZx4R69cZSrqQ5g = (NI)(c0.ml - ((NI) 1));
			res_3nABdYnbnXwn9bu2F9bve4LQ = ((NI) 0);
			{
				while (1) {
					NI startidx_sprxXof29az7lgu6TvE9bLcw;
					NI endidx_9aZ2Q6VfilAPNIjokd7nH6g;
					if (!(res_3nABdYnbnXwn9bu2F9bve4LQ <= HEX3Atmp_6T2EpB8WkZx4R69cZSrqQ5g)) goto LA7;
					k_4K2tyDBwzX9ac29aVq6rFAFQ = res_3nABdYnbnXwn9bu2F9bve4LQ;
					startidx_sprxXof29az7lgu6TvE9bLcw = c0.matches[(k_4K2tyDBwzX9ac29aVq6rFAFQ)- 0].Field0;
					endidx_9aZ2Q6VfilAPNIjokd7nH6g = c0.matches[(k_4K2tyDBwzX9ac29aVq6rFAFQ)- 0].Field1;
					{
						if (!!((startidx_sprxXof29az7lgu6TvE9bLcw == ((NI) -1)))) goto LA10;
						unsureAsgnRef((void**) (&matches0[k_4K2tyDBwzX9ac29aVq6rFAFQ]), copyStrLast(s0, startidx_sprxXof29az7lgu6TvE9bLcw, endidx_9aZ2Q6VfilAPNIjokd7nH6g));
					}
					goto LA8;
					LA10: ;
					{
						unsureAsgnRef((void**) (&matches0[k_4K2tyDBwzX9ac29aVq6rFAFQ]), nimrtl_copyString(NIM_NIL));
					}
					LA8: ;
					res_3nABdYnbnXwn9bu2F9bve4LQ += ((NI) 1);
				} LA7: ;
			}
		}
	}
	LA3: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, npegsmatchLen)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0) {
	NI result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	result0 = (NI)0;
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	result0 = npegsrawMatch(s0, pattern0, start0, (&c0));
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatchCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0) {
	NIM_BOOL result0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NI)0;
	LOC1 = npegsmatchLenCapture(s0, pattern0, matches0, matches0Len0, start0);
	result0 = !((LOC1 == ((NI) -1)));
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsmatch)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0) {
	NIM_BOOL result0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NI)0;
	LOC1 = npegsmatchLen(s0, pattern0, start0);
	result0 = !((LOC1 == ((NI) -1)));
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, npegsfindCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0) {
	NI result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
{	result0 = (NI)0;
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	{
		NI i_oRdS7buPe1Ka0zzsTmX8pA;
		NI HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g;
		NI res_l1C4y9byZiaS3qNinObkG9bA;
		i_oRdS7buPe1Ka0zzsTmX8pA = (NI)0;
		HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g = (NI)0;
		HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g = (NI)((s0 ? s0->Sup.len : 0) - ((NI) 1));
		res_l1C4y9byZiaS3qNinObkG9bA = start0;
		{
			while (1) {
				if (!(res_l1C4y9byZiaS3qNinObkG9bA <= HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g)) goto LA3;
				i_oRdS7buPe1Ka0zzsTmX8pA = res_l1C4y9byZiaS3qNinObkG9bA;
				c0.ml = ((NI) 0);
				{
					NI LOC6;
					LOC6 = (NI)0;
					LOC6 = npegsrawMatch(s0, pattern0, i_oRdS7buPe1Ka0zzsTmX8pA, (&c0));
					if (!(((NI) 0) <= LOC6)) goto LA7;
					{
						NI k_6d6Ir2mWJbmLLMBVpw1vjw;
						NI HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_2;
						NI res_l1C4y9byZiaS3qNinObkG9bA_2;
						k_6d6Ir2mWJbmLLMBVpw1vjw = (NI)0;
						HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_2 = (NI)0;
						HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_2 = (NI)(c0.ml - ((NI) 1));
						res_l1C4y9byZiaS3qNinObkG9bA_2 = ((NI) 0);
						{
							while (1) {
								NI startidx_yAKKqRVMUXKwL39aMoBpEjg;
								NI endidx_V8RdFPKMi9bJNTy9aUOWjdbQ;
								if (!(res_l1C4y9byZiaS3qNinObkG9bA_2 <= HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_2)) goto LA11;
								k_6d6Ir2mWJbmLLMBVpw1vjw = res_l1C4y9byZiaS3qNinObkG9bA_2;
								startidx_yAKKqRVMUXKwL39aMoBpEjg = c0.matches[(k_6d6Ir2mWJbmLLMBVpw1vjw)- 0].Field0;
								endidx_V8RdFPKMi9bJNTy9aUOWjdbQ = c0.matches[(k_6d6Ir2mWJbmLLMBVpw1vjw)- 0].Field1;
								{
									if (!!((startidx_yAKKqRVMUXKwL39aMoBpEjg == ((NI) -1)))) goto LA14;
									unsureAsgnRef((void**) (&matches0[k_6d6Ir2mWJbmLLMBVpw1vjw]), copyStrLast(s0, startidx_yAKKqRVMUXKwL39aMoBpEjg, endidx_V8RdFPKMi9bJNTy9aUOWjdbQ));
								}
								goto LA12;
								LA14: ;
								{
									unsureAsgnRef((void**) (&matches0[k_6d6Ir2mWJbmLLMBVpw1vjw]), nimrtl_copyString(NIM_NIL));
								}
								LA12: ;
								res_l1C4y9byZiaS3qNinObkG9bA_2 += ((NI) 1);
							} LA11: ;
						}
					}
					result0 = i_oRdS7buPe1Ka0zzsTmX8pA;
					goto BeforeRet;
				}
				LA7: ;
				res_l1C4y9byZiaS3qNinObkG9bA += ((NI) 1);
			} LA3: ;
		}
	}
	result0 = ((NI) -1);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(TY_1v9bKyksXWMsm0vNwmZ4EuQ, npegsfindBoundsCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0) {
	TY_1v9bKyksXWMsm0vNwmZ4EuQ result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
{	memset((void*)(&result0), 0, sizeof(result0));
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	{
		NI i_soaCs6q7mverzEdYKxgImQ;
		NI HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg;
		NI res_Gr3K0RJijsDl0zsrFLt9cbQ;
		i_soaCs6q7mverzEdYKxgImQ = (NI)0;
		HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg = (NI)0;
		HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg = (NI)((s0 ? s0->Sup.len : 0) - ((NI) 1));
		res_Gr3K0RJijsDl0zsrFLt9cbQ = start0;
		{
			while (1) {
				NI L0;
				if (!(res_Gr3K0RJijsDl0zsrFLt9cbQ <= HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg)) goto LA3;
				i_soaCs6q7mverzEdYKxgImQ = res_Gr3K0RJijsDl0zsrFLt9cbQ;
				c0.ml = ((NI) 0);
				L0 = npegsrawMatch(s0, pattern0, i_soaCs6q7mverzEdYKxgImQ, (&c0));
				{
					if (!(((NI) 0) <= L0)) goto LA6;
					{
						NI k_r7SgdCgVILJT8Uq9cZhjXCg;
						NI HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg_2;
						NI res_Gr3K0RJijsDl0zsrFLt9cbQ_2;
						k_r7SgdCgVILJT8Uq9cZhjXCg = (NI)0;
						HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg_2 = (NI)0;
						HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg_2 = (NI)(c0.ml - ((NI) 1));
						res_Gr3K0RJijsDl0zsrFLt9cbQ_2 = ((NI) 0);
						{
							while (1) {
								NI startidx_r78huuIbuGYMpesVFKOosw;
								NI endidx_e4mJ69cgxoxuQVSzIlk83Ng;
								if (!(res_Gr3K0RJijsDl0zsrFLt9cbQ_2 <= HEX3Atmp_72XI0oP1Z9auJr0n3dTlwQg_2)) goto LA10;
								k_r7SgdCgVILJT8Uq9cZhjXCg = res_Gr3K0RJijsDl0zsrFLt9cbQ_2;
								startidx_r78huuIbuGYMpesVFKOosw = c0.matches[(k_r7SgdCgVILJT8Uq9cZhjXCg)- 0].Field0;
								endidx_e4mJ69cgxoxuQVSzIlk83Ng = c0.matches[(k_r7SgdCgVILJT8Uq9cZhjXCg)- 0].Field1;
								{
									if (!!((startidx_r78huuIbuGYMpesVFKOosw == ((NI) -1)))) goto LA13;
									unsureAsgnRef((void**) (&matches0[k_r7SgdCgVILJT8Uq9cZhjXCg]), copyStrLast(s0, startidx_r78huuIbuGYMpesVFKOosw, endidx_e4mJ69cgxoxuQVSzIlk83Ng));
								}
								goto LA11;
								LA13: ;
								{
									unsureAsgnRef((void**) (&matches0[k_r7SgdCgVILJT8Uq9cZhjXCg]), nimrtl_copyString(NIM_NIL));
								}
								LA11: ;
								res_Gr3K0RJijsDl0zsrFLt9cbQ_2 += ((NI) 1);
							} LA10: ;
						}
					}
					result0.Field0 = i_soaCs6q7mverzEdYKxgImQ;
					result0.Field1 = (NI)((NI)(i_soaCs6q7mverzEdYKxgImQ + L0) - ((NI) 1));
					goto BeforeRet;
				}
				LA6: ;
				res_Gr3K0RJijsDl0zsrFLt9cbQ += ((NI) 1);
			} LA3: ;
		}
	}
	result0 = T_YGOrctedenU9ao6jM7xmy6g_38;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, npegsfind)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0) {
	NI result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
{	result0 = (NI)0;
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	{
		NI i_oRdS7buPe1Ka0zzsTmX8pA_2;
		NI HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_3;
		NI res_l1C4y9byZiaS3qNinObkG9bA_3;
		i_oRdS7buPe1Ka0zzsTmX8pA_2 = (NI)0;
		HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_3 = (NI)0;
		HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_3 = (NI)((s0 ? s0->Sup.len : 0) - ((NI) 1));
		res_l1C4y9byZiaS3qNinObkG9bA_3 = start0;
		{
			while (1) {
				if (!(res_l1C4y9byZiaS3qNinObkG9bA_3 <= HEX3Atmp_Xom9cT2NMnRFFTpG3eO6j0g_3)) goto LA3;
				i_oRdS7buPe1Ka0zzsTmX8pA_2 = res_l1C4y9byZiaS3qNinObkG9bA_3;
				{
					NI LOC6;
					LOC6 = (NI)0;
					LOC6 = npegsrawMatch(s0, pattern0, i_oRdS7buPe1Ka0zzsTmX8pA_2, (&c0));
					if (!(((NI) 0) <= LOC6)) goto LA7;
					result0 = i_oRdS7buPe1Ka0zzsTmX8pA_2;
					goto BeforeRet;
				}
				LA7: ;
				res_l1C4y9byZiaS3qNinObkG9bA_3 += ((NI) 1);
			} LA3: ;
		}
	}
	result0 = ((NI) -1);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegsfindAll)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0) {
	TY_sM4lkSb7zS6F7OVMvW9cffQ* result0;
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0);
	{
		NimStringDesc* x_fpSNXGefh5HpyG9azVEa1Ag;
		Captures_tZhlqR24EekS3w5Qr6WNZQ c_sZji9cZurxJjGI9a3RJim3zg;
		NI i_cmj3bHRi0qitGHjF1zBtdA;
		x_fpSNXGefh5HpyG9azVEa1Ag = (NimStringDesc*)0;
		memset((void*)(&c_sZji9cZurxJjGI9a3RJim3zg), 0, sizeof(c_sZji9cZurxJjGI9a3RJim3zg));
		c_sZji9cZurxJjGI9a3RJim3zg.origstart = start0;
		i_cmj3bHRi0qitGHjF1zBtdA = start0;
		{
			while (1) {
				NI L_apBpX1X4yJYsFbzLXFv6tQ;
				if (!(i_cmj3bHRi0qitGHjF1zBtdA < (s0 ? s0->Sup.len : 0))) goto LA3;
				c_sZji9cZurxJjGI9a3RJim3zg.ml = ((NI) 0);
				L_apBpX1X4yJYsFbzLXFv6tQ = npegsrawMatch(s0, pattern0, i_cmj3bHRi0qitGHjF1zBtdA, (&c_sZji9cZurxJjGI9a3RJim3zg));
				{
					if (!(L_apBpX1X4yJYsFbzLXFv6tQ < ((NI) 0))) goto LA6;
					i_cmj3bHRi0qitGHjF1zBtdA += ((NI) 1);
				}
				goto LA4;
				LA6: ;
				{
					NimStringDesc* LOC9;
					x_fpSNXGefh5HpyG9azVEa1Ag = copyStrLast(s0, i_cmj3bHRi0qitGHjF1zBtdA, (NI)((NI)(i_cmj3bHRi0qitGHjF1zBtdA + L_apBpX1X4yJYsFbzLXFv6tQ) - ((NI) 1)));
					result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*));
					LOC9 = (NimStringDesc*)0;
					LOC9 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = nimrtl_copyStringRC1(x_fpSNXGefh5HpyG9azVEa1Ag);
					if (LOC9) nimGCunrefNoCycle(LOC9);
					++result0->Sup.len;
					i_cmj3bHRi0qitGHjF1zBtdA += L_apBpX1X4yJYsFbzLXFv6tQ;
				}
				LA4: ;
			} LA3: ;
		}
	}
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontains)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NI start0) {
	NIM_BOOL result0;
	NI LOC1;
{	result0 = (NIM_BOOL)0;
	LOC1 = (NI)0;
	LOC1 = npegsfind(s0, pattern0, start0);
	result0 = (((NI) 0) <= LOC1);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegscontainsCapture)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA pattern0, NimStringDesc** matches0, NI matches0Len0, NI start0) {
	NIM_BOOL result0;
	NI LOC1;
{	result0 = (NIM_BOOL)0;
	LOC1 = (NI)0;
	LOC1 = npegsfindCapture(s0, pattern0, matches0, matches0Len0, start0);
	result0 = (((NI) 0) <= LOC1);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsstartsWith)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA prefix0, NI start0) {
	NIM_BOOL result0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NI)0;
	LOC1 = npegsmatchLen(s0, prefix0, start0);
	result0 = (((NI) 0) <= LOC1);
	return result0;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, npegsendsWith)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA suffix0, NI start0) {
	NIM_BOOL result0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
{	result0 = (NIM_BOOL)0;
	memset((void*)(&c0), 0, sizeof(c0));
	c0.origstart = start0;
	{
		NI i_9cXpT9bRIo1qjHMV4exEIKMw;
		NI HEX3Atmp_BmMMuGCcbnzgwn0Q4YUwOw;
		NI res_RESooY09cREmZCAnvXwMgpA;
		i_9cXpT9bRIo1qjHMV4exEIKMw = (NI)0;
		HEX3Atmp_BmMMuGCcbnzgwn0Q4YUwOw = (NI)0;
		HEX3Atmp_BmMMuGCcbnzgwn0Q4YUwOw = (NI)((s0 ? s0->Sup.len : 0) - ((NI) 1));
		res_RESooY09cREmZCAnvXwMgpA = start0;
		{
			while (1) {
				if (!(res_RESooY09cREmZCAnvXwMgpA <= HEX3Atmp_BmMMuGCcbnzgwn0Q4YUwOw)) goto LA3;
				i_9cXpT9bRIo1qjHMV4exEIKMw = res_RESooY09cREmZCAnvXwMgpA;
				{
					NI LOC6;
					LOC6 = (NI)0;
					LOC6 = npegsrawMatch(s0, suffix0, i_9cXpT9bRIo1qjHMV4exEIKMw, (&c0));
					if (!(LOC6 == (NI)((s0 ? s0->Sup.len : 0) - i_9cXpT9bRIo1qjHMV4exEIKMw))) goto LA7;
					result0 = NIM_TRUE;
					goto BeforeRet;
				}
				LA7: ;
				res_RESooY09cREmZCAnvXwMgpA += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacef)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, NimStringDesc* by0) {
	NimStringDesc* result0;
	NI i0;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	NimStringDesc* LOC16;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	i0 = ((NI) 0);
	memset((void*)caps0, 0, sizeof(caps0));
	memset((void*)(&c0), 0, sizeof(c0));
	{
		while (1) {
			NI x0;
			if (!(i0 < (s0 ? s0->Sup.len : 0))) goto LA2;
			c0.ml = ((NI) 0);
			x0 = npegsrawMatch(s0, sub0, i0, (&c0));
			{
				if (!(x0 <= ((NI) 0))) goto LA5;
				result0 = addChar(result0, s0->data[i0]);
				i0 += ((NI) 1);
			}
			goto LA3;
			LA5: ;
			{
				{
					NI k_hVOrFgbi1k3wOq9bRrpQpdA;
					NI HEX3Atmp_EylZovO49cfEhQkSye6RgEQ;
					NI res_Wd6GYFr4hjbq0oKBh9abcPQ;
					k_hVOrFgbi1k3wOq9bRrpQpdA = (NI)0;
					HEX3Atmp_EylZovO49cfEhQkSye6RgEQ = (NI)0;
					HEX3Atmp_EylZovO49cfEhQkSye6RgEQ = (NI)(c0.ml - ((NI) 1));
					res_Wd6GYFr4hjbq0oKBh9abcPQ = ((NI) 0);
					{
						while (1) {
							NI startidx_avWQRFaX9b7FRrkHA8VDSGg;
							NI endidx_DrfSKXDgzsbNqU9a0FppNLg;
							if (!(res_Wd6GYFr4hjbq0oKBh9abcPQ <= HEX3Atmp_EylZovO49cfEhQkSye6RgEQ)) goto LA10;
							k_hVOrFgbi1k3wOq9bRrpQpdA = res_Wd6GYFr4hjbq0oKBh9abcPQ;
							startidx_avWQRFaX9b7FRrkHA8VDSGg = c0.matches[(k_hVOrFgbi1k3wOq9bRrpQpdA)- 0].Field0;
							endidx_DrfSKXDgzsbNqU9a0FppNLg = c0.matches[(k_hVOrFgbi1k3wOq9bRrpQpdA)- 0].Field1;
							{
								if (!!((startidx_avWQRFaX9b7FRrkHA8VDSGg == ((NI) -1)))) goto LA13;
								caps0[(k_hVOrFgbi1k3wOq9bRrpQpdA)- 0] = copyStrLast(s0, startidx_avWQRFaX9b7FRrkHA8VDSGg, endidx_DrfSKXDgzsbNqU9a0FppNLg);
							}
							goto LA11;
							LA13: ;
							{
								caps0[(k_hVOrFgbi1k3wOq9bRrpQpdA)- 0] = nimrtl_copyString(NIM_NIL);
							}
							LA11: ;
							res_Wd6GYFr4hjbq0oKBh9abcPQ += ((NI) 1);
						} LA10: ;
					}
				}
				nsuAddf((&result0), by0, caps0, 20);
				i0 += x0;
			}
			LA3: ;
		} LA2: ;
	}
	LOC16 = (NimStringDesc*)0;
	LOC16 = copyStr(s0, i0);
	result0 = nimrtl_resizeString(result0, LOC16->Sup.len + 0);
appendString(result0, LOC16);
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplace)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, NimStringDesc* by0) {
	NimStringDesc* result0;
	NI i0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	NimStringDesc* LOC8;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	i0 = ((NI) 0);
	memset((void*)(&c0), 0, sizeof(c0));
	{
		while (1) {
			NI x0;
			if (!(i0 < (s0 ? s0->Sup.len : 0))) goto LA2;
			x0 = npegsrawMatch(s0, sub0, i0, (&c0));
			{
				if (!(x0 <= ((NI) 0))) goto LA5;
				result0 = addChar(result0, s0->data[i0]);
				i0 += ((NI) 1);
			}
			goto LA3;
			LA5: ;
			{
				result0 = nimrtl_resizeString(result0, by0->Sup.len + 0);
appendString(result0, by0);
				i0 += x0;
			}
			LA3: ;
		} LA2: ;
	}
	LOC8 = (NimStringDesc*)0;
	LOC8 = copyStr(s0, i0);
	result0 = nimrtl_resizeString(result0, LOC8->Sup.len + 0);
appendString(result0, LOC8);
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsparallelReplace)(NimStringDesc* s0, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs0, NI subs0Len0) {
	NimStringDesc* result0;
	NI i0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps0;
	NimStringDesc* LOC19;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	i0 = ((NI) 0);
	memset((void*)(&c0), 0, sizeof(c0));
	memset((void*)caps0, 0, sizeof(caps0));
	{
		while (1) {
			if (!(i0 < (s0 ? s0->Sup.len : 0))) goto LA2;
			{
				{
					NI j_d1Q8eyUpWC9btQVw79clPjTg;
					NI HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA;
					NI res_blazMYFJpDmovU7foHMYNw;
					j_d1Q8eyUpWC9btQVw79clPjTg = (NI)0;
					HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA = (NI)0;
					HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA = (subs0Len0-1);
					res_blazMYFJpDmovU7foHMYNw = ((NI) 0);
					{
						while (1) {
							NI x0;
							if (!(res_blazMYFJpDmovU7foHMYNw <= HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA)) goto LA6;
							j_d1Q8eyUpWC9btQVw79clPjTg = res_blazMYFJpDmovU7foHMYNw;
							c0.ml = ((NI) 0);
							x0 = npegsrawMatch(s0, subs0[j_d1Q8eyUpWC9btQVw79clPjTg].Field0, i0, (&c0));
							{
								if (!(((NI) 0) < x0)) goto LA9;
								{
									NI k_Le8Viteo4yPXhK5RPeeIEA;
									NI HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA_2;
									NI res_blazMYFJpDmovU7foHMYNw_2;
									k_Le8Viteo4yPXhK5RPeeIEA = (NI)0;
									HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA_2 = (NI)0;
									HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA_2 = (NI)(c0.ml - ((NI) 1));
									res_blazMYFJpDmovU7foHMYNw_2 = ((NI) 0);
									{
										while (1) {
											NI startidx_V3nOsLk1JLhqSKF59bKVrgg;
											NI endidx_TKf9ctLzv8DxG5NSDrw0sXA;
											if (!(res_blazMYFJpDmovU7foHMYNw_2 <= HEX3Atmp_UDxVCPUWmfx9cvB69czRs7zA_2)) goto LA13;
											k_Le8Viteo4yPXhK5RPeeIEA = res_blazMYFJpDmovU7foHMYNw_2;
											startidx_V3nOsLk1JLhqSKF59bKVrgg = c0.matches[(k_Le8Viteo4yPXhK5RPeeIEA)- 0].Field0;
											endidx_TKf9ctLzv8DxG5NSDrw0sXA = c0.matches[(k_Le8Viteo4yPXhK5RPeeIEA)- 0].Field1;
											{
												if (!!((startidx_V3nOsLk1JLhqSKF59bKVrgg == ((NI) -1)))) goto LA16;
												caps0[(k_Le8Viteo4yPXhK5RPeeIEA)- 0] = copyStrLast(s0, startidx_V3nOsLk1JLhqSKF59bKVrgg, endidx_TKf9ctLzv8DxG5NSDrw0sXA);
											}
											goto LA14;
											LA16: ;
											{
												caps0[(k_Le8Viteo4yPXhK5RPeeIEA)- 0] = nimrtl_copyString(NIM_NIL);
											}
											LA14: ;
											res_blazMYFJpDmovU7foHMYNw_2 += ((NI) 1);
										} LA13: ;
									}
								}
								nsuAddf((&result0), subs0[j_d1Q8eyUpWC9btQVw79clPjTg].Field1, caps0, 20);
								i0 += x0;
								goto LA3;
							}
							LA9: ;
							res_blazMYFJpDmovU7foHMYNw += ((NI) 1);
						} LA6: ;
					}
				}
				result0 = addChar(result0, s0->data[i0]);
				i0 += ((NI) 1);
			} LA3: ;
		} LA2: ;
	}
	LOC19 = (NimStringDesc*)0;
	LOC19 = copyStr(s0, i0);
	result0 = nimrtl_resizeString(result0, LOC19->Sup.len + 0);
appendString(result0, LOC19);
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, npegsreplacecb)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sub0, TY_kuVtcXAXJL2ZgjFzPoOoiw cb0) {
	NimStringDesc* result0;
	NI i0;
	TY_Qdg3zgcNlmwGTTeVxyC9bbw caps0;
	Captures_tZhlqR24EekS3w5Qr6WNZQ c0;
	NI m0;
	NimStringDesc* LOC17;
	result0 = (NimStringDesc*)0;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_YGOrctedenU9ao6jM7xmy6g_9));
	i0 = ((NI) 0);
	memset((void*)caps0, 0, sizeof(caps0));
	memset((void*)(&c0), 0, sizeof(c0));
	m0 = ((NI) 0);
	{
		while (1) {
			NI x0;
			if (!(i0 < (s0 ? s0->Sup.len : 0))) goto LA2;
			c0.ml = ((NI) 0);
			x0 = npegsrawMatch(s0, sub0, i0, (&c0));
			{
				if (!(x0 <= ((NI) 0))) goto LA5;
				result0 = addChar(result0, s0->data[i0]);
				i0 += ((NI) 1);
			}
			goto LA3;
			LA5: ;
			{
				NimStringDesc* LOC16;
				{
					NI k_Q0BzDUdtEBCcKyCWLGzvoQ;
					NI HEX3Atmp_lS3DwL4wFENeFa9beRM9ab6A;
					NI res_qV34X1OmH9cwjGnW8rMNdMA;
					k_Q0BzDUdtEBCcKyCWLGzvoQ = (NI)0;
					HEX3Atmp_lS3DwL4wFENeFa9beRM9ab6A = (NI)0;
					HEX3Atmp_lS3DwL4wFENeFa9beRM9ab6A = (NI)(c0.ml - ((NI) 1));
					res_qV34X1OmH9cwjGnW8rMNdMA = ((NI) 0);
					{
						while (1) {
							NI startidx_iHLgKM6m5wOAw9aTtm8JwgQ;
							NI endidx_OHYel71bSru9aOVzNJ64rMw;
							if (!(res_qV34X1OmH9cwjGnW8rMNdMA <= HEX3Atmp_lS3DwL4wFENeFa9beRM9ab6A)) goto LA10;
							k_Q0BzDUdtEBCcKyCWLGzvoQ = res_qV34X1OmH9cwjGnW8rMNdMA;
							startidx_iHLgKM6m5wOAw9aTtm8JwgQ = c0.matches[(k_Q0BzDUdtEBCcKyCWLGzvoQ)- 0].Field0;
							endidx_OHYel71bSru9aOVzNJ64rMw = c0.matches[(k_Q0BzDUdtEBCcKyCWLGzvoQ)- 0].Field1;
							{
								if (!!((startidx_iHLgKM6m5wOAw9aTtm8JwgQ == ((NI) -1)))) goto LA13;
								caps0[(k_Q0BzDUdtEBCcKyCWLGzvoQ)- 0] = copyStrLast(s0, startidx_iHLgKM6m5wOAw9aTtm8JwgQ, endidx_OHYel71bSru9aOVzNJ64rMw);
							}
							goto LA11;
							LA13: ;
							{
								caps0[(k_Q0BzDUdtEBCcKyCWLGzvoQ)- 0] = nimrtl_copyString(NIM_NIL);
							}
							LA11: ;
							res_qV34X1OmH9cwjGnW8rMNdMA += ((NI) 1);
						} LA10: ;
					}
				}
				LOC16 = (NimStringDesc*)0;
				LOC16 = cb0.ClEnv? cb0.ClPrc(m0, c0.ml, caps0, 20, cb0.ClEnv):((T_YGOrctedenU9ao6jM7xmy6g_39)(cb0.ClPrc))(m0, c0.ml, caps0, 20);
				result0 = nimrtl_resizeString(result0, LOC16->Sup.len + 0);
appendString(result0, LOC16);
				i0 += x0;
				m0 += ((NI) 1);
			}
			LA3: ;
		} LA2: ;
	}
	LOC17 = (NimStringDesc*)0;
	LOC17 = copyStr(s0, i0);
	result0 = nimrtl_resizeString(result0, LOC17->Sup.len + 0);
appendString(result0, LOC17);
	return result0;
}

N_LIB_EXPORT N_CDECL(void, npegstransformFile)(NimStringDesc* infile0, NimStringDesc* outfile0, TY_9cWsBWKSkYcDRI59aMfjP0sw* subs0, NI subs0Len0) {
	NimStringDesc* x0;
	NimStringDesc* LOC1;
	x0 = readfile_T9cm5LIRX2tKEH9aREBZ8A0w(infile0);
	LOC1 = (NimStringDesc*)0;
	LOC1 = npegsparallelReplace(x0, subs0, subs0Len0);
	writefile_c1B29b0ZdDRPHc27YaKqwaA(outfile0, LOC1);
}

N_LIB_EXPORT N_CDECL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, npegssplit)(NimStringDesc* s0, Node_0qztr5Keivtxacz23lA4IA sep0) {
	TY_sM4lkSb7zS6F7OVMvW9cffQ* result0;
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0);
	{
		NimStringDesc* x_abqXNxvK0Zh0fVkCF8VqMg;
		Captures_tZhlqR24EekS3w5Qr6WNZQ c_VsskJGIjMd00oKjvZdcrGA;
		NI first_E3PZf9aQI9aOSev11CGO5tGA;
		NI last_GP9bio1FtF3ffrf9czt39czAw;
		x_abqXNxvK0Zh0fVkCF8VqMg = (NimStringDesc*)0;
		memset((void*)(&c_VsskJGIjMd00oKjvZdcrGA), 0, sizeof(c_VsskJGIjMd00oKjvZdcrGA));
		first_E3PZf9aQI9aOSev11CGO5tGA = ((NI) 0);
		last_GP9bio1FtF3ffrf9czt39czAw = ((NI) 0);
		{
			while (1) {
				NI x_abqXNxvK0Zh0fVkCF8VqMg_2;
				if (!(last_GP9bio1FtF3ffrf9czt39czAw < (s0 ? s0->Sup.len : 0))) goto LA3;
				c_VsskJGIjMd00oKjvZdcrGA.ml = ((NI) 0);
				x_abqXNxvK0Zh0fVkCF8VqMg_2 = npegsrawMatch(s0, sep0, last_GP9bio1FtF3ffrf9czt39czAw, (&c_VsskJGIjMd00oKjvZdcrGA));
				{
					if (!(((NI) 0) < x_abqXNxvK0Zh0fVkCF8VqMg_2)) goto LA6;
					last_GP9bio1FtF3ffrf9czt39czAw += x_abqXNxvK0Zh0fVkCF8VqMg_2;
				}
				LA6: ;
				first_E3PZf9aQI9aOSev11CGO5tGA = last_GP9bio1FtF3ffrf9czt39czAw;
				{
					while (1) {
						if (!(last_GP9bio1FtF3ffrf9czt39czAw < (s0 ? s0->Sup.len : 0))) goto LA9;
						last_GP9bio1FtF3ffrf9czt39czAw += ((NI) 1);
						c_VsskJGIjMd00oKjvZdcrGA.ml = ((NI) 0);
						x_abqXNxvK0Zh0fVkCF8VqMg_2 = npegsrawMatch(s0, sep0, last_GP9bio1FtF3ffrf9czt39czAw, (&c_VsskJGIjMd00oKjvZdcrGA));
						{
							if (!(((NI) 0) < x_abqXNxvK0Zh0fVkCF8VqMg_2)) goto LA12;
							goto LA8;
						}
						LA12: ;
					} LA9: ;
				} LA8: ;
				{
					NimStringDesc* LOC18;
					if (!(first_E3PZf9aQI9aOSev11CGO5tGA < last_GP9bio1FtF3ffrf9czt39czAw)) goto LA16;
					x_abqXNxvK0Zh0fVkCF8VqMg = copyStrLast(s0, first_E3PZf9aQI9aOSev11CGO5tGA, (NI)(last_GP9bio1FtF3ffrf9czt39czAw - ((NI) 1)));
					result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*));
					LOC18 = (NimStringDesc*)0;
					LOC18 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = nimrtl_copyStringRC1(x_abqXNxvK0Zh0fVkCF8VqMg);
					if (LOC18) nimGCunrefNoCycle(LOC18);
					++result0->Sup.len;
				}
				LA16: ;
			} LA3: ;
		}
	}
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_pegsInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_pegsDatInit000)(void) {
static TNimNode* T_YGOrctedenU9ao6jM7xmy6g_2[33];
NI T_YGOrctedenU9ao6jM7xmy6g_4;
static char* NIM_CONST T_YGOrctedenU9ao6jM7xmy6g_3[33] = {
"pkEmpty", 
"pkAny", 
"pkAnyRune", 
"pkNewLine", 
"pkLetter", 
"pkLower", 
"pkUpper", 
"pkTitle", 
"pkWhitespace", 
"pkTerminal", 
"pkTerminalIgnoreCase", 
"pkTerminalIgnoreStyle", 
"pkChar", 
"pkCharChoice", 
"pkNonTerminal", 
"pkSequence", 
"pkOrderedChoice", 
"pkGreedyRep", 
"pkGreedyRepChar", 
"pkGreedyRepSet", 
"pkGreedyAny", 
"pkOption", 
"pkAndPredicate", 
"pkNotPredicate", 
"pkCapture", 
"pkBackRef", 
"pkBackRefIgnoreCase", 
"pkBackRefIgnoreStyle", 
"pkSearch", 
"pkCapturedSearch", 
"pkRule", 
"pkList", 
"pkStartAnchor"};
static TNimNode* T_YGOrctedenU9ao6jM7xmy6g_5[5];
static TNimNode* T_YGOrctedenU9ao6jM7xmy6g_6[2];
NI T_YGOrctedenU9ao6jM7xmy6g_8;
static char* NIM_CONST T_YGOrctedenU9ao6jM7xmy6g_7[2] = {
"ntDeclared", 
"ntUsed"};
static TNimNode T_YGOrctedenU9ao6jM7xmy6g_0[53];
NTI_HDqWPvEAxZK51ZcfaeQEdg.size = sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set);
NTI_HDqWPvEAxZK51ZcfaeQEdg.kind = 19;
NTI_HDqWPvEAxZK51ZcfaeQEdg.base = (&NTI_nmiMWKVIe46vacnhAFrQvw);
NTI_HDqWPvEAxZK51ZcfaeQEdg.flags = 3;
T_YGOrctedenU9ao6jM7xmy6g_0[0].len = 0; T_YGOrctedenU9ao6jM7xmy6g_0[0].kind = 0;
NTI_HDqWPvEAxZK51ZcfaeQEdg.node = &T_YGOrctedenU9ao6jM7xmy6g_0[0];
NTI_DWDl83X3sWmMXGYAzF5Aug.size = sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set*);
NTI_DWDl83X3sWmMXGYAzF5Aug.kind = 22;
NTI_DWDl83X3sWmMXGYAzF5Aug.base = (&NTI_HDqWPvEAxZK51ZcfaeQEdg);
NTI_DWDl83X3sWmMXGYAzF5Aug.flags = 2;
NTI_DWDl83X3sWmMXGYAzF5Aug.marker = Marker_TY_DWDl83X3sWmMXGYAzF5Aug;
NTI_0qztr5Keivtxacz23lA4IA.size = sizeof(Node_0qztr5Keivtxacz23lA4IA);
NTI_0qztr5Keivtxacz23lA4IA.kind = 18;
NTI_0qztr5Keivtxacz23lA4IA.base = 0;
NTI_r9a6rAhGclsLWkBysfmtr6Q.size = sizeof(Pegkind_r9a6rAhGclsLWkBysfmtr6Q);
NTI_r9a6rAhGclsLWkBysfmtr6Q.kind = 14;
NTI_r9a6rAhGclsLWkBysfmtr6Q.base = 0;
NTI_r9a6rAhGclsLWkBysfmtr6Q.flags = 3;
for (T_YGOrctedenU9ao6jM7xmy6g_4 = 0; T_YGOrctedenU9ao6jM7xmy6g_4 < 33; T_YGOrctedenU9ao6jM7xmy6g_4++) {
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_4+2].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_4+2].offset = T_YGOrctedenU9ao6jM7xmy6g_4;
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_4+2].name = T_YGOrctedenU9ao6jM7xmy6g_3[T_YGOrctedenU9ao6jM7xmy6g_4];
T_YGOrctedenU9ao6jM7xmy6g_2[T_YGOrctedenU9ao6jM7xmy6g_4] = &T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_4+2];
}
T_YGOrctedenU9ao6jM7xmy6g_0[35].len = 33; T_YGOrctedenU9ao6jM7xmy6g_0[35].kind = 2; T_YGOrctedenU9ao6jM7xmy6g_0[35].sons = &T_YGOrctedenU9ao6jM7xmy6g_2[0];
NTI_r9a6rAhGclsLWkBysfmtr6Q.node = &T_YGOrctedenU9ao6jM7xmy6g_0[35];
T_YGOrctedenU9ao6jM7xmy6g_0[1].kind = 3;
T_YGOrctedenU9ao6jM7xmy6g_0[1].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kind);
T_YGOrctedenU9ao6jM7xmy6g_0[1].typ = (&NTI_r9a6rAhGclsLWkBysfmtr6Q);
T_YGOrctedenU9ao6jM7xmy6g_0[1].name = "kind";
T_YGOrctedenU9ao6jM7xmy6g_0[1].sons = &NimDT__0qztr5Keivtxacz23lA4IA_kind[0];
T_YGOrctedenU9ao6jM7xmy6g_0[1].len = 33;
T_YGOrctedenU9ao6jM7xmy6g_0[36].len = 0; T_YGOrctedenU9ao6jM7xmy6g_0[36].kind = 2;
NimDT__0qztr5Keivtxacz23lA4IA_kind[0] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[1] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[2] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[3] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[4] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[5] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[6] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[7] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
NimDT__0qztr5Keivtxacz23lA4IA_kind[8] = &T_YGOrctedenU9ao6jM7xmy6g_0[36];
T_YGOrctedenU9ao6jM7xmy6g_0[37].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[37].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.term);
T_YGOrctedenU9ao6jM7xmy6g_0[37].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_YGOrctedenU9ao6jM7xmy6g_0[37].name = "term";
NimDT__0qztr5Keivtxacz23lA4IA_kind[9] = &T_YGOrctedenU9ao6jM7xmy6g_0[37];
NimDT__0qztr5Keivtxacz23lA4IA_kind[10] = &T_YGOrctedenU9ao6jM7xmy6g_0[37];
NimDT__0qztr5Keivtxacz23lA4IA_kind[11] = &T_YGOrctedenU9ao6jM7xmy6g_0[37];
T_YGOrctedenU9ao6jM7xmy6g_0[38].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[38].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.ch);
T_YGOrctedenU9ao6jM7xmy6g_0[38].typ = (&NTI_nmiMWKVIe46vacnhAFrQvw);
T_YGOrctedenU9ao6jM7xmy6g_0[38].name = "ch";
NimDT__0qztr5Keivtxacz23lA4IA_kind[12] = &T_YGOrctedenU9ao6jM7xmy6g_0[38];
NimDT__0qztr5Keivtxacz23lA4IA_kind[18] = &T_YGOrctedenU9ao6jM7xmy6g_0[38];
T_YGOrctedenU9ao6jM7xmy6g_0[39].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[39].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.charchoice);
T_YGOrctedenU9ao6jM7xmy6g_0[39].typ = (&NTI_DWDl83X3sWmMXGYAzF5Aug);
T_YGOrctedenU9ao6jM7xmy6g_0[39].name = "charChoice";
NimDT__0qztr5Keivtxacz23lA4IA_kind[13] = &T_YGOrctedenU9ao6jM7xmy6g_0[39];
NimDT__0qztr5Keivtxacz23lA4IA_kind[19] = &T_YGOrctedenU9ao6jM7xmy6g_0[39];
NTI_VMn2tGRm8B9a9cqMEec3KPEA.size = sizeof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA);
NTI_VMn2tGRm8B9a9cqMEec3KPEA.kind = 18;
NTI_VMn2tGRm8B9a9cqMEec3KPEA.base = 0;
T_YGOrctedenU9ao6jM7xmy6g_5[0] = &T_YGOrctedenU9ao6jM7xmy6g_0[42];
T_YGOrctedenU9ao6jM7xmy6g_0[42].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[42].offset = offsetof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA, name);
T_YGOrctedenU9ao6jM7xmy6g_0[42].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_YGOrctedenU9ao6jM7xmy6g_0[42].name = "name";
T_YGOrctedenU9ao6jM7xmy6g_5[1] = &T_YGOrctedenU9ao6jM7xmy6g_0[43];
T_YGOrctedenU9ao6jM7xmy6g_0[43].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[43].offset = offsetof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA, line);
T_YGOrctedenU9ao6jM7xmy6g_0[43].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_YGOrctedenU9ao6jM7xmy6g_0[43].name = "line";
T_YGOrctedenU9ao6jM7xmy6g_5[2] = &T_YGOrctedenU9ao6jM7xmy6g_0[44];
T_YGOrctedenU9ao6jM7xmy6g_0[44].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[44].offset = offsetof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA, col);
T_YGOrctedenU9ao6jM7xmy6g_0[44].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_YGOrctedenU9ao6jM7xmy6g_0[44].name = "col";
T_YGOrctedenU9ao6jM7xmy6g_5[3] = &T_YGOrctedenU9ao6jM7xmy6g_0[45];
NTI_raeF9a9anryo8cnwfITE0Glw.size = sizeof(Nonterminalflag_raeF9a9anryo8cnwfITE0Glw);
NTI_raeF9a9anryo8cnwfITE0Glw.kind = 14;
NTI_raeF9a9anryo8cnwfITE0Glw.base = 0;
NTI_raeF9a9anryo8cnwfITE0Glw.flags = 3;
for (T_YGOrctedenU9ao6jM7xmy6g_8 = 0; T_YGOrctedenU9ao6jM7xmy6g_8 < 2; T_YGOrctedenU9ao6jM7xmy6g_8++) {
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_8+46].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_8+46].offset = T_YGOrctedenU9ao6jM7xmy6g_8;
T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_8+46].name = T_YGOrctedenU9ao6jM7xmy6g_7[T_YGOrctedenU9ao6jM7xmy6g_8];
T_YGOrctedenU9ao6jM7xmy6g_6[T_YGOrctedenU9ao6jM7xmy6g_8] = &T_YGOrctedenU9ao6jM7xmy6g_0[T_YGOrctedenU9ao6jM7xmy6g_8+46];
}
T_YGOrctedenU9ao6jM7xmy6g_0[48].len = 2; T_YGOrctedenU9ao6jM7xmy6g_0[48].kind = 2; T_YGOrctedenU9ao6jM7xmy6g_0[48].sons = &T_YGOrctedenU9ao6jM7xmy6g_6[0];
NTI_raeF9a9anryo8cnwfITE0Glw.node = &T_YGOrctedenU9ao6jM7xmy6g_0[48];
NTI_lU0PfHKIn29cxb4xJ1TaXlA.size = sizeof(Nonterminalflag_raeF9a9anryo8cnwfITE0Glw_Set);
NTI_lU0PfHKIn29cxb4xJ1TaXlA.kind = 19;
NTI_lU0PfHKIn29cxb4xJ1TaXlA.base = (&NTI_raeF9a9anryo8cnwfITE0Glw);
NTI_lU0PfHKIn29cxb4xJ1TaXlA.flags = 3;
T_YGOrctedenU9ao6jM7xmy6g_0[49].len = 0; T_YGOrctedenU9ao6jM7xmy6g_0[49].kind = 0;
NTI_lU0PfHKIn29cxb4xJ1TaXlA.node = &T_YGOrctedenU9ao6jM7xmy6g_0[49];
T_YGOrctedenU9ao6jM7xmy6g_0[45].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[45].offset = offsetof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA, flags);
T_YGOrctedenU9ao6jM7xmy6g_0[45].typ = (&NTI_lU0PfHKIn29cxb4xJ1TaXlA);
T_YGOrctedenU9ao6jM7xmy6g_0[45].name = "flags";
T_YGOrctedenU9ao6jM7xmy6g_5[4] = &T_YGOrctedenU9ao6jM7xmy6g_0[50];
T_YGOrctedenU9ao6jM7xmy6g_0[50].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[50].offset = offsetof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA, rule);
T_YGOrctedenU9ao6jM7xmy6g_0[50].typ = (&NTI_0qztr5Keivtxacz23lA4IA);
T_YGOrctedenU9ao6jM7xmy6g_0[50].name = "rule";
T_YGOrctedenU9ao6jM7xmy6g_0[41].len = 5; T_YGOrctedenU9ao6jM7xmy6g_0[41].kind = 2; T_YGOrctedenU9ao6jM7xmy6g_0[41].sons = &T_YGOrctedenU9ao6jM7xmy6g_5[0];
NTI_VMn2tGRm8B9a9cqMEec3KPEA.node = &T_YGOrctedenU9ao6jM7xmy6g_0[41];
NTI_ne9c8mGWiMWXBIOmu9cRFBTw.size = sizeof(Nonterminalobj_VMn2tGRm8B9a9cqMEec3KPEA*);
NTI_ne9c8mGWiMWXBIOmu9cRFBTw.kind = 22;
NTI_ne9c8mGWiMWXBIOmu9cRFBTw.base = (&NTI_VMn2tGRm8B9a9cqMEec3KPEA);
NTI_ne9c8mGWiMWXBIOmu9cRFBTw.marker = Marker_TY_ne9c8mGWiMWXBIOmu9cRFBTw;
T_YGOrctedenU9ao6jM7xmy6g_0[40].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[40].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.nt);
T_YGOrctedenU9ao6jM7xmy6g_0[40].typ = (&NTI_ne9c8mGWiMWXBIOmu9cRFBTw);
T_YGOrctedenU9ao6jM7xmy6g_0[40].name = "nt";
NimDT__0qztr5Keivtxacz23lA4IA_kind[14] = &T_YGOrctedenU9ao6jM7xmy6g_0[40];
T_YGOrctedenU9ao6jM7xmy6g_0[51].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[51].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.index);
T_YGOrctedenU9ao6jM7xmy6g_0[51].typ = (&NTI_a9bIsIkdQvQMv0xYGrfgSag);
T_YGOrctedenU9ao6jM7xmy6g_0[51].name = "index";
NimDT__0qztr5Keivtxacz23lA4IA_kind[25] = &T_YGOrctedenU9ao6jM7xmy6g_0[51];
NimDT__0qztr5Keivtxacz23lA4IA_kind[26] = &T_YGOrctedenU9ao6jM7xmy6g_0[51];
NimDT__0qztr5Keivtxacz23lA4IA_kind[27] = &T_YGOrctedenU9ao6jM7xmy6g_0[51];
T_YGOrctedenU9ao6jM7xmy6g_0[52].kind = 1;
T_YGOrctedenU9ao6jM7xmy6g_0[52].offset = offsetof(Node_0qztr5Keivtxacz23lA4IA, kindU.sons);
T_YGOrctedenU9ao6jM7xmy6g_0[52].typ = (&NTI_Wjn0aMA9aB3dP6CVOwwvGJg);
T_YGOrctedenU9ao6jM7xmy6g_0[52].name = "sons";
NimDT__0qztr5Keivtxacz23lA4IA_kind[33] = &T_YGOrctedenU9ao6jM7xmy6g_0[52];
NTI_0qztr5Keivtxacz23lA4IA.node = &T_YGOrctedenU9ao6jM7xmy6g_0[1];
NTI_Wjn0aMA9aB3dP6CVOwwvGJg.size = sizeof(TY_Wjn0aMA9aB3dP6CVOwwvGJg*);
NTI_Wjn0aMA9aB3dP6CVOwwvGJg.kind = 24;
NTI_Wjn0aMA9aB3dP6CVOwwvGJg.base = (&NTI_0qztr5Keivtxacz23lA4IA);
NTI_Wjn0aMA9aB3dP6CVOwwvGJg.marker = Marker_TY_Wjn0aMA9aB3dP6CVOwwvGJg;
}

