/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#undef linux
typedef struct Table_frKphOTgDqmvI5gMd19b4JA Table_frKphOTgDqmvI5gMd19b4JA;
typedef struct TY_7lEisrXlQEzwtUKW5pzRCw TY_7lEisrXlQEzwtUKW5pzRCw;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct TY_xYhUhS7X82rKTqbT9bRfCnw TY_xYhUhS7X82rKTqbT9bRfCnw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Table_DYt7wxxRVZ9c5PDjh5cfgPA Table_DYt7wxxRVZ9c5PDjh5cfgPA;
typedef struct TY_eBSwX9aa9c1W8S1FJPmehz9aQ TY_eBSwX9aa9c1W8S1FJPmehz9aQ;
typedef struct TY_XUtHSCESHcg7KVfuMIqQmw TY_XUtHSCESHcg7KVfuMIqQmw;
typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w;
typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA;
typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg;
typedef struct Table_NpjDKtgjRLp82BuThYZLAw Table_NpjDKtgjRLp82BuThYZLAw;
typedef struct TY_bAbxBa4xUcordBcoebNUJA TY_bAbxBa4xUcordBcoebNUJA;
typedef struct TY_iBvq4fj35BMkXhywDd7OrQ TY_iBvq4fj35BMkXhywDd7OrQ;
typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw;
typedef struct Table_oQfDu9cXwlXXh879bYXyEd8g Table_oQfDu9cXwlXXh879bYXyEd8g;
typedef struct TY_YuKuU17u5ApAIki23DK9bJw TY_YuKuU17u5ApAIki23DK9bJw;
typedef struct TY_Wymbvuvlf49clEgp9bKoFN9bw TY_Wymbvuvlf49clEgp9bKoFN9bw;
typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct Keyerror_ifYAhUumNzWR9c9cN9amyJLtg Keyerror_ifYAhUumNzWR9c9cN9amyJLtg;
typedef struct Valueerror_Gi06FkNeykJn7mrqRZYrkA Valueerror_Gi06FkNeykJn7mrqRZYrkA;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct Table_tfmlwa8ktiw8woWAs5vhtQ Table_tfmlwa8ktiw8woWAs5vhtQ;
typedef struct TY_kxu4GK0onha2t9bo86mdVAg TY_kxu4GK0onha2t9bo86mdVAg;
typedef struct TY_xDU9bZmv1ZbZkJDaATBekIQ TY_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct Table_zjMaDBasw1LnKbj11akpfw Table_zjMaDBasw1LnKbj11akpfw;
typedef struct TY_pUxI6Ljo6IKKHXKOZkQ7Og TY_pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct TY_sr3s7uVHpu9cEbbDnCSg8yQ TY_sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct Table_9a2XQy0TxJy7NaS9bsQvnzEw Table_9a2XQy0TxJy7NaS9bsQvnzEw;
typedef struct TY_s12F9c4cKfaapm8VzG9a1flQ TY_s12F9c4cKfaapm8VzG9a1flQ;
typedef struct TY_8jHm6IGDGecciKpp2bTNxA TY_8jHm6IGDGecciKpp2bTNxA;
typedef struct Table_CLLTIkQVzDOo9avEeZWukOg Table_CLLTIkQVzDOo9avEeZWukOg;
typedef struct TY_W2kc72XufLJLp3E0kMt2Ow TY_W2kc72XufLJLp3E0kMt2Ow;
typedef struct TY_AmSMAcQUDDCRLV1x9c9cm9axA TY_AmSMAcQUDDCRLV1x9c9cm9axA;
typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ;
typedef struct Counttable_pdLM8FWiNHAzIuaDPD0Leg Counttable_pdLM8FWiNHAzIuaDPD0Leg;
typedef struct TY_XUL1TrMU0tgXmaMFCIYgFQ TY_XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct TY_tA7Q8IrfOKH7Mn89cK9cBAIg TY_tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct Orderedtable_AF39bJ7XDr6gpANuGpxkHrw Orderedtable_AF39bJ7XDr6gpANuGpxkHrw;
typedef struct TY_MlAD6nAPq9bHKla9cWiIZP0g TY_MlAD6nAPq9bHKla9cWiIZP0g;
typedef struct TY_awOivLjlO76sGdHY7nQUjQ TY_awOivLjlO76sGdHY7nQUjQ;
typedef struct Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q;
typedef struct Table_0W7i336OcSL9aSRK9bSM9bLhg Table_0W7i336OcSL9aSRK9bSM9bLhg;
typedef struct TY_wAC0kXbVGkLoWP8vdi0sUw TY_wAC0kXbVGkLoWP8vdi0sUw;
typedef struct TY_A9cRoiotm9actU8lLMnN9bYcw TY_A9cRoiotm9actU8lLMnN9bYcw;
typedef struct Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg;
typedef struct TY_5PunAJrNQYcB8dF0jau3pQ TY_5PunAJrNQYcB8dF0jau3pQ;
typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct TY_zuqP4Riz26Oi5fWgPYVEgA TY_zuqP4Riz26Oi5fWgPYVEgA;
typedef struct TY_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA;
typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw;
typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g;
typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA;
typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ;
typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA;
typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct TY_oLpBKXzW3hF9aCVMo5EymfQ TY_oLpBKXzW3hF9aCVMo5EymfQ;
typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q;
typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg;
struct  Table_frKphOTgDqmvI5gMd19b4JA  {
TY_7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
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;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct TY_xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Table_DYt7wxxRVZ9c5PDjh5cfgPA  {
TY_eBSwX9aa9c1W8S1FJPmehz9aQ* data;
NI counter;
};
struct TY_XUtHSCESHcg7KVfuMIqQmw {
NI Field0;
NI Field1;
Tsym_AXG7xcvKqaxY6koRX1xkCw* Field2;
};
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
struct  Cellseq_Axo1XVm9aaQueTOldv8le5w  {
NI len;
NI cap;
Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256];
struct  Intset_EZObFrE3NC9bIb3YMkY9crZA  {
TY_lh2A89ahMmYg9bCmpVaplLbA data;
};
struct  Memregion_x81NhDv59b8ercDZ9bi85jyg  {
NI minlargeobj;
NI maxlargeobj;
TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks;
Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist;
Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes;
NIM_BOOL locked;
NIM_BOOL blockchunksizeincrease;
NI nextchunksize;
};
struct  Gcstat_0RwLoVBHZPfUAcLczmfQAg  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Cellset_jG87P0AI9aZtss9ccTYBIISQ  {
NI counter;
NI max;
Pagedesc_fublkgIY4LG3mT51LU2WHg* head;
Pagedesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct  Gcheap_1TRH1TZMaVZTnLNcIHuNFQ  {
Gcstack_7fytPA5bBsob6See21YMRA* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq_Axo1XVm9aaQueTOldv8le5w zct;
Cellseq_Axo1XVm9aaQueTOldv8le5w decstack;
Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack;
NI recgclock;
Memregion_x81NhDv59b8ercDZ9bi85jyg region;
Gcstat_0RwLoVBHZPfUAcLczmfQAg stat;
Cellset_jG87P0AI9aZtss9ccTYBIISQ marked;
Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots;
};
struct  Table_NpjDKtgjRLp82BuThYZLAw  {
TY_bAbxBa4xUcordBcoebNUJA* data;
NI counter;
};
struct TY_iBvq4fj35BMkXhywDd7OrQ {
NI Field0;
NI Field1;
Ttype_LTUWCZolpovw9cWE3JBWSUw* Field2;
};
struct  Table_oQfDu9cXwlXXh879bYXyEd8g  {
TY_YuKuU17u5ApAIki23DK9bJw* data;
NI counter;
};
struct TY_Wymbvuvlf49clEgp9bKoFN9bw {
NI Field0;
NI Field1;
Tnode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
struct  Valueerror_Gi06FkNeykJn7mrqRZYrkA  {
  Exception Sup;
};
struct  Keyerror_ifYAhUumNzWR9c9cN9amyJLtg  {
  Valueerror_Gi06FkNeykJn7mrqRZYrkA Sup;
};
struct  Table_tfmlwa8ktiw8woWAs5vhtQ  {
TY_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct TY_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct  Table_zjMaDBasw1LnKbj11akpfw  {
TY_pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
struct TY_sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct  Table_9a2XQy0TxJy7NaS9bsQvnzEw  {
TY_s12F9c4cKfaapm8VzG9a1flQ* data;
NI counter;
};
struct TY_8jHm6IGDGecciKpp2bTNxA {
NI Field0;
NI64 Field1;
Tnode_bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct  Table_CLLTIkQVzDOo9avEeZWukOg  {
TY_W2kc72XufLJLp3E0kMt2Ow* data;
NI counter;
};
typedef NU8 TY_qtqsWM5aXmcpMIVmvq3kAA[16];
struct TY_AmSMAcQUDDCRLV1x9c9cm9axA {
NI Field0;
TY_qtqsWM5aXmcpMIVmvq3kAA Field1;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* Field2;
};
struct  Counttable_pdLM8FWiNHAzIuaDPD0Leg  {
TY_XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
};
struct TY_tA7Q8IrfOKH7Mn89cK9cBAIg {
TY_qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct  Orderedtable_AF39bJ7XDr6gpANuGpxkHrw  {
TY_MlAD6nAPq9bHKla9cWiIZP0g* data;
NI counter;
NI first;
NI last;
};
struct TY_awOivLjlO76sGdHY7nQUjQ {
NI Field0;
NI Field1;
NimStringDesc* Field2;
Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q* Field3;
};
struct  Table_0W7i336OcSL9aSRK9bSM9bLhg  {
TY_wAC0kXbVGkLoWP8vdi0sUw* data;
NI counter;
};
struct  Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg  {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linktitle;
NimStringDesc* linkdesc;
};
struct TY_A9cRoiotm9actU8lLMnN9bYcw {
NI Field0;
Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg Field1;
TY_5PunAJrNQYcB8dF0jau3pQ* Field2;
};
struct  Tidobj_raN9cHVgzmvaXisezY9aGg9cg  {
  TNimObject Sup;
NI id;
};
typedef NU8 Tsymkind_cNCW9acsSznmEccl1fgQwkw;
struct  Tstrtable_f07aOS3dr28kGa5wcE29aFA  {
NI counter;
TY_sksVpmPRIkNR9axiwtD1Guw* data;
};
typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg;
struct  Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw  {
NI16 line;
NI16 col;
NI32 fileindex;
};
typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set;
typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_Set;
typedef NU8 Tlockind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set;
struct  Tloc_EtHNvCB0bgfu9bFjzx9cb6aA  {
Tlockind_O7PRFZKuiBBWbku09cayVBg k;
Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw s;
Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set flags;
Ttype_LTUWCZolpovw9cWE3JBWSUw* t;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* r;
};
struct  Tsym_AXG7xcvKqaxY6koRX1xkCw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Tsymkind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {TY_zuqP4Riz26Oi5fWgPYVEgA* typeinstcache;
} S1;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* procinstcache;
Tsym_AXG7xcvKqaxY6koRX1xkCw* gcunsafetyreason;
} S2;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* usedgenerics;
Tstrtable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* guard;
NI bitsize;
} S4;
} kindU;
Tmagic_shZhZOdbVC5nnFvcXQAImg magic;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tident_4umxGerWTHGPwUms7Yqu3g* name;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set flags;
Tnode_bROa11lyF5vxEN9aYNbHmhw* ast;
Toption_WspMeQySXNP2XoTWR5MTgg_Set options;
NI position;
NI offset;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Tlib_4f9aBgmqEuj7uWJdBBGcRgA* annex;
Tnode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
struct  Gcstack_7fytPA5bBsob6See21YMRA  {
Gcstack_7fytPA5bBsob6See21YMRA* prev;
Gcstack_7fytPA5bBsob6See21YMRA* next;
void* starts;
void* pos;
NI maxstacksize;
};
struct  Basechunk_Sdq7WpT6qAH858F5ZEdG3w  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk_tXn60W2f8h3jgAYdEmy5NQ  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk_XsENErzHIZV9bhvyJx56wGw  {
NI size;
NI acc;
Llchunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct  Bigchunk_Rv9c70Uhp2TytkX7eH78qEg  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NI align;
NF data;
};
typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16];
struct  Trunk_W0r8S0Y3UGke6T9bIUWnnuw  {
Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2];
struct  Avlnode_IaqjtwKhxLEpvDS9bct9blEw  {
TY_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperbound;
NI level;
};
struct  Pagedesc_fublkgIY4LG3mT51LU2WHg  {
Pagedesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set;
struct  Ttype_LTUWCZolpovw9cWE3JBWSUw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind;
Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA callconv;
Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set flags;
TY_zuqP4Riz26Oi5fWgPYVEgA* sons;
Tnode_bROa11lyF5vxEN9aYNbHmhw* n;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
Tsym_AXG7xcvKqaxY6koRX1xkCw* destructor;
Tsym_AXG7xcvKqaxY6koRX1xkCw* deepcopy;
Tsym_AXG7xcvKqaxY6koRX1xkCw* assignment;
TY_iGkpo9aKQdr3NWelKC4cnJA* methods;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typeinst;
};
typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set;
typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw;
struct  Tnode_bROa11lyF5vxEN9aYNbHmhw  {
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set flags;
Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
} S4;
struct {Tident_4umxGerWTHGPwUms7Yqu3g* ident;
} S5;
struct {TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Ropeobj_HF4qJnb6xiOddgPmsxodtQ  {
  TNimObject Sup;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* left;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* right;
NI length;
NimStringDesc* data;
};
typedef NU8 Jsonnodekind_RUngo7nCHe6O8aBGIcrhtg;
struct  Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q  {
Jsonnodekind_RUngo7nCHe6O8aBGIcrhtg kind;
union{
struct {NimStringDesc* str;
} S1;
struct {NI64 num;
} S2;
struct {NF fnum;
} S3;
struct {NIM_BOOL bval;
} S4;
struct {Orderedtable_AF39bJ7XDr6gpANuGpxkHrw fields;
} S6;
struct {TY_oLpBKXzW3hF9aCVMo5EymfQ* elems;
} S7;
} kindU;
};
struct  Tident_4umxGerWTHGPwUms7Yqu3g  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
Tident_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
struct  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q  {
  TNimObject Sup;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* prev;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* next;
};
typedef NU8 Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ;
struct  Tlib_4f9aBgmqEuj7uWJdBBGcRgA  {
  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Sup;
Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* name;
Tnode_bROa11lyF5vxEN9aYNbHmhw* path;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
struct TY_a09bGTAl9ceOKTAytYdkbyKg {
NI Field0;
Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1;
};
struct  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA  {
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes;
NI compilesid;
};
struct TY_7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  TY_xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct TY_eBSwX9aa9c1W8S1FJPmehz9aQ {
  TGenericSeq Sup;
  TY_XUtHSCESHcg7KVfuMIqQmw data[SEQ_DECL_SIZE];
};
struct TY_bAbxBa4xUcordBcoebNUJA {
  TGenericSeq Sup;
  TY_iBvq4fj35BMkXhywDd7OrQ data[SEQ_DECL_SIZE];
};
struct TY_YuKuU17u5ApAIki23DK9bJw {
  TGenericSeq Sup;
  TY_Wymbvuvlf49clEgp9bKoFN9bw data[SEQ_DECL_SIZE];
};
struct TY_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  TY_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct TY_pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  TY_sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct TY_s12F9c4cKfaapm8VzG9a1flQ {
  TGenericSeq Sup;
  TY_8jHm6IGDGecciKpp2bTNxA data[SEQ_DECL_SIZE];
};
struct TY_W2kc72XufLJLp3E0kMt2Ow {
  TGenericSeq Sup;
  TY_AmSMAcQUDDCRLV1x9c9cm9axA data[SEQ_DECL_SIZE];
};
struct TY_XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  TY_tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct TY_MlAD6nAPq9bHKla9cWiIZP0g {
  TGenericSeq Sup;
  TY_awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
};
struct TY_5PunAJrNQYcB8dF0jau3pQ {
  TGenericSeq Sup;
  Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg data[SEQ_DECL_SIZE];
};
struct TY_wAC0kXbVGkLoWP8vdi0sUw {
  TGenericSeq Sup;
  TY_A9cRoiotm9actU8lLMnN9bYcw data[SEQ_DECL_SIZE];
};
struct TY_zuqP4Riz26Oi5fWgPYVEgA {
  TGenericSeq Sup;
  Ttype_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE];
};
struct TY_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct TY_sksVpmPRIkNR9axiwtD1Guw {
  TGenericSeq Sup;
  Tsym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE];
};
struct TY_iGkpo9aKQdr3NWelKC4cnJA {
  TGenericSeq Sup;
  TY_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE];
};
struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  Tnode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct TY_oLpBKXzW3hF9aCVMo5EymfQ {
  TGenericSeq Sup;
  Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, Marker_TY_7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op);
N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
static N_NIMCALL(void, Marker_TY_eBSwX9aa9c1W8S1FJPmehz9aQ)(void* p, NI op);
static N_INLINE(NI, rawget_Mvj3S0xsqG1XPFXQa9awLHwtables)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0, NI* hc0);
static N_INLINE(NI, hash_M6zZEYz39abIOUmj0QsNREgtables)(NI x0);
static N_INLINE(NIM_BOOL, isfilled_IxXD1UAPoEehVDW9cv9cRaewtables)(NI hcode0);
static N_INLINE(NI, nexttry_OLPhxSyW9bte5CwHzzQVhfAtables)(NI h0, NI maxhash0);
static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(NIM_BOOL, mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables)(NI length0, NI counter0);
N_NIMCALL(void, enlarge_KVnZDaBwAFIAw1h6vZd1ow)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0);
N_NIMCALL(void, rawinsert_0lPT8afQBoxw1vddmszczw)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0, TY_eBSwX9aa9c1W8S1FJPmehz9aQ** data0, NI key0, Tsym_AXG7xcvKqaxY6koRX1xkCw* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_GEToZ8qO7AZzRbWX5EPaOQtables)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0, NI hc0);
static N_NIMCALL(void, Marker_TY_bAbxBa4xUcordBcoebNUJA)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_YuKuU17u5ApAIki23DK9bJw)(void* p, NI op);
static N_INLINE(NI, rawget_PIpm1osYiUaVRGxgp43gdQtables)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0, NI* hc0);
N_NIMCALL(void, enlarge_sJWeCZidm1WqrytmHiQb1A)(Table_NpjDKtgjRLp82BuThYZLAw* t0);
N_NIMCALL(void, rawinsert_EtI6kJ5P9aJ6ftVNgH7zYsQ)(Table_NpjDKtgjRLp82BuThYZLAw* t0, TY_bAbxBa4xUcordBcoebNUJA** data0, NI key0, Ttype_LTUWCZolpovw9cWE3JBWSUw* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_koDkxBLm7ixXcgR9bmoPxTQtables)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0, NI hc0);
static N_INLINE(NI, rawget_GHht9asPjKvfT8rIQxheq3Qtables)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0, NI* hc0);
N_NIMCALL(void, enlarge_buOH6sGVTepxqPQmMOsSCg)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0);
N_NIMCALL(void, rawinsert_FobV9cDnjycOKNhnj9c439aIg)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0, TY_YuKuU17u5ApAIki23DK9bJw** data0, NI key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_o8WyqgYCeNLfq9cwzIcfSZwtables)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0, NI hc0);
static N_INLINE(NI, rawget_FnQfHXmuMWz9bshHFCrt1QQtables)(Table_frKphOTgDqmvI5gMd19b4JA t0, NimStringDesc* key0, NI* hc0);
N_NIMCALL(NI, hash_uBstFm5SYVQeOL3j9c9bc58A)(NimStringDesc* x0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0);
N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0);
N_NIMCALL(void, enlarge_XzsHBE72javLlWK2Y1KRXw)(Table_frKphOTgDqmvI5gMd19b4JA* t0);
N_NIMCALL(void, rawinsert_maiGmmkB7Hpw4UXOcuVspw)(Table_frKphOTgDqmvI5gMd19b4JA* t0, TY_7lEisrXlQEzwtUKW5pzRCw** data0, NimStringDesc* key0, NI32 val0, NI hc0, NI h0);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
static N_INLINE(NI, rawgetknownhc_MHB9aiYNWRLR9aRadQrvlJ3Atables)(Table_frKphOTgDqmvI5gMd19b4JA t0, NimStringDesc* key0, NI hc0);
static N_INLINE(NI, rawget_0X9cPID9aOCAHDQG8tGanVowtables)(Table_tfmlwa8ktiw8woWAs5vhtQ t0, NI32 key0, NI* hc0);
static N_INLINE(NI, hash_a5N2Ic0uYrdiANf4A16L3wtables)(NI32 x0);
N_NIMCALL(void, enlarge_8VsfFZNeGWGPfOBGmR3gFA)(Table_tfmlwa8ktiw8woWAs5vhtQ* t0);
static N_NIMCALL(void, Marker_TY_kxu4GK0onha2t9bo86mdVAg)(void* p, NI op);
N_NIMCALL(void, rawinsert_kBX59cA3Goa5jjykUZ23cAg)(Table_tfmlwa8ktiw8woWAs5vhtQ* t0, TY_kxu4GK0onha2t9bo86mdVAg** data0, NI32 key0, NI32 val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_I70Wt9cTHlMtspIDepdIVKwtables)(Table_tfmlwa8ktiw8woWAs5vhtQ t0, NI32 key0, NI hc0);
static N_INLINE(NI, rawget_6W1ssjRyuKtSjII2c2v5RQtables)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0, NI* hc0);
N_NIMCALL(void, enlarge_NkEl9bLLrzlYTmLn9cgTZPyg)(Table_zjMaDBasw1LnKbj11akpfw* t0);
static N_NIMCALL(void, Marker_TY_pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op);
N_NIMCALL(void, rawinsert_JrnDXRCjxItwEsaMlP5tEA)(Table_zjMaDBasw1LnKbj11akpfw* t0, TY_pUxI6Ljo6IKKHXKOZkQ7Og** data0, NimStringDesc* key0, NI val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_m6drWlVK9bHkmyhr05CjMNQtables)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0, NI hc0);
static N_NIMCALL(void, Marker_TY_s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op);
static N_INLINE(NI, rawget_dLS9aywoMRSXWw4aCRDtIzQtables)(Table_9a2XQy0TxJy7NaS9bsQvnzEw t0, NI64 key0, NI* hc0);
static N_INLINE(NI, hash_wXLApNp4hVfHIRffgEB6jwtables)(NI64 x0);
N_NIMCALL(void, enlarge_ALncDtRohDG9bC4738XmISA)(Table_9a2XQy0TxJy7NaS9bsQvnzEw* t0);
N_NIMCALL(void, rawinsert_zGkuwLAynfrJfCeKmyts9aQ)(Table_9a2XQy0TxJy7NaS9bsQvnzEw* t0, TY_s12F9c4cKfaapm8VzG9a1flQ** data0, NI64 key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_1lCtOG4P6KdGVvRXz9a0wYAtables)(Table_9a2XQy0TxJy7NaS9bsQvnzEw t0, NI64 key0, NI hc0);
static N_NIMCALL(void, Marker_TY_W2kc72XufLJLp3E0kMt2Ow)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op);
N_NIMCALL(NI, rawget_fHoC4OUEY7w3FcQM6bDNBw_2)(Counttable_pdLM8FWiNHAzIuaDPD0Leg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0);
N_NIMCALL(NI, hash_GmDea9bcNl3tvgPhCgWeYfQ)(TY_qtqsWM5aXmcpMIVmvq3kAA u0);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_0iUwL9ajONRz2GYAZk9cgslg)(TY_qtqsWM5aXmcpMIVmvq3kAA a0, TY_qtqsWM5aXmcpMIVmvq3kAA b0);
N_NIMCALL(void, enlarge_5k6O0Y388aCSa9cpuwecM6A)(Counttable_pdLM8FWiNHAzIuaDPD0Leg* t0);
N_NIMCALL(void, rawinsert_sb9abhI1AL9a9bekfc4cZ7oHw)(Counttable_pdLM8FWiNHAzIuaDPD0Leg t0, TY_XUL1TrMU0tgXmaMFCIYgFQ** data0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI val0);
static N_INLINE(NI, rawget_LOL0bDYVa0K9b9cNpqP0i0fAtables)(Table_CLLTIkQVzDOo9avEeZWukOg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI* hc0);
N_NIMCALL(void, enlarge_mkEEpytiYOte0utP49adasg)(Table_CLLTIkQVzDOo9avEeZWukOg* t0);
N_NIMCALL(void, rawinsert_GhdHmbjkRYNdxRb6bXWfyg)(Table_CLLTIkQVzDOo9avEeZWukOg* t0, TY_W2kc72XufLJLp3E0kMt2Ow** data0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, Ropeobj_HF4qJnb6xiOddgPmsxodtQ* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_KYeeT9chfXOfZLSbhgE7cDwtables)(Table_CLLTIkQVzDOo9avEeZWukOg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI hc0);
N_NIMCALL(NimStringDesc*, HEX24_cjda4doS9ccFOjsWsGu9aa2A)(TY_qtqsWM5aXmcpMIVmvq3kAA u0);
static N_NIMCALL(void, Marker_TY_MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op);
N_NIMCALL(NI, rawget_ejrpxsNAZJyHhQhopPiwJA)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI* hc0);
static N_INLINE(NI, rawget_WyEeYQHki9bxcrycmQ047tQtables)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI* hc0);
N_NIMCALL(void, enlarge_eOZs9auXoZM0glvDlTLHszQ)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0);
N_NIMCALL(NI, rawgetknownhc_DycNfqFZryzkgIAk9bw7xSQ)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI hc0);
N_NIMCALL(void, rawinsert_PJEZeDCLfp6559cI0Hhn8lg)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0, TY_MlAD6nAPq9bHKla9cWiIZP0g** data0, NimStringDesc* key0, Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q* val0, NI hc0, NI h0);
static N_NIMCALL(void, Marker_TY_wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op);
static N_INLINE(NI, rawget_LDQudTQBvhKygO5lFcu1CAtables)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, NI* hc0);
N_NIMCALL(NI, hash_Q7BtvrecnTohFQH6ezREJw)(Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg x0);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_fsWIAWPnaoNtepsWNV0Ldw)(Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg x0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg y0);
N_NIMCALL(void, genericSeqAssign)(void* dest0, void* src_qi9cfsBnd42r9a9cpCLO10jow, TNimType* mt0);
N_NIMCALL(void, enlarge_YMboekAeiwE9aZcOGE4W7LQ)(Table_0W7i336OcSL9aSRK9bSM9bLhg* t0);
N_NIMCALL(void, rawinsert_zSjMjXXH7YgxTscceNhhxA)(Table_0W7i336OcSL9aSRK9bSM9bLhg* t0, TY_wAC0kXbVGkLoWP8vdi0sUw** data0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, TY_5PunAJrNQYcB8dF0jau3pQ* val0, NI hc0, NI h0);
static N_INLINE(NI, rawgetknownhc_v0w3RUVEtCIVEOonSPJ9b6Qtables)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, NI hc0);
TNimType NTI_frKphOTgDqmvI5gMd19b4JA;
TNimType NTI_xYhUhS7X82rKTqbT9bRfCnw;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg;
extern TNimType NTI_sVg18TP9cLifHyygRe9cro9aA;
TNimType NTI_7lEisrXlQEzwtUKW5pzRCw;
TNimType NTI_DYt7wxxRVZ9c5PDjh5cfgPA;
TNimType NTI_XUtHSCESHcg7KVfuMIqQmw;
extern TNimType NTI_83n62yi1b9bgUtRR9axFWW9ag;
TNimType NTI_eBSwX9aa9c1W8S1FJPmehz9aQ;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
TNimType NTI_iBvq4fj35BMkXhywDd7OrQ;
extern TNimType NTI_1EooIlSGbJRPSt3SfQJd7Q;
TNimType NTI_bAbxBa4xUcordBcoebNUJA;
TNimType NTI_Wymbvuvlf49clEgp9bKoFN9bw;
extern TNimType NTI_fKfcLzXYiz5jNu3NH3Tv8Q;
TNimType NTI_YuKuU17u5ApAIki23DK9bJw;
extern TNimType NTI_axqhRnwd09cVJkRcojfw6mA;
extern TNimType NTI_ifYAhUumNzWR9c9cN9amyJLtg;
TNimType NTI_xDU9bZmv1ZbZkJDaATBekIQ;
TNimType NTI_kxu4GK0onha2t9bo86mdVAg;
TNimType NTI_tfmlwa8ktiw8woWAs5vhtQ;
TNimType NTI_sr3s7uVHpu9cEbbDnCSg8yQ;
TNimType NTI_pUxI6Ljo6IKKHXKOZkQ7Og;
TNimType NTI_8jHm6IGDGecciKpp2bTNxA;
extern TNimType NTI_Aav8dQoMlCFnZRxA0IhTHQ;
TNimType NTI_s12F9c4cKfaapm8VzG9a1flQ;
TNimType NTI_CLLTIkQVzDOo9avEeZWukOg;
TNimType NTI_AmSMAcQUDDCRLV1x9c9cm9axA;
extern TNimType NTI_qtqsWM5aXmcpMIVmvq3kAA;
extern TNimType NTI_d0QF71x0BgMQlc7zEXMYTQ;
TNimType NTI_W2kc72XufLJLp3E0kMt2Ow;
TNimType NTI_pdLM8FWiNHAzIuaDPD0Leg;
TNimType NTI_tA7Q8IrfOKH7Mn89cK9cBAIg;
TNimType NTI_XUL1TrMU0tgXmaMFCIYgFQ;
TNimType NTI_zjMaDBasw1LnKbj11akpfw;
TNimType NTI_AF39bJ7XDr6gpANuGpxkHrw;
TNimType NTI_awOivLjlO76sGdHY7nQUjQ;
extern TNimType NTI_zfzzuQ8txrdZAYK0WGWpHg;
TNimType NTI_MlAD6nAPq9bHKla9cWiIZP0g;
TNimType NTI_A9cRoiotm9actU8lLMnN9bYcw;
extern TNimType NTI_G9ccBDFWfr9aYnLgXTNGDHDg;
extern TNimType NTI_5PunAJrNQYcB8dF0jau3pQ;
TNimType NTI_wAC0kXbVGkLoWP8vdi0sUw;
STRING_LITERAL(T_4SoG2KRQy3oMm9aUzSLtGrA_8, "key not found: ", 15);
static N_NIMCALL(void, Marker_TY_7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op) {
	TY_7lEisrXlQEzwtUKW5pzRCw* a;
	NI LOC1;
	a = (TY_7lEisrXlQEzwtUKW5pzRCw*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

N_NIMCALL(void, inittable_DYIgHHirE2wdhTyGnBceeA)(NI initialsize0, Table_frKphOTgDqmvI5gMd19b4JA* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw), ((NI) (initialsize0))));
}
static N_NIMCALL(void, Marker_TY_eBSwX9aa9c1W8S1FJPmehz9aQ)(void* p, NI op) {
	TY_eBSwX9aa9c1W8S1FJPmehz9aQ* a;
	NI LOC1;
	a = (TY_eBSwX9aa9c1W8S1FJPmehz9aQ*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

static N_INLINE(NI, hash_M6zZEYz39abIOUmj0QsNREgtables)(NI x0) {
	NI result0;
	result0 = (NI)0;
	result0 = x0;
	return result0;
}

static N_INLINE(NIM_BOOL, isfilled_IxXD1UAPoEehVDW9cv9cRaewtables)(NI hcode0) {
	NIM_BOOL result0;
	result0 = (NIM_BOOL)0;
	result0 = !((hcode0 == ((NI) 0)));
	return result0;
}

static N_INLINE(NI, nexttry_OLPhxSyW9bte5CwHzzQVhfAtables)(NI h0, NI maxhash0) {
	NI result0;
	result0 = (NI)0;
	result0 = (NI)((NI)(h0 + ((NI) 1)) & maxhash0);
	return result0;
}

static N_INLINE(NI, rawget_Mvj3S0xsqG1XPFXQa9awLHwtables)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_M6zZEYz39abIOUmj0QsNREgtables(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = (t0.data->data[h0].Field1 == key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, getordefault_ShR0uE9bMwmPl0MR60kmH3g)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0) {
	Tsym_AXG7xcvKqaxY6koRX1xkCw* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ;
	result0 = (Tsym_AXG7xcvKqaxY6koRX1xkCw*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ = rawget_Mvj3S0xsqG1XPFXQa9awLHwtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ].Field2;
	}
	LA3: ;
	return result0;
}

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

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!((src0 == NIM_NIL))) goto LA3;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		(*c0).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!(((*dest0) == NIM_NIL))) goto LA7;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		{
			(*c0).refcount -= ((NI) 8);
			if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
		}
		LA11: ;
	}
	LA7: ;
	(*dest0) = src0;
}

static N_INLINE(NIM_BOOL, mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables)(NI length0, NI counter0) {
	NIM_BOOL result0;
	NIM_BOOL LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (NIM_BOOL)0;
	LOC1 = ((NI)(length0 * ((NI) 2)) < (NI)(counter0 * ((NI) 3)));
	if (LOC1) goto LA2;
	LOC1 = ((NI)(length0 - counter0) < ((NI) 4));
	LA2: ;
	result0 = LOC1;
	return result0;
}

N_NIMCALL(void, rawinsert_0lPT8afQBoxw1vddmszczw)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0, TY_eBSwX9aa9c1W8S1FJPmehz9aQ** data0, NI key0, Tsym_AXG7xcvKqaxY6koRX1xkCw* val0, NI hc0, NI h0) {
	(*data0)->data[h0].Field1 = key0;
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field2), val0);
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_KVnZDaBwAFIAw1h6vZd1ow)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0) {
	TY_eBSwX9aa9c1W8S1FJPmehz9aQ* n0;
	TY_eBSwX9aa9c1W8S1FJPmehz9aQ* LOC1;
	n0 = (TY_eBSwX9aa9c1W8S1FJPmehz9aQ*)0;
	n0 = (TY_eBSwX9aa9c1W8S1FJPmehz9aQ*) newSeq((&NTI_eBSwX9aa9c1W8S1FJPmehz9aQ), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_eBSwX9aa9c1W8S1FJPmehz9aQ*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q;
		i_dvhESMSoOJA0JTh9c9cUlylQ = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ = res_FVJcWTrVEQPIAvQjEj9at1Q;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_0lPT8afQBoxw1vddmszczw(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_GEToZ8qO7AZzRbWX5EPaOQtables)(Table_DYt7wxxRVZ9c5PDjh5cfgPA t0, NI key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = (t0.data->data[h0].Field1 == key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_rmyyXMOU9cTYfzq59cG09cIIA)(Table_DYt7wxxRVZ9c5PDjh5cfgPA* t0, NI key0, Tsym_AXG7xcvKqaxY6koRX1xkCw* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_Mvj3S0xsqG1XPFXQa9awLHwtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field2), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_KVnZDaBwAFIAw1h6vZd1ow(t0);
			index0 = rawgetknownhc_GEToZ8qO7AZzRbWX5EPaOQtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_0lPT8afQBoxw1vddmszczw(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}
static N_NIMCALL(void, Marker_TY_bAbxBa4xUcordBcoebNUJA)(void* p, NI op) {
	TY_bAbxBa4xUcordBcoebNUJA* a;
	NI LOC1;
	a = (TY_bAbxBa4xUcordBcoebNUJA*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_Kr5n5hiph0hPrCOizYEDCg)(NI initialsize0, Table_NpjDKtgjRLp82BuThYZLAw* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_bAbxBa4xUcordBcoebNUJA*) newSeq((&NTI_bAbxBa4xUcordBcoebNUJA), ((NI) (initialsize0))));
}
static N_NIMCALL(void, Marker_TY_YuKuU17u5ApAIki23DK9bJw)(void* p, NI op) {
	TY_YuKuU17u5ApAIki23DK9bJw* a;
	NI LOC1;
	a = (TY_YuKuU17u5ApAIki23DK9bJw*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_J1vlMy8ICF252ouHxZ5SqQ)(NI initialsize0, Table_oQfDu9cXwlXXh879bYXyEd8g* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw), ((NI) (initialsize0))));
}

static N_INLINE(NI, rawget_PIpm1osYiUaVRGxgp43gdQtables)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_M6zZEYz39abIOUmj0QsNREgtables(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = (t0.data->data[h0].Field1 == key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, rawinsert_EtI6kJ5P9aJ6ftVNgH7zYsQ)(Table_NpjDKtgjRLp82BuThYZLAw* t0, TY_bAbxBa4xUcordBcoebNUJA** data0, NI key0, Ttype_LTUWCZolpovw9cWE3JBWSUw* val0, NI hc0, NI h0) {
	(*data0)->data[h0].Field1 = key0;
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field2), val0);
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_sJWeCZidm1WqrytmHiQb1A)(Table_NpjDKtgjRLp82BuThYZLAw* t0) {
	TY_bAbxBa4xUcordBcoebNUJA* n0;
	TY_bAbxBa4xUcordBcoebNUJA* LOC1;
	n0 = (TY_bAbxBa4xUcordBcoebNUJA*)0;
	n0 = (TY_bAbxBa4xUcordBcoebNUJA*) newSeq((&NTI_bAbxBa4xUcordBcoebNUJA), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_bAbxBa4xUcordBcoebNUJA*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_2;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_2;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_2;
		i_dvhESMSoOJA0JTh9c9cUlylQ_2 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_2 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_2 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_2 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_2 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_2)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_2 = res_FVJcWTrVEQPIAvQjEj9at1Q_2;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_2].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_EtI6kJ5P9aJ6ftVNgH7zYsQ(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_2].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_2].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_2 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_koDkxBLm7ixXcgR9bmoPxTQtables)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = (t0.data->data[h0].Field1 == key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_pJMT9adwe5BrCeachvpnv9ag)(Table_NpjDKtgjRLp82BuThYZLAw* t0, NI key0, Ttype_LTUWCZolpovw9cWE3JBWSUw* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_PIpm1osYiUaVRGxgp43gdQtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field2), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_sJWeCZidm1WqrytmHiQb1A(t0);
			index0 = rawgetknownhc_koDkxBLm7ixXcgR9bmoPxTQtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_EtI6kJ5P9aJ6ftVNgH7zYsQ(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(Ttype_LTUWCZolpovw9cWE3JBWSUw*, getordefault_RL2E4O6HwEm70OzqxfmT4A)(Table_NpjDKtgjRLp82BuThYZLAw t0, NI key0) {
	Ttype_LTUWCZolpovw9cWE3JBWSUw* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_2;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_2;
	result0 = (Ttype_LTUWCZolpovw9cWE3JBWSUw*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_2 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_2 = rawget_PIpm1osYiUaVRGxgp43gdQtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_2));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_2)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_2].Field2;
	}
	LA3: ;
	return result0;
}

static N_INLINE(NI, rawget_GHht9asPjKvfT8rIQxheq3Qtables)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_M6zZEYz39abIOUmj0QsNREgtables(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = (t0.data->data[h0].Field1 == key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getordefault_7OO5N4Ahz4d8VGzPmfi0Ag)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_3;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_3;
	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_3 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_3 = rawget_GHht9asPjKvfT8rIQxheq3Qtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_3));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_3)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_3].Field2;
	}
	LA3: ;
	return result0;
}

N_NIMCALL(void, rawinsert_FobV9cDnjycOKNhnj9c439aIg)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0, TY_YuKuU17u5ApAIki23DK9bJw** data0, NI key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0, NI hc0, NI h0) {
	(*data0)->data[h0].Field1 = key0;
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field2), val0);
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_buOH6sGVTepxqPQmMOsSCg)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0) {
	TY_YuKuU17u5ApAIki23DK9bJw* n0;
	TY_YuKuU17u5ApAIki23DK9bJw* LOC1;
	n0 = (TY_YuKuU17u5ApAIki23DK9bJw*)0;
	n0 = (TY_YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI_YuKuU17u5ApAIki23DK9bJw), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_YuKuU17u5ApAIki23DK9bJw*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_3;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_3;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_3;
		i_dvhESMSoOJA0JTh9c9cUlylQ_3 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_3 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_3 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_3 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_3 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_3)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_3 = res_FVJcWTrVEQPIAvQjEj9at1Q_3;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_3].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_FobV9cDnjycOKNhnj9c439aIg(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_3].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_3].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_3 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_o8WyqgYCeNLfq9cwzIcfSZwtables)(Table_oQfDu9cXwlXXh879bYXyEd8g t0, NI key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = (t0.data->data[h0].Field1 == key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_TKCL4R1Tr9cxqLyNI9cn7igw)(Table_oQfDu9cXwlXXh879bYXyEd8g* t0, NI key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_GHht9asPjKvfT8rIQxheq3Qtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field2), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_buOH6sGVTepxqPQmMOsSCg(t0);
			index0 = rawgetknownhc_o8WyqgYCeNLfq9cwzIcfSZwtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_FobV9cDnjycOKNhnj9c439aIg(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0) {
	NIM_BOOL result0;
	int LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (int)0;
	LOC1 = memcmp(a0, b0, ((size_t) (size0)));
	result0 = (LOC1 == ((NI32) 0));
	return result0;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) {
	NIM_BOOL result0;
	NIM_BOOL LOC11;
{	result0 = (NIM_BOOL)0;
	{
		if (!(a0 == b0)) goto LA3;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = (NIM_BOOL)0;
		LOC7 = (a0 == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b0 == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = (NIM_BOOL)0;
	LOC11 = ((*a0).Sup.len == (*b0).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC11 = equalmem_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
	LA12: ;
	result0 = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(NI, rawget_FnQfHXmuMWz9bshHFCrt1QQtables)(Table_frKphOTgDqmvI5gMd19b4JA t0, NimStringDesc* key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_uBstFm5SYVQeOL3j9c9bc58A(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t0.data->data[h0].Field1, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NIM_BOOL, haskey_Fh04SwZFO1pSq4fQHczejg)(Table_frKphOTgDqmvI5gMd19b4JA t0, NimStringDesc* key0) {
	NIM_BOOL result0;
	NI hc0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	hc0 = (NI)0;
	LOC1 = (NI)0;
	LOC1 = rawget_FnQfHXmuMWz9bshHFCrt1QQtables(t0, key0, (&hc0));
	result0 = (((NI) 0) <= LOC1);
	return result0;
}

static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(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_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}

N_NIMCALL(NI32*, HEX5BHEX5D_4bDokJBW9bS9bFDVZz0Hia9cg)(Table_frKphOTgDqmvI5gMd19b4JA* t0, NimStringDesc* key0) {
	NI32* result0;
	NI hc_u3sucX4OC9aCI319cyzPfnPQ;
	NI index_Nls85AySj3R9b5dTKo8K8zA;
	result0 = (NI32*)0;
	hc_u3sucX4OC9aCI319cyzPfnPQ = (NI)0;
	index_Nls85AySj3R9b5dTKo8K8zA = rawget_FnQfHXmuMWz9bshHFCrt1QQtables((*t0), key0, (&hc_u3sucX4OC9aCI319cyzPfnPQ));
	{
		if (!(((NI) 0) <= index_Nls85AySj3R9b5dTKo8K8zA)) goto LA3;
		result0 = (&(*t0).data->data[index_Nls85AySj3R9b5dTKo8K8zA].Field2);
	}
	goto LA1;
	LA3: ;
	{
		Keyerror_ifYAhUumNzWR9c9cN9amyJLtg* e_3KTaTU0PkrRBJE9cyBTzsPA;
		NimStringDesc* LOC6;
		e_3KTaTU0PkrRBJE9cyBTzsPA = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*)0;
		e_3KTaTU0PkrRBJE9cyBTzsPA = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*) newObj((&NTI_axqhRnwd09cVJkRcojfw6mA), sizeof(Keyerror_ifYAhUumNzWR9c9cN9amyJLtg));
		(*e_3KTaTU0PkrRBJE9cyBTzsPA).Sup.Sup.Sup.m_type = (&NTI_ifYAhUumNzWR9c9cN9amyJLtg);
		LOC6 = (NimStringDesc*)0;
		LOC6 = rawNewString(key0->Sup.len + 15);
appendString(LOC6, ((NimStringDesc*) &T_4SoG2KRQy3oMm9aUzSLtGrA_8));
appendString(LOC6, key0);
		asgnRefNoCycle((void**) (&(*e_3KTaTU0PkrRBJE9cyBTzsPA).Sup.Sup.message), LOC6);
		raiseException((Exception*)e_3KTaTU0PkrRBJE9cyBTzsPA, "KeyError");
	}
	LA1: ;
	return result0;
}

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

N_NIMCALL(void, rawinsert_maiGmmkB7Hpw4UXOcuVspw)(Table_frKphOTgDqmvI5gMd19b4JA* t0, TY_7lEisrXlQEzwtUKW5pzRCw** data0, NimStringDesc* key0, NI32 val0, NI hc0, NI h0) {
	NimStringDesc* LOC1;
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*data0)->data[h0].Field1; (*data0)->data[h0].Field1 = copyStringRC1(key0);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data0)->data[h0].Field2 = val0;
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_XzsHBE72javLlWK2Y1KRXw)(Table_frKphOTgDqmvI5gMd19b4JA* t0) {
	TY_7lEisrXlQEzwtUKW5pzRCw* n0;
	TY_7lEisrXlQEzwtUKW5pzRCw* LOC1;
	n0 = (TY_7lEisrXlQEzwtUKW5pzRCw*)0;
	n0 = (TY_7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI_7lEisrXlQEzwtUKW5pzRCw), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_7lEisrXlQEzwtUKW5pzRCw*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_4;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_4;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_4;
		i_dvhESMSoOJA0JTh9c9cUlylQ_4 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_4 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_4 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_4 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_4 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_4)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_4 = res_FVJcWTrVEQPIAvQjEj9at1Q_4;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_4].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_maiGmmkB7Hpw4UXOcuVspw(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_4].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_4].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_4 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_MHB9aiYNWRLR9aRadQrvlJ3Atables)(Table_frKphOTgDqmvI5gMd19b4JA t0, NimStringDesc* key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t0.data->data[h0].Field1, key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_EgnFnnWg3Leu8MHBkg0wAQ)(Table_frKphOTgDqmvI5gMd19b4JA* t0, NimStringDesc* key0, NI32 val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_FnQfHXmuMWz9bshHFCrt1QQtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		(*t0).data->data[index0].Field2 = val0;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_XzsHBE72javLlWK2Y1KRXw(t0);
			index0 = rawgetknownhc_MHB9aiYNWRLR9aRadQrvlJ3Atables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_maiGmmkB7Hpw4UXOcuVspw(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

static N_INLINE(NI, hash_a5N2Ic0uYrdiANf4A16L3wtables)(NI32 x0) {
	NI result0;
	result0 = (NI)0;
	result0 = ((NI) (x0));
	return result0;
}

static N_INLINE(NI, rawget_0X9cPID9aOCAHDQG8tGanVowtables)(Table_tfmlwa8ktiw8woWAs5vhtQ t0, NI32 key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_a5N2Ic0uYrdiANf4A16L3wtables(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = (t0.data->data[h0].Field1 == key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}
static N_NIMCALL(void, Marker_TY_kxu4GK0onha2t9bo86mdVAg)(void* p, NI op) {
	TY_kxu4GK0onha2t9bo86mdVAg* a;
	NI LOC1;
	a = (TY_kxu4GK0onha2t9bo86mdVAg*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}

N_NIMCALL(void, rawinsert_kBX59cA3Goa5jjykUZ23cAg)(Table_tfmlwa8ktiw8woWAs5vhtQ* t0, TY_kxu4GK0onha2t9bo86mdVAg** data0, NI32 key0, NI32 val0, NI hc0, NI h0) {
	(*data0)->data[h0].Field1 = key0;
	(*data0)->data[h0].Field2 = val0;
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_8VsfFZNeGWGPfOBGmR3gFA)(Table_tfmlwa8ktiw8woWAs5vhtQ* t0) {
	TY_kxu4GK0onha2t9bo86mdVAg* n0;
	TY_kxu4GK0onha2t9bo86mdVAg* LOC1;
	n0 = (TY_kxu4GK0onha2t9bo86mdVAg*)0;
	n0 = (TY_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_kxu4GK0onha2t9bo86mdVAg*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_5;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_5;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_5;
		i_dvhESMSoOJA0JTh9c9cUlylQ_5 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_5 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_5 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_5 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_5 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_5)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_5 = res_FVJcWTrVEQPIAvQjEj9at1Q_5;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_5].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_kBX59cA3Goa5jjykUZ23cAg(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_5].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_5].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_5 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_I70Wt9cTHlMtspIDepdIVKwtables)(Table_tfmlwa8ktiw8woWAs5vhtQ t0, NI32 key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = (t0.data->data[h0].Field1 == key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NIM_BOOL, haskeyorput_vMzEPMGQV8V0uNKrVGJGKQ)(Table_tfmlwa8ktiw8woWAs5vhtQ* t0, NI32 key0, NI32 val0) {
	NIM_BOOL result0;
	NI hc0;
	NI index0;
	result0 = (NIM_BOOL)0;
	hc0 = (NI)0;
	index0 = rawget_0X9cPID9aOCAHDQG8tGanVowtables((*t0), key0, (&hc0));
	{
		if (!(index0 < ((NI) 0))) goto LA3;
		result0 = NIM_FALSE;
		{
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC7) goto LA8;
			enlarge_8VsfFZNeGWGPfOBGmR3gFA(t0);
			index0 = rawgetknownhc_I70Wt9cTHlMtspIDepdIVKwtables((*t0), key0, hc0);
		}
		LA8: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_kBX59cA3Goa5jjykUZ23cAg(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	goto LA1;
	LA3: ;
	{
		result0 = NIM_TRUE;
	}
	LA1: ;
	return result0;
}

N_NIMCALL(void, inittable_RWV8dDCL9bQLrrCYa5jJV9cg)(NI initialsize0, Table_DYt7wxxRVZ9c5PDjh5cfgPA* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_eBSwX9aa9c1W8S1FJPmehz9aQ*) newSeq((&NTI_eBSwX9aa9c1W8S1FJPmehz9aQ), ((NI) (initialsize0))));
}

N_NIMCALL(void, inittable_ANARQJPe8QiWqio6ndea9aA)(NI initialsize0, Table_tfmlwa8ktiw8woWAs5vhtQ* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI_kxu4GK0onha2t9bo86mdVAg), ((NI) (initialsize0))));
}

static N_INLINE(NI, rawget_6W1ssjRyuKtSjII2c2v5RQtables)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_uBstFm5SYVQeOL3j9c9bc58A(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t0.data->data[h0].Field1, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NIM_BOOL, haskey_DyKLR1cNLT9cYc2bz5XA9cYw)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0) {
	NIM_BOOL result0;
	NI hc0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	hc0 = (NI)0;
	LOC1 = (NI)0;
	LOC1 = rawget_6W1ssjRyuKtSjII2c2v5RQtables(t0, key0, (&hc0));
	result0 = (((NI) 0) <= LOC1);
	return result0;
}
static N_NIMCALL(void, Marker_TY_pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op) {
	TY_pUxI6Ljo6IKKHXKOZkQ7Og* a;
	NI LOC1;
	a = (TY_pUxI6Ljo6IKKHXKOZkQ7Og*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

N_NIMCALL(void, rawinsert_JrnDXRCjxItwEsaMlP5tEA)(Table_zjMaDBasw1LnKbj11akpfw* t0, TY_pUxI6Ljo6IKKHXKOZkQ7Og** data0, NimStringDesc* key0, NI val0, NI hc0, NI h0) {
	NimStringDesc* LOC1;
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*data0)->data[h0].Field1; (*data0)->data[h0].Field1 = copyStringRC1(key0);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data0)->data[h0].Field2 = val0;
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_NkEl9bLLrzlYTmLn9cgTZPyg)(Table_zjMaDBasw1LnKbj11akpfw* t0) {
	TY_pUxI6Ljo6IKKHXKOZkQ7Og* n0;
	TY_pUxI6Ljo6IKKHXKOZkQ7Og* LOC1;
	n0 = (TY_pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	n0 = (TY_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_6;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_6;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_6;
		i_dvhESMSoOJA0JTh9c9cUlylQ_6 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_6 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_6 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_6 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_6 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_6)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_6 = res_FVJcWTrVEQPIAvQjEj9at1Q_6;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_6].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_JrnDXRCjxItwEsaMlP5tEA(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_6].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_6].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_6 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_m6drWlVK9bHkmyhr05CjMNQtables)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t0.data->data[h0].Field1, key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_ElMq9artIyfSkc1PsoGBTww)(Table_zjMaDBasw1LnKbj11akpfw* t0, NimStringDesc* key0, NI val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_6W1ssjRyuKtSjII2c2v5RQtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		(*t0).data->data[index0].Field2 = val0;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_NkEl9bLLrzlYTmLn9cgTZPyg(t0);
			index0 = rawgetknownhc_m6drWlVK9bHkmyhr05CjMNQtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_JrnDXRCjxItwEsaMlP5tEA(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(NI, getordefault_3uHbWNTgkIuCFgSUKhN19bg)(Table_zjMaDBasw1LnKbj11akpfw t0, NimStringDesc* key0) {
	NI result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_4;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_4;
	result0 = (NI)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_4 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_4 = rawget_6W1ssjRyuKtSjII2c2v5RQtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_4));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_4)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_4].Field2;
	}
	LA3: ;
	return result0;
}
static N_NIMCALL(void, Marker_TY_s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op) {
	TY_s12F9c4cKfaapm8VzG9a1flQ* a;
	NI LOC1;
	a = (TY_s12F9c4cKfaapm8VzG9a1flQ*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_wjKDmRizCbWHbrqewQxusQ)(NI initialsize0, Table_9a2XQy0TxJy7NaS9bsQvnzEw* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ), ((NI) (initialsize0))));
}

static N_INLINE(NI, hash_wXLApNp4hVfHIRffgEB6jwtables)(NI64 x0) {
	NI result0;
	result0 = (NI)0;
	result0 = ((NI) (((NI32)(NU32)(NU64)(x0))));
	return result0;
}

static N_INLINE(NI, rawget_dLS9aywoMRSXWw4aCRDtIzQtables)(Table_9a2XQy0TxJy7NaS9bsQvnzEw t0, NI64 key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_wXLApNp4hVfHIRffgEB6jwtables(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = (t0.data->data[h0].Field1 == key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getordefault_LSLS6v4Z2dHBs9cI5uIP9cvg)(Table_9a2XQy0TxJy7NaS9bsQvnzEw t0, NI64 key0) {
	Tnode_bROa11lyF5vxEN9aYNbHmhw* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_5;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_5;
	result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_5 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_5 = rawget_dLS9aywoMRSXWw4aCRDtIzQtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_5));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_5)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_5].Field2;
	}
	LA3: ;
	return result0;
}

N_NIMCALL(void, rawinsert_zGkuwLAynfrJfCeKmyts9aQ)(Table_9a2XQy0TxJy7NaS9bsQvnzEw* t0, TY_s12F9c4cKfaapm8VzG9a1flQ** data0, NI64 key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0, NI hc0, NI h0) {
	(*data0)->data[h0].Field1 = key0;
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field2), val0);
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_ALncDtRohDG9bC4738XmISA)(Table_9a2XQy0TxJy7NaS9bsQvnzEw* t0) {
	TY_s12F9c4cKfaapm8VzG9a1flQ* n0;
	TY_s12F9c4cKfaapm8VzG9a1flQ* LOC1;
	n0 = (TY_s12F9c4cKfaapm8VzG9a1flQ*)0;
	n0 = (TY_s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI_s12F9c4cKfaapm8VzG9a1flQ), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_s12F9c4cKfaapm8VzG9a1flQ*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_7;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_7;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_7;
		i_dvhESMSoOJA0JTh9c9cUlylQ_7 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_7 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_7 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_7 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_7 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_7)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_7 = res_FVJcWTrVEQPIAvQjEj9at1Q_7;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_7].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_zGkuwLAynfrJfCeKmyts9aQ(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_7].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_7].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_7 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_1lCtOG4P6KdGVvRXz9a0wYAtables)(Table_9a2XQy0TxJy7NaS9bsQvnzEw t0, NI64 key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = (t0.data->data[h0].Field1 == key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_jxh1ZBvPHRaWuQI9cXKFZsQ)(Table_9a2XQy0TxJy7NaS9bsQvnzEw* t0, NI64 key0, Tnode_bROa11lyF5vxEN9aYNbHmhw* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_dLS9aywoMRSXWw4aCRDtIzQtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field2), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_ALncDtRohDG9bC4738XmISA(t0);
			index0 = rawgetknownhc_1lCtOG4P6KdGVvRXz9a0wYAtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_zGkuwLAynfrJfCeKmyts9aQ(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}
static N_NIMCALL(void, Marker_TY_W2kc72XufLJLp3E0kMt2Ow)(void* p, NI op) {
	TY_W2kc72XufLJLp3E0kMt2Ow* a;
	NI LOC1;
	NI LOC2;
	a = (TY_W2kc72XufLJLp3E0kMt2Ow*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	LOC2 = (NI)0;
	for (LOC2 = 0; LOC2 < 16; LOC2++) {
	}
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}
static N_NIMCALL(void, Marker_TY_XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op) {
	TY_XUL1TrMU0tgXmaMFCIYgFQ* a;
	NI LOC1;
	NI LOC2;
	a = (TY_XUL1TrMU0tgXmaMFCIYgFQ*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	LOC2 = (NI)0;
	for (LOC2 = 0; LOC2 < 16; LOC2++) {
	}
	}
}

N_NIMCALL(void, inittable_CYqX9c8IMjTwMZARcN9bfPAQ)(NI initialsize0, Table_CLLTIkQVzDOo9avEeZWukOg* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_W2kc72XufLJLp3E0kMt2Ow*) newSeq((&NTI_W2kc72XufLJLp3E0kMt2Ow), ((NI) (initialsize0))));
}

N_NIMCALL(void, initcounttable_4O7TExpEDvPAeVZ7AqX3iw)(NI initialsize0, Counttable_pdLM8FWiNHAzIuaDPD0Leg* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI_XUL1TrMU0tgXmaMFCIYgFQ), ((NI) (initialsize0))));
}

N_NIMCALL(NI, rawget_fHoC4OUEY7w3FcQM6bDNBw_2)(Counttable_pdLM8FWiNHAzIuaDPD0Leg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0) {
	NI result0;
	NI h0;
	NI LOC1;
{	result0 = (NI)0;
	LOC1 = (NI)0;
	LOC1 = hash_GmDea9bcNl3tvgPhCgWeYfQ(key0);
	h0 = (NI)(LOC1 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			if (!!((t0.data->data[h0].Field1 == ((NI) 0)))) goto LA3;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = HEX3DHEX3D_0iUwL9ajONRz2GYAZk9cgslg(t0.data->data[h0].Field0, key0);
				if (!LOC6) goto LA7;
				result0 = h0;
				goto BeforeRet;
			}
			LA7: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA3: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NI, getordefault_fHoC4OUEY7w3FcQM6bDNBw)(Counttable_pdLM8FWiNHAzIuaDPD0Leg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0) {
	NI result0;
	NI index0;
	result0 = (NI)0;
	index0 = rawget_fHoC4OUEY7w3FcQM6bDNBw_2(t0, key0);
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		result0 = t0.data->data[index0].Field1;
	}
	LA3: ;
	return result0;
}

N_NIMCALL(void, rawinsert_sb9abhI1AL9a9bekfc4cZ7oHw)(Counttable_pdLM8FWiNHAzIuaDPD0Leg t0, TY_XUL1TrMU0tgXmaMFCIYgFQ** data0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI val0) {
	NI h0;
	NI LOC1;
	LOC1 = (NI)0;
	LOC1 = hash_GmDea9bcNl3tvgPhCgWeYfQ(key0);
	h0 = (NI)(LOC1 & ((*data0) ? ((*data0)->Sup.len-1) : -1));
	{
		while (1) {
			if (!!(((*data0)->data[h0].Field1 == ((NI) 0)))) goto LA3;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, ((*data0) ? ((*data0)->Sup.len-1) : -1));
		} LA3: ;
	}
	memcpy((void*)(*data0)->data[h0].Field0, (NIM_CONST void*)key0, sizeof(TY_qtqsWM5aXmcpMIVmvq3kAA));
	(*data0)->data[h0].Field1 = val0;
}

N_NIMCALL(void, enlarge_5k6O0Y388aCSa9cpuwecM6A)(Counttable_pdLM8FWiNHAzIuaDPD0Leg* t0) {
	TY_XUL1TrMU0tgXmaMFCIYgFQ* n0;
	TY_XUL1TrMU0tgXmaMFCIYgFQ* LOC8;
	n0 = (TY_XUL1TrMU0tgXmaMFCIYgFQ*)0;
	n0 = (TY_XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI_XUL1TrMU0tgXmaMFCIYgFQ), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_8;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_8;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_8;
		i_dvhESMSoOJA0JTh9c9cUlylQ_8 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_8 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_8 = ((*t0).data ? ((*t0).data->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_8 = ((NI) 0);
		{
			while (1) {
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_8 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_8)) goto LA3;
				i_dvhESMSoOJA0JTh9c9cUlylQ_8 = res_FVJcWTrVEQPIAvQjEj9at1Q_8;
				{
					if (!!(((*t0).data->data[i_dvhESMSoOJA0JTh9c9cUlylQ_8].Field1 == ((NI) 0)))) goto LA6;
					rawinsert_sb9abhI1AL9a9bekfc4cZ7oHw((*t0), (&n0), (*t0).data->data[i_dvhESMSoOJA0JTh9c9cUlylQ_8].Field0, (*t0).data->data[i_dvhESMSoOJA0JTh9c9cUlylQ_8].Field1);
				}
				LA6: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_8 += ((NI) 1);
			} LA3: ;
		}
	}
	LOC8 = (TY_XUL1TrMU0tgXmaMFCIYgFQ*)0;
	LOC8 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC8;
}

N_NIMCALL(void, inc_66kyILCtes8ek1bqwePAkw)(Counttable_pdLM8FWiNHAzIuaDPD0Leg* t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI val0) {
	NI index0;
	index0 = rawget_fHoC4OUEY7w3FcQM6bDNBw_2((*t0), key0);
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		(*t0).data->data[index0].Field1 += val0;
		{
			if (!((*t0).data->data[index0].Field1 == ((NI) 0))) goto LA7;
			(*t0).counter -= ((NI) 1);
		}
		LA7: ;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC12;
			LOC12 = (NIM_BOOL)0;
			LOC12 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC12) goto LA13;
			enlarge_5k6O0Y388aCSa9cpuwecM6A(t0);
		}
		LA13: ;
		rawinsert_sb9abhI1AL9a9bekfc4cZ7oHw((*t0), (&(*t0).data), key0, val0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

static N_INLINE(NI, rawget_LOL0bDYVa0K9b9cNpqP0i0fAtables)(Table_CLLTIkQVzDOo9avEeZWukOg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_GmDea9bcNl3tvgPhCgWeYfQ(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = HEX3DHEX3D_0iUwL9ajONRz2GYAZk9cgslg(t0.data->data[h0].Field1, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Ropeobj_HF4qJnb6xiOddgPmsxodtQ*, getordefault_WfeTRSU2SXosd0KyLRsNqA)(Table_CLLTIkQVzDOo9avEeZWukOg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0) {
	Ropeobj_HF4qJnb6xiOddgPmsxodtQ* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_6;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_6;
	result0 = (Ropeobj_HF4qJnb6xiOddgPmsxodtQ*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_6 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_6 = rawget_LOL0bDYVa0K9b9cNpqP0i0fAtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_6));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_6)) goto LA3;
		result0 = t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_6].Field2;
	}
	LA3: ;
	return result0;
}

N_NIMCALL(void, rawinsert_GhdHmbjkRYNdxRb6bXWfyg)(Table_CLLTIkQVzDOo9avEeZWukOg* t0, TY_W2kc72XufLJLp3E0kMt2Ow** data0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, Ropeobj_HF4qJnb6xiOddgPmsxodtQ* val0, NI hc0, NI h0) {
	memcpy((void*)(*data0)->data[h0].Field1, (NIM_CONST void*)key0, sizeof(TY_qtqsWM5aXmcpMIVmvq3kAA));
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field2), val0);
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_mkEEpytiYOte0utP49adasg)(Table_CLLTIkQVzDOo9avEeZWukOg* t0) {
	TY_W2kc72XufLJLp3E0kMt2Ow* n0;
	TY_W2kc72XufLJLp3E0kMt2Ow* LOC1;
	n0 = (TY_W2kc72XufLJLp3E0kMt2Ow*)0;
	n0 = (TY_W2kc72XufLJLp3E0kMt2Ow*) newSeq((&NTI_W2kc72XufLJLp3E0kMt2Ow), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_W2kc72XufLJLp3E0kMt2Ow*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_9;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_9;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_9;
		i_dvhESMSoOJA0JTh9c9cUlylQ_9 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_9 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_9 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_9 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_9 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_9)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_9 = res_FVJcWTrVEQPIAvQjEj9at1Q_9;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_9].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_GhdHmbjkRYNdxRb6bXWfyg(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_9].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_9].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_9 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_KYeeT9chfXOfZLSbhgE7cDwtables)(Table_CLLTIkQVzDOo9avEeZWukOg t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = HEX3DHEX3D_0iUwL9ajONRz2GYAZk9cgslg(t0.data->data[h0].Field1, key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_BB9cml2YF9cRQvdtWa9aceAyw)(Table_CLLTIkQVzDOo9avEeZWukOg* t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0, Ropeobj_HF4qJnb6xiOddgPmsxodtQ* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_LOL0bDYVa0K9b9cNpqP0i0fAtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field2), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_mkEEpytiYOte0utP49adasg(t0);
			index0 = rawgetknownhc_KYeeT9chfXOfZLSbhgE7cDwtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_GhdHmbjkRYNdxRb6bXWfyg(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(Ropeobj_HF4qJnb6xiOddgPmsxodtQ**, HEX5BHEX5D_D32CyVQc3bxgQipD6FSZbQ)(Table_CLLTIkQVzDOo9avEeZWukOg* t0, TY_qtqsWM5aXmcpMIVmvq3kAA key0) {
	Ropeobj_HF4qJnb6xiOddgPmsxodtQ** result0;
	NI hc_u3sucX4OC9aCI319cyzPfnPQ_2;
	NI index_Nls85AySj3R9b5dTKo8K8zA_2;
	result0 = (Ropeobj_HF4qJnb6xiOddgPmsxodtQ**)0;
	hc_u3sucX4OC9aCI319cyzPfnPQ_2 = (NI)0;
	index_Nls85AySj3R9b5dTKo8K8zA_2 = rawget_LOL0bDYVa0K9b9cNpqP0i0fAtables((*t0), key0, (&hc_u3sucX4OC9aCI319cyzPfnPQ_2));
	{
		if (!(((NI) 0) <= index_Nls85AySj3R9b5dTKo8K8zA_2)) goto LA3;
		result0 = &(*t0).data->data[index_Nls85AySj3R9b5dTKo8K8zA_2].Field2;
	}
	goto LA1;
	LA3: ;
	{
		Keyerror_ifYAhUumNzWR9c9cN9amyJLtg* e_3KTaTU0PkrRBJE9cyBTzsPA_2;
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		e_3KTaTU0PkrRBJE9cyBTzsPA_2 = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*)0;
		e_3KTaTU0PkrRBJE9cyBTzsPA_2 = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*) newObj((&NTI_axqhRnwd09cVJkRcojfw6mA), sizeof(Keyerror_ifYAhUumNzWR9c9cN9amyJLtg));
		(*e_3KTaTU0PkrRBJE9cyBTzsPA_2).Sup.Sup.Sup.m_type = (&NTI_ifYAhUumNzWR9c9cN9amyJLtg);
		LOC6 = (NimStringDesc*)0;
		LOC7 = (NimStringDesc*)0;
		LOC7 = HEX24_cjda4doS9ccFOjsWsGu9aa2A(key0);
		LOC6 = rawNewString(LOC7->Sup.len + 15);
appendString(LOC6, ((NimStringDesc*) &T_4SoG2KRQy3oMm9aUzSLtGrA_8));
appendString(LOC6, LOC7);
		asgnRefNoCycle((void**) (&(*e_3KTaTU0PkrRBJE9cyBTzsPA_2).Sup.Sup.message), LOC6);
		raiseException((Exception*)e_3KTaTU0PkrRBJE9cyBTzsPA_2, "KeyError");
	}
	LA1: ;
	return result0;
}
static N_NIMCALL(void, Marker_TY_MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op) {
	TY_MlAD6nAPq9bHKla9cWiIZP0g* a;
	NI LOC1;
	a = (TY_MlAD6nAPq9bHKla9cWiIZP0g*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	nimGCvisit((void*)a->data[LOC1].Field3, op);
	}
}

N_NIMCALL(void, inittable_3Cf7Fyn7tUxJRodC9aUxtFw)(NI initialsize0, Table_zjMaDBasw1LnKbj11akpfw* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI_pUxI6Ljo6IKKHXKOZkQ7Og), ((NI) (initialsize0))));
}

N_NIMCALL(NI, rawget_ejrpxsNAZJyHhQhopPiwJA)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_uBstFm5SYVQeOL3j9c9bc58A(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t0.data->data[h0].Field2, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NIM_BOOL, haskey_6zZzy9aTG3euSh9bJ9bh9aFOqA)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0) {
	NIM_BOOL result0;
	NI hc0;
	NI LOC1;
	result0 = (NIM_BOOL)0;
	hc0 = (NI)0;
	LOC1 = (NI)0;
	LOC1 = rawget_ejrpxsNAZJyHhQhopPiwJA(t0, key0, (&hc0));
	result0 = (((NI) 0) <= LOC1);
	return result0;
}

static N_INLINE(NI, rawget_WyEeYQHki9bxcrycmQ047tQtables)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_uBstFm5SYVQeOL3j9c9bc58A(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t0.data->data[h0].Field2, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q**, HEX5BHEX5D_9bcSZUFhwESDEYXhkxOm8Hg)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0, NimStringDesc* key0) {
	Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q** result0;
	NI hc_u3sucX4OC9aCI319cyzPfnPQ_3;
	NI index_Nls85AySj3R9b5dTKo8K8zA_3;
	result0 = (Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q**)0;
	hc_u3sucX4OC9aCI319cyzPfnPQ_3 = (NI)0;
	index_Nls85AySj3R9b5dTKo8K8zA_3 = rawget_WyEeYQHki9bxcrycmQ047tQtables((*t0), key0, (&hc_u3sucX4OC9aCI319cyzPfnPQ_3));
	{
		if (!(((NI) 0) <= index_Nls85AySj3R9b5dTKo8K8zA_3)) goto LA3;
		result0 = &(*t0).data->data[index_Nls85AySj3R9b5dTKo8K8zA_3].Field3;
	}
	goto LA1;
	LA3: ;
	{
		Keyerror_ifYAhUumNzWR9c9cN9amyJLtg* e_3KTaTU0PkrRBJE9cyBTzsPA_3;
		NimStringDesc* LOC6;
		e_3KTaTU0PkrRBJE9cyBTzsPA_3 = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*)0;
		e_3KTaTU0PkrRBJE9cyBTzsPA_3 = (Keyerror_ifYAhUumNzWR9c9cN9amyJLtg*) newObj((&NTI_axqhRnwd09cVJkRcojfw6mA), sizeof(Keyerror_ifYAhUumNzWR9c9cN9amyJLtg));
		(*e_3KTaTU0PkrRBJE9cyBTzsPA_3).Sup.Sup.Sup.m_type = (&NTI_ifYAhUumNzWR9c9cN9amyJLtg);
		LOC6 = (NimStringDesc*)0;
		LOC6 = rawNewString(key0->Sup.len + 15);
appendString(LOC6, ((NimStringDesc*) &T_4SoG2KRQy3oMm9aUzSLtGrA_8));
appendString(LOC6, key0);
		asgnRefNoCycle((void**) (&(*e_3KTaTU0PkrRBJE9cyBTzsPA_3).Sup.Sup.message), LOC6);
		raiseException((Exception*)e_3KTaTU0PkrRBJE9cyBTzsPA_3, "KeyError");
	}
	LA1: ;
	return result0;
}

N_NIMCALL(void, initorderedtable_PHRF9cHqhXGiWC9cIiRW9bTWw)(NI initialsize0, Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* Result) {
	(*Result).counter = ((NI) 0);
	(*Result).first = ((NI) -1);
	(*Result).last = ((NI) -1);
	unsureAsgnRef((void**) (&(*Result).data), (TY_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g), ((NI) (initialsize0))));
}

N_NIMCALL(NI, rawgetknownhc_DycNfqFZryzkgIAk9bw7xSQ)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw t0, NimStringDesc* key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t0.data->data[h0].Field2, key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, rawinsert_PJEZeDCLfp6559cI0Hhn8lg)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0, TY_MlAD6nAPq9bHKla9cWiIZP0g** data0, NimStringDesc* key0, Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q* val0, NI hc0, NI h0) {
	NimStringDesc* LOC1;
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*data0)->data[h0].Field2; (*data0)->data[h0].Field2 = copyStringRC1(key0);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	asgnRefNoCycle((void**) (&(*data0)->data[h0].Field3), val0);
	(*data0)->data[h0].Field0 = hc0;
	(*data0)->data[h0].Field1 = ((NI) -1);
	{
		if (!((*t0).first < ((NI) 0))) goto LA4;
		(*t0).first = h0;
	}
	LA4: ;
	{
		if (!(((NI) 0) <= (*t0).last)) goto LA8;
		(*data0)->data[(*t0).last].Field1 = h0;
	}
	LA8: ;
	(*t0).last = h0;
}

N_NIMCALL(void, enlarge_eOZs9auXoZM0glvDlTLHszQ)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0) {
	TY_MlAD6nAPq9bHKla9cWiIZP0g* n0;
	NI h0;
	TY_MlAD6nAPq9bHKla9cWiIZP0g* LOC1;
	n0 = (TY_MlAD6nAPq9bHKla9cWiIZP0g*)0;
	n0 = (TY_MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI_MlAD6nAPq9bHKla9cWiIZP0g), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	h0 = (*t0).first;
	(*t0).first = ((NI) -1);
	(*t0).last = ((NI) -1);
	LOC1 = (TY_MlAD6nAPq9bHKla9cWiIZP0g*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		while (1) {
			NI nxt0;
			if (!(((NI) 0) <= h0)) goto LA3;
			nxt0 = n0->data[h0].Field1;
			{
				NIM_BOOL LOC6;
				NI j0;
				NI LOC9;
				LOC6 = (NIM_BOOL)0;
				LOC6 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(n0->data[h0].Field0);
				if (!LOC6) goto LA7;
				LOC9 = (NI)0;
				LOC9 = rawgetknownhc_DycNfqFZryzkgIAk9bw7xSQ((*t0), n0->data[h0].Field2, n0->data[h0].Field0);
				j0 = (NI)(((NI) -1) - LOC9);
				rawinsert_PJEZeDCLfp6559cI0Hhn8lg(t0, (&(*t0).data), n0->data[h0].Field2, n0->data[h0].Field3, n0->data[h0].Field0, j0);
			}
			LA7: ;
			h0 = nxt0;
		} LA3: ;
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_9bwm9c9bGAcoIGLjRndWCPT3Q)(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw* t0, NimStringDesc* key0, Jsonnodeobj_df9bshXB7C9cTiWPIOtX3j1Q* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_ejrpxsNAZJyHhQhopPiwJA((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		asgnRefNoCycle((void**) (&(*t0).data->data[index0].Field3), val0);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_eOZs9auXoZM0glvDlTLHszQ(t0);
			index0 = rawgetknownhc_DycNfqFZryzkgIAk9bw7xSQ((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_PJEZeDCLfp6559cI0Hhn8lg(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}
static N_NIMCALL(void, Marker_TY_wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op) {
	TY_wAC0kXbVGkLoWP8vdi0sUw* a;
	NI LOC1;
	a = (TY_wAC0kXbVGkLoWP8vdi0sUw*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1.keyword, op);
	nimGCvisit((void*)a->data[LOC1].Field1.link, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linktitle, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linkdesc, op);
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_ODkkQ9axD170VSeIO9bWe14A)(NI initialsize0, Table_0W7i336OcSL9aSRK9bSM9bLhg* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (TY_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw), ((NI) (initialsize0))));
}

N_NIMCALL(NI, len_SKmk7SJkIOaKMQgCKSOPaw)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0) {
	NI result0;
	result0 = (NI)0;
	result0 = t0.counter;
	return result0;
}

static N_INLINE(NI, rawget_LDQudTQBvhKygO5lFcu1CAtables)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, NI* hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	(*hc0) = hash_Q7BtvrecnTohFQH6ezREJw(key0);
	{
		if (!((*hc0) == ((NI) 0))) goto LA3;
		(*hc0) = ((NI) 314159265);
	}
	LA3: ;
	h0 = (NI)((*hc0) & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = (NIM_BOOL)0;
				LOC10 = (t0.data->data[h0].Field0 == (*hc0));
				if (!(LOC10)) goto LA11;
				LOC10 = HEX3DHEX3D_fsWIAWPnaoNtepsWNV0Ldw(t0.data->data[h0].Field1, key0);
				LA11: ;
				if (!LOC10) goto LA12;
				result0 = h0;
				goto BeforeRet;
			}
			LA12: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, rawinsert_zSjMjXXH7YgxTscceNhhxA)(Table_0W7i336OcSL9aSRK9bSM9bLhg* t0, TY_wAC0kXbVGkLoWP8vdi0sUw** data0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, TY_5PunAJrNQYcB8dF0jau3pQ* val0, NI hc0, NI h0) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	LOC1 = (NimStringDesc*)0;
	LOC1 = (*data0)->data[h0].Field1.keyword; (*data0)->data[h0].Field1.keyword = copyStringRC1(key0.keyword);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	LOC2 = (NimStringDesc*)0;
	LOC2 = (*data0)->data[h0].Field1.link; (*data0)->data[h0].Field1.link = copyStringRC1(key0.link);
	if (LOC2) nimGCunrefNoCycle(LOC2);
	LOC3 = (NimStringDesc*)0;
	LOC3 = (*data0)->data[h0].Field1.linktitle; (*data0)->data[h0].Field1.linktitle = copyStringRC1(key0.linktitle);
	if (LOC3) nimGCunrefNoCycle(LOC3);
	LOC4 = (NimStringDesc*)0;
	LOC4 = (*data0)->data[h0].Field1.linkdesc; (*data0)->data[h0].Field1.linkdesc = copyStringRC1(key0.linkdesc);
	if (LOC4) nimGCunrefNoCycle(LOC4);
	genericSeqAssign((&(*data0)->data[h0].Field2), val0, (&NTI_5PunAJrNQYcB8dF0jau3pQ));
	(*data0)->data[h0].Field0 = hc0;
}

N_NIMCALL(void, enlarge_YMboekAeiwE9aZcOGE4W7LQ)(Table_0W7i336OcSL9aSRK9bSM9bLhg* t0) {
	TY_wAC0kXbVGkLoWP8vdi0sUw* n0;
	TY_wAC0kXbVGkLoWP8vdi0sUw* LOC1;
	n0 = (TY_wAC0kXbVGkLoWP8vdi0sUw*)0;
	n0 = (TY_wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI_wAC0kXbVGkLoWP8vdi0sUw), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = (TY_wAC0kXbVGkLoWP8vdi0sUw*)0;
	LOC1 = (*t0).data;
	unsureAsgnRef((void**) (&(*t0).data), n0);
	n0 = LOC1;
	{
		NI i_dvhESMSoOJA0JTh9c9cUlylQ_10;
		NI HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_10;
		NI res_FVJcWTrVEQPIAvQjEj9at1Q_10;
		i_dvhESMSoOJA0JTh9c9cUlylQ_10 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_10 = (NI)0;
		HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_10 = (n0 ? (n0->Sup.len-1) : -1);
		res_FVJcWTrVEQPIAvQjEj9at1Q_10 = ((NI) 0);
		{
			while (1) {
				NI eh0;
				if (!(res_FVJcWTrVEQPIAvQjEj9at1Q_10 <= HEX3Atmp_9cA9ceaDKRXDuJfA46LbcfIQ_10)) goto LA4;
				i_dvhESMSoOJA0JTh9c9cUlylQ_10 = res_FVJcWTrVEQPIAvQjEj9at1Q_10;
				eh0 = n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_10].Field0;
				{
					NIM_BOOL LOC7;
					NI j0;
					LOC7 = (NIM_BOOL)0;
					LOC7 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(eh0);
					if (!LOC7) goto LA8;
					j0 = (NI)(eh0 & ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
					{
						while (1) {
							NIM_BOOL LOC12;
							LOC12 = (NIM_BOOL)0;
							LOC12 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables((*t0).data->data[j0].Field0);
							if (!LOC12) goto LA11;
							j0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(j0, ((*t0).data ? ((*t0).data->Sup.len-1) : -1));
						} LA11: ;
					}
					rawinsert_zSjMjXXH7YgxTscceNhhxA(t0, (&(*t0).data), n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_10].Field1, n0->data[i_dvhESMSoOJA0JTh9c9cUlylQ_10].Field2, eh0, j0);
				}
				LA8: ;
				res_FVJcWTrVEQPIAvQjEj9at1Q_10 += ((NI) 1);
			} LA4: ;
		}
	}
}

static N_INLINE(NI, rawgetknownhc_v0w3RUVEtCIVEOonSPJ9b6Qtables)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, NI hc0) {
	NI result0;
	NI h0;
{	result0 = (NI)0;
	h0 = (NI)(hc0 & (t0.data ? (t0.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = (NIM_BOOL)0;
			LOC3 = isfilled_IxXD1UAPoEehVDW9cv9cRaewtables(t0.data->data[h0].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = (NIM_BOOL)0;
				LOC6 = (t0.data->data[h0].Field0 == hc0);
				if (!(LOC6)) goto LA7;
				LOC6 = HEX3DHEX3D_fsWIAWPnaoNtepsWNV0Ldw(t0.data->data[h0].Field1, key0);
				LA7: ;
				if (!LOC6) goto LA8;
				result0 = h0;
				goto BeforeRet;
			}
			LA8: ;
			h0 = nexttry_OLPhxSyW9bte5CwHzzQVhfAtables(h0, (t0.data ? (t0.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result0 = (NI)(((NI) -1) - h0);
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_yl71skSfG8AAyGr9bLNjwUw)(Table_0W7i336OcSL9aSRK9bSM9bLhg* t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0, TY_5PunAJrNQYcB8dF0jau3pQ* val0) {
	NI hc0;
	NI index0;
	hc0 = (NI)0;
	index0 = rawget_LDQudTQBvhKygO5lFcu1CAtables((*t0), key0, (&hc0));
	{
		if (!(((NI) 0) <= index0)) goto LA3;
		genericSeqAssign((&(*t0).data->data[index0].Field2), val0, (&NTI_5PunAJrNQYcB8dF0jau3pQ));
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = (NIM_BOOL)0;
			LOC8 = mustrehash_CT8KHtrz1uoHrT4RgfOSmQtables(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter);
			if (!LOC8) goto LA9;
			enlarge_YMboekAeiwE9aZcOGE4W7LQ(t0);
			index0 = rawgetknownhc_v0w3RUVEtCIVEOonSPJ9b6Qtables((*t0), key0, hc0);
		}
		LA9: ;
		index0 = (NI)(((NI) -1) - index0);
		rawinsert_zSjMjXXH7YgxTscceNhhxA(t0, (&(*t0).data), key0, val0, hc0, index0);
		(*t0).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(TY_5PunAJrNQYcB8dF0jau3pQ*, getordefault_cpWjs0NF6cbTU2plDhH5LA)(Table_0W7i336OcSL9aSRK9bSM9bLhg t0, Indexentry_G9ccBDFWfr9aYnLgXTNGDHDg key0) {
	TY_5PunAJrNQYcB8dF0jau3pQ* result0;
	NI hc_ahatuxPT9c9c9blViOJsJlR0g_7;
	NI index_lVyLcP9bhOrALHBukLVhV9aQ_7;
	result0 = (TY_5PunAJrNQYcB8dF0jau3pQ*)0;
	hc_ahatuxPT9c9c9blViOJsJlR0g_7 = (NI)0;
	index_lVyLcP9bhOrALHBukLVhV9aQ_7 = rawget_LDQudTQBvhKygO5lFcu1CAtables(t0, key0, (&hc_ahatuxPT9c9c9blViOJsJlR0g_7));
	{
		if (!(((NI) 0) <= index_lVyLcP9bhOrALHBukLVhV9aQ_7)) goto LA3;
		genericSeqAssign((&result0), t0.data->data[index_lVyLcP9bhOrALHBukLVhV9aQ_7].Field2, (&NTI_5PunAJrNQYcB8dF0jau3pQ));
	}
	LA3: ;
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_tablesDatInit000)(void) {
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_2[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_3[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_4[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_5[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_6[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_7[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_9[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_10[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_11[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_12[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_13[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_14[3];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_15[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_16[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_17[2];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_18[4];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_19[4];
static TNimNode* T_4SoG2KRQy3oMm9aUzSLtGrA_20[3];
static TNimNode T_4SoG2KRQy3oMm9aUzSLtGrA_0[67];
NTI_frKphOTgDqmvI5gMd19b4JA.size = sizeof(Table_frKphOTgDqmvI5gMd19b4JA);
NTI_frKphOTgDqmvI5gMd19b4JA.kind = 18;
NTI_frKphOTgDqmvI5gMd19b4JA.base = 0;
NTI_frKphOTgDqmvI5gMd19b4JA.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_2[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[1];
NTI_xYhUhS7X82rKTqbT9bRfCnw.size = sizeof(TY_xYhUhS7X82rKTqbT9bRfCnw);
NTI_xYhUhS7X82rKTqbT9bRfCnw.kind = 18;
NTI_xYhUhS7X82rKTqbT9bRfCnw.base = 0;
NTI_xYhUhS7X82rKTqbT9bRfCnw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_3[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[3];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[3].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[3].offset = offsetof(TY_xYhUhS7X82rKTqbT9bRfCnw, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[3].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_3[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[4];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[4].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[4].offset = offsetof(TY_xYhUhS7X82rKTqbT9bRfCnw, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[4].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[4].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_3[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[5];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[5].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[5].offset = offsetof(TY_xYhUhS7X82rKTqbT9bRfCnw, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[5].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[5].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[2].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[2].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[2].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_3[0];
NTI_xYhUhS7X82rKTqbT9bRfCnw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[2];
NTI_7lEisrXlQEzwtUKW5pzRCw.size = sizeof(TY_7lEisrXlQEzwtUKW5pzRCw*);
NTI_7lEisrXlQEzwtUKW5pzRCw.kind = 24;
NTI_7lEisrXlQEzwtUKW5pzRCw.base = (&NTI_xYhUhS7X82rKTqbT9bRfCnw);
NTI_7lEisrXlQEzwtUKW5pzRCw.flags = 2;
NTI_7lEisrXlQEzwtUKW5pzRCw.marker = Marker_TY_7lEisrXlQEzwtUKW5pzRCw;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[1].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[1].offset = offsetof(Table_frKphOTgDqmvI5gMd19b4JA, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[1].typ = (&NTI_7lEisrXlQEzwtUKW5pzRCw);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[1].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_2[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[6];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[6].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[6].offset = offsetof(Table_frKphOTgDqmvI5gMd19b4JA, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[6].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[6].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[0].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[0].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[0].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_2[0];
NTI_frKphOTgDqmvI5gMd19b4JA.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[0];
NTI_DYt7wxxRVZ9c5PDjh5cfgPA.size = sizeof(Table_DYt7wxxRVZ9c5PDjh5cfgPA);
NTI_DYt7wxxRVZ9c5PDjh5cfgPA.kind = 18;
NTI_DYt7wxxRVZ9c5PDjh5cfgPA.base = 0;
NTI_DYt7wxxRVZ9c5PDjh5cfgPA.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_4[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[8];
NTI_XUtHSCESHcg7KVfuMIqQmw.size = sizeof(TY_XUtHSCESHcg7KVfuMIqQmw);
NTI_XUtHSCESHcg7KVfuMIqQmw.kind = 18;
NTI_XUtHSCESHcg7KVfuMIqQmw.base = 0;
NTI_XUtHSCESHcg7KVfuMIqQmw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_5[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[10];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[10].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[10].offset = offsetof(TY_XUtHSCESHcg7KVfuMIqQmw, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[10].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[10].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_5[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[11];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[11].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[11].offset = offsetof(TY_XUtHSCESHcg7KVfuMIqQmw, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[11].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[11].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_5[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[12];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[12].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[12].offset = offsetof(TY_XUtHSCESHcg7KVfuMIqQmw, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[12].typ = (&NTI_83n62yi1b9bgUtRR9axFWW9ag);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[12].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[9].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[9].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[9].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_5[0];
NTI_XUtHSCESHcg7KVfuMIqQmw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[9];
NTI_eBSwX9aa9c1W8S1FJPmehz9aQ.size = sizeof(TY_eBSwX9aa9c1W8S1FJPmehz9aQ*);
NTI_eBSwX9aa9c1W8S1FJPmehz9aQ.kind = 24;
NTI_eBSwX9aa9c1W8S1FJPmehz9aQ.base = (&NTI_XUtHSCESHcg7KVfuMIqQmw);
NTI_eBSwX9aa9c1W8S1FJPmehz9aQ.flags = 2;
NTI_eBSwX9aa9c1W8S1FJPmehz9aQ.marker = Marker_TY_eBSwX9aa9c1W8S1FJPmehz9aQ;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[8].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[8].offset = offsetof(Table_DYt7wxxRVZ9c5PDjh5cfgPA, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[8].typ = (&NTI_eBSwX9aa9c1W8S1FJPmehz9aQ);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[8].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_4[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[13];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[13].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[13].offset = offsetof(Table_DYt7wxxRVZ9c5PDjh5cfgPA, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[13].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[13].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[7].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[7].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[7].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_4[0];
NTI_DYt7wxxRVZ9c5PDjh5cfgPA.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[7];
NTI_iBvq4fj35BMkXhywDd7OrQ.size = sizeof(TY_iBvq4fj35BMkXhywDd7OrQ);
NTI_iBvq4fj35BMkXhywDd7OrQ.kind = 18;
NTI_iBvq4fj35BMkXhywDd7OrQ.base = 0;
NTI_iBvq4fj35BMkXhywDd7OrQ.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_6[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[15];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[15].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[15].offset = offsetof(TY_iBvq4fj35BMkXhywDd7OrQ, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[15].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[15].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_6[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[16];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[16].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[16].offset = offsetof(TY_iBvq4fj35BMkXhywDd7OrQ, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[16].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[16].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_6[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[17];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[17].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[17].offset = offsetof(TY_iBvq4fj35BMkXhywDd7OrQ, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[17].typ = (&NTI_1EooIlSGbJRPSt3SfQJd7Q);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[17].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[14].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[14].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[14].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_6[0];
NTI_iBvq4fj35BMkXhywDd7OrQ.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[14];
NTI_bAbxBa4xUcordBcoebNUJA.size = sizeof(TY_bAbxBa4xUcordBcoebNUJA*);
NTI_bAbxBa4xUcordBcoebNUJA.kind = 24;
NTI_bAbxBa4xUcordBcoebNUJA.base = (&NTI_iBvq4fj35BMkXhywDd7OrQ);
NTI_bAbxBa4xUcordBcoebNUJA.flags = 2;
NTI_bAbxBa4xUcordBcoebNUJA.marker = Marker_TY_bAbxBa4xUcordBcoebNUJA;
NTI_Wymbvuvlf49clEgp9bKoFN9bw.size = sizeof(TY_Wymbvuvlf49clEgp9bKoFN9bw);
NTI_Wymbvuvlf49clEgp9bKoFN9bw.kind = 18;
NTI_Wymbvuvlf49clEgp9bKoFN9bw.base = 0;
NTI_Wymbvuvlf49clEgp9bKoFN9bw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_7[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[19];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[19].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[19].offset = offsetof(TY_Wymbvuvlf49clEgp9bKoFN9bw, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[19].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[19].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_7[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[20];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[20].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[20].offset = offsetof(TY_Wymbvuvlf49clEgp9bKoFN9bw, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[20].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[20].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_7[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[21];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[21].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[21].offset = offsetof(TY_Wymbvuvlf49clEgp9bKoFN9bw, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[21].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[21].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[18].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[18].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[18].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_7[0];
NTI_Wymbvuvlf49clEgp9bKoFN9bw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[18];
NTI_YuKuU17u5ApAIki23DK9bJw.size = sizeof(TY_YuKuU17u5ApAIki23DK9bJw*);
NTI_YuKuU17u5ApAIki23DK9bJw.kind = 24;
NTI_YuKuU17u5ApAIki23DK9bJw.base = (&NTI_Wymbvuvlf49clEgp9bKoFN9bw);
NTI_YuKuU17u5ApAIki23DK9bJw.flags = 2;
NTI_YuKuU17u5ApAIki23DK9bJw.marker = Marker_TY_YuKuU17u5ApAIki23DK9bJw;
NTI_xDU9bZmv1ZbZkJDaATBekIQ.size = sizeof(TY_xDU9bZmv1ZbZkJDaATBekIQ);
NTI_xDU9bZmv1ZbZkJDaATBekIQ.kind = 18;
NTI_xDU9bZmv1ZbZkJDaATBekIQ.base = 0;
NTI_xDU9bZmv1ZbZkJDaATBekIQ.flags = 3;
T_4SoG2KRQy3oMm9aUzSLtGrA_9[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[23];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[23].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[23].offset = offsetof(TY_xDU9bZmv1ZbZkJDaATBekIQ, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[23].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[23].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_9[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[24];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[24].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[24].offset = offsetof(TY_xDU9bZmv1ZbZkJDaATBekIQ, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[24].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[24].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_9[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[25];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[25].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[25].offset = offsetof(TY_xDU9bZmv1ZbZkJDaATBekIQ, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[25].typ = (&NTI_sVg18TP9cLifHyygRe9cro9aA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[25].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[22].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[22].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[22].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_9[0];
NTI_xDU9bZmv1ZbZkJDaATBekIQ.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[22];
NTI_kxu4GK0onha2t9bo86mdVAg.size = sizeof(TY_kxu4GK0onha2t9bo86mdVAg*);
NTI_kxu4GK0onha2t9bo86mdVAg.kind = 24;
NTI_kxu4GK0onha2t9bo86mdVAg.base = (&NTI_xDU9bZmv1ZbZkJDaATBekIQ);
NTI_kxu4GK0onha2t9bo86mdVAg.flags = 2;
NTI_kxu4GK0onha2t9bo86mdVAg.marker = Marker_TY_kxu4GK0onha2t9bo86mdVAg;
NTI_tfmlwa8ktiw8woWAs5vhtQ.size = sizeof(Table_tfmlwa8ktiw8woWAs5vhtQ);
NTI_tfmlwa8ktiw8woWAs5vhtQ.kind = 18;
NTI_tfmlwa8ktiw8woWAs5vhtQ.base = 0;
NTI_tfmlwa8ktiw8woWAs5vhtQ.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_10[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[27];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[27].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[27].offset = offsetof(Table_tfmlwa8ktiw8woWAs5vhtQ, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[27].typ = (&NTI_kxu4GK0onha2t9bo86mdVAg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[27].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_10[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[28];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[28].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[28].offset = offsetof(Table_tfmlwa8ktiw8woWAs5vhtQ, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[28].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[28].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[26].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[26].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[26].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_10[0];
NTI_tfmlwa8ktiw8woWAs5vhtQ.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[26];
NTI_sr3s7uVHpu9cEbbDnCSg8yQ.size = sizeof(TY_sr3s7uVHpu9cEbbDnCSg8yQ);
NTI_sr3s7uVHpu9cEbbDnCSg8yQ.kind = 18;
NTI_sr3s7uVHpu9cEbbDnCSg8yQ.base = 0;
NTI_sr3s7uVHpu9cEbbDnCSg8yQ.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_11[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[30];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[30].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[30].offset = offsetof(TY_sr3s7uVHpu9cEbbDnCSg8yQ, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[30].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[30].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_11[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[31];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[31].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[31].offset = offsetof(TY_sr3s7uVHpu9cEbbDnCSg8yQ, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[31].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[31].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_11[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[32];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[32].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[32].offset = offsetof(TY_sr3s7uVHpu9cEbbDnCSg8yQ, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[32].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[32].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[29].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[29].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[29].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_11[0];
NTI_sr3s7uVHpu9cEbbDnCSg8yQ.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[29];
NTI_pUxI6Ljo6IKKHXKOZkQ7Og.size = sizeof(TY_pUxI6Ljo6IKKHXKOZkQ7Og*);
NTI_pUxI6Ljo6IKKHXKOZkQ7Og.kind = 24;
NTI_pUxI6Ljo6IKKHXKOZkQ7Og.base = (&NTI_sr3s7uVHpu9cEbbDnCSg8yQ);
NTI_pUxI6Ljo6IKKHXKOZkQ7Og.flags = 2;
NTI_pUxI6Ljo6IKKHXKOZkQ7Og.marker = Marker_TY_pUxI6Ljo6IKKHXKOZkQ7Og;
NTI_8jHm6IGDGecciKpp2bTNxA.size = sizeof(TY_8jHm6IGDGecciKpp2bTNxA);
NTI_8jHm6IGDGecciKpp2bTNxA.kind = 18;
NTI_8jHm6IGDGecciKpp2bTNxA.base = 0;
NTI_8jHm6IGDGecciKpp2bTNxA.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_12[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[34];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[34].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[34].offset = offsetof(TY_8jHm6IGDGecciKpp2bTNxA, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[34].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[34].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_12[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[35];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[35].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[35].offset = offsetof(TY_8jHm6IGDGecciKpp2bTNxA, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[35].typ = (&NTI_Aav8dQoMlCFnZRxA0IhTHQ);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[35].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_12[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[36];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[36].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[36].offset = offsetof(TY_8jHm6IGDGecciKpp2bTNxA, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[36].typ = (&NTI_fKfcLzXYiz5jNu3NH3Tv8Q);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[36].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[33].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[33].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[33].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_12[0];
NTI_8jHm6IGDGecciKpp2bTNxA.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[33];
NTI_s12F9c4cKfaapm8VzG9a1flQ.size = sizeof(TY_s12F9c4cKfaapm8VzG9a1flQ*);
NTI_s12F9c4cKfaapm8VzG9a1flQ.kind = 24;
NTI_s12F9c4cKfaapm8VzG9a1flQ.base = (&NTI_8jHm6IGDGecciKpp2bTNxA);
NTI_s12F9c4cKfaapm8VzG9a1flQ.flags = 2;
NTI_s12F9c4cKfaapm8VzG9a1flQ.marker = Marker_TY_s12F9c4cKfaapm8VzG9a1flQ;
NTI_CLLTIkQVzDOo9avEeZWukOg.size = sizeof(Table_CLLTIkQVzDOo9avEeZWukOg);
NTI_CLLTIkQVzDOo9avEeZWukOg.kind = 18;
NTI_CLLTIkQVzDOo9avEeZWukOg.base = 0;
NTI_CLLTIkQVzDOo9avEeZWukOg.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_13[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[38];
NTI_AmSMAcQUDDCRLV1x9c9cm9axA.size = sizeof(TY_AmSMAcQUDDCRLV1x9c9cm9axA);
NTI_AmSMAcQUDDCRLV1x9c9cm9axA.kind = 18;
NTI_AmSMAcQUDDCRLV1x9c9cm9axA.base = 0;
NTI_AmSMAcQUDDCRLV1x9c9cm9axA.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_14[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[40];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[40].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[40].offset = offsetof(TY_AmSMAcQUDDCRLV1x9c9cm9axA, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[40].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[40].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_14[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[41];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[41].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[41].offset = offsetof(TY_AmSMAcQUDDCRLV1x9c9cm9axA, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[41].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[41].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_14[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[42];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[42].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[42].offset = offsetof(TY_AmSMAcQUDDCRLV1x9c9cm9axA, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[42].typ = (&NTI_d0QF71x0BgMQlc7zEXMYTQ);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[42].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[39].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[39].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[39].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_14[0];
NTI_AmSMAcQUDDCRLV1x9c9cm9axA.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[39];
NTI_W2kc72XufLJLp3E0kMt2Ow.size = sizeof(TY_W2kc72XufLJLp3E0kMt2Ow*);
NTI_W2kc72XufLJLp3E0kMt2Ow.kind = 24;
NTI_W2kc72XufLJLp3E0kMt2Ow.base = (&NTI_AmSMAcQUDDCRLV1x9c9cm9axA);
NTI_W2kc72XufLJLp3E0kMt2Ow.flags = 2;
NTI_W2kc72XufLJLp3E0kMt2Ow.marker = Marker_TY_W2kc72XufLJLp3E0kMt2Ow;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[38].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[38].offset = offsetof(Table_CLLTIkQVzDOo9avEeZWukOg, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[38].typ = (&NTI_W2kc72XufLJLp3E0kMt2Ow);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[38].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_13[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[43];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[43].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[43].offset = offsetof(Table_CLLTIkQVzDOo9avEeZWukOg, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[43].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[43].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[37].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[37].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[37].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_13[0];
NTI_CLLTIkQVzDOo9avEeZWukOg.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[37];
NTI_pdLM8FWiNHAzIuaDPD0Leg.size = sizeof(Counttable_pdLM8FWiNHAzIuaDPD0Leg);
NTI_pdLM8FWiNHAzIuaDPD0Leg.kind = 18;
NTI_pdLM8FWiNHAzIuaDPD0Leg.base = 0;
NTI_pdLM8FWiNHAzIuaDPD0Leg.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_15[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[45];
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg.size = sizeof(TY_tA7Q8IrfOKH7Mn89cK9cBAIg);
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg.kind = 18;
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg.base = 0;
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg.flags = 3;
T_4SoG2KRQy3oMm9aUzSLtGrA_16[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[47];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[47].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[47].offset = offsetof(TY_tA7Q8IrfOKH7Mn89cK9cBAIg, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[47].typ = (&NTI_qtqsWM5aXmcpMIVmvq3kAA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[47].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_16[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[48];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[48].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[48].offset = offsetof(TY_tA7Q8IrfOKH7Mn89cK9cBAIg, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[48].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[48].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[46].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[46].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[46].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_16[0];
NTI_tA7Q8IrfOKH7Mn89cK9cBAIg.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[46];
NTI_XUL1TrMU0tgXmaMFCIYgFQ.size = sizeof(TY_XUL1TrMU0tgXmaMFCIYgFQ*);
NTI_XUL1TrMU0tgXmaMFCIYgFQ.kind = 24;
NTI_XUL1TrMU0tgXmaMFCIYgFQ.base = (&NTI_tA7Q8IrfOKH7Mn89cK9cBAIg);
NTI_XUL1TrMU0tgXmaMFCIYgFQ.flags = 2;
NTI_XUL1TrMU0tgXmaMFCIYgFQ.marker = Marker_TY_XUL1TrMU0tgXmaMFCIYgFQ;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[45].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[45].offset = offsetof(Counttable_pdLM8FWiNHAzIuaDPD0Leg, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[45].typ = (&NTI_XUL1TrMU0tgXmaMFCIYgFQ);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[45].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_15[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[49];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[49].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[49].offset = offsetof(Counttable_pdLM8FWiNHAzIuaDPD0Leg, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[49].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[49].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[44].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[44].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[44].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_15[0];
NTI_pdLM8FWiNHAzIuaDPD0Leg.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[44];
NTI_zjMaDBasw1LnKbj11akpfw.size = sizeof(Table_zjMaDBasw1LnKbj11akpfw);
NTI_zjMaDBasw1LnKbj11akpfw.kind = 18;
NTI_zjMaDBasw1LnKbj11akpfw.base = 0;
NTI_zjMaDBasw1LnKbj11akpfw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_17[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[51];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[51].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[51].offset = offsetof(Table_zjMaDBasw1LnKbj11akpfw, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[51].typ = (&NTI_pUxI6Ljo6IKKHXKOZkQ7Og);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[51].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_17[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[52];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[52].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[52].offset = offsetof(Table_zjMaDBasw1LnKbj11akpfw, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[52].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[52].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[50].len = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[50].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[50].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_17[0];
NTI_zjMaDBasw1LnKbj11akpfw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[50];
NTI_AF39bJ7XDr6gpANuGpxkHrw.size = sizeof(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw);
NTI_AF39bJ7XDr6gpANuGpxkHrw.kind = 18;
NTI_AF39bJ7XDr6gpANuGpxkHrw.base = 0;
NTI_AF39bJ7XDr6gpANuGpxkHrw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_18[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[54];
NTI_awOivLjlO76sGdHY7nQUjQ.size = sizeof(TY_awOivLjlO76sGdHY7nQUjQ);
NTI_awOivLjlO76sGdHY7nQUjQ.kind = 18;
NTI_awOivLjlO76sGdHY7nQUjQ.base = 0;
NTI_awOivLjlO76sGdHY7nQUjQ.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_19[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[56];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[56].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[56].offset = offsetof(TY_awOivLjlO76sGdHY7nQUjQ, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[56].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[56].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_19[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[57];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[57].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[57].offset = offsetof(TY_awOivLjlO76sGdHY7nQUjQ, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[57].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[57].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_19[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[58];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[58].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[58].offset = offsetof(TY_awOivLjlO76sGdHY7nQUjQ, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[58].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[58].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_19[3] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[59];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[59].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[59].offset = offsetof(TY_awOivLjlO76sGdHY7nQUjQ, Field3);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[59].typ = (&NTI_zfzzuQ8txrdZAYK0WGWpHg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[59].name = "Field3";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[55].len = 4; T_4SoG2KRQy3oMm9aUzSLtGrA_0[55].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[55].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_19[0];
NTI_awOivLjlO76sGdHY7nQUjQ.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[55];
NTI_MlAD6nAPq9bHKla9cWiIZP0g.size = sizeof(TY_MlAD6nAPq9bHKla9cWiIZP0g*);
NTI_MlAD6nAPq9bHKla9cWiIZP0g.kind = 24;
NTI_MlAD6nAPq9bHKla9cWiIZP0g.base = (&NTI_awOivLjlO76sGdHY7nQUjQ);
NTI_MlAD6nAPq9bHKla9cWiIZP0g.flags = 2;
NTI_MlAD6nAPq9bHKla9cWiIZP0g.marker = Marker_TY_MlAD6nAPq9bHKla9cWiIZP0g;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[54].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[54].offset = offsetof(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw, data);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[54].typ = (&NTI_MlAD6nAPq9bHKla9cWiIZP0g);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[54].name = "data";
T_4SoG2KRQy3oMm9aUzSLtGrA_18[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[60];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[60].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[60].offset = offsetof(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw, counter);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[60].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[60].name = "counter";
T_4SoG2KRQy3oMm9aUzSLtGrA_18[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[61];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[61].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[61].offset = offsetof(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw, first);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[61].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[61].name = "first";
T_4SoG2KRQy3oMm9aUzSLtGrA_18[3] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[62];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[62].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[62].offset = offsetof(Orderedtable_AF39bJ7XDr6gpANuGpxkHrw, last);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[62].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[62].name = "last";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[53].len = 4; T_4SoG2KRQy3oMm9aUzSLtGrA_0[53].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[53].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_18[0];
NTI_AF39bJ7XDr6gpANuGpxkHrw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[53];
NTI_A9cRoiotm9actU8lLMnN9bYcw.size = sizeof(TY_A9cRoiotm9actU8lLMnN9bYcw);
NTI_A9cRoiotm9actU8lLMnN9bYcw.kind = 18;
NTI_A9cRoiotm9actU8lLMnN9bYcw.base = 0;
NTI_A9cRoiotm9actU8lLMnN9bYcw.flags = 2;
T_4SoG2KRQy3oMm9aUzSLtGrA_20[0] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[64];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[64].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[64].offset = offsetof(TY_A9cRoiotm9actU8lLMnN9bYcw, Field0);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[64].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[64].name = "Field0";
T_4SoG2KRQy3oMm9aUzSLtGrA_20[1] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[65];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[65].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[65].offset = offsetof(TY_A9cRoiotm9actU8lLMnN9bYcw, Field1);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[65].typ = (&NTI_G9ccBDFWfr9aYnLgXTNGDHDg);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[65].name = "Field1";
T_4SoG2KRQy3oMm9aUzSLtGrA_20[2] = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[66];
T_4SoG2KRQy3oMm9aUzSLtGrA_0[66].kind = 1;
T_4SoG2KRQy3oMm9aUzSLtGrA_0[66].offset = offsetof(TY_A9cRoiotm9actU8lLMnN9bYcw, Field2);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[66].typ = (&NTI_5PunAJrNQYcB8dF0jau3pQ);
T_4SoG2KRQy3oMm9aUzSLtGrA_0[66].name = "Field2";
T_4SoG2KRQy3oMm9aUzSLtGrA_0[63].len = 3; T_4SoG2KRQy3oMm9aUzSLtGrA_0[63].kind = 2; T_4SoG2KRQy3oMm9aUzSLtGrA_0[63].sons = &T_4SoG2KRQy3oMm9aUzSLtGrA_20[0];
NTI_A9cRoiotm9actU8lLMnN9bYcw.node = &T_4SoG2KRQy3oMm9aUzSLtGrA_0[63];
NTI_wAC0kXbVGkLoWP8vdi0sUw.size = sizeof(TY_wAC0kXbVGkLoWP8vdi0sUw*);
NTI_wAC0kXbVGkLoWP8vdi0sUw.kind = 24;
NTI_wAC0kXbVGkLoWP8vdi0sUw.base = (&NTI_A9cRoiotm9actU8lLMnN9bYcw);
NTI_wAC0kXbVGkLoWP8vdi0sUw.flags = 2;
NTI_wAC0kXbVGkLoWP8vdi0sUw.marker = Marker_TY_wAC0kXbVGkLoWP8vdi0sUw;
}

