/* Generated by Nim Compiler v1.6.14 */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ;
typedef struct tySequence__9chP3SzkaldXzawWQCDsqqg tySequence__9chP3SzkaldXzawWQCDsqqg;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g tyTuple__aGv2fk9ceddvdC01ZJC2Q2g;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_Table__nYXnObOHA7POR2803IXtoQ tyObject_Table__nYXnObOHA7POR2803IXtoQ;
typedef struct tySequence__7s5HyddQ0f9bxMNILHrXwJQ tySequence__7s5HyddQ0f9bxMNILHrXwJQ;
typedef struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g tyTuple__kuMQ1fbjJlHtwKTmBGAe6g;
typedef struct tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw;
typedef struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA;
typedef struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__QbmGqFaLnb1IWWToREeaIA tySequence__QbmGqFaLnb1IWWToREeaIA;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_Table__aP9cMXsPundL60Bltc8zw8Q tyObject_Table__aP9cMXsPundL60Bltc8zw8Q;
typedef struct tySequence__Ou09axLmOh3clXcvEh9agsPw tySequence__Ou09axLmOh3clXcvEh9agsPw;
typedef struct tyTuple__tqJ79cmISx6IHad2jnF54pA tyTuple__tqJ79cmISx6IHad2jnF54pA;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw;
typedef struct tyObject_Table__76RYD1bLMjqZSa5FAewcnw tyObject_Table__76RYD1bLMjqZSa5FAewcnw;
typedef struct tySequence__6j25whH7XTBoIXcM0x1T7A tySequence__6j25whH7XTBoIXcM0x1T7A;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyTuple__9cdgeqdY7FRioNKBoD6G66A tyTuple__9cdgeqdY7FRioNKBoD6G66A;
typedef struct tyObject_Table__imojfg883tkWsWJwyshGqQ tyObject_Table__imojfg883tkWsWJwyshGqQ;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg tyObject_Table__BCPh85PHtwxox9bv7NLFrlg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA;
typedef struct tySequence__KgiZ29chkJAD01p9aLRB32qw tySequence__KgiZ29chkJAD01p9aLRB32qw;
typedef struct tyTuple__J4cxakKjhKxTIJR9bojMmXw tyTuple__J4cxakKjhKxTIJR9bojMmXw;
typedef struct tySequence__i89c5kdtWKzK3OEiI81pkkw tySequence__i89c5kdtWKzK3OEiI81pkkw;
typedef struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A tyObject_Table__LM44poVdVEn4Mo4N4L8c3A;
typedef struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw tySequence__rkYRZrbHVYL3nhXlQW3K9bw;
typedef struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q;
typedef struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg tySequence__Hz5SYwQU29b9aFLt09blvVQPg;
typedef struct tyTuple__kbX6x85REySUrk9auORL0vw tyTuple__kbX6x85REySUrk9auORL0vw;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg tyObject_Table__R7JnJQEipxxOlJWXQz7jWg;
typedef struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ tySequence__3G9aA9cLXaPxuRxMKm3anacQ;
typedef struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g;
typedef struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q;
typedef struct tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A;
typedef struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ;
typedef struct tySequence__YmPd0eWfcTfrVYrthlXPYA tySequence__YmPd0eWfcTfrVYrthlXPYA;
typedef struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ;
typedef struct tySequence__C3r8jsj9chA4sIlYfDN5aDw tySequence__C3r8jsj9chA4sIlYfDN5aDw;
typedef struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg tyTuple__VUJ5Hjm4tKAResBsRHJvYg;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tySequence__dlD6tEGzYLLpKVq3XwuFlA tySequence__dlD6tEGzYLLpKVq3XwuFlA;
typedef struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tySequence__ijtae5OneaLys0hN9alAicA tySequence__ijtae5OneaLys0hN9alAicA;
typedef struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg tyTuple__UluY8x0Nj6cp9b0o88wJ0lg;
typedef struct tySequence__6OFCSvqRaxyEgUqWtnZSlw tySequence__6OFCSvqRaxyEgUqWtnZSlw;
typedef struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w;
typedef struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tySequence__SerjNoUujW2dUouVBrJiCw tySequence__SerjNoUujW2dUouVBrJiCw;
typedef struct tyTuple__rZZA0skon1OsHdiEvT8RZQ tyTuple__rZZA0skon1OsHdiEvT8RZQ;
typedef struct tySequence__m4PVWjcAAjfxlwJxLkKn8A tySequence__m4PVWjcAAjfxlwJxLkKn8A;
typedef struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg;
typedef struct tyTuple__RWXAsQlFoGYyEQZp1G65sg tyTuple__RWXAsQlFoGYyEQZp1G65sg;
typedef struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg;
typedef struct tySequence__m88qdML9cQOuqGAQn6XWL1A tySequence__m88qdML9cQOuqGAQn6XWL1A;
typedef struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA tyTuple__aWN9bNzF9bubXNJV9ciomgpfA;
typedef struct tyObject_Table__1hIWbTQWYT4BmhdESze57A tyObject_Table__1hIWbTQWYT4BmhdESze57A;
typedef struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ tySequence__naEbXEp9b9aiW1zXJorqf9cXQ;
typedef struct tyTuple__RmGJuqOgEaHckHndh0LEsw tyTuple__RmGJuqOgEaHckHndh0LEsw;
typedef struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyObject_Table__r0v8BdcBPKhl73K8p2VMUA;
typedef struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g tySequence__K9agbtcb0qPZuSJFXB9cTe6g;
typedef struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA tyTuple__q13Zt16VkCqu6Zg5jWqwHA;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg;
typedef struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_Table__cBohObSCAwRxvYFXQHv2wA tyObject_Table__cBohObSCAwRxvYFXQHv2wA;
typedef struct tySequence__QqvaCqCpEE1QmQZbcZLi5A tySequence__QqvaCqCpEE1QmQZbcZLi5A;
typedef struct tyTuple__EbsafWGli8bW2GRJQ9apsjA tyTuple__EbsafWGli8bW2GRJQ9apsjA;
typedef struct tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA;
typedef struct tySequence__wuwY3G19cIPfMd9b1mDzZsNw tySequence__wuwY3G19cIPfMd9b1mDzZsNw;
typedef struct tyTuple__NR9cgWyhzHdz1XjqYbM8wVA tyTuple__NR9cgWyhzHdz1XjqYbM8wVA;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ;
typedef struct tySequence__WcRaozAFgJ6OG8h8DH4mow tySequence__WcRaozAFgJ6OG8h8DH4mow;
typedef struct tyTuple__j27tPFjtRhFKFqO9b6UrT5g tyTuple__j27tPFjtRhFKFqO9b6UrT5g;
typedef struct tyObject_Table__yPCZeDXS6qhcVroDuwem9cg tyObject_Table__yPCZeDXS6qhcVroDuwem9cg;
typedef struct tySequence__K9b6FRiPoaNJikAsXAA9c0Jg tySequence__K9b6FRiPoaNJikAsXAA9c0Jg;
typedef struct tyTuple__KhdZ2BpxsMCOVX377s89ayg tyTuple__KhdZ2BpxsMCOVX377s89ayg;
typedef struct tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q;
typedef struct tySequence__OeT2uxU9cpZvGBACtO9b4xwQ tySequence__OeT2uxU9cpZvGBACtO9b4xwQ;
typedef struct tyTuple__usE1QHGQhF6zycm9bQm6MMA tyTuple__usE1QHGQhF6zycm9bQm6MMA;
typedef struct tySequence__k7EQb9bN3Uhl608xoPGMRJA tySequence__k7EQb9bN3Uhl608xoPGMRJA;
typedef struct tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg;
typedef struct tyTuple__toqrUPSdp8zSxOdlxMJj9cA tyTuple__toqrUPSdp8zSxOdlxMJj9cA;
typedef struct tySequence__XDpbjnuseLNZDGLBQ2Qzow tySequence__XDpbjnuseLNZDGLBQ2Qzow;
typedef struct tyTuple__VbApVidEWCFLq9a29bPtaS7A tyTuple__VbApVidEWCFLq9a29bPtaS7A;
typedef struct tyTuple__cyDO9czMbIL47POKM3sIQng tyTuple__cyDO9czMbIL47POKM3sIQng;
typedef struct tyObject_Table__rDTSDzC8VietpxpD1ELe1g tyObject_Table__rDTSDzC8VietpxpD1ELe1g;
typedef struct tySequence__dAjyAaabi52TN36Jp0fAXQ tySequence__dAjyAaabi52TN36Jp0fAXQ;
typedef struct tyTuple__X9bWVAqRSgByRpQwn6owzEA tyTuple__X9bWVAqRSgByRpQwn6owzEA;
typedef struct tyObject_Table__No9aC1Wmth1NAiZioiz5fTA tyObject_Table__No9aC1Wmth1NAiZioiz5fTA;
typedef struct tySequence__XN3007vuiFWlN1E7IEcusw tySequence__XN3007vuiFWlN1E7IEcusw;
typedef struct tyTuple__G67QVmVVaUSxoi6cjqMwfw tyTuple__G67QVmVVaUSxoi6cjqMwfw;
typedef struct tyTuple__1DF4qJDR9cG0CgZV1nlkaYw tyTuple__1DF4qJDR9cG0CgZV1nlkaYw;
typedef struct tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ;
typedef struct tySequence__ElVzGEMtCZvLUQLuuVlE5A tySequence__ElVzGEMtCZvLUQLuuVlE5A;
typedef struct tyTuple__QoInXc7L9b87jyFPG5wdUcg tyTuple__QoInXc7L9b87jyFPG5wdUcg;
typedef struct tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg;
typedef struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ tySequence__XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q;
typedef struct tySequence__jwzrUFjG9akTIJTBBFvvqxw tySequence__jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ;
typedef struct tySequence__M6nNbkJL2MtfqXbBdPxKHw tySequence__M6nNbkJL2MtfqXbBdPxKHw;
typedef struct tyTuple__eMNaK7LFFWgqXqKPoI0Pag tyTuple__eMNaK7LFFWgqXqKPoI0Pag;
typedef struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ tyTuple__Q066krdfdsSnR5DaFMOk9bQ;
typedef struct tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ;
typedef struct tySequence__VB6DBx8qy4TStAbCEq1dzg tySequence__VB6DBx8qy4TStAbCEq1dzg;
typedef struct tyTuple__dPapXWg9c4XSU1oh4xRoUfQ tyTuple__dPapXWg9c4XSU1oh4xRoUfQ;
typedef struct tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ;
typedef struct tySequence__CZrkID0OnHjQpN63AqYJwg tySequence__CZrkID0OnHjQpN63AqYJwg;
typedef struct tyTuple__CWLiqluAXi3Y4RHZUwBh9bQ tyTuple__CWLiqluAXi3Y4RHZUwBh9bQ;
typedef struct tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g;
typedef struct tySequence__qIo1GWQhO9cOgsAJDKUY8kw tySequence__qIo1GWQhO9cOgsAJDKUY8kw;
typedef struct tyTuple__Ll5iolPASSzOEheeSNjmiw tyTuple__Ll5iolPASSzOEheeSNjmiw;
typedef struct tyObject_Table__84yOtwIL9aCkCL60odYiF7g tyObject_Table__84yOtwIL9aCkCL60odYiF7g;
typedef struct tySequence__UuiPn6QjIiUTdSVwX2PZ6w tySequence__UuiPn6QjIiUTdSVwX2PZ6w;
typedef struct tyTuple__9a3DhYVfcy14Fx42tD0lSEQ tyTuple__9a3DhYVfcy14Fx42tD0lSEQ;
typedef struct tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw;
typedef struct tySequence__RKPQcDl19bqs7bJVDyxdQYg tySequence__RKPQcDl19bqs7bJVDyxdQYg;
typedef struct tyTuple__qrCj5BRLChMPPtE8mZNTMw tyTuple__qrCj5BRLChMPPtE8mZNTMw;
typedef struct tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw;
typedef struct tySequence__spLz9azjOgbpYKrtmm9aMHEw tySequence__spLz9azjOgbpYKrtmm9aMHEw;
typedef struct tyObject_Table__IzudB87pHlXWFsowpECF3Q tyObject_Table__IzudB87pHlXWFsowpECF3Q;
typedef struct tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q;
typedef struct tySequence__eo8AEcZEcjOKWtrX6vLg3Q tySequence__eo8AEcZEcjOKWtrX6vLg3Q;
typedef struct tyTuple__2nwM9b3fWcA0dvFwaUqLcQg tyTuple__2nwM9b3fWcA0dvFwaUqLcQg;
typedef struct tyObject_Table__IARuioJxsgUIwpXiUkOgKg tyObject_Table__IARuioJxsgUIwpXiUkOgKg;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ tySequence__SFipDZIkFtPcrLs0AGBBjQ;
typedef struct tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw;
typedef struct tySequence__mQGg5S79bnlEvqSZ53aiYNQ tySequence__mQGg5S79bnlEvqSZ53aiYNQ;
typedef struct tyTuple__0bWXDvqglYSS6aTKl80IVQ tyTuple__0bWXDvqglYSS6aTKl80IVQ;
typedef struct tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA;
typedef struct tySequence__hf5PiuqqytWiEcddgIR5sQ tySequence__hf5PiuqqytWiEcddgIR5sQ;
typedef struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA;
typedef struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg tyTuple__8ZxhPt1NwfElsJs8zUSV9bg;
struct tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ {
tySequence__9chP3SzkaldXzawWQCDsqqg* data;
NI counter;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g {
NI Field0;
void* Field1;
NI Field2;
};
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table__nYXnObOHA7POR2803IXtoQ {
tySequence__7s5HyddQ0f9bxMNILHrXwJQ* data;
NI counter;
};
struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g {
NI Field0;
NI Field1;
NimStringDesc* Field2;
};
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__QbmGqFaLnb1IWWToREeaIA* trace;
Exception* up;
};
struct tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ {
  Exception Sup;
};
struct tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA {
  tyObject_CatchableError__8K3kdpxrBD9aI27J0kpSCpQ Sup;
};
struct tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw {
  tyObject_ValueError__5lcTdgqMq62cNGRwBb0thA Sup;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_Table__aP9cMXsPundL60Bltc8zw8Q {
tySequence__Ou09axLmOh3clXcvEh9agsPw* data;
NI counter;
};
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw {
NF time;
NI count;
};
struct tyTuple__tqJ79cmISx6IHad2jnF54pA {
NI Field0;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field1;
tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw Field2;
};
struct tyObject_Table__76RYD1bLMjqZSa5FAewcnw {
tySequence__6j25whH7XTBoIXcM0x1T7A* data;
NI counter;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct tyTuple__9cdgeqdY7FRioNKBoD6G66A {
NI Field0;
NimStringDesc* Field1;
tyTuple__UV3llMMYFckfui8YMBuUZA Field2;
};
struct tyObject_Table__imojfg883tkWsWJwyshGqQ {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA {
tySequence__KgiZ29chkJAD01p9aLRB32qw* data;
NI counter;
};
struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
};
struct tyTuple__J4cxakKjhKxTIJR9bojMmXw {
NI Field0;
NI32 Field1;
tySequence__i89c5kdtWKzK3OEiI81pkkw* Field2;
};
struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A {
tySequence__rkYRZrbHVYL3nhXlQW3K9bw* data;
NI counter;
};
struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ {
NI Field0;
NI32 Field1;
tySequence__GR8qmV1kNRcoQ2g76VFy3A* Field2;
};
struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q {
tySequence__Hz5SYwQU29b9aFLt09blvVQPg* data;
NI counter;
};
struct tyTuple__kbX6x85REySUrk9auORL0vw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg {
tySequence__3G9aA9cLXaPxuRxMKm3anacQ* data;
NI counter;
};
struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q {
tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A* root;
NI entries;
};
struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q Field2;
};
struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ {
tySequence__YmPd0eWfcTfrVYrthlXPYA* data;
NI counter;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ {
tySequence__C3r8jsj9chA4sIlYfDN5aDw* data;
NI counter;
};
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 module;
NI32 item;
};
struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg {
NI Field0;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* Field1;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* Field2;
};
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg {
NI module;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ packed_0;
};
struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
};
struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA {
tySequence__ijtae5OneaLys0hN9alAicA* data;
NI counter;
};
struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__dlD6tEGzYLLpKVq3XwuFlA* Field2;
};
struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q {
NI module;
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg sym;
tySequence__UnGSk9aaLosDroi2QDrlOfQ* concreteTypes;
tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
};
struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w {
tySequence__SerjNoUujW2dUouVBrJiCw* data;
NI counter;
};
struct tyTuple__rZZA0skon1OsHdiEvT8RZQ {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__6OFCSvqRaxyEgUqWtnZSlw* Field2;
};
struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
};
struct tyTuple__RWXAsQlFoGYyEQZp1G65sg {
NI Field0;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field1;
};
struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg {
tySequence__m88qdML9cQOuqGAQn6XWL1A* data;
NI counter;
};
struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__m4PVWjcAAjfxlwJxLkKn8A* Field2;
};
struct tyObject_Table__1hIWbTQWYT4BmhdESze57A {
tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* data;
NI counter;
};
struct tyTuple__RmGJuqOgEaHckHndh0LEsw {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field2;
};
struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA {
tySequence__K9agbtcb0qPZuSJFXB9cTe6g* data;
NI counter;
};
struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA {
  RootObj Sup;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg itemId;
};
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU8 tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw;
typedef NU8 tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw {
tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw k;
tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ storage;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lode;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* r;
};
struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
union{
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* gcUnsafetyReason;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* transformedBody;
} _kind_1;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* annex;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
};
struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
struct tyObject_Table__cBohObSCAwRxvYFXQHv2wA {
tySequence__QqvaCqCpEE1QmQZbcZLi5A* data;
NI counter;
};
struct tyTuple__EbsafWGli8bW2GRJQ9apsjA {
NI Field0;
NI Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA {
tySequence__wuwY3G19cIPfMd9b1mDzZsNw* data;
NI counter;
};
struct tyTuple__NR9cgWyhzHdz1XjqYbM8wVA {
NI Field0;
NI Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeInst;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg uniqueId;
};
struct tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ {
tySequence__WcRaozAFgJ6OG8h8DH4mow* data;
NI counter;
};
struct tyTuple__j27tPFjtRhFKFqO9b6UrT5g {
NI Field0;
NI Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyObject_Table__yPCZeDXS6qhcVroDuwem9cg {
tySequence__K9b6FRiPoaNJikAsXAA9c0Jg* data;
NI counter;
};
struct tyTuple__KhdZ2BpxsMCOVX377s89ayg {
NI Field0;
NI Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q {
tySequence__OeT2uxU9cpZvGBACtO9b4xwQ* data;
NI counter;
};
struct tyTuple__usE1QHGQhF6zycm9bQm6MMA {
NI Field0;
NI64 Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyTuple__toqrUPSdp8zSxOdlxMJj9cA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
struct tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg {
tySequence__XDpbjnuseLNZDGLBQ2Qzow* data;
NI counter;
};
struct tyTuple__VbApVidEWCFLq9a29bPtaS7A {
NI Field0;
NI Field1;
tySequence__k7EQb9bN3Uhl608xoPGMRJA* Field2;
};
struct tyObject_Table__rDTSDzC8VietpxpD1ELe1g {
tySequence__dAjyAaabi52TN36Jp0fAXQ* data;
NI counter;
};
struct tyTuple__X9bWVAqRSgByRpQwn6owzEA {
NI Field0;
NI Field1;
NI16 Field2;
};
struct tyTuple__cyDO9czMbIL47POKM3sIQng {
NI Field0;
NI16 Field1;
};
struct tyObject_Table__No9aC1Wmth1NAiZioiz5fTA {
tySequence__XN3007vuiFWlN1E7IEcusw* data;
NI counter;
};
struct tyTuple__1DF4qJDR9cG0CgZV1nlkaYw {
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* Field0;
NI32 Field1;
};
struct tyTuple__G67QVmVVaUSxoi6cjqMwfw {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple__1DF4qJDR9cG0CgZV1nlkaYw Field2;
};
struct tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ {
tySequence__ElVzGEMtCZvLUQLuuVlE5A* data;
NI counter;
};
struct tyTuple__QoInXc7L9b87jyFPG5wdUcg {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* Field2;
};
struct tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg {
tySequence__XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q {
tySequence__jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ {
tySequence__M6nNbkJL2MtfqXbBdPxKHw* data;
NI counter;
};
struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
typedef NU8 tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w;
struct tyTuple__eMNaK7LFFWgqXqKPoI0Pag {
NI Field0;
tyTuple__Q066krdfdsSnR5DaFMOk9bQ Field1;
tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w Field2;
};
struct tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ {
tySequence__VB6DBx8qy4TStAbCEq1dzg* data;
NI counter;
};
struct tyTuple__dPapXWg9c4XSU1oh4xRoUfQ {
NI Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ {
  RootObj Sup;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* left;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* right;
NI L;
NimStringDesc* data;
};
struct tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ {
tySequence__CZrkID0OnHjQpN63AqYJwg* data;
NI counter;
NI first;
NI last;
};
struct tyTuple__CWLiqluAXi3Y4RHZUwBh9bQ {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* Field3;
};
typedef NU8 tyEnum_JsonNodeKind__SME9c3kTLtQAHAI8HiX0v8A;
struct tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g {
NIM_BOOL isUnquoted;
tyEnum_JsonNodeKind__SME9c3kTLtQAHAI8HiX0v8A kind;
union{
struct {NimStringDesc* str;
} _kind_1;
struct {NI64 num;
} _kind_2;
struct {NF fnum;
} _kind_3;
struct {NIM_BOOL bval;
} _kind_4;
struct {tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ fields;
} _kind_6;
struct {tySequence__qIo1GWQhO9cOgsAJDKUY8kw* elems;
} _kind_7;
};
};
struct tyObject_Table__84yOtwIL9aCkCL60odYiF7g {
tySequence__UuiPn6QjIiUTdSVwX2PZ6w* data;
NI counter;
};
struct tyTuple__Ll5iolPASSzOEheeSNjmiw {
NI Field0;
NI32 Field1;
};
struct tyTuple__9a3DhYVfcy14Fx42tD0lSEQ {
NI Field0;
NimStringDesc* Field1;
tyTuple__Ll5iolPASSzOEheeSNjmiw Field2;
};
struct tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ {
tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw {
tySequence__RKPQcDl19bqs7bJVDyxdQYg* data;
NI counter;
NI first;
NI last;
};
struct tyTuple__qrCj5BRLChMPPtE8mZNTMw {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw* Field3;
};
struct tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw {
NimStringDesc* rdoccmd;
NimStringDesc* docCmd;
NimStringDesc* code;
NI index;
};
struct tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q {
NimStringDesc* content;
NimStringDesc* sortName;
};
struct tyObject_Table__IzudB87pHlXWFsowpECF3Q {
tySequence__eo8AEcZEcjOKWtrX6vLg3Q* data;
NI counter;
};
struct tyTuple__2nwM9b3fWcA0dvFwaUqLcQg {
NI Field0;
NimStringDesc* Field1;
tySequence__spLz9azjOgbpYKrtmm9aMHEw* Field2;
};
struct tyObject_Table__IARuioJxsgUIwpXiUkOgKg {
tySequence__SFipDZIkFtPcrLs0AGBBjQ* data;
NI counter;
};
struct tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw {
tySequence__mQGg5S79bnlEvqSZ53aiYNQ* data;
NI counter;
};
struct tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tyTuple__0bWXDvqglYSS6aTKl80IVQ {
NI Field0;
tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA Field1;
tySequence__hf5PiuqqytWiEcddgIR5sQ* Field2;
};
struct tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg {
NI Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct tySequence__9chP3SzkaldXzawWQCDsqqg {
  TGenericSeq Sup;
  tyTuple__aGv2fk9ceddvdC01ZJC2Q2g data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__Ou09axLmOh3clXcvEh9agsPw {
  TGenericSeq Sup;
  tyTuple__tqJ79cmISx6IHad2jnF54pA data[SEQ_DECL_SIZE];
};
struct tySequence__6j25whH7XTBoIXcM0x1T7A {
  TGenericSeq Sup;
  tyTuple__9cdgeqdY7FRioNKBoD6G66A data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__i89c5kdtWKzK3OEiI81pkkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A data[SEQ_DECL_SIZE];
};
struct tySequence__KgiZ29chkJAD01p9aLRB32qw {
  TGenericSeq Sup;
  tyTuple__J4cxakKjhKxTIJR9bojMmXw data[SEQ_DECL_SIZE];
};
struct tySequence__GR8qmV1kNRcoQ2g76VFy3A {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* data[SEQ_DECL_SIZE];
};
struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw {
  TGenericSeq Sup;
  tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ data[SEQ_DECL_SIZE];
};
struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg {
  TGenericSeq Sup;
  tyTuple__kbX6x85REySUrk9auORL0vw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ {
  TGenericSeq Sup;
  tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g data[SEQ_DECL_SIZE];
};
struct tySequence__YmPd0eWfcTfrVYrthlXPYA {
  TGenericSeq Sup;
  tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__7s5HyddQ0f9bxMNILHrXwJQ {
  TGenericSeq Sup;
  tyTuple__kuMQ1fbjJlHtwKTmBGAe6g data[SEQ_DECL_SIZE];
};
struct tySequence__lo3S1lKyiPLhGGB9cBawd6A {
  TGenericSeq Sup;
  tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ data[SEQ_DECL_SIZE];
};
struct tySequence__C3r8jsj9chA4sIlYfDN5aDw {
  TGenericSeq Sup;
  tyTuple__VUJ5Hjm4tKAResBsRHJvYg data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__dlD6tEGzYLLpKVq3XwuFlA {
  TGenericSeq Sup;
  tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ data[SEQ_DECL_SIZE];
};
struct tySequence__ijtae5OneaLys0hN9alAicA {
  TGenericSeq Sup;
  tyTuple__UluY8x0Nj6cp9b0o88wJ0lg data[SEQ_DECL_SIZE];
};
struct tySequence__6OFCSvqRaxyEgUqWtnZSlw {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q data[SEQ_DECL_SIZE];
};
struct tySequence__SerjNoUujW2dUouVBrJiCw {
  TGenericSeq Sup;
  tyTuple__rZZA0skon1OsHdiEvT8RZQ data[SEQ_DECL_SIZE];
};
struct tySequence__m4PVWjcAAjfxlwJxLkKn8A {
  TGenericSeq Sup;
  tyTuple__RWXAsQlFoGYyEQZp1G65sg data[SEQ_DECL_SIZE];
};
struct tySequence__m88qdML9cQOuqGAQn6XWL1A {
  TGenericSeq Sup;
  tyTuple__aWN9bNzF9bubXNJV9ciomgpfA data[SEQ_DECL_SIZE];
};
struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ {
  TGenericSeq Sup;
  tyTuple__RmGJuqOgEaHckHndh0LEsw data[SEQ_DECL_SIZE];
};
struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g {
  TGenericSeq Sup;
  tyTuple__q13Zt16VkCqu6Zg5jWqwHA data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  TGenericSeq Sup;
  tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
};
struct tySequence__wuwY3G19cIPfMd9b1mDzZsNw {
  TGenericSeq Sup;
  tyTuple__NR9cgWyhzHdz1XjqYbM8wVA data[SEQ_DECL_SIZE];
};
struct tySequence__WcRaozAFgJ6OG8h8DH4mow {
  TGenericSeq Sup;
  tyTuple__j27tPFjtRhFKFqO9b6UrT5g data[SEQ_DECL_SIZE];
};
struct tySequence__K9b6FRiPoaNJikAsXAA9c0Jg {
  TGenericSeq Sup;
  tyTuple__KhdZ2BpxsMCOVX377s89ayg data[SEQ_DECL_SIZE];
};
struct tySequence__OeT2uxU9cpZvGBACtO9b4xwQ {
  TGenericSeq Sup;
  tyTuple__usE1QHGQhF6zycm9bQm6MMA data[SEQ_DECL_SIZE];
};
struct tySequence__k7EQb9bN3Uhl608xoPGMRJA {
  TGenericSeq Sup;
  tyTuple__toqrUPSdp8zSxOdlxMJj9cA data[SEQ_DECL_SIZE];
};
struct tySequence__XDpbjnuseLNZDGLBQ2Qzow {
  TGenericSeq Sup;
  tyTuple__VbApVidEWCFLq9a29bPtaS7A data[SEQ_DECL_SIZE];
};
struct tySequence__dAjyAaabi52TN36Jp0fAXQ {
  TGenericSeq Sup;
  tyTuple__X9bWVAqRSgByRpQwn6owzEA data[SEQ_DECL_SIZE];
};
struct tySequence__QqvaCqCpEE1QmQZbcZLi5A {
  TGenericSeq Sup;
  tyTuple__EbsafWGli8bW2GRJQ9apsjA data[SEQ_DECL_SIZE];
};
struct tySequence__XN3007vuiFWlN1E7IEcusw {
  TGenericSeq Sup;
  tyTuple__G67QVmVVaUSxoi6cjqMwfw data[SEQ_DECL_SIZE];
};
struct tySequence__ElVzGEMtCZvLUQLuuVlE5A {
  TGenericSeq Sup;
  tyTuple__QoInXc7L9b87jyFPG5wdUcg data[SEQ_DECL_SIZE];
};
struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence__jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple__XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence__M6nNbkJL2MtfqXbBdPxKHw {
  TGenericSeq Sup;
  tyTuple__eMNaK7LFFWgqXqKPoI0Pag data[SEQ_DECL_SIZE];
};
struct tySequence__VB6DBx8qy4TStAbCEq1dzg {
  TGenericSeq Sup;
  tyTuple__dPapXWg9c4XSU1oh4xRoUfQ data[SEQ_DECL_SIZE];
};
struct tySequence__CZrkID0OnHjQpN63AqYJwg {
  TGenericSeq Sup;
  tyTuple__CWLiqluAXi3Y4RHZUwBh9bQ data[SEQ_DECL_SIZE];
};
struct tySequence__UuiPn6QjIiUTdSVwX2PZ6w {
  TGenericSeq Sup;
  tyTuple__9a3DhYVfcy14Fx42tD0lSEQ data[SEQ_DECL_SIZE];
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct tySequence__RKPQcDl19bqs7bJVDyxdQYg {
  TGenericSeq Sup;
  tyTuple__qrCj5BRLChMPPtE8mZNTMw data[SEQ_DECL_SIZE];
};
struct tySequence__spLz9azjOgbpYKrtmm9aMHEw {
  TGenericSeq Sup;
  tyObject_TocItem__f5Z7HAch49an2qSNSGguP7Q data[SEQ_DECL_SIZE];
};
struct tySequence__eo8AEcZEcjOKWtrX6vLg3Q {
  TGenericSeq Sup;
  tyTuple__2nwM9b3fWcA0dvFwaUqLcQg data[SEQ_DECL_SIZE];
};
struct tySequence__hf5PiuqqytWiEcddgIR5sQ {
  TGenericSeq Sup;
  tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA data[SEQ_DECL_SIZE];
};
struct tySequence__mQGg5S79bnlEvqSZ53aiYNQ {
  TGenericSeq Sup;
  tyTuple__0bWXDvqglYSS6aTKl80IVQ data[SEQ_DECL_SIZE];
};
struct tySequence__QbmGqFaLnb1IWWToREeaIA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__3r2E7OgmrW3VdUTaooCuyA data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__qIo1GWQhO9cOgsAJDKUY8kw {
  TGenericSeq Sup;
  tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* data[SEQ_DECL_SIZE];
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ {
  TGenericSeq Sup;
  tyTuple__8ZxhPt1NwfElsJs8zUSV9bg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_177)(NI x);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_INLINE(NI, rawGet__astalgo_1188)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t, void* key, NI* hc);
static N_INLINE(NI, hash__pureZhashes_124)(void* x);
static N_INLINE(NI, hash__pureZhashes_128)(NI x);
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x);
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash);
static N_INLINE(NIM_BOOL, mustRehash__astalgo_1695)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__astalgo_1848)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__astalgo_2152)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__astalgo_2321)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t, void* key, NI hc);
static N_INLINE(NI, rawGet__ast_1065)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t, NI key, NI* hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__ast_1361)(NI key) __attribute__((noreturn));
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
static N_INLINE(NI, rawGet__lineinfos_452)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_291)(NimStringDesc* x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
static N_INLINE(NIM_BOOL, mustRehash__lineinfos_788)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lineinfos_941)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lineinfos_1245)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(NI, rawGetKnownHC__lineinfos_1414)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, initTable__options_649)(NI initialSize, tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* Result);
static N_INLINE(NI, rawGet__nimblecmd_290)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NIM_BOOL, mustRehash__nimblecmd_849)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nimblecmd_1002)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nimblecmd_1306)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw* t, tySequence__6j25whH7XTBoIXcM0x1T7A** data, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val, NI hc, NI h);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(NI, rawGetKnownHC__nimblecmd_1475)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__msgs_300)(NimStringDesc* key) __attribute__((noreturn));
static N_INLINE(NIM_BOOL, mustRehash__ast_1586)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__ast_1739)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__ast_2043)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t, tySequence__7s5HyddQ0f9bxMNILHrXwJQ** data, NI key, NimStringDesc* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__ast_2212)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t, NI key, NI hc);
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZtables_28)(NI hcode);
static N_INLINE(NI, rawGet__modulegraphs_9716)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t, NI32 key, NI* hc);
static N_INLINE(NI, hash__ast_784)(NI32 x);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_10023)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_10212)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_10524)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_10693)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t, NI32 key, NI hc);
static N_INLINE(NI, rawGet__icZic_6479)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, NI* hc);
static N_INLINE(NI, hash__idents_226)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* x);
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* b);
static N_INLINE(NIM_BOOL, mustRehash__icZic_6778)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_6937)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_7263)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* t, tySequence__C3r8jsj9chA4sIlYfDN5aDw** data, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, tySequence__lo3S1lKyiPLhGGB9cBawd6A* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(NI, rawGetKnownHC__icZic_7444)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, NI hc);
static N_INLINE(NI, rawGet__icZic_601)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t, NI32 key, NI* hc);
static N_INLINE(NI, hash__icZic_608)(NI32 x);
static N_INLINE(NIM_BOOL, mustRehash__icZic_1250)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1409)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_1727)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ* t, tySequence__9cnx3zXnWzeclW8Ko4oUgAQ** data, NI32 key, NU32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__icZic_1908)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t, NI32 key, NI hc);
static N_INLINE(NI, rawGet__vm_4299)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_4929)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_5118)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_5430)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_5599)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_8147)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key);
static N_INLINE(NI, rawGet__vm_8154)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_8659)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_8848)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_9164)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t, tySequence__3G9aA9cLXaPxuRxMKm3anacQ** data, NimStringDesc* key, tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_9333)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_5921)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key);
static N_INLINE(NI, rawGet__vm_5928)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_6407)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_6596)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_6908)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t, tySequence__Hz5SYwQU29b9aFLt09blvVQPg** data, NimStringDesc* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_7077)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_3046)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__ast_781)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg x);
static N_INLINE(NIM_BOOL, eqeq___ast_777)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg a, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg b);
static N_INLINE(NIM_BOOL, mustRehash__semdata_2601)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_2787)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_3118)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t, tySequence__ijtae5OneaLys0hN9alAicA** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__dlD6tEGzYLLpKVq3XwuFlA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__semdata_3299)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_3619)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__semdata_1392)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_1578)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_1909)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t, tySequence__SerjNoUujW2dUouVBrJiCw** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__6OFCSvqRaxyEgUqWtnZSlw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__semdata_2090)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_7307)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_7908)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_8097)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_8413)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t, tySequence__m88qdML9cQOuqGAQn6XWL1A** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__m4PVWjcAAjfxlwJxLkKn8A* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_8582)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_5750)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_6314)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_6503)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_6819)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t, tySequence__naEbXEp9b9aiW1zXJorqf9cXQ** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_6988)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_4141)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_4688)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_4877)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_5197)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t, tySequence__K9agbtcb0qPZuSJFXB9cTe6g** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_5366)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_11350)(tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA t, NI32 key, NI* hc);
static N_INLINE(NI, rawGet__modulegraphs_12149)(tyObject_Table__LM44poVdVEn4Mo4N4L8c3A t, NI32 key, NI* hc);
static N_INLINE(NI, rawGet__cgen_27608)(tyObject_Table__imojfg883tkWsWJwyshGqQ t, NI32 key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modules_249)(tyObject_Table__imojfg883tkWsWJwyshGqQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modules_402)(tyObject_Table__imojfg883tkWsWJwyshGqQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modules_706)(tyObject_Table__imojfg883tkWsWJwyshGqQ* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modules_875)(tyObject_Table__imojfg883tkWsWJwyshGqQ t, NI32 key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3039)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__modulegraphs_3416)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___modulegraphs_3455)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_7300)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key);
static N_INLINE(NI, rawGet__lookups_1108)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key, NI* hc);
static N_INLINE(NI, rawGet__lookups_2778)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t, NI key, NI* hc);
static N_INLINE(NI, rawGet__sighashes_633)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__sighashes_1147)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_1300)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sighashes_1604)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__sighashes_1773)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t, NI key, NI hc);
static N_INLINE(NIM_BOOL, mustRehash__importer_2464)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_2650)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_2977)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t, tySequence__E8pi9b5QNahsURYzXMjh3qw** data, NI key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__importer_3158)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key, NI hc);
static N_INLINE(NI, rawGet__lambdalifting_545)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_1060)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_1213)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_1513)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* t, tySequence__wuwY3G19cIPfMd9b1mDzZsNw** data, NI key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__lambdalifting_1682)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t, NI key, NI hc);
static N_INLINE(NI, rawGet__lambdalifting_2353)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_2971)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_3124)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_3428)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t, tySequence__WcRaozAFgJ6OG8h8DH4mow** data, NI key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__lambdalifting_3597)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key, NI hc);
static N_INLINE(NI, rawGet__liftdestructors_986)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__modulegraphs_9001)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___modulegraphs_8997)(tyArray__qtqsWM5aXmcpMIVmvq3kAA a, tyArray__qtqsWM5aXmcpMIVmvq3kAA b);
static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2435)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2588)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2892)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* t, tySequence__YmPd0eWfcTfrVYrthlXPYA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__liftdestructors_3061)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_INLINE(NI, rawGet__closureiters_1926)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__closureiters_2477)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2630)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2930)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t, tySequence__K9b6FRiPoaNJikAsXAA9c0Jg** data, NI key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__closureiters_3099)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key, NI hc);
static N_INLINE(NI, rawGet__vmmarshal_455)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t, NI64 key, NI* hc);
static N_INLINE(NI, hash__pureZjson_2974)(NI64 x);
static N_INLINE(NIM_BOOL, mustRehash__vmmarshal_975)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vmmarshal_1128)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vmmarshal_1432)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* t, tySequence__OeT2uxU9cpZvGBACtO9b4xwQ** data, NI64 key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vmmarshal_1601)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t, NI64 key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_118)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_217)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key);
static N_INLINE(NI, rawGet__options_873)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lineinfos_233)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___options_1113)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw x, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw y);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___options_801)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw val);
static N_INLINE(NIM_BOOL, mustRehash__options_1257)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_1443)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_1787)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tySequence__Ou09axLmOh3clXcvEh9agsPw** data, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__options_1968)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, NI hc);
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw*, X5BX5D___vmprofiler_540)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__vmprofiler_607)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3612)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key);
static N_INLINE(NI, rawGet__sempass50_491)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__sempass50_1168)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sempass50_1321)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sempass50_1625)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t, tySequence__XDpbjnuseLNZDGLBQ2Qzow** data, NI key, tySequence__k7EQb9bN3Uhl608xoPGMRJA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__sempass50_1794)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t, NI key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, initTable__nilcheck_8823)(NI initialSize, tyObject_Table__rDTSDzC8VietpxpD1ELe1g* Result);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nilcheck_7191)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t, NI key, NI16 val);
static N_INLINE(NI, rawGet__nilcheck_2001)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key, NI* hc);
static N_INLINE(NI, hash__nilcheck_2008)(NI x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___nilcheck_1940)(NI a, NI b);
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_7390)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_7576)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_7911)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t, tySequence__dAjyAaabi52TN36Jp0fAXQ** data, NI key, NI16 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__nilcheck_8092)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__nilcheck_2402)(NI key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___nilcheck_1944)(NI a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nilcheck_1994)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key);
static N_INLINE(NIM_BOOL, mustRehash__importer_3591)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_3777)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_4108)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA* t, tySequence__QqvaCqCpEE1QmQZbcZLi5A** data, NI key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__importer_4289)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t, NI key, NI hc);
static N_INLINE(NI, rawGet__injectdestructors_181)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_188)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___injectdestructors_430)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ x, tyTuple__Q066krdfdsSnR5DaFMOk9bQ y);
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_708)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_894)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_1229)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tySequence__M6nNbkJL2MtfqXbBdPxKHw** data, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__injectdestructors_1410)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__injectdestructors_1802)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___injectdestructors_1854)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ x);
static N_INLINE(NI, rawGet__injectdestructors_4324)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_118)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_4654)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_4840)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_5167)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t, tySequence__VB6DBx8qy4TStAbCEq1dzg** data, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__injectdestructors_5348)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__sighashes_2181)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
static N_INLINE(NIM_BOOL, mustRehash__sighashes_2312)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_2348)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__sighashes_2383)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val);
static N_INLINE(NI, rawGet__cgen_1459)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__cgen_2094)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_2280)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_2611)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t, tySequence__ElVzGEMtCZvLUQLuuVlE5A** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__cgen_2792)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__cgen_3329)(tyArray__qtqsWM5aXmcpMIVmvq3kAA key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___modulegraphs_8985)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__cgen_851)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t, NimStringDesc* key);
static N_INLINE(NIM_BOOL, mustRehash__cgen_1020)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_1056)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__cgen_1091)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val);
static N_INLINE(NI, rawGet__cgen_8125)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__cgen_8789)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_8975)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_9306)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* t, tySequence__XN3007vuiFWlN1E7IEcusw** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__1DF4qJDR9cG0CgZV1nlkaYw val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__cgen_9487)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__pureZjson_375)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet__pureZjson_2664)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__pureZjson_711)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__pureZjson_872)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__pureZjson_1283)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, tySequence__CZrkID0OnHjQpN63AqYJwg** data, NimStringDesc* key, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__pureZjson_1565)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__icZdce_216)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__icZdce_581)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZdce_740)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZdce_1071)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t, tySequence__UuiPn6QjIiUTdSVwX2PZ6w** data, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__icZdce_1252)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrst_609)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrst_1125)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrst_1278)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrst_1582)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrst_1751)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__docgen_1176)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__docgen_1191)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__docgen_1699)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_1860)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_2271)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, tySequence__RKPQcDl19bqs7bJVDyxdQYg** data, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__docgen_2553)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__docgen_2857)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet__docgen_3656)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__docgen_3948)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_4101)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_4405)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t, tySequence__eo8AEcZEcjOKWtrX6vLg3Q** data, NimStringDesc* key, tySequence__spLz9azjOgbpYKrtmm9aMHEw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__docgen_4574)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_426)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_1004)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_1157)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_1457)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_1626)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_6273)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__packagesZdocutilsZrstgen_1999)(tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___packagesZdocutilsZrstgen_6491)(tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* x, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* y);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_7062)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_7215)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_7523)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* t, tySequence__mQGg5S79bnlEvqSZ53aiYNQ** data, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, tySequence__hf5PiuqqytWiEcddgIR5sQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_7692)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1131)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key);
extern TNimType NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_;
extern TNimType NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_;
extern TNimType NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_;
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_2, "key not found: ", 15);
extern TNimType NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_;
extern TNimType NTItableref__vKCGqnu0UyqZI18SWjvLlg_;
extern TNimType NTIkeyvaluepairseq__Ou09axLmOh3clXcvEh9agsPw_;
extern TNimType NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_;
extern TNimType NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_;
extern TNimType NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_;
extern TNimType NTIkeyvaluepairseq__KgiZ29chkJAD01p9aLRB32qw_;
extern TNimType NTIkeyvaluepairseq__rkYRZrbHVYL3nhXlQW3K9bw_;
extern TNimType NTIkeyvaluepairseq__Hz5SYwQU29b9aFLt09blvVQPg_;
extern TNimType NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_;
extern TNimType NTIkeyvaluepairseq__3G9aA9cLXaPxuRxMKm3anacQ_;
extern TNimType NTIkeyvaluepairseq__YmPd0eWfcTfrVYrthlXPYA_;
extern TNimType NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_;
extern TNimType NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_;
extern TNimType NTIkeyvaluepairseq__C3r8jsj9chA4sIlYfDN5aDw_;
extern TNimType NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_;
extern TNimType NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_;
extern TNimType NTIkeyvaluepairseq__ijtae5OneaLys0hN9alAicA_;
extern TNimType NTIseqLlazytypeT__dlD6tEGzYLLpKVq3XwuFlA_;
extern TNimType NTIkeyvaluepairseq__SerjNoUujW2dUouVBrJiCw_;
extern TNimType NTIseqLlazyinstantiationT__6OFCSvqRaxyEgUqWtnZSlw_;
extern TNimType NTIkeyvaluepairseq__m88qdML9cQOuqGAQn6XWL1A_;
extern TNimType NTIseqLLint_lazysymTT__m4PVWjcAAjfxlwJxLkKn8A_;
extern TNimType NTIkeyvaluepairseq__naEbXEp9b9aiW1zXJorqf9cXQ_;
extern TNimType NTIkeyvaluepairseq__K9agbtcb0qPZuSJFXB9cTe6g_;
extern TNimType NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_;
extern TNimType NTIkeyvaluepairseq__wuwY3G19cIPfMd9b1mDzZsNw_;
extern TNimType NTIkeyvaluepairseq__WcRaozAFgJ6OG8h8DH4mow_;
extern TNimType NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_;
extern TNimType NTIkeyvaluepairseq__OeT2uxU9cpZvGBACtO9b4xwQ_;
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_3, "key not found", 13);
extern TNimType NTIkeyvaluepairseq__XDpbjnuseLNZDGLBQ2Qzow_;
extern TNimType NTIseqLLtlineinfo_psymTT__k7EQb9bN3Uhl608xoPGMRJA_;
extern TNimType NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_;
extern TNimType NTIkeyvaluepairseq__QqvaCqCpEE1QmQZbcZLi5A_;
extern TNimType NTIkeyvaluepairseq__XN3007vuiFWlN1E7IEcusw_;
extern TNimType NTIkeyvaluepairseq__ElVzGEMtCZvLUQLuuVlE5A_;
extern TNimType NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_;
extern TNimType NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_;
extern TNimType NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_;
extern TNimType NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_;
extern TNimType NTIorderedkeyvaluepairseq__CZrkID0OnHjQpN63AqYJwg_;
extern TNimType NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_;
extern TNimType NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_;
extern TNimType NTIorderedkeyvaluepairseq__RKPQcDl19bqs7bJVDyxdQYg_;
extern TNimType NTIkeyvaluepairseq__eo8AEcZEcjOKWtrX6vLg3Q_;
extern TNimType NTIseqLtocitemT__spLz9azjOgbpYKrtmm9aMHEw_;
extern TNimType NTIkeyvaluepairseq__mQGg5S79bnlEvqSZ53aiYNQ_;
extern TNimType NTIseqLindexentryT__hf5PiuqqytWiEcddgIR5sQ_;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count) {
	NI result;
	result = (NI)0;
	result = nextPowerOfTwo__pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__astalgo_3033)(NI initialSize, tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* Result) {
	NI correctSizeX60gensym137_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym137_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym137_))));
}
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b) {
	NU64 result;
	result = (NU64)0;
	__uint128_t r = a; r *= b; result = (r >> 64) ^ r;
	return result;
}
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x) {
	NI result;
	NU64 T1_;
	NU64 T2_;
	result = (NI)0;
	T1_ = (NU64)0;
	T1_ = hiXorLo__pureZhashes_79(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
	T2_ = (NU64)0;
	T2_ = hiXorLo__pureZhashes_79(T1_, 16952864883938283885ULL);
	result = ((NI) (T2_));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_128)(NI x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_124)(void* x) {
	NI result;
	NI y;
	result = (NI)0;
	y = ((NI) (ptrdiff_t) (x));
	result = hash__pureZhashes_128(y);
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
	return result;
}
static N_INLINE(NI, rawGet__astalgo_1188)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t, void* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_124(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__astalgo_1178)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t, void* key, NI default_0) {
	NI result;
	NI hcX60gensym97_;
	NI indexX60gensym97_;
	result = (NI)0;
	hcX60gensym97_ = (NI)0;
	indexX60gensym97_ = rawGet__astalgo_1188(t, key, (&hcX60gensym97_));
	{
		if (!(((NI) 0) <= indexX60gensym97_)) goto LA3_;
		result = t.data->data[indexX60gensym97_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__astalgo_1695)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__astalgo_2152)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__astalgo_1848)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* t) {
	tySequence__9chP3SzkaldXzawWQCDsqqg* n;
	NI T1_;
	tySequence__9chP3SzkaldXzawWQCDsqqg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					void* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (void*)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__astalgo_2152(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__astalgo_2321)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ t, void* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___astalgo_1522)(tyObject_Table__pUwMsMsptf9bBz9chF6dJOrQ* t, void* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym102_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym102_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym102_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__astalgo_1188((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym105_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym105_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym105_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__astalgo_1695((*t));
			if (!T18_) goto LA19_;
			enlarge__astalgo_1848(t);
			index = rawGetKnownHC__astalgo_2321((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__astalgo_2152(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__ast_1065)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__ast_1361)(NI key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___systemZdollars_3(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc**, X5BX5D___ast_1058)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t, NI key) {
	NimStringDesc** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NimStringDesc**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__ast_1065((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1361(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lineinfos_327)(NI initialSize, tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* Result) {
	NI correctSizeX60gensym2_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym2_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym2_))));
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__lineinfos_452)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lineinfos_788)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5273(p);
	decRef__system_5318(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lineinfos_1245)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lineinfos_941)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t) {
	tySequence__7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	tySequence__7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__lineinfos_1245(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lineinfos_1414)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lineinfos_391)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym5_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym5_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym5_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lineinfos_452((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym10_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym10_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym10_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lineinfos_788((*t));
			if (!T18_) goto LA19_;
			enlarge__lineinfos_941(t);
			index = rawGetKnownHC__lineinfos_1414((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lineinfos_1245(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__options_649)(NI initialSize, tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* Result) {
	NI correctSizeX60gensym16_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym16_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__Ou09axLmOh3clXcvEh9agsPw*) newSeq((&NTIkeyvaluepairseq__Ou09axLmOh3clXcvEh9agsPw_), ((NI) (correctSizeX60gensym16_))));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q*, newTable__options_615)(NI initialSize) {
	tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* result;
	result = NIM_NIL;
	result = (tyObject_Table__aP9cMXsPundL60Bltc8zw8Q*) newObj((&NTItableref__vKCGqnu0UyqZI18SWjvLlg_), sizeof(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q));
	initTable__options_649(initialSize, (&(*result)));
	return result;
}
static N_INLINE(NI, rawGet__nimblecmd_290)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__nimblecmd_281)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA* Result) {
	NI hcX60gensym14_;
	NI indexX60gensym14_;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	hcX60gensym14_ = (NI)0;
	indexX60gensym14_ = rawGet__nimblecmd_290(t, key, (&hcX60gensym14_));
	{
		if (!(((NI) 0) <= indexX60gensym14_)) goto LA3_;
		unsureAsgnRef((void**) (&(*Result).Field0), copyString(t.data->data[indexX60gensym14_].Field2.Field0));
		unsureAsgnRef((void**) (&(*Result).Field1), copyString(t.data->data[indexX60gensym14_].Field2.Field1));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nimblecmd_623)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__nimblecmd_290(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nimblecmd_849)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nimblecmd_1306)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw* t, tySequence__6j25whH7XTBoIXcM0x1T7A** data, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val, NI hc, NI h) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = NIM_NIL;
	T2_ = (*data)->data[h].Field2.Field0; (*data)->data[h].Field2.Field0 = copyStringRC1(val.Field0);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = NIM_NIL;
	T3_ = (*data)->data[h].Field2.Field1; (*data)->data[h].Field2.Field1 = copyStringRC1(val.Field1);
	if (T3_) nimGCunrefNoCycle(T3_);
	(*data)->data[h].Field0 = hc;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nimblecmd_1002)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw* t) {
	tySequence__6j25whH7XTBoIXcM0x1T7A* n;
	NI T1_;
	tySequence__6j25whH7XTBoIXcM0x1T7A* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyTuple__UV3llMMYFckfui8YMBuUZA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					nimZeroMem((void*)(&T18_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					unsureAsgnRef((void**)&n->data[i].Field2.Field0, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field2.Field1, NIM_NIL);
					rawInsert__nimblecmd_1306(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__nimblecmd_1475)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nimblecmd_676)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw* t, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym19_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym19_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) (correctSizeX60gensym19_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__nimblecmd_290((*t), key, (&hc));
	{
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		if (!(((NI) 0) <= index)) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = (*t).data->data[index].Field2.Field0; (*t).data->data[index].Field2.Field0 = copyStringRC1(val.Field0);
		if (T10_) nimGCunrefNoCycle(T10_);
		T11_ = NIM_NIL;
		T11_ = (*t).data->data[index].Field2.Field1; (*t).data->data[index].Field2.Field1 = copyStringRC1(val.Field1);
		if (T11_) nimGCunrefNoCycle(T11_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T15_;
			NI correctSizeX60gensym22_;
			T15_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T15_ == ((NI) 0))) goto LA16_;
			correctSizeX60gensym22_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) (correctSizeX60gensym22_))));
		}
		LA16_: ;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = mustRehash__nimblecmd_849((*t));
			if (!T20_) goto LA21_;
			enlarge__nimblecmd_1002(t);
			index = rawGetKnownHC__nimblecmd_1475((*t), key, hc);
		}
		LA21_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__nimblecmd_1306(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__nimblecmd_1808)(tyObject_Table__76RYD1bLMjqZSa5FAewcnw t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__msgs_114)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__lineinfos_452(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__msgs_300)(NimStringDesc* key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T2_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, key);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NI32*, X5BX5D___msgs_233)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, NimStringDesc* key) {
	NI32* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI32*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__lineinfos_452((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9132)(NI initialSize, tyObject_Table__imojfg883tkWsWJwyshGqQ* Result) {
	NI correctSizeX60gensym109_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym109_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym109_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9160)(NI initialSize, tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* Result) {
	NI correctSizeX60gensym111_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym111_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym111_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9184)(NI initialSize, tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA* Result) {
	NI correctSizeX60gensym113_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym113_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__KgiZ29chkJAD01p9aLRB32qw*) newSeq((&NTIkeyvaluepairseq__KgiZ29chkJAD01p9aLRB32qw_), ((NI) (correctSizeX60gensym113_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9204)(NI initialSize, tyObject_Table__LM44poVdVEn4Mo4N4L8c3A* Result) {
	NI correctSizeX60gensym115_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym115_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__rkYRZrbHVYL3nhXlQW3K9bw*) newSeq((&NTIkeyvaluepairseq__rkYRZrbHVYL3nhXlQW3K9bw_), ((NI) (correctSizeX60gensym115_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9228)(NI initialSize, tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* Result) {
	NI correctSizeX60gensym117_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym117_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__Hz5SYwQU29b9aFLt09blvVQPg*) newSeq((&NTIkeyvaluepairseq__Hz5SYwQU29b9aFLt09blvVQPg_), ((NI) (correctSizeX60gensym117_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9248)(NI initialSize, tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* Result) {
	NI correctSizeX60gensym119_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym119_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym119_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9270)(NI initialSize, tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* Result) {
	NI correctSizeX60gensym121_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym121_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__3G9aA9cLXaPxuRxMKm3anacQ*) newSeq((&NTIkeyvaluepairseq__3G9aA9cLXaPxuRxMKm3anacQ_), ((NI) (correctSizeX60gensym121_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9290)(NI initialSize, tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* Result) {
	NI correctSizeX60gensym123_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym123_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__YmPd0eWfcTfrVYrthlXPYA*) newSeq((&NTIkeyvaluepairseq__YmPd0eWfcTfrVYrthlXPYA_), ((NI) (correctSizeX60gensym123_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9310)(NI initialSize, tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* Result) {
	NI correctSizeX60gensym125_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym125_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym125_))));
}
static N_INLINE(NIM_BOOL, mustRehash__ast_1586)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__ast_2043)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t, tySequence__7s5HyddQ0f9bxMNILHrXwJQ** data, NI key, NimStringDesc* val, NI hc, NI h) {
	NimStringDesc* T1_;
	(*data)->data[h].Field1 = key;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(val);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__ast_1739)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t) {
	tySequence__7s5HyddQ0f9bxMNILHrXwJQ* n;
	NI T1_;
	tySequence__7s5HyddQ0f9bxMNILHrXwJQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NimStringDesc* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__ast_2043(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__ast_2212)(tyObject_Table__nYXnObOHA7POR2803IXtoQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___ast_1413)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t, NI key, NimStringDesc* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym8_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym8_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) (correctSizeX60gensym8_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__ast_1065((*t), key, (&hc));
	{
		NimStringDesc* T10_;
		if (!(((NI) 0) <= index)) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = (*t).data->data[index].Field2; (*t).data->data[index].Field2 = copyStringRC1(val);
		if (T10_) nimGCunrefNoCycle(T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T14_;
			NI correctSizeX60gensym11_;
			T14_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T14_ == ((NI) 0))) goto LA15_;
			correctSizeX60gensym11_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) (correctSizeX60gensym11_))));
		}
		LA15_: ;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = mustRehash__ast_1586((*t));
			if (!T19_) goto LA20_;
			enlarge__ast_1739(t);
			index = rawGetKnownHC__ast_2212((*t), key, hc);
		}
		LA20_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__ast_2043(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZtables_28)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (hcode == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__ast_2497)(tyObject_Table__nYXnObOHA7POR2803IXtoQ* t, NI key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__ast_1065((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, hash__ast_784)(NI32 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_9716)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_784(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_10023)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_10524)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_10212)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* t) {
	tySequence__kxu4GK0onha2t9bo86mdVAg* n;
	NI T1_;
	tySequence__kxu4GK0onha2t9bo86mdVAg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__modulegraphs_10524(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_10693)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKeyOrPut__modulegraphs_9642)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg* t, NI32 key, NI32 val) {
	NIM_BOOL result;
	NI hc;
	NI index;
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym141_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym141_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym141_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_9716((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		result = NIM_FALSE;
		{
			NI T12_;
			NI correctSizeX60gensym146_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym146_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym146_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modulegraphs_10023((*t));
			if (!T17_) goto LA18_;
			enlarge__modulegraphs_10212(t);
			index = rawGetKnownHC__modulegraphs_10693((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_10524(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	goto LA6_;
	LA8_: ;
	{
		result = NIM_TRUE;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__icZic_6271)(NI initialSize, tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* Result) {
	NI correctSizeX60gensym242_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym242_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__C3r8jsj9chA4sIlYfDN5aDw*) newSeq((&NTIkeyvaluepairseq__C3r8jsj9chA4sIlYfDN5aDw_), ((NI) (correctSizeX60gensym242_))));
}
static N_INLINE(NI, hash__idents_226)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* x) {
	NI result;
	result = (NI)0;
	result = (*x).h;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___idents_229)(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* a, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a == 0);
		if (T3_) goto LA4_;
		T3_ = (b == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (a == b);
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((*a).id == (*b).id);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__icZic_6479)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__idents_226(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___idents_229(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZic_6778)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_7263)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* t, tySequence__C3r8jsj9chA4sIlYfDN5aDw** data, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, tySequence__lo3S1lKyiPLhGGB9cBawd6A* val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_6937)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* t) {
	tySequence__C3r8jsj9chA4sIlYfDN5aDw* n;
	NI T1_;
	tySequence__C3r8jsj9chA4sIlYfDN5aDw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__C3r8jsj9chA4sIlYfDN5aDw*) newSeq((&NTIkeyvaluepairseq__C3r8jsj9chA4sIlYfDN5aDw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T17_;
					tySequence__lo3S1lKyiPLhGGB9cBawd6A* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__icZic_7263(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZic_7444)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___idents_229(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__lo3S1lKyiPLhGGB9cBawd6A**, mgetOrPut__icZic_6415)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ* t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key, tySequence__lo3S1lKyiPLhGGB9cBawd6A* val) {
	tySequence__lo3S1lKyiPLhGGB9cBawd6A** result;
	NI hc;
	NI index;
	result = (tySequence__lo3S1lKyiPLhGGB9cBawd6A**)0;
	{
		NI T3_;
		NI correctSizeX60gensym248_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym248_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__C3r8jsj9chA4sIlYfDN5aDw*) newSeq((&NTIkeyvaluepairseq__C3r8jsj9chA4sIlYfDN5aDw_), ((NI) (correctSizeX60gensym248_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZic_6479((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym253_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym253_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__C3r8jsj9chA4sIlYfDN5aDw*) newSeq((&NTIkeyvaluepairseq__C3r8jsj9chA4sIlYfDN5aDw_), ((NI) (correctSizeX60gensym253_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__icZic_6778((*t));
			if (!T17_) goto LA18_;
			enlarge__icZic_6937(t);
			index = rawGetKnownHC__icZic_7444((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZic_7263(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, hash__icZic_608)(NI32 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__icZic_601)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__icZic_608(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU32, getOrDefault__icZic_592)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t, NI32 key) {
	NU32 result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NU32)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__icZic_601(t, key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = t.data->data[indexX60gensym22_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZic_1250)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_1727)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ* t, tySequence__9cnx3zXnWzeclW8Ko4oUgAQ** data, NI32 key, NU32 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1409)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ* t) {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* n;
	NI T1_;
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NU32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NU32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__icZic_1727(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZic_1908)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___icZic_1069)(tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ* t, NI32 key, NU32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym37_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym37_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) (correctSizeX60gensym37_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZic_601((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym40_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym40_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) (correctSizeX60gensym40_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__icZic_1250((*t));
			if (!T18_) goto LA19_;
			enlarge__icZic_1409(t);
			index = rawGetKnownHC__icZic_1908((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZic_1727(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__vm_4299)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, getOrDefault__vm_4290)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t, NimStringDesc* key) {
	NI64 result;
	NI hcX60gensym1077_;
	NI indexX60gensym1077_;
	result = (NI64)0;
	hcX60gensym1077_ = (NI)0;
	indexX60gensym1077_ = rawGet__vm_4299(t, key, (&hcX60gensym1077_));
	{
		if (!(((NI) 0) <= indexX60gensym1077_)) goto LA3_;
		result = t.data->data[indexX60gensym1077_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_4929)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_5430)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_5118)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* t) {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* n;
	NI T1_;
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI64 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI64)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__vm_5430(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_5599)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_4732)(tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g* t, NimStringDesc* key, NI64 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1085_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1085_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym1085_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_4299((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1088_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1088_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym1088_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_4929((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_5118(t);
			index = rawGetKnownHC__vm_5599((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_5430(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__vm_8154)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_8147)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__vm_8154(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_8141)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vm_8147(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_8659)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_9164)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t, tySequence__3G9aA9cLXaPxuRxMKm3anacQ** data, NimStringDesc* key, tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field2.root), val.root);
	(*data)->data[h].Field2.entries = val.entries;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_8848)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t) {
	tySequence__3G9aA9cLXaPxuRxMKm3anacQ* n;
	NI T1_;
	tySequence__3G9aA9cLXaPxuRxMKm3anacQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__3G9aA9cLXaPxuRxMKm3anacQ*) newSeq((&NTIkeyvaluepairseq__3G9aA9cLXaPxuRxMKm3anacQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					nimZeroMem((void*)(&T18_), sizeof(tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q));
					T18_.root = n->data[i].Field2.root;
					T18_.entries = n->data[i].Field2.entries;
					unsureAsgnRef((void**)&n->data[i].Field2.root, NIM_NIL);
					n->data[i].Field2.entries = 0;
					rawInsert__vm_9164(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_9333)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_8462)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t, NimStringDesc* key, tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1132_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1132_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__3G9aA9cLXaPxuRxMKm3anacQ*) newSeq((&NTIkeyvaluepairseq__3G9aA9cLXaPxuRxMKm3anacQ_), ((NI) (correctSizeX60gensym1132_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_8154((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2.root), val.root);
		(*t).data->data[index].Field2.entries = val.entries;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1135_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1135_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__3G9aA9cLXaPxuRxMKm3anacQ*) newSeq((&NTIkeyvaluepairseq__3G9aA9cLXaPxuRxMKm3anacQ_), ((NI) (correctSizeX60gensym1135_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_8659((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_8848(t);
			index = rawGetKnownHC__vm_9333((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_9164(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q*, X5BX5D___vm_9635)(tyObject_Table__R7JnJQEipxxOlJWXQz7jWg* t, NimStringDesc* key) {
	tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__vm_8154((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__vm_5928)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_5921)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__vm_5928(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_5915)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vm_5921(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_6407)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_6908)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t, tySequence__Hz5SYwQU29b9aFLt09blvVQPg** data, NimStringDesc* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_6596)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t) {
	tySequence__Hz5SYwQU29b9aFLt09blvVQPg* n;
	NI T1_;
	tySequence__Hz5SYwQU29b9aFLt09blvVQPg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__Hz5SYwQU29b9aFLt09blvVQPg*) newSeq((&NTIkeyvaluepairseq__Hz5SYwQU29b9aFLt09blvVQPg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__vm_6908(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_7077)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_6210)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t, NimStringDesc* key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1102_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1102_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__Hz5SYwQU29b9aFLt09blvVQPg*) newSeq((&NTIkeyvaluepairseq__Hz5SYwQU29b9aFLt09blvVQPg_), ((NI) (correctSizeX60gensym1102_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_5928((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1105_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1105_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__Hz5SYwQU29b9aFLt09blvVQPg*) newSeq((&NTIkeyvaluepairseq__Hz5SYwQU29b9aFLt09blvVQPg_), ((NI) (correctSizeX60gensym1105_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_6407((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_6596(t);
			index = rawGetKnownHC__vm_7077((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_6908(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**, X5BX5D___vm_7379)(tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q* t, NimStringDesc* key) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__vm_5928((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___ast_777)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg a, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (a.item == b.item);
	if (!(T1_)) goto LA2_;
	T1_ = (a.module == b.module);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_3046)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_781(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__semdata_2601)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_3118)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t, tySequence__ijtae5OneaLys0hN9alAicA** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__dlD6tEGzYLLpKVq3XwuFlA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLlazytypeT__dlD6tEGzYLLpKVq3XwuFlA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_2787)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t) {
	tySequence__ijtae5OneaLys0hN9alAicA* n;
	NI T1_;
	tySequence__ijtae5OneaLys0hN9alAicA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__ijtae5OneaLys0hN9alAicA*) newSeq((&NTIkeyvaluepairseq__ijtae5OneaLys0hN9alAicA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
					tySequence__dlD6tEGzYLLpKVq3XwuFlA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__semdata_3118(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__semdata_3299)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__dlD6tEGzYLLpKVq3XwuFlA**, mgetOrPut__semdata_2458)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__dlD6tEGzYLLpKVq3XwuFlA* val) {
	tySequence__dlD6tEGzYLLpKVq3XwuFlA** result;
	NI hc;
	NI index;
	result = (tySequence__dlD6tEGzYLLpKVq3XwuFlA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym134_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym134_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__ijtae5OneaLys0hN9alAicA*) newSeq((&NTIkeyvaluepairseq__ijtae5OneaLys0hN9alAicA_), ((NI) (correctSizeX60gensym134_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_3046((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym137_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym137_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__ijtae5OneaLys0hN9alAicA*) newSeq((&NTIkeyvaluepairseq__ijtae5OneaLys0hN9alAicA_), ((NI) (correctSizeX60gensym137_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__semdata_2601((*t));
			if (!T17_) goto LA18_;
			enlarge__semdata_2787(t);
			index = rawGetKnownHC__semdata_3299((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__semdata_3118(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_3619)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_781(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__semdata_1392)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_1909)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t, tySequence__SerjNoUujW2dUouVBrJiCw** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__6OFCSvqRaxyEgUqWtnZSlw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLlazyinstantiationT__6OFCSvqRaxyEgUqWtnZSlw_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_1578)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t) {
	tySequence__SerjNoUujW2dUouVBrJiCw* n;
	NI T1_;
	tySequence__SerjNoUujW2dUouVBrJiCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__SerjNoUujW2dUouVBrJiCw*) newSeq((&NTIkeyvaluepairseq__SerjNoUujW2dUouVBrJiCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
					tySequence__6OFCSvqRaxyEgUqWtnZSlw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__semdata_1909(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__semdata_2090)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__6OFCSvqRaxyEgUqWtnZSlw**, mgetOrPut__semdata_1249)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__6OFCSvqRaxyEgUqWtnZSlw* val) {
	tySequence__6OFCSvqRaxyEgUqWtnZSlw** result;
	NI hc;
	NI index;
	result = (tySequence__6OFCSvqRaxyEgUqWtnZSlw**)0;
	{
		NI T3_;
		NI correctSizeX60gensym118_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym118_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__SerjNoUujW2dUouVBrJiCw*) newSeq((&NTIkeyvaluepairseq__SerjNoUujW2dUouVBrJiCw_), ((NI) (correctSizeX60gensym118_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_3619((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym121_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym121_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__SerjNoUujW2dUouVBrJiCw*) newSeq((&NTIkeyvaluepairseq__SerjNoUujW2dUouVBrJiCw_), ((NI) (correctSizeX60gensym121_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__semdata_1392((*t));
			if (!T17_) goto LA18_;
			enlarge__semdata_1578(t);
			index = rawGetKnownHC__semdata_2090((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__semdata_1909(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_7307)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_781(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_7908)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_8413)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t, tySequence__m88qdML9cQOuqGAQn6XWL1A** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__m4PVWjcAAjfxlwJxLkKn8A* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLLint_lazysymTT__m4PVWjcAAjfxlwJxLkKn8A_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_8097)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t) {
	tySequence__m88qdML9cQOuqGAQn6XWL1A* n;
	NI T1_;
	tySequence__m88qdML9cQOuqGAQn6XWL1A* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__m88qdML9cQOuqGAQn6XWL1A*) newSeq((&NTIkeyvaluepairseq__m88qdML9cQOuqGAQn6XWL1A_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
					tySequence__m4PVWjcAAjfxlwJxLkKn8A* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modulegraphs_8413(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_8582)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__m4PVWjcAAjfxlwJxLkKn8A**, mgetOrPut__modulegraphs_7763)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tySequence__m4PVWjcAAjfxlwJxLkKn8A* val) {
	tySequence__m4PVWjcAAjfxlwJxLkKn8A** result;
	NI hc;
	NI index;
	result = (tySequence__m4PVWjcAAjfxlwJxLkKn8A**)0;
	{
		NI T3_;
		NI correctSizeX60gensym85_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym85_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__m88qdML9cQOuqGAQn6XWL1A*) newSeq((&NTIkeyvaluepairseq__m88qdML9cQOuqGAQn6XWL1A_), ((NI) (correctSizeX60gensym85_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_7307((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym88_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym88_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__m88qdML9cQOuqGAQn6XWL1A*) newSeq((&NTIkeyvaluepairseq__m88qdML9cQOuqGAQn6XWL1A_), ((NI) (correctSizeX60gensym88_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modulegraphs_7908((*t));
			if (!T17_) goto LA18_;
			enlarge__modulegraphs_8097(t);
			index = rawGetKnownHC__modulegraphs_8582((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_8413(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_5750)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_781(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_6314)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_6819)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t, tySequence__naEbXEp9b9aiW1zXJorqf9cXQ** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2.id = val.id;
	asgnRef((void**) (&(*data)->data[h].Field2.sym), val.sym);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_6503)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t) {
	tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* n;
	NI T1_;
	tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__naEbXEp9b9aiW1zXJorqf9cXQ*) newSeq((&NTIkeyvaluepairseq__naEbXEp9b9aiW1zXJorqf9cXQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
					tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
					nimZeroMem((void*)(&T18_), sizeof(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg));
					T18_.id = n->data[i].Field2.id;
					T18_.sym = n->data[i].Field2.sym;
					n->data[i].Field2.id.module = 0;
					n->data[i].Field2.id.packed_0.module = 0;
					n->data[i].Field2.id.packed_0.item = 0;
					unsureAsgnRef((void**)&n->data[i].Field2.sym, NIM_NIL);
					rawInsert__modulegraphs_6819(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_6988)(tyObject_Table__1hIWbTQWYT4BmhdESze57A t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___modulegraphs_6117)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym69_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym69_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__naEbXEp9b9aiW1zXJorqf9cXQ*) newSeq((&NTIkeyvaluepairseq__naEbXEp9b9aiW1zXJorqf9cXQ_), ((NI) (correctSizeX60gensym69_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_5750((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2.id = val.id;
		asgnRef((void**) (&(*t).data->data[index].Field2.sym), val.sym);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym72_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym72_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__naEbXEp9b9aiW1zXJorqf9cXQ*) newSeq((&NTIkeyvaluepairseq__naEbXEp9b9aiW1zXJorqf9cXQ_), ((NI) (correctSizeX60gensym72_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__modulegraphs_6314((*t));
			if (!T18_) goto LA19_;
			enlarge__modulegraphs_6503(t);
			index = rawGetKnownHC__modulegraphs_6988((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_6819(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__lo3S1lKyiPLhGGB9cBawd6A*, getOrDefault__icZic_8581)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* key) {
	tySequence__lo3S1lKyiPLhGGB9cBawd6A* result;
	NI hcX60gensym290_;
	NI indexX60gensym290_;
	result = NIM_NIL;
	hcX60gensym290_ = (NI)0;
	indexX60gensym290_ = rawGet__icZic_6479(t, key, (&hcX60gensym290_));
	{
		if (!(((NI) 0) <= indexX60gensym290_)) goto LA3_;
		genericSeqAssign((&result), t.data->data[indexX60gensym290_].Field2, (&NTIseqLpackeditemidT__lo3S1lKyiPLhGGB9cBawd6A_));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_4141)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_781(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getOrDefault__modulegraphs_4132)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	NI hcX60gensym42_;
	NI indexX60gensym42_;
	result = NIM_NIL;
	hcX60gensym42_ = (NI)0;
	indexX60gensym42_ = rawGet__modulegraphs_4141(t, key, (&hcX60gensym42_));
	{
		if (!(((NI) 0) <= indexX60gensym42_)) goto LA3_;
		result = t.data->data[indexX60gensym42_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_4688)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_5197)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t, tySequence__K9agbtcb0qPZuSJFXB9cTe6g** data, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_4877)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t) {
	tySequence__K9agbtcb0qPZuSJFXB9cTe6g* n;
	NI T1_;
	tySequence__K9agbtcb0qPZuSJFXB9cTe6g* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__K9agbtcb0qPZuSJFXB9cTe6g*) newSeq((&NTIkeyvaluepairseq__K9agbtcb0qPZuSJFXB9cTe6g_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T17_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modulegraphs_5197(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_5366)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_777(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___modulegraphs_4491)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym47_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym47_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__K9agbtcb0qPZuSJFXB9cTe6g*) newSeq((&NTIkeyvaluepairseq__K9agbtcb0qPZuSJFXB9cTe6g_), ((NI) (correctSizeX60gensym47_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_4141((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym50_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym50_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__K9agbtcb0qPZuSJFXB9cTe6g*) newSeq((&NTIkeyvaluepairseq__K9agbtcb0qPZuSJFXB9cTe6g_), ((NI) (correctSizeX60gensym50_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__modulegraphs_4688((*t));
			if (!T18_) goto LA19_;
			enlarge__modulegraphs_4877(t);
			index = rawGetKnownHC__modulegraphs_5366((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_5197(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__modulegraphs_11350)(tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_784(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__modulegraphs_11344)(tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA* t, NI32 key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__modulegraphs_11350((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, rawGet__modulegraphs_12149)(tyObject_Table__LM44poVdVEn4Mo4N4L8c3A t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_784(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__modulegraphs_12143)(tyObject_Table__LM44poVdVEn4Mo4N4L8c3A* t, NI32 key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__modulegraphs_12149((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, rawGet__cgen_27608)(tyObject_Table__imojfg883tkWsWJwyshGqQ t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_784(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modules_249)(tyObject_Table__imojfg883tkWsWJwyshGqQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modules_706)(tyObject_Table__imojfg883tkWsWJwyshGqQ* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modules_402)(tyObject_Table__imojfg883tkWsWJwyshGqQ* t) {
	tySequence__fdmz6VkIf1ewwrssKYqRFg* n;
	NI T1_;
	tySequence__fdmz6VkIf1ewwrssKYqRFg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					tySequence__48JTohSgTy339bRxHzUD8KA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modules_706(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modules_875)(tyObject_Table__imojfg883tkWsWJwyshGqQ t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__48JTohSgTy339bRxHzUD8KA**, mgetOrPut__modules_128)(tyObject_Table__imojfg883tkWsWJwyshGqQ* t, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val) {
	tySequence__48JTohSgTy339bRxHzUD8KA** result;
	NI hc;
	NI index;
	result = (tySequence__48JTohSgTy339bRxHzUD8KA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym13_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym13_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym13_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_27608((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym16_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym16_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym16_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modules_249((*t));
			if (!T17_) goto LA18_;
			enlarge__modules_402(t);
			index = rawGetKnownHC__modules_875((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modules_706(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__icZic_8740)(tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3039)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_3046(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3033)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_3039(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__modulegraphs_3416)(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___modulegraphs_3455(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__dlD6tEGzYLLpKVq3XwuFlA**, X5BX5D___modulegraphs_3349)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tySequence__dlD6tEGzYLLpKVq3XwuFlA** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__dlD6tEGzYLLpKVq3XwuFlA**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_3046((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3416(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_7300)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_7307(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_7294)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_7300(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__m4PVWjcAAjfxlwJxLkKn8A**, X5BX5D___modulegraphs_7610)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tySequence__m4PVWjcAAjfxlwJxLkKn8A** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__m4PVWjcAAjfxlwJxLkKn8A**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_7307((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3416(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__lookups_1108)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___lookups_1101)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t, NI key) {
	NI* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__lookups_1108((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1361(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_5637)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key, NI default_0) {
	NI result;
	NI hcX60gensym899_;
	NI indexX60gensym899_;
	result = (NI)0;
	hcX60gensym899_ = (NI)0;
	indexX60gensym899_ = rawGet__lookups_1108(t, key, (&hcX60gensym899_));
	{
		if (!(((NI) 0) <= indexX60gensym899_)) goto LA3_;
		result = t.data->data[indexX60gensym899_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__lookups_2778)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, getOrDefault__lookups_2769)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t, NI key) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
	NI hcX60gensym159_;
	NI indexX60gensym159_;
	result = NIM_NIL;
	hcX60gensym159_ = (NI)0;
	indexX60gensym159_ = rawGet__lookups_2778(t, key, (&hcX60gensym159_));
	{
		if (!(((NI) 0) <= indexX60gensym159_)) goto LA3_;
		genericSeqAssign((&result), t.data->data[indexX60gensym159_].Field2, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NI, rawGet__sighashes_633)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sighashes_1147)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sighashes_1604)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	nimCopyMem((void*)(*data)->data[h].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_1300)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* t) {
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* n;
	NI T1_;
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					nimCopyMem((void*)T18_, (NIM_CONST void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					rawInsert__sighashes_1604(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__sighashes_1773)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___sighashes_974)(tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw* t, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym101_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym101_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym101_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__sighashes_633((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		nimCopyMem((void*)(*t).data->data[index].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym104_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym104_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym104_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__sighashes_1147((*t));
			if (!T18_) goto LA19_;
			enlarge__sighashes_1300(t);
			index = rawGetKnownHC__sighashes_1773((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__sighashes_1604(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__vmgen_3672)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key) {
	NI result;
	NI hcX60gensym659_;
	NI indexX60gensym659_;
	result = (NI)0;
	hcX60gensym659_ = (NI)0;
	indexX60gensym659_ = rawGet__lookups_1108(t, key, (&hcX60gensym659_));
	{
		if (!(((NI) 0) <= indexX60gensym659_)) goto LA3_;
		result = t.data->data[indexX60gensym659_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__importer_2464)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_2977)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t, tySequence__E8pi9b5QNahsURYzXMjh3qw** data, NI key, NI val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_2650)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t) {
	tySequence__E8pi9b5QNahsURYzXMjh3qw* n;
	NI T1_;
	tySequence__E8pi9b5QNahsURYzXMjh3qw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__importer_2977(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__importer_3158)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___importer_2265)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t, NI key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym103_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym103_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) (correctSizeX60gensym103_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lookups_1108((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym106_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym106_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) (correctSizeX60gensym106_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__importer_2464((*t));
			if (!T18_) goto LA19_;
			enlarge__importer_2650(t);
			index = rawGetKnownHC__importer_3158((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__importer_2977(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lambdalifting_397)(NI initialSize, tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* Result) {
	NI correctSizeX60gensym48_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym48_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__wuwY3G19cIPfMd9b1mDzZsNw*) newSeq((&NTIkeyvaluepairseq__wuwY3G19cIPfMd9b1mDzZsNw_), ((NI) (correctSizeX60gensym48_))));
}
static N_INLINE(NI, rawGet__lambdalifting_545)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getOrDefault__lambdalifting_536)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t, NI key) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	NI hcX60gensym52_;
	NI indexX60gensym52_;
	result = NIM_NIL;
	hcX60gensym52_ = (NI)0;
	indexX60gensym52_ = rawGet__lambdalifting_545(t, key, (&hcX60gensym52_));
	{
		if (!(((NI) 0) <= indexX60gensym52_)) goto LA3_;
		result = t.data->data[indexX60gensym52_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_1060)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_1513)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* t, tySequence__wuwY3G19cIPfMd9b1mDzZsNw** data, NI key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_1213)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* t) {
	tySequence__wuwY3G19cIPfMd9b1mDzZsNw* n;
	NI T1_;
	tySequence__wuwY3G19cIPfMd9b1mDzZsNw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__wuwY3G19cIPfMd9b1mDzZsNw*) newSeq((&NTIkeyvaluepairseq__wuwY3G19cIPfMd9b1mDzZsNw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__lambdalifting_1513(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lambdalifting_1682)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lambdalifting_887)(tyObject_Table__9bsFCZVRMIOwQDu3f4jLGbA* t, NI key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym58_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym58_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__wuwY3G19cIPfMd9b1mDzZsNw*) newSeq((&NTIkeyvaluepairseq__wuwY3G19cIPfMd9b1mDzZsNw_), ((NI) (correctSizeX60gensym58_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lambdalifting_545((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym61_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym61_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__wuwY3G19cIPfMd9b1mDzZsNw*) newSeq((&NTIkeyvaluepairseq__wuwY3G19cIPfMd9b1mDzZsNw_), ((NI) (correctSizeX60gensym61_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lambdalifting_1060((*t));
			if (!T18_) goto LA19_;
			enlarge__lambdalifting_1213(t);
			index = rawGetKnownHC__lambdalifting_1682((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lambdalifting_1513(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lambdalifting_2168)(NI initialSize, tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* Result) {
	NI correctSizeX60gensym102_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym102_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__WcRaozAFgJ6OG8h8DH4mow*) newSeq((&NTIkeyvaluepairseq__WcRaozAFgJ6OG8h8DH4mow_), ((NI) (correctSizeX60gensym102_))));
}
static N_INLINE(NI, rawGet__lambdalifting_2353)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getOrDefault__lambdalifting_2344)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI hcX60gensym112_;
	NI indexX60gensym112_;
	result = NIM_NIL;
	hcX60gensym112_ = (NI)0;
	indexX60gensym112_ = rawGet__lambdalifting_2353(t, key, (&hcX60gensym112_));
	{
		if (!(((NI) 0) <= indexX60gensym112_)) goto LA3_;
		result = t.data->data[indexX60gensym112_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_2971)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_3428)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t, tySequence__WcRaozAFgJ6OG8h8DH4mow** data, NI key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_3124)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t) {
	tySequence__WcRaozAFgJ6OG8h8DH4mow* n;
	NI T1_;
	tySequence__WcRaozAFgJ6OG8h8DH4mow* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__WcRaozAFgJ6OG8h8DH4mow*) newSeq((&NTIkeyvaluepairseq__WcRaozAFgJ6OG8h8DH4mow_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__lambdalifting_3428(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lambdalifting_3597)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lambdalifting_2798)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t, NI key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym121_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym121_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__WcRaozAFgJ6OG8h8DH4mow*) newSeq((&NTIkeyvaluepairseq__WcRaozAFgJ6OG8h8DH4mow_), ((NI) (correctSizeX60gensym121_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lambdalifting_2353((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym124_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym124_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__WcRaozAFgJ6OG8h8DH4mow*) newSeq((&NTIkeyvaluepairseq__WcRaozAFgJ6OG8h8DH4mow_), ((NI) (correctSizeX60gensym124_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lambdalifting_2971((*t));
			if (!T18_) goto LA19_;
			enlarge__lambdalifting_3124(t);
			index = rawGetKnownHC__lambdalifting_3597((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lambdalifting_3428(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**, X5BX5D___lambdalifting_4030)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ* t, NI key) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__lambdalifting_2353((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1361(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__liftdestructors_986)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_9001(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getOrDefault__liftdestructors_977)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	NI hcX60gensym113_;
	NI indexX60gensym113_;
	result = NIM_NIL;
	hcX60gensym113_ = (NI)0;
	indexX60gensym113_ = rawGet__liftdestructors_986(t, key, (&hcX60gensym113_));
	{
		if (!(((NI) 0) <= indexX60gensym113_)) goto LA3_;
		result = t.data->data[indexX60gensym113_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2435)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2892)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* t, tySequence__YmPd0eWfcTfrVYrthlXPYA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2588)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* t) {
	tySequence__YmPd0eWfcTfrVYrthlXPYA* n;
	NI T1_;
	tySequence__YmPd0eWfcTfrVYrthlXPYA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__YmPd0eWfcTfrVYrthlXPYA*) newSeq((&NTIkeyvaluepairseq__YmPd0eWfcTfrVYrthlXPYA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__liftdestructors_2892(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__liftdestructors_3061)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___liftdestructors_2262)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym218_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym218_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__YmPd0eWfcTfrVYrthlXPYA*) newSeq((&NTIkeyvaluepairseq__YmPd0eWfcTfrVYrthlXPYA_), ((NI) (correctSizeX60gensym218_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__liftdestructors_986((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym221_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym221_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__YmPd0eWfcTfrVYrthlXPYA*) newSeq((&NTIkeyvaluepairseq__YmPd0eWfcTfrVYrthlXPYA_), ((NI) (correctSizeX60gensym221_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__liftdestructors_2435((*t));
			if (!T18_) goto LA19_;
			enlarge__liftdestructors_2588(t);
			index = rawGetKnownHC__liftdestructors_3061((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__liftdestructors_2892(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, X5BX5D___lambdalifting_4423)(tyObject_Table__b4JZGZzMTp9bAaQ4jWNeszQ t, NI key) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI hcX60gensym20_;
	NI indexX60gensym20_;
	result = NIM_NIL;
	hcX60gensym20_ = (NI)0;
	indexX60gensym20_ = rawGet__lambdalifting_2353(t, key, (&hcX60gensym20_));
	{
		if (!(((NI) 0) <= indexX60gensym20_)) goto LA3_;
		result = t.data->data[indexX60gensym20_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1361(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__closureiters_3495)(NI initialSize, tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* Result) {
	NI correctSizeX60gensym349_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym349_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*) newSeq((&NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_), ((NI) (correctSizeX60gensym349_))));
}
static N_INLINE(NI, rawGet__closureiters_1926)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getOrDefault__closureiters_1917)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	NI hcX60gensym311_;
	NI indexX60gensym311_;
	result = NIM_NIL;
	hcX60gensym311_ = (NI)0;
	indexX60gensym311_ = rawGet__closureiters_1926(t, key, (&hcX60gensym311_));
	{
		if (!(((NI) 0) <= indexX60gensym311_)) goto LA3_;
		result = t.data->data[indexX60gensym311_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__closureiters_2477)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2930)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t, tySequence__K9b6FRiPoaNJikAsXAA9c0Jg** data, NI key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2630)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t) {
	tySequence__K9b6FRiPoaNJikAsXAA9c0Jg* n;
	NI T1_;
	tySequence__K9b6FRiPoaNJikAsXAA9c0Jg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*) newSeq((&NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__closureiters_2930(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__closureiters_3099)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___closureiters_2304)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t, NI key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym321_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym321_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*) newSeq((&NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_), ((NI) (correctSizeX60gensym321_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__closureiters_1926((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym324_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym324_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*) newSeq((&NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_), ((NI) (correctSizeX60gensym324_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__closureiters_2477((*t));
			if (!T18_) goto LA19_;
			enlarge__closureiters_2630(t);
			index = rawGetKnownHC__closureiters_3099((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__closureiters_2930(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__vmmarshal_1860)(NI initialSize, tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* Result) {
	NI correctSizeX60gensym72_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym72_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__OeT2uxU9cpZvGBACtO9b4xwQ*) newSeq((&NTIkeyvaluepairseq__OeT2uxU9cpZvGBACtO9b4xwQ_), ((NI) (correctSizeX60gensym72_))));
}
static N_INLINE(NI, hash__pureZjson_2974)(NI64 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__vmmarshal_455)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t, NI64 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZjson_2974(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getOrDefault__vmmarshal_446)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t, NI64 key) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI hcX60gensym54_;
	NI indexX60gensym54_;
	result = NIM_NIL;
	hcX60gensym54_ = (NI)0;
	indexX60gensym54_ = rawGet__vmmarshal_455(t, key, (&hcX60gensym54_));
	{
		if (!(((NI) 0) <= indexX60gensym54_)) goto LA3_;
		result = t.data->data[indexX60gensym54_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vmmarshal_975)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vmmarshal_1432)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* t, tySequence__OeT2uxU9cpZvGBACtO9b4xwQ** data, NI64 key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vmmarshal_1128)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* t) {
	tySequence__OeT2uxU9cpZvGBACtO9b4xwQ* n;
	NI T1_;
	tySequence__OeT2uxU9cpZvGBACtO9b4xwQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__OeT2uxU9cpZvGBACtO9b4xwQ*) newSeq((&NTIkeyvaluepairseq__OeT2uxU9cpZvGBACtO9b4xwQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI64 T17_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI64)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__vmmarshal_1432(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vmmarshal_1601)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q t, NI64 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vmmarshal_802)(tyObject_Table__gomBN9cF0n3KCLfQvSeVI7Q* t, NI64 key, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym59_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym59_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__OeT2uxU9cpZvGBACtO9b4xwQ*) newSeq((&NTIkeyvaluepairseq__OeT2uxU9cpZvGBACtO9b4xwQ_), ((NI) (correctSizeX60gensym59_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vmmarshal_455((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym62_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym62_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__OeT2uxU9cpZvGBACtO9b4xwQ*) newSeq((&NTIkeyvaluepairseq__OeT2uxU9cpZvGBACtO9b4xwQ_), ((NI) (correctSizeX60gensym62_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vmmarshal_975((*t));
			if (!T18_) goto LA19_;
			enlarge__vmmarshal_1128(t);
			index = rawGetKnownHC__vmmarshal_1601((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vmmarshal_1432(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__options_873)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__lineinfos_233(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___options_1113(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_217)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__options_873(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_118)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hasKey__vmprofiler_217((*t), key);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vmprofiler_82)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vmprofiler_118(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__options_1257)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_1787)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tySequence__Ou09axLmOh3clXcvEh9agsPw** data, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_1443)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t) {
	tySequence__Ou09axLmOh3clXcvEh9agsPw* n;
	NI T1_;
	tySequence__Ou09axLmOh3clXcvEh9agsPw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__Ou09axLmOh3clXcvEh9agsPw*) newSeq((&NTIkeyvaluepairseq__Ou09axLmOh3clXcvEh9agsPw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T17_;
					tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
					T18_ = n->data[i].Field2;
					nimZeroMem((void*)(&n->data[i].Field2), sizeof(tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw));
					rawInsert__options_1787(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__options_1968)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___options_1113(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___options_801)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym19_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym19_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__Ou09axLmOh3clXcvEh9agsPw*) newSeq((&NTIkeyvaluepairseq__Ou09axLmOh3clXcvEh9agsPw_), ((NI) (correctSizeX60gensym19_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__options_873((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym24_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym24_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__Ou09axLmOh3clXcvEh9agsPw*) newSeq((&NTIkeyvaluepairseq__Ou09axLmOh3clXcvEh9agsPw_), ((NI) (correctSizeX60gensym24_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__options_1257((*t));
			if (!T18_) goto LA19_;
			enlarge__options_1443(t);
			index = rawGetKnownHC__options_1968((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__options_1787(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vmprofiler_270)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key, tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw val) {
	X5BX5Deq___options_801(t, key, val);
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__vmprofiler_607)(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_3));
	if (T2_) nimGCunrefNoCycle(T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 236);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw*, X5BX5D___vmprofiler_540)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__options_873((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__vmprofiler_607(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw*, X5BX5D___vmprofiler_428)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw* result;
	result = (tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw*)0;
	result = X5BX5D___vmprofiler_540(t, key);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3612)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_3619(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3606)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_3612(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__6OFCSvqRaxyEgUqWtnZSlw**, X5BX5D___modulegraphs_3922)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tySequence__6OFCSvqRaxyEgUqWtnZSlw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__6OFCSvqRaxyEgUqWtnZSlw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_3619((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3416(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__sempass50_491)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sempass50_1168)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sempass50_1625)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t, tySequence__XDpbjnuseLNZDGLBQ2Qzow** data, NI key, tySequence__k7EQb9bN3Uhl608xoPGMRJA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLLtlineinfo_psymTT__k7EQb9bN3Uhl608xoPGMRJA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sempass50_1321)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t) {
	tySequence__XDpbjnuseLNZDGLBQ2Qzow* n;
	NI T1_;
	tySequence__XDpbjnuseLNZDGLBQ2Qzow* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__XDpbjnuseLNZDGLBQ2Qzow*) newSeq((&NTIkeyvaluepairseq__XDpbjnuseLNZDGLBQ2Qzow_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tySequence__k7EQb9bN3Uhl608xoPGMRJA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__sempass50_1625(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__sempass50_1794)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__k7EQb9bN3Uhl608xoPGMRJA**, mgetOrPut__sempass50_1047)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t, NI key, tySequence__k7EQb9bN3Uhl608xoPGMRJA* val) {
	tySequence__k7EQb9bN3Uhl608xoPGMRJA** result;
	NI hc;
	NI index;
	result = (tySequence__k7EQb9bN3Uhl608xoPGMRJA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym95_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym95_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__XDpbjnuseLNZDGLBQ2Qzow*) newSeq((&NTIkeyvaluepairseq__XDpbjnuseLNZDGLBQ2Qzow_), ((NI) (correctSizeX60gensym95_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__sempass50_491((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym98_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym98_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__XDpbjnuseLNZDGLBQ2Qzow*) newSeq((&NTIkeyvaluepairseq__XDpbjnuseLNZDGLBQ2Qzow_), ((NI) (correctSizeX60gensym98_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__sempass50_1168((*t));
			if (!T17_) goto LA18_;
			enlarge__sempass50_1321(t);
			index = rawGetKnownHC__sempass50_1794((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__sempass50_1625(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__sempass50_484)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg t, NI key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__sempass50_491(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__k7EQb9bN3Uhl608xoPGMRJA**, X5BX5D___sempass50_821)(tyObject_Table__g9cTlJykWlQLKMuaRBpUEZg* t, NI key) {
	tySequence__k7EQb9bN3Uhl608xoPGMRJA** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__k7EQb9bN3Uhl608xoPGMRJA**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__sempass50_491((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1361(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__nilcheck_8823)(NI initialSize, tyObject_Table__rDTSDzC8VietpxpD1ELe1g* Result) {
	NI correctSizeX60gensym196_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym196_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym196_))));
}
static N_INLINE(NI, hash__nilcheck_2008)(NI x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__nilcheck_2001)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__nilcheck_2008(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___nilcheck_1940(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_7390)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_7911)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t, tySequence__dAjyAaabi52TN36Jp0fAXQ** data, NI key, NI16 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_7576)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t) {
	tySequence__dAjyAaabi52TN36Jp0fAXQ* n;
	NI T1_;
	tySequence__dAjyAaabi52TN36Jp0fAXQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NI16 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI16)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__nilcheck_7911(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__nilcheck_8092)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___nilcheck_1940(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nilcheck_7191)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t, NI key, NI16 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym176_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym176_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym176_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__nilcheck_2001((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym179_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym179_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym179_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__nilcheck_7390((*t));
			if (!T18_) goto LA19_;
			enlarge__nilcheck_7576(t);
			index = rawGetKnownHC__nilcheck_8092((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__nilcheck_7911(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, toTable__nilcheck_8818)(tyTuple__cyDO9czMbIL47POKM3sIQng* pairs, NI pairsLen_0, tyObject_Table__rDTSDzC8VietpxpD1ELe1g* Result) {
	initTable__nilcheck_8823(pairsLen_0, Result);
	{
		NI* key;
		NI16* val;
		NI i;
		key = (NI*)0;
		val = (NI16*)0;
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < pairsLen_0)) goto LA3;
				key = (&pairs[i].Field0);
				val = (&pairs[i].Field1);
				X5BX5Deq___nilcheck_7191(Result, (*key), (*val));
				i += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nilcheck_1994)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__nilcheck_2001(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__nilcheck_2402)(NI key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___nilcheck_1944(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NI16*, X5BX5D___nilcheck_2331)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g* t, NI key) {
	NI16* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI16*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__nilcheck_2001((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__nilcheck_2402(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__nilcheck_9426)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__nilcheck_6185)(tyObject_Table__rDTSDzC8VietpxpD1ELe1g t, NI key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__nilcheck_1994(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__importer_3591)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_4108)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA* t, tySequence__QqvaCqCpEE1QmQZbcZLi5A** data, NI key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_3777)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA* t) {
	tySequence__QqvaCqCpEE1QmQZbcZLi5A* n;
	NI T1_;
	tySequence__QqvaCqCpEE1QmQZbcZLi5A* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__QqvaCqCpEE1QmQZbcZLi5A*) newSeq((&NTIkeyvaluepairseq__QqvaCqCpEE1QmQZbcZLi5A_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__importer_4108(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__importer_4289)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut__importer_3448)(tyObject_Table__cBohObSCAwRxvYFXQHv2wA* t, NI key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g** result;
	NI hc;
	NI index;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym115_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym115_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__QqvaCqCpEE1QmQZbcZLi5A*) newSeq((&NTIkeyvaluepairseq__QqvaCqCpEE1QmQZbcZLi5A_), ((NI) (correctSizeX60gensym115_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lookups_2778((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym118_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym118_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__QqvaCqCpEE1QmQZbcZLi5A*) newSeq((&NTIkeyvaluepairseq__QqvaCqCpEE1QmQZbcZLi5A_), ((NI) (correctSizeX60gensym118_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__importer_3591((*t));
			if (!T17_) goto LA18_;
			enlarge__importer_3777(t);
			index = rawGetKnownHC__importer_4289((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__importer_4108(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__cgendata_397)(NI initialSize, tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* Result) {
	NI correctSizeX60gensym5_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym5_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__XN3007vuiFWlN1E7IEcusw*) newSeq((&NTIkeyvaluepairseq__XN3007vuiFWlN1E7IEcusw_), ((NI) (correctSizeX60gensym5_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__cgen_28491)(NI initialSize, tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* Result) {
	NI correctSizeX60gensym6596_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym6596_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__ElVzGEMtCZvLUQLuuVlE5A*) newSeq((&NTIkeyvaluepairseq__ElVzGEMtCZvLUQLuuVlE5A_), ((NI) (correctSizeX60gensym6596_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__cgen_28510)(NI initialSize, tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg* Result) {
	NI correctSizeX60gensym6598_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).isSorted = 0;
	correctSizeX60gensym6598_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) (correctSizeX60gensym6598_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__cgendata_301)(NI initialSize, tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q* Result) {
	NI correctSizeX60gensym3_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).isSorted = 0;
	correctSizeX60gensym3_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) (correctSizeX60gensym3_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__injectdestructors_3782)(NI initialSize, tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* Result) {
	NI correctSizeX60gensym33_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym33_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__M6nNbkJL2MtfqXbBdPxKHw*) newSeq((&NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_), ((NI) (correctSizeX60gensym33_))));
}
static N_INLINE(NI, rawGet__injectdestructors_181)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__injectdestructors_188(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___injectdestructors_430(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__injectdestructors_174)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__injectdestructors_181(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_708)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_1229)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tySequence__M6nNbkJL2MtfqXbBdPxKHw** data, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1.Field0), key.Field0);
	asgnRef((void**) (&(*data)->data[h].Field1.Field1), key.Field1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_894)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t) {
	tySequence__M6nNbkJL2MtfqXbBdPxKHw* n;
	NI T1_;
	tySequence__M6nNbkJL2MtfqXbBdPxKHw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__M6nNbkJL2MtfqXbBdPxKHw*) newSeq((&NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyTuple__Q066krdfdsSnR5DaFMOk9bQ T17_;
					tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimZeroMem((void*)(&T17_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
					T17_.Field0 = n->data[i].Field1.Field0;
					T17_.Field1 = n->data[i].Field1.Field1;
					unsureAsgnRef((void**)&n->data[i].Field1.Field0, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.Field1, NIM_NIL);
					T18_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__injectdestructors_1229(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__injectdestructors_1410)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___injectdestructors_430(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___injectdestructors_509)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym7_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym7_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__M6nNbkJL2MtfqXbBdPxKHw*) newSeq((&NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_), ((NI) (correctSizeX60gensym7_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__injectdestructors_181((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym10_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym10_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__M6nNbkJL2MtfqXbBdPxKHw*) newSeq((&NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_), ((NI) (correctSizeX60gensym10_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__injectdestructors_708((*t));
			if (!T18_) goto LA19_;
			enlarge__injectdestructors_894(t);
			index = rawGetKnownHC__injectdestructors_1410((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__injectdestructors_1229(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__injectdestructors_1802)(tyTuple__Q066krdfdsSnR5DaFMOk9bQ key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___injectdestructors_1854(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w*, X5BX5D___injectdestructors_1731)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key) {
	tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__injectdestructors_181((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__injectdestructors_1802(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__injectdestructors_4324)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__injectdestructors_118(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_4654)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_5167)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t, tySequence__VB6DBx8qy4TStAbCEq1dzg** data, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_4840)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t) {
	tySequence__VB6DBx8qy4TStAbCEq1dzg* n;
	NI T1_;
	tySequence__VB6DBx8qy4TStAbCEq1dzg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__VB6DBx8qy4TStAbCEq1dzg*) newSeq((&NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__injectdestructors_5167(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__injectdestructors_5348)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut__injectdestructors_4251)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g** result;
	NI hc;
	NI index;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym66_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym66_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__VB6DBx8qy4TStAbCEq1dzg*) newSeq((&NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_), ((NI) (correctSizeX60gensym66_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__injectdestructors_4324((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym71_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym71_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__VB6DBx8qy4TStAbCEq1dzg*) newSeq((&NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_), ((NI) (correctSizeX60gensym71_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__injectdestructors_4654((*t));
			if (!T17_) goto LA18_;
			enlarge__injectdestructors_4840(t);
			index = rawGetKnownHC__injectdestructors_5348((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__injectdestructors_5167(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_5732)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__sighashes_2181)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__modulegraphs_9001(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T15_;
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = eqeq___modulegraphs_8997(t.data->data[h].Field0, key);
				if (!T12_) goto LA13_;
				result = h;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T15_);
		} LA9: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sighashes_2160)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI default_0) {
	NI result;
	NI indexX60gensym198_;
	result = (NI)0;
	indexX60gensym198_ = rawGet__sighashes_2181(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym198_)) goto LA3_;
		result = t.data->data[indexX60gensym198_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sighashes_2312)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__sighashes_2383)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = hash__modulegraphs_9001(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T5_);
		} LA4: ;
	}
	nimCopyMem((void*)(*data)->data[h].Field0, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_2348)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg* t) {
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* n;
	NI T1_;
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* T12_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T10_;
					NI T11_;
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					nimCopyMem((void*)T10_, (NIM_CONST void*)(*t).data->data[i].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)(*t).data->data[i].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T11_ = (NI)0;
					T11_ = (*t).data->data[i].Field1;
					(*t).data->data[i].Field1 = 0;
					ctRawInsert__sighashes_2383((*t), (&n), T10_, T11_);
				}
				LA8_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T12_ = NIM_NIL;
	T12_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T12_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__sighashes_2235)(tyObject_CountTable__XawALO1wTnCsJeWBJMYZyg* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI index;
	index = rawGet__sighashes_2181((*t), key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		(*t).data->data[index].Field1 += val;
		{
			NI mskX60gensym179_;
			NI T9_;
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA7_;
			T9_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			mskX60gensym179_ = T9_;
			{
				if (!(((NI) 0) <= index)) goto LA12_;
				(*t).counter -= ((NI) 1);
				{
					{
						while (1) {
							NI jX60gensym179_;
							NI rX60gensym179_;
							jX60gensym179_ = index;
							rX60gensym179_ = jX60gensym179_;
							(*t).data->data[index].Field1 = ((NI) 0);
							nimZeroMem((void*)(*t).data->data[index].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
							(*t).data->data[index].Field1 = 0;
							{
								while (1) {
									NI T23_;
									index = (NI)((NI)(index + ((NI) 1)) & mskX60gensym179_);
									{
										if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA21_;
										goto LA14;
									}
									LA21_: ;
									T23_ = (NI)0;
									T23_ = hash__modulegraphs_9001((*t).data->data[index].Field0);
									rX60gensym179_ = (NI)(T23_ & mskX60gensym179_);
									{
										NIM_BOOL T26_;
										NIM_BOOL T27_;
										NIM_BOOL T28_;
										NIM_BOOL T31_;
										NIM_BOOL T34_;
										T26_ = (NIM_BOOL)0;
										T27_ = (NIM_BOOL)0;
										T28_ = (NIM_BOOL)0;
										T28_ = (rX60gensym179_ <= index);
										if (!(T28_)) goto LA29_;
										T28_ = (jX60gensym179_ < rX60gensym179_);
										LA29_: ;
										T27_ = T28_;
										if (T27_) goto LA30_;
										T31_ = (NIM_BOOL)0;
										T31_ = (jX60gensym179_ < rX60gensym179_);
										if (!(T31_)) goto LA32_;
										T31_ = (index < jX60gensym179_);
										LA32_: ;
										T27_ = T31_;
										LA30_: ;
										T26_ = T27_;
										if (T26_) goto LA33_;
										T34_ = (NIM_BOOL)0;
										T34_ = (index < jX60gensym179_);
										if (!(T34_)) goto LA35_;
										T34_ = (rX60gensym179_ <= index);
										LA35_: ;
										T26_ = T34_;
										LA33_: ;
										if (!!(T26_)) goto LA36_;
										goto LA17;
									}
									LA36_: ;
								}
							} LA17: ;
							(*t).data->data[jX60gensym179_] = (*t).data->data[index];
							nimZeroMem((void*)(&(*t).data->data[index]), sizeof(tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg));
						}
					}
				} LA14: ;
			}
			LA12_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!!((val == ((NI) 0)))) goto LA41_;
			{
				NI T45_;
				NI correctSizeX60gensym120_;
				T45_ = ((*t).data ? (*t).data->Sup.len : 0);
				if (!(T45_ == ((NI) 0))) goto LA46_;
				correctSizeX60gensym120_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
				(*t).counter = ((NI) 0);
				unsureAsgnRef((void**) (&(*t).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) (correctSizeX60gensym120_))));
			}
			LA46_: ;
			{
				NIM_BOOL T50_;
				T50_ = (NIM_BOOL)0;
				T50_ = mustRehash__sighashes_2312((*t));
				if (!T50_) goto LA51_;
				enlarge__sighashes_2348(t);
			}
			LA51_: ;
			ctRawInsert__sighashes_2383((*t), (&(*t).data), key, val);
			(*t).counter += ((NI) 1);
		}
		LA41_: ;
	}
	LA1_: ;
}
static N_INLINE(NI, rawGet__cgen_1459)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_9001(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ*, getOrDefault__cgen_1450)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* result;
	NI hcX60gensym153_;
	NI indexX60gensym153_;
	result = NIM_NIL;
	hcX60gensym153_ = (NI)0;
	indexX60gensym153_ = rawGet__cgen_1459(t, key, (&hcX60gensym153_));
	{
		if (!(((NI) 0) <= indexX60gensym153_)) goto LA3_;
		result = t.data->data[indexX60gensym153_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_2094)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_2611)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t, tySequence__ElVzGEMtCZvLUQLuuVlE5A** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_2280)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t) {
	tySequence__ElVzGEMtCZvLUQLuuVlE5A* n;
	NI T1_;
	tySequence__ElVzGEMtCZvLUQLuuVlE5A* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__ElVzGEMtCZvLUQLuuVlE5A*) newSeq((&NTIkeyvaluepairseq__ElVzGEMtCZvLUQLuuVlE5A_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__cgen_2611(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__cgen_2792)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___cgen_1895)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym174_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym174_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__ElVzGEMtCZvLUQLuuVlE5A*) newSeq((&NTIkeyvaluepairseq__ElVzGEMtCZvLUQLuuVlE5A_), ((NI) (correctSizeX60gensym174_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_1459((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym177_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym177_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__ElVzGEMtCZvLUQLuuVlE5A*) newSeq((&NTIkeyvaluepairseq__ElVzGEMtCZvLUQLuuVlE5A_), ((NI) (correctSizeX60gensym177_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__cgen_2094((*t));
			if (!T18_) goto LA19_;
			enlarge__cgen_2280(t);
			index = rawGetKnownHC__cgen_2792((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__cgen_2611(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__cgen_3329)(tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw*) newObj((&NTIrefkeyerror__pZq9a89chzDPcYZo9bViSdp9aQ_), sizeof(tyObject_KeyError__oKfiLNynQGoDF9bUMQFYNdw));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__oKfiLNynQGoDF9bUMQFYNdw_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___modulegraphs_8985(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ**, X5BX5D___cgen_3258)(tyObject_Table__dHMrTjFDXaK9bwjVxsGCupQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__cgen_1459((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__cgen_3329(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__cgen_851)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t, NimStringDesc* key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__pureZhashes_291(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T14_;
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				if (!eqStrings(t.data->data[h].Field0, key)) goto LA12_;
				result = h;
				goto BeforeRet_;
			}
			LA12_: ;
			T14_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T14_);
		} LA9: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__cgen_830)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t, NimStringDesc* key, NI default_0) {
	NI result;
	NI indexX60gensym198_;
	result = (NI)0;
	indexX60gensym198_ = rawGet__cgen_851(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym198_)) goto LA3_;
		result = t.data->data[indexX60gensym198_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_1020)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__cgen_1091)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	NimStringDesc* T6_;
	T1_ = (NI)0;
	T1_ = hash__pureZhashes_291(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T5_);
		} LA4: ;
	}
	T6_ = NIM_NIL;
	T6_ = (*data)->data[h].Field0; (*data)->data[h].Field0 = copyStringRC1(key);
	if (T6_) nimGCunrefNoCycle(T6_);
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_1056)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q* t) {
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* n;
	NI T1_;
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* T12_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					NimStringDesc* T10_;
					NI T11_;
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					T10_ = NIM_NIL;
					T10_ = (*t).data->data[i].Field0;
					asgnRef((void**) (&(*t).data->data[i].Field0), NIM_NIL);
					T11_ = (NI)0;
					T11_ = (*t).data->data[i].Field1;
					(*t).data->data[i].Field1 = 0;
					ctRawInsert__cgen_1091((*t), (&n), T10_, T11_);
				}
				LA8_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T12_ = NIM_NIL;
	T12_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T12_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__cgen_953)(tyObject_CountTable__QstdiKcmGEpsdJjh0p9cU7Q* t, NimStringDesc* key, NI val) {
	NI index;
	index = rawGet__cgen_851((*t), key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		(*t).data->data[index].Field1 += val;
		{
			NI mskX60gensym179_;
			NI T9_;
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA7_;
			T9_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			mskX60gensym179_ = T9_;
			{
				if (!(((NI) 0) <= index)) goto LA12_;
				(*t).counter -= ((NI) 1);
				{
					{
						while (1) {
							NI jX60gensym179_;
							NI rX60gensym179_;
							jX60gensym179_ = index;
							rX60gensym179_ = jX60gensym179_;
							(*t).data->data[index].Field1 = ((NI) 0);
							asgnRef((void**) (&(*t).data->data[index].Field0), NIM_NIL);
							(*t).data->data[index].Field1 = 0;
							{
								while (1) {
									NI T23_;
									index = (NI)((NI)(index + ((NI) 1)) & mskX60gensym179_);
									{
										if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA21_;
										goto LA14;
									}
									LA21_: ;
									T23_ = (NI)0;
									T23_ = hash__pureZhashes_291((*t).data->data[index].Field0);
									rX60gensym179_ = (NI)(T23_ & mskX60gensym179_);
									{
										NIM_BOOL T26_;
										NIM_BOOL T27_;
										NIM_BOOL T28_;
										NIM_BOOL T31_;
										NIM_BOOL T34_;
										T26_ = (NIM_BOOL)0;
										T27_ = (NIM_BOOL)0;
										T28_ = (NIM_BOOL)0;
										T28_ = (rX60gensym179_ <= index);
										if (!(T28_)) goto LA29_;
										T28_ = (jX60gensym179_ < rX60gensym179_);
										LA29_: ;
										T27_ = T28_;
										if (T27_) goto LA30_;
										T31_ = (NIM_BOOL)0;
										T31_ = (jX60gensym179_ < rX60gensym179_);
										if (!(T31_)) goto LA32_;
										T31_ = (index < jX60gensym179_);
										LA32_: ;
										T27_ = T31_;
										LA30_: ;
										T26_ = T27_;
										if (T26_) goto LA33_;
										T34_ = (NIM_BOOL)0;
										T34_ = (index < jX60gensym179_);
										if (!(T34_)) goto LA35_;
										T34_ = (rX60gensym179_ <= index);
										LA35_: ;
										T26_ = T34_;
										LA33_: ;
										if (!!(T26_)) goto LA36_;
										goto LA17;
									}
									LA36_: ;
								}
							} LA17: ;
							asgnRef((void**) (&(*t).data->data[jX60gensym179_].Field0), (*t).data->data[index].Field0);
							(*t).data->data[jX60gensym179_].Field1 = (*t).data->data[index].Field1;
							unsureAsgnRef((void**)&(*t).data->data[index].Field0, NIM_NIL);
							(*t).data->data[index].Field1 = 0;
						}
					}
				} LA14: ;
			}
			LA12_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!!((val == ((NI) 0)))) goto LA41_;
			{
				NI T45_;
				NI correctSizeX60gensym111_;
				T45_ = ((*t).data ? (*t).data->Sup.len : 0);
				if (!(T45_ == ((NI) 0))) goto LA46_;
				correctSizeX60gensym111_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
				(*t).counter = ((NI) 0);
				unsureAsgnRef((void**) (&(*t).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) (correctSizeX60gensym111_))));
			}
			LA46_: ;
			{
				NIM_BOOL T50_;
				T50_ = (NIM_BOOL)0;
				T50_ = mustRehash__cgen_1020((*t));
				if (!T50_) goto LA51_;
				enlarge__cgen_1056(t);
			}
			LA51_: ;
			ctRawInsert__cgen_1091((*t), (&(*t).data), key, val);
			(*t).counter += ((NI) 1);
		}
		LA41_: ;
	}
	LA1_: ;
}
static N_INLINE(NI, rawGet__cgen_8125)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_9001(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__cgen_8116)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__1DF4qJDR9cG0CgZV1nlkaYw* Result) {
	NI hcX60gensym785_;
	NI indexX60gensym785_;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	(*Result).Field1 = 0;
	hcX60gensym785_ = (NI)0;
	indexX60gensym785_ = rawGet__cgen_8125(t, key, (&hcX60gensym785_));
	{
		if (!(((NI) 0) <= indexX60gensym785_)) goto LA3_;
		unsureAsgnRef((void**) (&(*Result).Field0), t.data->data[indexX60gensym785_].Field2.Field0);
		(*Result).Field1 = t.data->data[indexX60gensym785_].Field2.Field1;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_8789)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_9306)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* t, tySequence__XN3007vuiFWlN1E7IEcusw** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__1DF4qJDR9cG0CgZV1nlkaYw val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2.Field0), val.Field0);
	(*data)->data[h].Field2.Field1 = val.Field1;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_8975)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* t) {
	tySequence__XN3007vuiFWlN1E7IEcusw* n;
	NI T1_;
	tySequence__XN3007vuiFWlN1E7IEcusw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__XN3007vuiFWlN1E7IEcusw*) newSeq((&NTIkeyvaluepairseq__XN3007vuiFWlN1E7IEcusw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyTuple__1DF4qJDR9cG0CgZV1nlkaYw T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)(&T18_), sizeof(tyTuple__1DF4qJDR9cG0CgZV1nlkaYw));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					unsureAsgnRef((void**)&n->data[i].Field2.Field0, NIM_NIL);
					n->data[i].Field2.Field1 = 0;
					rawInsert__cgen_9306(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__cgen_9487)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8997(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___cgen_8590)(tyObject_Table__No9aC1Wmth1NAiZioiz5fTA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__1DF4qJDR9cG0CgZV1nlkaYw val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym792_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym792_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__XN3007vuiFWlN1E7IEcusw*) newSeq((&NTIkeyvaluepairseq__XN3007vuiFWlN1E7IEcusw_), ((NI) (correctSizeX60gensym792_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_8125((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2.Field0), val.Field0);
		(*t).data->data[index].Field2.Field1 = val.Field1;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym795_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym795_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__XN3007vuiFWlN1E7IEcusw*) newSeq((&NTIkeyvaluepairseq__XN3007vuiFWlN1E7IEcusw_), ((NI) (correctSizeX60gensym795_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__cgen_8789((*t));
			if (!T18_) goto LA19_;
			enlarge__cgen_8975(t);
			index = rawGetKnownHC__cgen_9487((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__cgen_9306(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI32, getOrDefault__cgen_10112)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key) {
	NI32 result;
	NI hcX60gensym806_;
	NI indexX60gensym806_;
	result = (NI32)0;
	hcX60gensym806_ = (NI)0;
	indexX60gensym806_ = rawGet__lineinfos_452(t, key, (&hcX60gensym806_));
	{
		if (!(((NI) 0) <= indexX60gensym806_)) goto LA3_;
		result = t.data->data[indexX60gensym806_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg*, X5BX5D___modulegraphs_5743)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg key) {
	tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_5750((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3416(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__pureZjson_375)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_2583)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__pureZjson_375(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NI, rawGet__pureZjson_2664)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g**, X5BX5D___pureZjson_2657)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key) {
	tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g** result;
	NI hcX60gensym89_;
	NI indexX60gensym89_;
	result = (tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g**)0;
	hcX60gensym89_ = (NI)0;
	indexX60gensym89_ = rawGet__pureZjson_2664((&(*t)), key, (&hcX60gensym89_));
	{
		if (!(((NI) 0) <= indexX60gensym89_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym89_].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initOrderedTable__pureZjson_104)(NI initialSize, tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* Result) {
	NI correctSizeX60gensym0_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).first = 0;
	(*Result).last = 0;
	correctSizeX60gensym0_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__CZrkID0OnHjQpN63AqYJwg*) newSeq((&NTIorderedkeyvaluepairseq__CZrkID0OnHjQpN63AqYJwg_), ((NI) (correctSizeX60gensym0_))));
	(*Result).first = ((NI) -1);
	(*Result).last = ((NI) -1);
}
static N_INLINE(NIM_BOOL, mustRehash__pureZjson_711)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = ((*t).data ? (*t).data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = ((*t).data ? (*t).data->Sup.len : 0);
	T1_ = ((NI)(T4_ - (*t).counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__pureZjson_1283)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, tySequence__CZrkID0OnHjQpN63AqYJwg** data, NimStringDesc* key, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	(*data)->data[h].Field0 = hc;
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__pureZjson_872)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t) {
	tySequence__CZrkID0OnHjQpN63AqYJwg* n;
	NI T1_;
	NI h;
	tySequence__CZrkID0OnHjQpN63AqYJwg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__CZrkID0OnHjQpN63AqYJwg*) newSeq((&NTIorderedkeyvaluepairseq__CZrkID0OnHjQpN63AqYJwg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			nxt = n->data[h].Field1;
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				NimStringDesc* T15_;
				tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* T16_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled__pureZcollectionsZtables_31(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry__pureZcollectionsZtables_34(j, T14_);
					} LA12: ;
				}
				T15_ = NIM_NIL;
				T15_ = n->data[h].Field2;
				asgnRef((void**) (&n->data[h].Field2), NIM_NIL);
				T16_ = NIM_NIL;
				T16_ = n->data[h].Field3;
				asgnRef((void**) (&n->data[h].Field3), NIM_NIL);
				rawInsert__pureZjson_1283(t, (&(*t).data), T15_, T16_, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__pureZjson_1565)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*t).data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings((*t).data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pureZjson_306)(tyObject_OrderedTable__S0a9amCISWbmv4PR18G6gmQ* t, NimStringDesc* key, tyObject_JsonNodeObj__wYd81YPSGeV9aTaTIRihe3g* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym13_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym13_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__CZrkID0OnHjQpN63AqYJwg*) newSeq((&NTIorderedkeyvaluepairseq__CZrkID0OnHjQpN63AqYJwg_), ((NI) (correctSizeX60gensym13_))));
		(*t).first = ((NI) -1);
		(*t).last = ((NI) -1);
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__pureZjson_375((&(*t)), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym18_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym18_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__CZrkID0OnHjQpN63AqYJwg*) newSeq((&NTIorderedkeyvaluepairseq__CZrkID0OnHjQpN63AqYJwg_), ((NI) (correctSizeX60gensym18_))));
			(*t).first = ((NI) -1);
			(*t).last = ((NI) -1);
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__pureZjson_711((&(*t)));
			if (!T18_) goto LA19_;
			enlarge__pureZjson_872(t);
			index = rawGetKnownHC__pureZjson_1565((&(*t)), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__pureZjson_1283(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_320)(tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_766)(tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_1302)(tyObject_Table__r0v8BdcBPKhl73K8p2VMUA* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_1738)(tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_2183)(tyObject_Table__1hIWbTQWYT4BmhdESze57A* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
				(*t).data->data[i].Field2.id.module = 0;
				(*t).data->data[i].Field2.id.packed_0.module = 0;
				(*t).data->data[i].Field2.id.packed_0.item = 0;
				unsureAsgnRef((void**)&(*t).data->data[i].Field2.sym, NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
static N_INLINE(NI, rawGet__icZdce_216)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__Ll5iolPASSzOEheeSNjmiw*, X5BX5D___icZdce_1594)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t, NimStringDesc* key) {
	tyTuple__Ll5iolPASSzOEheeSNjmiw* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyTuple__Ll5iolPASSzOEheeSNjmiw*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__icZdce_216((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZdce_581)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZdce_1071)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t, tySequence__UuiPn6QjIiUTdSVwX2PZ6w** data, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZdce_740)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t) {
	tySequence__UuiPn6QjIiUTdSVwX2PZ6w* n;
	NI T1_;
	tySequence__UuiPn6QjIiUTdSVwX2PZ6w* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyTuple__Ll5iolPASSzOEheeSNjmiw T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = n->data[i].Field2;
					nimZeroMem((void*)(&n->data[i].Field2), sizeof(tyTuple__Ll5iolPASSzOEheeSNjmiw));
					rawInsert__icZdce_1071(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZdce_1252)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___icZdce_153)(tyObject_Table__84yOtwIL9aCkCL60odYiF7g* t, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym4_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym4_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) (correctSizeX60gensym4_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZdce_216((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym9_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym9_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) (correctSizeX60gensym9_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__icZdce_581((*t));
			if (!T18_) goto LA19_;
			enlarge__icZdce_740(t);
			index = rawGetKnownHC__icZdce_1252((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZdce_1071(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__main_119)(tyObject_Table__BCPh85PHtwxox9bv7NLFrlg t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrst_609)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI32, getOrDefault__packagesZdocutilsZrst_599)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI32 default_0) {
	NI32 result;
	NI hcX60gensym16_;
	NI indexX60gensym16_;
	result = (NI32)0;
	hcX60gensym16_ = (NI)0;
	indexX60gensym16_ = rawGet__packagesZdocutilsZrst_609(t, key, (&hcX60gensym16_));
	{
		if (!(((NI) 0) <= indexX60gensym16_)) goto LA3_;
		result = t.data->data[indexX60gensym16_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrst_1125)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrst_1582)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrst_1278)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t) {
	tySequence__7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	tySequence__7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__packagesZdocutilsZrst_1582(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrst_1751)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrst_952)(tyObject_Table__9cHFtxtpgztIcDsypRz9byKw* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym21_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym21_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym21_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrst_609((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym24_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym24_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym24_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrst_1125((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrst_1278(t);
			index = rawGetKnownHC__packagesZdocutilsZrst_1751((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrst_1582(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__packagesZdocutilsZrstgen_108)(NI initialSize, tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* Result) {
	NI correctSizeX60gensym0_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym0_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym0_))));
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__docgen_1191)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__docgen_1176)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__docgen_1191(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__docgen_1160)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__docgen_1176(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__docgen_1699)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = ((*t).data ? (*t).data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = ((*t).data ? (*t).data->Sup.len : 0);
	T1_ = ((NI)(T4_ - (*t).counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_2271)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, tySequence__RKPQcDl19bqs7bJVDyxdQYg** data, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	(*data)->data[h].Field0 = hc;
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_1860)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t) {
	tySequence__RKPQcDl19bqs7bJVDyxdQYg* n;
	NI T1_;
	NI h;
	tySequence__RKPQcDl19bqs7bJVDyxdQYg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__RKPQcDl19bqs7bJVDyxdQYg*) newSeq((&NTIorderedkeyvaluepairseq__RKPQcDl19bqs7bJVDyxdQYg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			nxt = n->data[h].Field1;
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				NimStringDesc* T15_;
				tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw* T16_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled__pureZcollectionsZtables_31(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry__pureZcollectionsZtables_34(j, T14_);
					} LA12: ;
				}
				T15_ = NIM_NIL;
				T15_ = n->data[h].Field2;
				asgnRef((void**) (&n->data[h].Field2), NIM_NIL);
				T16_ = NIM_NIL;
				T16_ = n->data[h].Field3;
				asgnRef((void**) (&n->data[h].Field3), NIM_NIL);
				rawInsert__docgen_2271(t, (&(*t).data), T15_, T16_, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__docgen_2553)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = ((*t).data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings((*t).data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___docgen_1518)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym129_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym129_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__RKPQcDl19bqs7bJVDyxdQYg*) newSeq((&NTIorderedkeyvaluepairseq__RKPQcDl19bqs7bJVDyxdQYg_), ((NI) (correctSizeX60gensym129_))));
		(*t).first = ((NI) -1);
		(*t).last = ((NI) -1);
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__docgen_1191((&(*t)), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym132_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym132_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__RKPQcDl19bqs7bJVDyxdQYg*) newSeq((&NTIorderedkeyvaluepairseq__RKPQcDl19bqs7bJVDyxdQYg_), ((NI) (correctSizeX60gensym132_))));
			(*t).first = ((NI) -1);
			(*t).last = ((NI) -1);
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__docgen_1699((&(*t)));
			if (!T18_) goto LA19_;
			enlarge__docgen_1860(t);
			index = rawGetKnownHC__docgen_2553((&(*t)), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__docgen_2271(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__docgen_2857)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw**, X5BX5D___docgen_2850)(tyObject_OrderedTable__uUf2ABI4SLuvVLy2s8ygdw* t, NimStringDesc* key) {
	tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw** result;
	NI hcX60gensym89_;
	NI indexX60gensym89_;
	result = (tyObject_ExampleGroupcolonObjectType___bbSjO9aaIauVHOujtpjo3Rw**)0;
	hcX60gensym89_ = (NI)0;
	indexX60gensym89_ = rawGet__docgen_2857((&(*t)), key, (&hcX60gensym89_));
	{
		if (!(((NI) 0) <= indexX60gensym89_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym89_].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__docgen_3656)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__docgen_3948)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_4405)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t, tySequence__eo8AEcZEcjOKWtrX6vLg3Q** data, NimStringDesc* key, tySequence__spLz9azjOgbpYKrtmm9aMHEw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtocitemT__spLz9azjOgbpYKrtmm9aMHEw_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_4101)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t) {
	tySequence__eo8AEcZEcjOKWtrX6vLg3Q* n;
	NI T1_;
	tySequence__eo8AEcZEcjOKWtrX6vLg3Q* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__eo8AEcZEcjOKWtrX6vLg3Q*) newSeq((&NTIkeyvaluepairseq__eo8AEcZEcjOKWtrX6vLg3Q_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tySequence__spLz9azjOgbpYKrtmm9aMHEw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__docgen_4405(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__docgen_4574)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__spLz9azjOgbpYKrtmm9aMHEw**, mgetOrPut__docgen_3594)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t, NimStringDesc* key, tySequence__spLz9azjOgbpYKrtmm9aMHEw* val) {
	tySequence__spLz9azjOgbpYKrtmm9aMHEw** result;
	NI hc;
	NI index;
	result = (tySequence__spLz9azjOgbpYKrtmm9aMHEw**)0;
	{
		NI T3_;
		NI correctSizeX60gensym206_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym206_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__eo8AEcZEcjOKWtrX6vLg3Q*) newSeq((&NTIkeyvaluepairseq__eo8AEcZEcjOKWtrX6vLg3Q_), ((NI) (correctSizeX60gensym206_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__docgen_3656((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym211_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym211_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__eo8AEcZEcjOKWtrX6vLg3Q*) newSeq((&NTIkeyvaluepairseq__eo8AEcZEcjOKWtrX6vLg3Q_), ((NI) (correctSizeX60gensym211_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__docgen_3948((*t));
			if (!T17_) goto LA18_;
			enlarge__docgen_4101(t);
			index = rawGetKnownHC__docgen_4574((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__docgen_4405(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_426)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_291(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__packagesZdocutilsZrstgen_419)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__packagesZdocutilsZrstgen_426(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_1004)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_1457)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_1157)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* t) {
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* n;
	NI T1_;
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__packagesZdocutilsZrstgen_1457(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_1626)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrstgen_831)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ* t, NimStringDesc* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym20_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym20_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym20_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrstgen_426((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym23_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym23_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym23_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrstgen_1004((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrstgen_1157(t);
			index = rawGetKnownHC__packagesZdocutilsZrstgen_1626((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrstgen_1457(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__packagesZdocutilsZrstgen_727)(tyObject_Table__NKkg36PLm9cXyIIgbxq1hGQ t, NimStringDesc* key) {
	NI result;
	NI hcX60gensym17_;
	NI indexX60gensym17_;
	result = (NI)0;
	hcX60gensym17_ = (NI)0;
	indexX60gensym17_ = rawGet__packagesZdocutilsZrstgen_426(t, key, (&hcX60gensym17_));
	{
		if (!(((NI) 0) <= indexX60gensym17_)) goto LA3_;
		result = t.data->data[indexX60gensym17_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__docgen_6535)(tyObject_Table__IzudB87pHlXWFsowpECF3Q t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__spLz9azjOgbpYKrtmm9aMHEw**, X5BX5D___docgen_6805)(tyObject_Table__IzudB87pHlXWFsowpECF3Q* t, NimStringDesc* key) {
	tySequence__spLz9azjOgbpYKrtmm9aMHEw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__spLz9azjOgbpYKrtmm9aMHEw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__docgen_3656((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__docgen_5888)(tyObject_Table__IARuioJxsgUIwpXiUkOgKg t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__packagesZdocutilsZrstgen_6729)(NI initialSize, tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* Result) {
	NI correctSizeX60gensym81_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym81_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__mQGg5S79bnlEvqSZ53aiYNQ*) newSeq((&NTIkeyvaluepairseq__mQGg5S79bnlEvqSZ53aiYNQ_), ((NI) (correctSizeX60gensym81_))));
}
N_LIB_PRIVATE N_NIMCALL(NI, len__packagesZdocutilsZrstgen_5651)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_6273)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__packagesZdocutilsZrstgen_1999(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___packagesZdocutilsZrstgen_6491((&t.data->data[h].Field1), key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_7062)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_7523)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* t, tySequence__mQGg5S79bnlEvqSZ53aiYNQ** data, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, tySequence__hf5PiuqqytWiEcddgIR5sQ* val, NI hc, NI h) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1((*key).keyword);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = NIM_NIL;
	T2_ = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1((*key).link);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = NIM_NIL;
	T3_ = (*data)->data[h].Field1.linkTitle; (*data)->data[h].Field1.linkTitle = copyStringRC1((*key).linkTitle);
	if (T3_) nimGCunrefNoCycle(T3_);
	T4_ = NIM_NIL;
	T4_ = (*data)->data[h].Field1.linkDesc; (*data)->data[h].Field1.linkDesc = copyStringRC1((*key).linkDesc);
	if (T4_) nimGCunrefNoCycle(T4_);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLindexentryT__hf5PiuqqytWiEcddgIR5sQ_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_7215)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* t) {
	tySequence__mQGg5S79bnlEvqSZ53aiYNQ* n;
	NI T1_;
	tySequence__mQGg5S79bnlEvqSZ53aiYNQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__mQGg5S79bnlEvqSZ53aiYNQ*) newSeq((&NTIkeyvaluepairseq__mQGg5S79bnlEvqSZ53aiYNQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA T17_;
					tySequence__hf5PiuqqytWiEcddgIR5sQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimZeroMem((void*)(&T17_), sizeof(tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA));
					T17_.keyword = n->data[i].Field1.keyword;
					T17_.link = n->data[i].Field1.link;
					T17_.linkTitle = n->data[i].Field1.linkTitle;
					T17_.linkDesc = n->data[i].Field1.linkDesc;
					unsureAsgnRef((void**)&n->data[i].Field1.keyword, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.link, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.linkTitle, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.linkDesc, NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__packagesZdocutilsZrstgen_7523(t, (&(*t).data), (&T17_), T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_7692)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw t, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___packagesZdocutilsZrstgen_6491((&t.data->data[h].Field1), key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrstgen_6889)(tyObject_Table__0eDcTDUP9ap4EVATy5ptGQw* t, tyObject_IndexEntry__1q6h3V1uWiazOcEBnOLqyA* key, tySequence__hf5PiuqqytWiEcddgIR5sQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym91_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym91_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__mQGg5S79bnlEvqSZ53aiYNQ*) newSeq((&NTIkeyvaluepairseq__mQGg5S79bnlEvqSZ53aiYNQ_), ((NI) (correctSizeX60gensym91_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrstgen_6273((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTIseqLindexentryT__hf5PiuqqytWiEcddgIR5sQ_));
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym94_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym94_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__mQGg5S79bnlEvqSZ53aiYNQ*) newSeq((&NTIkeyvaluepairseq__mQGg5S79bnlEvqSZ53aiYNQ_), ((NI) (correctSizeX60gensym94_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrstgen_7062((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrstgen_7215(t);
			index = rawGetKnownHC__packagesZdocutilsZrstgen_7692((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrstgen_7523(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__vmprofiler_758)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t) {
	NI result;
	result = (NI)0;
	result = (*t).counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1131)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__options_873((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
					nimZeroMem((void*)(&(*t).data->data[i].Field2), sizeof(tyObject_ProfileInfo__xU9aXXjWWQtDqNY2yZecQYw));
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_] = (*t).data->data[i];
					nimZeroMem((void*)(&(*t).data->data[i]), sizeof(tyTuple__tqJ79cmISx6IHad2jnF54pA));
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1033)(tyObject_Table__aP9cMXsPundL60Bltc8zw8Q* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw key) {
	del__vmprofiler_1131(t, key);
}
