/* 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_TCtx__CRPlhL1hATwZc5hefTGOQQ tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tySequence__YdLNCDKYeipzJx3I8Xw82Q tySequence__YdLNCDKYeipzJx3I8Xw82Q;
typedef struct tySequence__Gl8s23LA3EFz4kIlya9ameg tySequence__Gl8s23LA3EFz4kIlya9ameg;
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tySequence__eJWcQvhuN2q0rM6THoByqQ tySequence__eJWcQvhuN2q0rM6THoByqQ;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw;
typedef struct tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ;
typedef struct tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
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_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 tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tySequence__wOOG2VKbTPdEdoo59cOatCw tySequence__wOOG2VKbTPdEdoo59cOatCw;
typedef struct tySequence__UyAyNhiI7poI9amqn9aUHktQ tySequence__UyAyNhiI7poI9amqn9aUHktQ;
typedef struct tyTuple__VJYnlz9ax09cmmFsZGV9axIWg tyTuple__VJYnlz9ax09cmmFsZGV9axIWg;
typedef struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA;
typedef struct tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA;
typedef struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA;
typedef struct tySequence__mIo9bZUsotCEUUtEGNhYmaA tySequence__mIo9bZUsotCEUUtEGNhYmaA;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ tySequence__8rKxBHaz7QqNR9a4WIZqqqQ;
typedef struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__KLItBKQec3LJzPmfiYYfQA tySequence__KLItBKQec3LJzPmfiYYfQA;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg;
typedef struct tySequence__RNhZxf20g9beyq5VBOGxhDg tySequence__RNhZxf20g9beyq5VBOGxhDg;
typedef struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ;
typedef struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ tySequence__lFbCtu5P2Kf7YDYtGjkxAQ;
typedef struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA;
typedef struct tySequence__ijtae5OneaLys0hN9alAicA tySequence__ijtae5OneaLys0hN9alAicA;
typedef struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w;
typedef struct tySequence__SerjNoUujW2dUouVBrJiCw tySequence__SerjNoUujW2dUouVBrJiCw;
typedef struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyObject_Table__r0v8BdcBPKhl73K8p2VMUA;
typedef struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g tySequence__K9agbtcb0qPZuSJFXB9cTe6g;
typedef struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg;
typedef struct tySequence__m88qdML9cQOuqGAQn6XWL1A tySequence__m88qdML9cQOuqGAQn6XWL1A;
typedef struct tyObject_Table__1hIWbTQWYT4BmhdESze57A tyObject_Table__1hIWbTQWYT4BmhdESze57A;
typedef struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ tySequence__naEbXEp9b9aiW1zXJorqf9cXQ;
typedef struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA;
typedef struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw;
typedef struct tySequence__ed0C0uAUZPhvw3RAc5hfYg tySequence__ed0C0uAUZPhvw3RAc5hfYg;
typedef struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw;
typedef struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg;
typedef struct tySequence__q9cq1Li6c1nMjHpacEbCj0g tySequence__q9cq1Li6c1nMjHpacEbCj0g;
typedef struct tyObject_Table__imojfg883tkWsWJwyshGqQ tyObject_Table__imojfg883tkWsWJwyshGqQ;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg tyObject_Table__BCPh85PHtwxox9bv7NLFrlg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA;
typedef struct tySequence__KgiZ29chkJAD01p9aLRB32qw tySequence__KgiZ29chkJAD01p9aLRB32qw;
typedef struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A tyObject_Table__LM44poVdVEn4Mo4N4L8c3A;
typedef struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw tySequence__rkYRZrbHVYL3nhXlQW3K9bw;
typedef struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ tySequence__IRFEb1e9bxgbJLuB5xrdZsQ;
typedef struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ;
typedef struct tySequence__YmPd0eWfcTfrVYrthlXPYA tySequence__YmPd0eWfcTfrVYrthlXPYA;
typedef struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q;
typedef struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg tySequence__Hz5SYwQU29b9aFLt09blvVQPg;
typedef struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg tyObject_Table__R7JnJQEipxxOlJWXQz7jWg;
typedef struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ tySequence__3G9aA9cLXaPxuRxMKm3anacQ;
typedef struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q tySequence__bPFv6ypvvCX2A9a9al8utL2Q;
typedef struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg;
typedef struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ;
typedef struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA;
typedef struct tyTuple__5pg9aIYdyrJM6GlDgyTDumg tyTuple__5pg9aIYdyrJM6GlDgyTDumg;
typedef struct tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ;
typedef struct tyTuple__0y4YQo9b9byJ83c0H89bBtdRw tyTuple__0y4YQo9b9byJ83c0H89bBtdRw;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
typedef struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ;
typedef struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g tySequence__qeAsXh2i1GAL5Nl0g3OP8g;
typedef struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg;
typedef struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg;
typedef struct tySequence__4Murtwnm0Fyc7F9acrytEXw tySequence__4Murtwnm0Fyc7F9acrytEXw;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw;
typedef struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg tySequence__QnmOtn1Iv4LvxOXoMn8Rbg;
typedef struct tySequence__oKtVqsc9bQVCNyrijELM4OQ tySequence__oKtVqsc9bQVCNyrijELM4OQ;
typedef struct tySequence__qy6Iwdy00wN560qud54HTg tySequence__qy6Iwdy00wN560qud54HTg;
typedef struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ tySequence__k67v9bwvvQDmS1ynyGGUbeQ;
typedef struct tySequence__cLsClAAfd0MKkoBQVyvdvw tySequence__cLsClAAfd0MKkoBQVyvdvw;
typedef struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg tySequence__q9bTuOB0JXh1iZ3CSGdRLbg;
typedef struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw;
typedef struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ;
typedef struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ;
typedef struct tySequence__C3r8jsj9chA4sIlYfDN5aDw tySequence__C3r8jsj9chA4sIlYfDN5aDw;
typedef struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ;
typedef struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg tyTuple__UluY8x0Nj6cp9b0o88wJ0lg;
typedef struct tySequence__dlD6tEGzYLLpKVq3XwuFlA tySequence__dlD6tEGzYLLpKVq3XwuFlA;
typedef struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tyTuple__rZZA0skon1OsHdiEvT8RZQ tyTuple__rZZA0skon1OsHdiEvT8RZQ;
typedef struct tySequence__6OFCSvqRaxyEgUqWtnZSlw tySequence__6OFCSvqRaxyEgUqWtnZSlw;
typedef struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA tyTuple__q13Zt16VkCqu6Zg5jWqwHA;
typedef struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA tyTuple__aWN9bNzF9bubXNJV9ciomgpfA;
typedef struct tySequence__m4PVWjcAAjfxlwJxLkKn8A tySequence__m4PVWjcAAjfxlwJxLkKn8A;
typedef struct tyTuple__RWXAsQlFoGYyEQZp1G65sg tyTuple__RWXAsQlFoGYyEQZp1G65sg;
typedef struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg;
typedef struct tyTuple__RmGJuqOgEaHckHndh0LEsw tyTuple__RmGJuqOgEaHckHndh0LEsw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__J4cxakKjhKxTIJR9bojMmXw tyTuple__J4cxakKjhKxTIJR9bojMmXw;
typedef struct tySequence__i89c5kdtWKzK3OEiI81pkkw tySequence__i89c5kdtWKzK3OEiI81pkkw;
typedef struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A;
typedef struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyTuple__a7QginWFapakKbWJBJ2vfA tyTuple__a7QginWFapakKbWJBJ2vfA;
typedef struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__kbX6x85REySUrk9auORL0vw tyTuple__kbX6x85REySUrk9auORL0vw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g;
typedef struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q;
typedef struct tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A;
typedef struct tyTuple__nF9cH4hinXgGEUwO4G2bshw tyTuple__nF9cH4hinXgGEUwO4G2bshw;
typedef struct tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA;
typedef struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__PsEhl3dzznmmJiLAuIXZOg tyTuple__PsEhl3dzznmmJiLAuIXZOg;
typedef struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w;
typedef struct tyTuple__Db8CrQifKGIsKc3w71w7Lw tyTuple__Db8CrQifKGIsKc3w71w7Lw;
typedef struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ;
typedef struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw tyTuple__FEYH9alRJhHD0uTKF2vnIqw;
typedef struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA;
typedef struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA;
typedef struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw;
typedef struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg tyTuple__VUJ5Hjm4tKAResBsRHJvYg;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
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;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw {
  RootObj Sup;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
typedef NU8 tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ;
typedef NU8 tySet_tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw {
NF tEnter;
tyObject_TStackFrame__0GloFoQJxIWYG3W9cguBcAQ* tos;
};
struct tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ {
  tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw Sup;
tySequence__YdLNCDKYeipzJx3I8Xw82Q* code;
tySequence__Gl8s23LA3EFz4kIlya9ameg* debug;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* globals;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constants;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentExceptionA;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentExceptionB;
NI exceptionInstr;
tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* prc;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* callsite;
tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ mode;
tySet_tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA features;
NIM_BOOL traceActive;
NI loopIterations;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw comesFromHeuristic;
tySequence__eJWcQvhuN2q0rM6THoByqQ* callbacks;
NimStringDesc* errorFlag;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph;
NI oldErrorCount;
tyObject_Profiler__vPk6nUD8QeNW2bHH4WZfpw profiler;
NI* templInstCounter;
tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g* vmstateDiff;
tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg procToCodePos;
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
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;
};
typedef NU8 tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ;
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
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;
};
typedef NU8 tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
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;
};
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
struct tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw {
tySequence__wOOG2VKbTPdEdoo59cOatCw* blocks;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tySequence__UyAyNhiI7poI9amqn9aUHktQ* regInfo;
};
typedef NU8 tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA;
struct tyTuple__VJYnlz9ax09cmmFsZGV9axIWg {
NIM_BOOL Field0;
tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA Field1;
};
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;
};
typedef NU8 tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
typedef NU8 tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ;
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ;
typedef NU8 tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw;
struct tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA {
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ targetCPU;
tyEnum_TSystemCPU__bwO2H8lhMFycb5BeZf6MFQ hostCPU;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw targetOS;
tyEnum_TSystemOS__Vz6QOcCh9a6xfgXqmx3OBpw hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ errorOutputs;
tySequence__mIo9bZUsotCEUUtEGNhYmaA* msgContext;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastError;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw filenameToIndexTbl;
tySequence__8rKxBHaz7QqNR9a4WIZqqqQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w;
typedef NU8 tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q;
typedef NU8 tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg;
struct tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU8 tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g;
typedef NU8 tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU8 tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA[12];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* result, void* ClE_0);
void* ClE_0;
} tyProc__Ox1WDSaSyO73VnvAC2a4UA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* msg, tyEnum_Severity__ai6Qt9bTOrsyOxOrlIkRHUg severity, void* ClE_0);
void* ClE_0;
} tyProc__2bM7rNPFiQD9bOvwFI49bKLQ;
struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyObject_Target__tpQT7iEuCtUPNwog9cc3VgA target;
NI linesCompiled;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* macrosToExpand;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* arcToExpand;
tyObject_MsgConfig__whxq1VkHUSUyso71rqeLKA m;
tyEnum_FilenameOption__CPbjHbMoELnjs1sUwb4U6w filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__9bV9cjzU2RVpin7yQI1gAZgg cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_ExceptionSystem__B9agvczdQhYbOz39atZ7Ap3Q exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__qvBr4umnK8GxeSOSEgbmLg symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__LVIAeIp9cp9c81do0NZpv6Sw cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw features;
tySet_tyEnum_LegacyFeature__YfzcW9bRC8xGYaRkFXliJ2g legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__p9ct5yRAwVUwh1wTpKTgABg ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA modifiedyNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA cmdlineNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA foreignPackageNotes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA notes;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA warningAsErrors;
tySet_tyEnum_TMsgKind__rb52wmU1YxCKdMrEGfD9boA mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* configVars;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* symbols;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* packageCache;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
NimStringDesc* outFile;
NimStringDesc* outDir;
NimStringDesc* jsonBuildFile;
NimStringDesc* prefixDir;
NimStringDesc* libpath;
NimStringDesc* nimcacheDir;
tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* dllOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* moduleOverrides;
tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__iRAzj081qUCWECwmGroJoA lastMsgWasDot;
NI32 projectMainIdx;
NI32 projectMainIdx2;
NimStringDesc* command;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
NimStringDesc* commandLine;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
NIM_BOOL keepComments;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
NimStringDesc* docSeeSrcUrl;
NimStringDesc* docRoot;
NimStringDesc* docCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
NimStringDesc* linkOptionsCmd;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
NimStringDesc* linkOptions;
NimStringDesc* compileOptions;
NimStringDesc* cCompilerPath;
tySequence__KLItBKQec3LJzPmfiYYfQA* toCompile;
tyProc__Ox1WDSaSyO73VnvAC2a4UA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__2bM7rNPFiQD9bOvwFI49bKLQ structuredErrorHook;
NimStringDesc* cppCustomNamespace;
NimStringDesc* nimMainPrefix;
tyObject_ProfileDatacolonObjectType___EiZfxxvPWlUmMsSkx8Qffg* vmProfileData;
NIM_BOOL expandProgress;
NI expandLevels;
NimStringDesc* expandNodeResult;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw expandPosition;
};
typedef NU8 tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw;
typedef NU16 tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA;
struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA {
tySequence__ijtae5OneaLys0hN9alAicA* data;
NI counter;
};
struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w {
tySequence__SerjNoUujW2dUouVBrJiCw* data;
NI counter;
};
struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA {
tySequence__K9agbtcb0qPZuSJFXB9cTe6g* data;
NI counter;
};
typedef tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyArray__46hjIasL27aUz9c7kgtWooQ[5];
struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg {
tySequence__m88qdML9cQOuqGAQn6XWL1A* data;
NI counter;
};
struct tyObject_Table__1hIWbTQWYT4BmhdESze57A {
tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* data;
NI counter;
};
struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
};
struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw {
NI counter;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* data;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* head;
tySequence__q9cq1Li6c1nMjHpacEbCj0g* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table__imojfg883tkWsWJwyshGqQ {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA {
tySequence__KgiZ29chkJAD01p9aLRB32qw* data;
NI counter;
};
struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A {
tySequence__rkYRZrbHVYL3nhXlQW3K9bw* data;
NI counter;
};
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg[65];
struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ {
tySequence__YmPd0eWfcTfrVYrthlXPYA* data;
NI counter;
};
struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, tyProc__I6rzVhdiYtUh7jwWJQoeyw) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__EQOAUyRkp9c3eeiGlHvCThA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q {
tySequence__Hz5SYwQU29b9aFLt09blvVQPg* data;
NI counter;
};
struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg {
tySequence__3G9aA9cLXaPxuRxMKm3anacQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__1CO5eEh25fBKUWGagpikwg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
typedef N_NIMCALL_PTR(void, tyProc__VcUg5jOhttLagdxUmVN8Tg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__XOkru1xuh2bHzmkw1UYzLA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual);
struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opNot;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opContains;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLe;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLt;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAnd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opOr;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opIsNil;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opEq;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAdd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opSub;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opMul;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opDiv;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg {
tySequence__RNhZxf20g9beyq5VBOGxhDg* ifaces;
tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ* packed_0;
tySequence__lFbCtu5P2Kf7YDYtGjkxAQ* encoders;
tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA typeInstCache;
tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w procInstCache;
tyArray__46hjIasL27aUz9c7kgtWooQ attachedOps;
tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg methodsPerType;
tyObject_Table__1hIWbTQWYT4BmhdESze57A enumToStringProcs;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw emittedTypeInfo;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA startupPackedConfig;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw deps;
tyObject_Table__imojfg883tkWsWJwyshGqQ importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__BCPh85PHtwxox9bv7NLFrlg inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* usageSym;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* owners;
tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA suggestSymbols;
tyObject_Table__LM44poVdVEn4Mo4N4L8c3A suggestErrors;
tySequence__IRFEb1e9bxgbJLuB5xrdZsQ* methods;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* systemModule;
tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg sysTypes;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw compilerprocs;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw exposed;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageTypes;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* emptyNode;
tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ canonTypes;
tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw symBodyHashes;
tyProc__I6rzVhdiYtUh7jwWJQoeyw importModuleCallback;
tyProc__EQOAUyRkp9c3eeiGlHvCThA includeFileCallback;
tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q cacheSeqs;
tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g cacheCounters;
tyObject_Table__R7JnJQEipxxOlJWXQz7jWg cacheTables;
tySequence__bPFv6ypvvCX2A9a9al8utL2Q* passes;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinition;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinitionResolveForward;
tyProc__1CO5eEh25fBKUWGagpikwg onUsage;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* globalDestructors;
tyProc__VcUg5jOhttLagdxUmVN8Tg strongSemCheck;
tyProc__XOkru1xuh2bHzmkw1UYzLA compatibleProps;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg operators;
};
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
typedef NU8 tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg[9];
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
typedef NU8 tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA* args, void* ClE_0);
void* ClE_0;
} tyProc__vkuGXw0bPP9b9cpazTHQY9bqg;
struct tyTuple__5pg9aIYdyrJM6GlDgyTDumg {
NimStringDesc* Field0;
tyProc__vkuGXw0bPP9b9cpazTHQY9bqg Field1;
};
typedef NU8 tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q;
struct tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw {
  RootObj Sup;
NI colonstate_;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t21;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* targ22;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n3;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg4;
};
typedef N_CLOSURE_PTR(NIM_BOOL, TM__oYO8oEb9aAFcVmMqh9adT1hQ_55) (void);
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
struct tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* label;
tySequence__qwqHTkRvwhrRyENtudHQ7g* fixups;
};
typedef NU8 tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA;
struct tyTuple__0y4YQo9b9byJ83c0H89bBtdRw {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedName;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA;
struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__S5Qo9byZG8QnIQnJQ0ZDWrA flags;
NimStringDesc* customArgs;
};
struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* converters;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* patterns;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* pureEnums;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interf;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interfHidden;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg;
struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg {
tySequence__4Murtwnm0Fyc7F9acrytEXw* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ;
struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg toReplay;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg topLevel;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__QnmOtn1Iv4LvxOXoMn8Rbg* macroUsages;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* typeInstCache;
tySequence__qy6Iwdy00wN560qud54HTg* procInstCache;
tySequence__k67v9bwvvQDmS1ynyGGUbeQ* attachedOps;
tySequence__cLsClAAfd0MKkoBQVyvdvw* methodsPerType;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ backendFlags;
tySequence__q9bTuOB0JXh1iZ3CSGdRLbg* syms;
tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw* types;
tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ strings;
tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw numbers;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA cfg;
};
struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ {
tySequence__C3r8jsj9chA4sIlYfDN5aDw* data;
NI counter;
};
struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg {
tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag fromDisk;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* syms;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ iface;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ ifaceHidden;
};
struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ filenames;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* pendingTypes;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* pendingSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw typeMarker;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw symMarker;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 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 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 tyTuple__rZZA0skon1OsHdiEvT8RZQ {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__6OFCSvqRaxyEgUqWtnZSlw* Field2;
};
struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
};
struct tyTuple__RWXAsQlFoGYyEQZp1G65sg {
NI Field0;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field1;
};
struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__m4PVWjcAAjfxlwJxLkKn8A* Field2;
};
struct tyTuple__RmGJuqOgEaHckHndh0LEsw {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
};
struct tyTuple__J4cxakKjhKxTIJR9bojMmXw {
NI Field0;
NI32 Field1;
tySequence__i89c5kdtWKzK3OEiI81pkkw* Field2;
};
struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ {
NI Field0;
NI32 Field1;
tySequence__GR8qmV1kNRcoQ2g76VFy3A* Field2;
};
struct tyTuple__a7QginWFapakKbWJBJ2vfA {
tySequence__ed0C0uAUZPhvw3RAc5hfYg* Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__kbX6x85REySUrk9auORL0vw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q {
tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A* root;
NI entries;
};
struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw*, tyProc__kqPx9c4py2HW6KcFMhNvxtg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__9c6qRjwy7Es8UkDTIUwAfFA) (tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__mv4BsRs5VEnhcxzV6pQU5w) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
struct tyTuple__nF9cH4hinXgGEUwO4G2bshw {
tyProc__kqPx9c4py2HW6KcFMhNvxtg Field0;
tyProc__9c6qRjwy7Es8UkDTIUwAfFA Field1;
tyProc__mv4BsRs5VEnhcxzV6pQU5w Field2;
NIM_BOOL Field3;
};
struct tyObject_VmArgs__pcDb3SOJLe7g9bzr1B27LMA {
NI ra;
NI rb;
NI rc;
tyObject_TFullReg__5wJdjCgIXFtQUOFYtApLgA* slots;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* currentException;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw currentLineInfo;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
NI32 operand;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeId_0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__PsEhl3dzznmmJiLAuIXZOg {
NU32 Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA Field1;
};
struct tyTuple__Db8CrQifKGIsKc3w71w7Lw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ key;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* concreteTypes;
};
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ {
tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
NI Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
typedef NU8 tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ;
struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA {
tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA {
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
NU32 name;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typ;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
NI32 ast;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw locFlags;
tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA annex;
NI32 constraint;
};
struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* types;
NI32 n;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg {
NI Field0;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* Field1;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__YdLNCDKYeipzJx3I8Xw82Q {
  TGenericSeq Sup;
  NU64 data[SEQ_DECL_SIZE];
};
struct tySequence__Gl8s23LA3EFz4kIlya9ameg {
  TGenericSeq Sup;
  tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw data[SEQ_DECL_SIZE];
};
struct tySequence__UyAyNhiI7poI9amqn9aUHktQ {
  TGenericSeq Sup;
  tyTuple__VJYnlz9ax09cmmFsZGV9axIWg data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__wOOG2VKbTPdEdoo59cOatCw {
  TGenericSeq Sup;
  tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ data[SEQ_DECL_SIZE];
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  TGenericSeq Sup;
  tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
};
struct tySequence__eJWcQvhuN2q0rM6THoByqQ {
  TGenericSeq Sup;
  tyTuple__5pg9aIYdyrJM6GlDgyTDumg data[SEQ_DECL_SIZE];
};
struct tySequence__ztPIC2M9bqhs0KjYuE9c9cN8g {
  TGenericSeq Sup;
  tyTuple__0y4YQo9b9byJ83c0H89bBtdRw data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__8rKxBHaz7QqNR9a4WIZqqqQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w data[SEQ_DECL_SIZE];
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  TGenericSeq Sup;
  tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw data[SEQ_DECL_SIZE];
};
struct tySequence__RNhZxf20g9beyq5VBOGxhDg {
  TGenericSeq Sup;
  tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ data[SEQ_DECL_SIZE];
};
struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ {
  TGenericSeq Sup;
  tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg data[SEQ_DECL_SIZE];
};
struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ {
  TGenericSeq Sup;
  tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ 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__K9agbtcb0qPZuSJFXB9cTe6g {
  TGenericSeq Sup;
  tyTuple__q13Zt16VkCqu6Zg5jWqwHA 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__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* 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__IRFEb1e9bxgbJLuB5xrdZsQ {
  TGenericSeq Sup;
  tyTuple__a7QginWFapakKbWJBJ2vfA 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__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__bPFv6ypvvCX2A9a9al8utL2Q {
  TGenericSeq Sup;
  tyTuple__nF9cH4hinXgGEUwO4G2bshw data[SEQ_DECL_SIZE];
};
struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g {
  TGenericSeq Sup;
  tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__4Murtwnm0Fyc7F9acrytEXw {
  TGenericSeq Sup;
  tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw {
  TGenericSeq Sup;
  tyTuple__PsEhl3dzznmmJiLAuIXZOg data[SEQ_DECL_SIZE];
};
struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg {
  TGenericSeq Sup;
  tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w data[SEQ_DECL_SIZE];
};
struct tySequence__oKtVqsc9bQVCNyrijELM4OQ {
  TGenericSeq Sup;
  tyTuple__Db8CrQifKGIsKc3w71w7Lw data[SEQ_DECL_SIZE];
};
struct tySequence__qy6Iwdy00wN560qud54HTg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg data[SEQ_DECL_SIZE];
};
struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ {
  TGenericSeq Sup;
  tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ data[SEQ_DECL_SIZE];
};
struct tySequence__cLsClAAfd0MKkoBQVyvdvw {
  TGenericSeq Sup;
  tyTuple__FEYH9alRJhHD0uTKF2vnIqw data[SEQ_DECL_SIZE];
};
struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg {
  TGenericSeq Sup;
  tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA data[SEQ_DECL_SIZE];
};
struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw {
  TGenericSeq Sup;
  tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 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__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__vmgen_3672)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg t, NI key);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
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, X5BX5Deq___importer_2265)(tyObject_Table__7ACYz5IhOEwzTBvwo6BO9bg* t, NI key, NI val);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformBody__transf_16)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* prc, NIM_BOOL cache);
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4684)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__vmgen_399)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a);
N_LIB_PRIVATE N_NIMCALL(void, gABx__vmgen_376)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI bx);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, genParams__vmgen_3393)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4628)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isGenericParams__ast_4617)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__vmgen_3436)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gp);
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_708)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_688)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__vmgen_2323)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, importcCondVar__vmgen_2312)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__vmgen_2289)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b);
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__vmgen_2286)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
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*, renderTree__renderer_46)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__vmgen_2522)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
static N_INLINE(NIM_BOOL, importcCond__vmgen_2485)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyBody__vmgen_2469)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getBody__modulegraphs_13094)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, loadProcBody__icZic_8386)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ** g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, importcSym__vmgen_2497)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__vmgen_2505)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getNullValue__vmgen_2501)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypes__ast_3723)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeIT__ast_3342)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__vmgen_2779)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI* currPosition);
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lastSon__ast_4833)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2116)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, toInt__int495056_273)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, lengthOrd__types_1723)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, elemType__types_263)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__vmgen_542)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tt);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, skipTypesOrNil__ast_4173)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kinds);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA, getSlotKind__vmgen_452)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__vmgen_480)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA k, NI start);
N_LIB_PRIVATE N_NIMCALL(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, bestEffort__vmgen_469)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, astdef__ast_3462)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NI, genx__vmgen_713)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__vmgen_2366)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, gABC__vmgen_313)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI b, NI c);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ, whichAsgnOpc__vmgen_1855)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__vmgen_551)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI r);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__vmgen_1823)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, setSlot__vmgen_2279)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v);
static N_INLINE(NimStringDesc*, toFileLineCol__msgs_625)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1441)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__vmgen_2270)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__vmgen_3188)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__vmgen_3142)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ*, nsuSplitChar)(NimStringDesc* s, NIM_CHAR sep, NI maxsplit);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NimStringDesc*, X5BX5D___vmgen_3160)(NimStringDesc** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
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);
N_LIB_PRIVATE N_NIMCALL(void, genLit__vmgen_1201)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__vmgen_1015)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__vmgen_971)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__vmgen_948)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, dontInlineConstant__trees_420)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cnst);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3711)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal);
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__vmgen_2464)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NI* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNode__ast_3289)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__vmgen_1867)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__vmgen_938)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__vmgen_930)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_693)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, patch__vmgen_435)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__vmgen_1597)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__vmgen_1567)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, gABI__vmgen_348)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI b, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__vmgen_1414)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__vmgen_1436)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(NI64, getSize__types_3388)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
static N_INLINE(void, unused__vmgen_1028)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI x);
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__vmgen_1323)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, NI value);
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__vmgen_1307)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arr);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ, firstOrd__types_1406)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_425)(tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ a, tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ b);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__vmgen_1318)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(NI, genField__vmgen_1290)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, genFieldDefect__astmsgs_61)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NimStringDesc* field, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* disc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStrNode__ast_3805)(NimStringDesc* strVal, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, genCall__vmgen_1206)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__vmgen_560)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, NI n, tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA kind);
N_LIB_PRIVATE N_NIMCALL(NI, genType__vmgen_1090)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1886)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* a, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b, tySet_tyEnum_TTypeCmpFlag__IRq9bqtrf9ctEUyeRMyvWy4Q flags);
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__vmgen_627)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI start, NI n);
N_LIB_PRIVATE N_NIMCALL(void, genNew__vmgen_1359)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__vmgen_1271)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__vmgen_1373)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__vmgen_1388)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__vmgen_1399)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__vmgen_1406)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI64 imm);
N_LIB_PRIVATE N_NIMCALL(void, genSetType__vmgen_1490)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genCard__vmgen_1630)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__vmgen_1480)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__vmgen_1462)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__vmgen_1485)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genConv__vmgen_1611)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__5gfb7QBO5jquZp7sfhoLnQ)(void* p, NI op);
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, implicitConv__vmgen_1619)(void* ClE_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameBackendType__types_689)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* x, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* y);
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__vmgen_1503)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__vmgen_1542)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowerSwap__lowerings_251)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ, ldNullOpcode__vmgen_1845)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConv__types_3661)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__vmgen_1522)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__vmgen_1423)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__vmgen_1758)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opcode);
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__vmgen_1514)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc);
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__vmgen_1769)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__vmgen_2109)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__vmgen_2115)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
static N_INLINE(void, clearDest__vmgen_719)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__vmgen_1582)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__vmgen_2388)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL requiresCopy);
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__vmgen_2374)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI dest, NI idx, NI value);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__vmgen_2662)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genObjAccessAux__vmgen_2638)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI a, NI b, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__vmgen_2720)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__vmgen_2756)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__vmgen_2610)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(void, genDeref__vmgen_2236)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__vmgen_2122)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genAddr__vmgen_2193)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, canElimAddr__vmgen_2133)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, toVar__ast_4863)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__vmgen_1256)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genIf__vmgen_884)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__vmgen_730)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase__vmgen_1032)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__vmgen_762)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__vmgen_417)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__vmgen_747)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__vmgen_423)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI p);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__vmgen_640)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__vmgen_809)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__vmgen_1192)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__vmgen_1187)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__vmgen_841)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry__vmgen_1112)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__vmgen_2899)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowerTupleUnpacking__lowerings_116)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getOwner__vmgen_2306)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__vmgen_3031)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__vmgen_3055)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__vmgen_3069)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__vmgen_3111)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__vmgen_1637)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3592)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__vmgen_3462)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI start);
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__vmgen_3415)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI pc, NI diff);
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__vmgen_3343)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c);
extern TNimType NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_;
extern TNimType NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_2, "VM: immediate value does not fit into regBx", 43);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_4, "/home/runner/work/nightlies/nightlies/nim/compiler/vmgen.nim", 60);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_3 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 164),
((NI) 14)}
;
extern TNimType NTIpproc__JDRtrAs1KGboZOsEqZ5HdQ_;
extern TNimType NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_;
static NIM_CONST tyTuple__VJYnlz9ax09cmmFsZGV9axIWg TM__oYO8oEb9aAFcVmMqh9adT1hQ_5 = {NIM_TRUE,
((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 2)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_6, "cannot evaluate at compile time: ", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_7 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1515),
((NI) 13)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_8, "cannot \'importc\' variable at compile time; ", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_9 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1667),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_10 = {
0x10, 0xa8, 0x10, 0x00, 0x00, 0x60, 0x80, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_11 = {
0x10, 0x09, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_12, "vmgen.nim(1868, 14) `obj.sym.position == currPosition` ", 55);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_13, "cannot create null element for: ", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_14 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1870),
((NI) 19)}
;
extern TNimType NTIttypekind__b28l2MkhJpnFhatVrsrXpg_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_15 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1913),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_16 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_17 = {
0x10, 0xa8, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_18, "VM problem: too many registers required", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_19 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 229),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_20 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x10,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_21, "(", 1);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_22, ", ", 2);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_23, ")", 1);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_24 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1722),
((NI) 22)}
;
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_25, "Closure iterators are not supported by VM!", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_26 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2093),
((NI) 19)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_27, "*", 1);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_28, "vmgen.nim(2075, 16) `s.offset == -1` ", 37);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_29 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 450),
((NI) 17)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_30, "cannot generate code for: ", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_31 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2119),
((NI) 19)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_32 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2121),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_33 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 186),
((NI) 16)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_34, "VM: immediate value does not fit into an int8", 45);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_35 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 147),
((NI) 14)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_36 = {
0x10, 0xa8, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_37, "not unused", 10);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_38 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 485),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_39 = {
0x10, 0xa9, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_40 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
extern NIM_CONST tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ Zero__int495056_7;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_41 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_42 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1774),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_43 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1786),
((NI) 17)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_44, "no field symbol", 15);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_45 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 624),
((NI) 15)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_46, "too large offset! cannot generate code for: ", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_47 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 627),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_48 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 269),
((NI) 15)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_49 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 607),
((NI) 21)}
;
extern TNimType NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_50 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 531),
((NI) 16)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_51, "vmgen.nim(1070, 20) `false` ", 28);
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_52 = {
0x10, 0xa8, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTIobject__ciiSZIX9c04MZVntiKokFrw_;
extern TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
extern TNimType NTIptype__q1v0zzhoMWrhMLs6UEp1IA_;
extern TNimType NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_;
N_LIB_PRIVATE TNimType NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_54 = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_56 = {
0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_57, "getType", 7);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_58, "typeKind", 8);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_59, "getTypeInst", 11);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_60, "getSize", 7);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_61, "getAlign", 8);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_62, "invalid bindSym usage", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_63 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 970),
((NI) 16)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_64, "getFile", 7);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_65, "getLine", 7);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_66, "getColumn", 9);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_67, "copyLineInfo", 12);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_68, "setLine", 7);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_69, "setColumn", 9);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_70, "setFile", 7);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_71 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1343),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_72 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1347),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_73 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1351),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_74 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1355),
((NI) 21)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_75 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1358),
((NI) 25)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_76, "expandToAst requires 1 argument", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_77 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1381),
((NI) 17)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_78, "expandToAst requires a call expression", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_79 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1391),
((NI) 17)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_80, "\'$1\' requires \'.importc\' types to be \'.completeStruct\'", 54);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_82, "sizeof", 6);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__oYO8oEb9aAFcVmMqh9adT1hQ_81 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_82)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_83 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1393),
((NI) 15)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_85, "alignof", 7);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__oYO8oEb9aAFcVmMqh9adT1hQ_84 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_85)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_86 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1395),
((NI) 15)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_88, "offsetof", 8);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__oYO8oEb9aAFcVmMqh9adT1hQ_87 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_88)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_89 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1397),
((NI) 15)}
;
extern TNimType NTItmagic__3qAy6bDUDlF8Fc2RR6pF9ag_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_90 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1416),
((NI) 15)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_91, "cannot call method ", 19);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_92, " at compile time", 16);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_93 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2128),
((NI) 18)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_94, "stdlib.marshal.to", 17);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_95, "stdlib.marshal.$$", 17);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_96 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1622),
((NI) 21)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_97 = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10,
0x00}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_98 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 1820),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_99 = {
0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
static NIM_CONST struct {
  TGenericSeq Sup;
  NI data[0];
} TM__oYO8oEb9aAFcVmMqh9adT1hQ_101 = {{0, 0 | NIM_STRLIT_FLAG}};
static NIM_CONST tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ TM__oYO8oEb9aAFcVmMqh9adT1hQ_100 = {((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL), ((tySequence__qwqHTkRvwhrRyENtudHQ7g*)&TM__oYO8oEb9aAFcVmMqh9adT1hQ_101)}
;
extern TNimType NTIseqLtblockT__wOOG2VKbTPdEdoo59cOatCw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_102 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 178),
((NI) 16)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_103, "VM problem: cannot find \'break\' target", 38);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_104 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 382),
((NI) 15)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_105 = {
0x10, 0xa8, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_106, "invalid object constructor", 26);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_107 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2038),
((NI) 17)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_108 = {
0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_109 = {
0x04, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__oYO8oEb9aAFcVmMqh9adT1hQ_110 = {
0x10, 0xa9, 0x10, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_111, "VM does not support \'cast\' from ", 32);
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_112, " to ", 4);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_113 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 946),
((NI) 15)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_114, "cannot generate VM code for ", 28);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_115 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2239),
((NI) 17)}
;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_116 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2280),
((NI) 16)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_117, "VM problem: dest register is not set", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_118 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2265),
((NI) 17)}
;
STRING_LITERAL(TM__oYO8oEb9aAFcVmMqh9adT1hQ_119, "VM problem: dest register is set", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__oYO8oEb9aAFcVmMqh9adT1hQ_120 = {((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_4),
((NI) 2256),
((NI) 15)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
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;
}
static N_INLINE(NIM_BOOL, isCompileTimeProc__ast_4684)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((12288 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABx__vmgen_376)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI bx) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388608) <= bx);
		if (!(T3_)) goto LA4_;
		T3_ = (bx <= ((NI) 8388607));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) ((NI)(bx + ((NI) 8388608))))) << (NU64)(24ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__Gl8s23LA3EFz4kIlya9ameg*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_2), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__oYO8oEb9aAFcVmMqh9adT1hQ_3, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, xjmp__vmgen_399)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	gABx__vmgen_376(c, n, opc, a, ((NI) 0));
	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_);
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genParams__vmgen_3393)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params) {
	NI T1_;
	NIM_BOOL colontmp_;
	tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__2;
	T1_ = (NI)0;
	T1_ = len__ast_3155(params);
	asgnRef((void**) (&(*(*c).prc).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) setLengthSeqV2(((*(*c).prc).regInfo)?&((*(*c).prc).regInfo)->Sup:NIM_NIL, (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_), ((NI) (((T1_ >= ((NI) 1)) ? T1_ : ((NI) 1))))));
	colontmp_ = NIM_TRUE;
	colontmp__2 = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 1);
	(*(*c).prc).regInfo->data[((NI) 0)].Field0 = colontmp_;
	(*(*c).prc).regInfo->data[((NI) 0)].Field1 = colontmp__2;
	{
		NI i;
		NI colontmp__3;
		NI i_2;
		i = (NI)0;
		colontmp__3 = (NI)0;
		colontmp__3 = len__ast_3155(params);
		i_2 = ((NI) 1);
		{
			while (1) {
				NIM_BOOL colontmp__4;
				tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__5;
				if (!(i_2 < colontmp__3)) goto LA4;
				i = i_2;
				colontmp__4 = NIM_TRUE;
				colontmp__5 = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 2);
				(*(*c).prc).regInfo->data[i].Field0 = colontmp__4;
				(*(*c).prc).regInfo->data[i].Field1 = colontmp__5;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
static N_INLINE(NIM_BOOL, isGenericParams__ast_4617)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 75));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4628)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !((n == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52) || (*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams__ast_4617((*n)._kind_6.sons->data[((NI) 2)]);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutineStrict__ast_4640)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
	if (!(T1_)) goto LA2_;
	T1_ = isGenericRoutine__ast_4628((*s).ast);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genGenericParams__vmgen_3436)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gp) {
	NI base;
	NI T1_;
	NI T2_;
	T1_ = ((*(*c).prc).regInfo ? (*(*c).prc).regInfo->Sup.len : 0);
	base = T1_;
	T2_ = (NI)0;
	T2_ = len__ast_3155(gp);
	asgnRef((void**) (&(*(*c).prc).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) setLengthSeqV2(((*(*c).prc).regInfo)?&((*(*c).prc).regInfo)->Sup:NIM_NIL, (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_), ((NI) ((NI)(base + T2_)))));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(gp);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* param;
				NIM_BOOL colontmp__2;
				tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__3;
				if (!(i_2 < colontmp_)) goto LA5;
				i = i_2;
				param = (*(*gp)._kind_6.sons->data[i])._kind_4.sym;
				(*param).position = (NI)(base + i);
				colontmp__2 = NIM_TRUE;
				colontmp__3 = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 2);
				(*(*c).prc).regInfo->data[(NI)(base + i)].Field0 = colontmp__2;
				(*(*c).prc).regInfo->data[(NI)(base + i)].Field1 = colontmp__3;
				i_2 += ((NI) 1);
			} LA5: ;
		}
	}
}
static N_INLINE(NIM_BOOL, importcCondVar__vmgen_2312)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 6))&63U)))!=0)) goto LA3_;
		result = ((1792 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isOwnedBy__vmgen_2289)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* b) {
	NIM_BOOL result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* a_2;
{	result = (NIM_BOOL)0;
	a_2 = (*a).owner;
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = !((a_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
			if (!(T3_)) goto LA4_;
			T3_ = !(((*a_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 6)));
			LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!(a_2 == b)) goto LA7_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
			LA7_: ;
			a_2 = (*a_2).owner;
		} LA2: ;
	}
	}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_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, cannotEval__vmgen_2286)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = renderTree__renderer_46(n, 0);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 33);
appendString(T1_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_6));
appendString(T1_, T2_);
	liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T1_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_7, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(void, checkCanEval__vmgen_2323)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
{	s = (*n)._kind_4.sym;
	{
		if (!((268435464 & ~ (*s).flags)==0)) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (((*(*c).config).features &((NU32)1<<((NU)(((tyEnum_Feature__T2jOg7rgtA4lKTKRASHfHw) 10))&31U)))!=0);
		if (!(T7_)) goto LA8_;
		T7_ = importcCondVar__vmgen_2312(s);
		LA8_: ;
		if (!T7_) goto LA9_;
		goto BeforeRet_;
	}
	LA9_: ;
	{
		NIM_BOOL T13_;
		NIM_BOOL T14_;
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T13_ = (NIM_BOOL)0;
		T14_ = (NIM_BOOL)0;
		T15_ = (NIM_BOOL)0;
		T15_ = ((2856 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = isOwnedBy__vmgen_2289(s, (*(*c).prc).sym);
		T15_ = !(T17_);
		LA16_: ;
		T14_ = T15_;
		if (!(T14_)) goto LA18_;
		T14_ = !(((*s).owner == (*c).module));
		LA18_: ;
		T13_ = T14_;
		if (!(T13_)) goto LA19_;
		T13_ = !(((*c).mode == ((tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ) 0)));
		LA19_: ;
		if (!T13_) goto LA20_;
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 37))&63U)))!=0);
			if (!(T24_)) goto LA25_;
			T24_ = ((*(*c).prc).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
			LA25_: ;
			if (!T24_) goto LA26_;
		}
		goto LA22_;
		LA26_: ;
		{
			cannotEval__vmgen_2286(c, n);
		}
		LA22_: ;
	}
	goto LA11_;
	LA20_: ;
	{
		NIM_BOOL T30_;
		T30_ = (NIM_BOOL)0;
		T30_ = ((126976 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
		if (!(T30_)) goto LA31_;
		T30_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 4))&63U)))!=0);
		LA31_: ;
		if (!T30_) goto LA32_;
		cannotEval__vmgen_2286(c, n);
	}
	goto LA11_;
	LA32_: ;
	LA11_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyBody__vmgen_2469)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					{
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = isEmptyBody__vmgen_2469((*n)._kind_6.sons->data[i]);
						if (!!(T7_)) goto LA8_;
						result = NIM_FALSE;
						goto BeforeRet_;
					}
					LA8_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
		result = NIM_TRUE;
	}
	break;
	default:
	{
		result = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getBody__modulegraphs_13094)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = (*(*s).ast)._kind_6.sons->data[((NI) 6)];
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (result == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		if (!(T3_)) goto LA4_;
		T3_ = ((28 &((NU8)1<<((NU)((*(*g).config).symbolFiles)&7U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = loadProcBody__icZic_8386((*g).config, (*g).cache, (&(*g).packed_0), s);
		asgnRef((void**) (&(*(*s).ast)._kind_6.sons->data[((NI) 6)]), result);
	}
	LA5_: ;
	return result;
}
static N_INLINE(NIM_BOOL, importcCond__vmgen_2485)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!(((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 6))&63U)))!=0)) goto LA3_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T9_;
			if (!((520192 &((NU32)1<<((NU)((*s).kind)&31U)))!=0)) goto LA7_;
			T9_ = NIM_NIL;
			T9_ = getBody__modulegraphs_13094((*c).graph, s);
			result = isEmptyBody__vmgen_2469(T9_);
			goto BeforeRet_;
		}
		LA7_: ;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, importcSym__vmgen_2497)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 43);
appendString(T1_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_8));
appendString(T1_, (*(*s).name).s);
	liMessage__msgs_1128((*c).config, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T1_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__oYO8oEb9aAFcVmMqh9adT1hQ_9, NIM_FALSE);
}
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getNullValueAux__vmgen_2779)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, NI* currPosition) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T6_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* b;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = !((t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T4_)) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3990(t);
		T4_ = (((NI) 0) < T6_);
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA7_;
		T3_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA7_: ;
		if (!T3_) goto LA8_;
		b = skipTypes__ast_3723((*t).sons->data[((NI) 0)], TM__oYO8oEb9aAFcVmMqh9adT1hQ_11);
		getNullValueAux__vmgen_2779(b, (*b).n, result, conf, currPosition);
	}
	LA8_: ;
	switch ((*obj).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 138):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(obj);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					getNullValueAux__vmgen_2779(((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), (*obj)._kind_6.sons->data[i], result, conf, currPosition);
					i_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 139):
	{
		getNullValueAux__vmgen_2779(((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), (*obj)._kind_6.sons->data[((NI) 0)], result, conf, currPosition);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(obj);
			i_4 = ((NI) 1);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
					if (!(i_4 < colontmp__2)) goto LA17;
					i_3 = i_4;
					T18_ = NIM_NIL;
					T18_ = lastSon__ast_4833((*obj)._kind_6.sons->data[i_3]);
					getNullValueAux__vmgen_2779(((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL), T18_, result, conf, currPosition);
					i_4 += ((NI) 1);
				} LA17: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T20_;
		field = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34), (*result).info);
		add__ast_4798(field, obj);
		T20_ = NIM_NIL;
		T20_ = getNullValue__vmgen_2501((*(*obj)._kind_4.sym).typ, (*result).info, conf);
		add__ast_4798(field, T20_);
		add__ast_4798(result, field);
		{
			if (!!(((*(*obj)._kind_4.sym).position == (*currPosition)))) goto LA23_;
			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_12));
		}
		LA23_: ;
		(*currPosition) += ((NI) 1);
	}
	break;
	default:
	{
		NimStringDesc* T26_;
		NimStringDesc* T27_;
		T26_ = NIM_NIL;
		T27_ = NIM_NIL;
		T27_ = dollar___renderer_2116(obj);
		T26_ = rawNewString((T27_ ? T27_->Sup.len : 0) + 32);
appendString(T26_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_13));
appendString(T26_, T27_);
		liMessage__msgs_1128(conf, (*result).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T26_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_14, NIM_FALSE);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getNullValue__vmgen_2501)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	t = skipTypes__ast_3723(typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_10);
	switch ((*t).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 11), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20), info, t);
		asgnRef((void**) (&(*result)._kind_3.strVal), ((NimStringDesc*) NIM_NIL));
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 6):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25):
	{
		{
			if (!!(((*t).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)))) goto LA9_;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), info, t);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
			result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), info, t);
			T12_ = NIM_NIL;
			T12_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), info, t);
			add__ast_4798(result, T12_);
			T13_ = NIM_NIL;
			T13_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23), info, t);
			add__ast_4798(result, T13_);
		}
		LA7_: ;
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 17):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
		NI currPosition;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38), info, t);
		T15_ = NIM_NIL;
		T15_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info, t);
		add__ast_4798(result, T15_);
		currPosition = ((NI) 0);
		getNullValueAux__vmgen_2779(t, (*t).n, result, conf, (&currPosition));
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), info, t);
		{
			NI i;
			NI colontmp_;
			tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ T18_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T18_ = lengthOrd__types_1723(conf, t);
			colontmp_ = toInt__int495056_273(T18_);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T21_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
					if (!(i_2 < colontmp_)) goto LA20;
					i = i_2;
					T21_ = NIM_NIL;
					T21_ = elemType__types_263(t);
					T22_ = NIM_NIL;
					T22_ = getNullValue__vmgen_2501(T21_, info, conf);
					add__ast_4798(result, T22_);
					i_2 += ((NI) 1);
				} LA20: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160), info, t);
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3990(t);
			i_4 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
					if (!(i_4 < colontmp__2)) goto LA26;
					i_3 = i_4;
					T27_ = NIM_NIL;
					T27_ = getNullValue__vmgen_2501((*t).sons->data[i_3], info, conf);
					add__ast_4798(result, T27_);
					i_4 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39), info, t);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27):
	{
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), info, t);
	}
	break;
	default:
	{
		NimStringDesc* T31_;
		T31_ = NIM_NIL;
		T31_ = rawNewString((reprEnum((NI)(*t).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)) ? reprEnum((NI)(*t).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_))->Sup.len : 0) + 32);
appendString(T31_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_13));
appendString(T31_, reprEnum((NI)(*t).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)));
		liMessage__msgs_1128(conf, info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T31_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_15, NIM_FALSE);
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), info);
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA, getSlotKind__vmgen_452)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = (tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA)0;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723(t, TM__oYO8oEb9aAFcVmMqh9adT1hQ_17);
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 15):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
	{
		result = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 4);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
	{
		result = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 6);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	{
		result = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 5);
	}
	break;
	default:
	{
		result = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 7);
	}
	break;
	}
	return result;
}
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(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw, bestEffort__vmgen_469)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c) {
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*c).prc == ((tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*c).prc).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (*(*(*c).prc).sym).info;
	}
	goto LA1_;
	LA5_: ;
	{
		result = (*(*c).module).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getFreeRegister__vmgen_480)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA k, NI start) {
	NI result;
	tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* c;
	NI T30_;
	NIM_BOOL colontmp__5;
	tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__6;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		colontmp_ = (NI)(T2_ - ((NI) 1));
		res = start;
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((*c).regInfo->data[i].Field1 == k);
					if (!(T7_)) goto LA8_;
					T7_ = !((*c).regInfo->data[i].Field0);
					LA8_: ;
					if (!T7_) goto LA9_;
					(*c).regInfo->data[i].Field0 = NIM_TRUE;
					result = ((NI) (i));
					goto BeforeRet_;
				}
				LA9_: ;
				res += ((NI) 1);
			} LA4: ;
		}
	}
	{
		NI T13_;
		T13_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		if (!(((NI) 65535) <= T13_)) goto LA14_;
		{
			NI i_2;
			NI colontmp__2;
			NI T17_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T17_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
			colontmp__2 = (NI)(T17_ - ((NI) 1));
			res_2 = start;
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA19;
					i_2 = res_2;
					{
						NIM_BOOL colontmp__3;
						tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__4;
						if (!!((*c).regInfo->data[i_2].Field0)) goto LA22_;
						colontmp__3 = NIM_TRUE;
						colontmp__4 = k;
						(*c).regInfo->data[i_2].Field0 = colontmp__3;
						(*c).regInfo->data[i_2].Field1 = colontmp__4;
						result = ((NI) (i_2));
						goto BeforeRet_;
					}
					LA22_: ;
					res_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA14_: ;
	{
		NI T26_;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T29_;
		T26_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		if (!(((NI) 65535) <= T26_)) goto LA27_;
		T29_ = bestEffort__vmgen_469(cc);
		liMessage__msgs_1128((*cc).config, T29_, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_18), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_19, NIM_FALSE);
	}
	LA27_: ;
	T30_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
	result = ((NI) (((T30_ >= start) ? T30_ : start)));
	asgnRef((void**) (&(*c).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) setLengthSeqV2(((*c).regInfo)?&((*c).regInfo)->Sup:NIM_NIL, (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_), ((NI) ((NI)(((NI) (result)) + ((NI) 1))))));
	colontmp__5 = NIM_TRUE;
	colontmp__6 = k;
	(*c).regInfo->data[result].Field0 = colontmp__5;
	(*c).regInfo->data[result].Field1 = colontmp__6;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTemp__vmgen_542)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tt) {
	NI result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
	tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA k;
	result = (NI)0;
	typ = skipTypesOrNil__ast_4173(tt, TM__oYO8oEb9aAFcVmMqh9adT1hQ_16);
	{
		if (!(typ == 0)) goto LA3_;
		k = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 7);
	}
	goto LA1_;
	LA3_: ;
	{
		k = getSlotKind__vmgen_452(typ);
	}
	LA1_: ;
	result = getFreeRegister__vmgen_480(cc, k, ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genx__vmgen_713)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI result;
	NI tmp;
	result = (NI)0;
	tmp = ((NI) -1);
	gen__vmgen_688(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		result = ((NI) (tmp));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABC__vmgen_313)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI b, NI c) {
	NU64 ins;
	NI T1_;
	NI T2_;
	ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) (c))) << (NU64)(40ULL)));
	asgnRef((void**) (&(*ctx).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*ctx).code), (&NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_)));
	T1_ = (*ctx).code->Sup.len++;
	(*ctx).code->data[T1_] = ins;
	asgnRef((void**) (&(*ctx).debug), (tySequence__Gl8s23LA3EFz4kIlya9ameg*) incrSeqV3((TGenericSeq*)((*ctx).debug), (&NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_)));
	T2_ = (*ctx).debug->Sup.len++;
	(*ctx).debug->data[T2_] = (*n).info;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ, whichAsgnOpc__vmgen_1855)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL requiresCopy) {
	tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_17);
	switch ((*T1_).kind) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 15):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44):
	{
		result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 4);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) ... ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 39):
	{
		result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 5);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 47):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21):
	{
		result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 6);
	}
	break;
	default:
	{
		{
			if (!requiresCopy) goto LA8_;
			result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 7);
		}
		goto LA6_;
		LA8_: ;
		{
			result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 14);
		}
		LA6_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTemp__vmgen_551)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI r) {
	tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* c_2;
	c_2 = (*c).prc;
	{
		if (!((248 &((NU16)1<<((NU)((*c_2).regInfo->data[r].Field1)&15U)))!=0)) goto LA3_;
		(*c_2).regInfo->data[r].Field0 = NIM_FALSE;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAdditionalCopy__vmgen_2366)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI dest, NI idx, NI value) {
	NI cc;
	tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T1_;
	cc = getTemp__vmgen_542(c, (*n).typ);
	T1_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
	T1_ = whichAsgnOpc__vmgen_1855(n, NIM_TRUE);
	gABC__vmgen_313(c, n, T1_, cc, value, ((NI) 0));
	gABC__vmgen_313(c, n, opc, dest, idx, cc);
	freeTemp__vmgen_551(c, cc);
}
N_LIB_PRIVATE N_NIMCALL(void, genGlobalInit__vmgen_2505)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T1_;
	NI dest;
	T1_ = NIM_NIL;
	T1_ = getNullValue__vmgen_2501((*s).typ, (*n).info, (*c).config);
	add__ast_4798((*c).globals, T1_);
	(*s).position = len__ast_3155((*c).globals);
	dest = getTemp__vmgen_542(c, (*s).typ);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 180), dest, (*s).position);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
		NI tmp;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		T4_ = NIM_NIL;
		T4_ = astdef__ast_3462(s);
		if (!!((T4_ == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = astdef__ast_3462(s);
		tmp = genx__vmgen_713(c, T7_, 0);
		genAdditionalCopy__vmgen_2366(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), dest, ((NI) 0), tmp);
		freeTemp__vmgen_551(c, dest);
		freeTemp__vmgen_551(c, tmp);
	}
	LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fitsRegister__vmgen_1823)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = (NIM_BOOL)0;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723(t, TM__oYO8oEb9aAFcVmMqh9adT1hQ_20);
	result = ((*T1_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20) || (*T1_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 14) || (*T1_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1) || (*T1_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*T1_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*T1_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, setSlot__vmgen_2279)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* v) {
	{
		tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA T5_;
		NI T11_;
		if (!((*v).position == ((NI) 0))) goto LA3_;
		T5_ = (tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA)0;
		{
			if (!((*v).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9))) goto LA8_;
			T5_ = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 2);
		}
		goto LA6_;
		LA8_: ;
		{
			T5_ = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 1);
		}
		LA6_: ;
		T11_ = (NI)0;
		T11_ = getFreeRegister__vmgen_480(c, T5_, ((NI) 1));
		(*v).position = ((NI) (T11_));
	}
	LA3_: ;
}
static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
}
static N_INLINE(NimStringDesc*, toFileLineCol__msgs_625)(tyTuple__kN8up2W6YKc5YA9avn5mV5w info) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = resizeString(result, (info.Field0 ? info.Field0->Sup.len : 0) + 0);
appendString(result, info.Field0);
	{
		if (!(((NI) 0) < info.Field1)) goto LA3_;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_21));
		addInt__stdZprivateZdigitsutils_189((&result), info.Field1);
		{
			if (!(((NI) 0) < (NI)(info.Field2 + ((NI) 1)))) goto LA7_;
			result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_22));
			addInt__stdZprivateZdigitsutils_189((&result), (NI)(info.Field2 + ((NI) 1)));
		}
		LA7_: ;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_23));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__vmgen_2270)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL requiresCopy) {
	NI tmp;
	tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T1_;
	tmp = genx__vmgen_713(c, ri, 0);
	T1_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
	T1_ = whichAsgnOpc__vmgen_1855(ri, requiresCopy);
	gABC__vmgen_313(c, ri, T1_, ((NI) (dest)), tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genRdVar__vmgen_2522)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	s = (*n)._kind_4.sym;
	{
		NIM_BOOL T3_;
		NIM_BOOL isImportcVar;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
		LA4_: ;
		if (!T3_) goto LA5_;
		isImportcVar = importcCondVar__vmgen_2312(s);
		{
			NIM_BOOL T9_;
			NIM_BOOL T10_;
			T9_ = (NIM_BOOL)0;
			T10_ = (NIM_BOOL)0;
			T10_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0);
			if (T10_) goto LA11_;
			T10_ = ((*c).mode == ((tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ) 0));
			LA11_: ;
			T9_ = T10_;
			if (T9_) goto LA12_;
			T9_ = isImportcVar;
			LA12_: ;
			if (!T9_) goto LA13_;
		}
		goto LA7_;
		LA13_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA16_;
			cannotEval__vmgen_2286(c, n);
		}
		goto LA7_;
		LA16_: ;
		LA7_: ;
		{
			if (!((*s).position == ((NI) 0))) goto LA20_;
			{
				NIM_BOOL T24_;
				T24_ = (NIM_BOOL)0;
				T24_ = importcCond__vmgen_2485(c, s);
				if (T24_) goto LA25_;
				T24_ = isImportcVar;
				LA25_: ;
				if (!T24_) goto LA26_;
				importcSym__vmgen_2497(c, (*n).info, s);
			}
			goto LA22_;
			LA26_: ;
			{
				genGlobalInit__vmgen_2505(c, n, s);
			}
			LA22_: ;
		}
		LA20_: ;
		{
			NI T33_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA31_;
			T33_ = (NI)0;
			T33_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T33_));
		}
		LA31_: ;
		{
			if (!((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 1))&7U)))!=0)) goto LA36_;
			{
				if (!isImportcVar) goto LA40_;
				gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 183), ((NI) ((*dest))), (*s).position);
			}
			goto LA38_;
			LA40_: ;
			{
				gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 181), ((NI) ((*dest))), (*s).position);
			}
			LA38_: ;
		}
		goto LA34_;
		LA36_: ;
		{
			if (!isImportcVar) goto LA44_;
			gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 182), ((NI) ((*dest))), (*s).position);
		}
		goto LA34_;
		LA44_: ;
		{
			NIM_BOOL T47_;
			NI cc;
			T47_ = (NIM_BOOL)0;
			T47_ = fitsRegister__vmgen_1823((*s).typ);
			if (!(T47_)) goto LA48_;
			T47_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 0))&7U)))!=0));
			LA48_: ;
			if (!T47_) goto LA49_;
			cc = getTemp__vmgen_542(c, (*n).typ);
			gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 180), cc, (*s).position);
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
			freeTemp__vmgen_551(c, cc);
		}
		goto LA34_;
		LA49_: ;
		{
			gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 180), ((NI) ((*dest))), (*s).position);
		}
		LA34_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		{
			NIM_BOOL T55_;
			T55_ = (NIM_BOOL)0;
			T55_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21));
			if (!(T55_)) goto LA56_;
			T55_ = ((*c).mode == ((tyEnum_TEvalMode__iWSxkwmhTDY7fh9aYmp69akQ) 0));
			LA56_: ;
			if (!T55_) goto LA57_;
			setSlot__vmgen_2279(c, s);
		}
		LA57_: ;
		{
			NIM_BOOL T61_;
			NIM_BOOL T63_;
			T61_ = (NIM_BOOL)0;
			T61_ = (((NI) 0) < (*s).position);
			if (T61_) goto LA62_;
			T63_ = (NIM_BOOL)0;
			T63_ = ((*s).position == ((NI) 0));
			if (!(T63_)) goto LA64_;
			T63_ = ((2056 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
			LA64_: ;
			T61_ = T63_;
			LA62_: ;
			if (!T61_) goto LA65_;
			{
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA69_;
				(*dest) = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3)))));
				{
					NimStringDesc* argX60gensym461_;
					if (!!(((*(*c).prc).regInfo->data[(*dest)].Field1 < ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3)))) goto LA73_;
					argX60gensym461_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_24);
					internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym461_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_24);
				}
				LA73_: ;
			}
			goto LA67_;
			LA69_: ;
			{
				NIM_BOOL requiresCopy;
				NIM_BOOL T76_;
				T76_ = (NIM_BOOL)0;
				T76_ = (((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3) <= (*(*c).prc).regInfo->data[(*dest)].Field1);
				if (!(T76_)) goto LA77_;
				T76_ = !(((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 2))&7U)))!=0));
				LA77_: ;
				requiresCopy = T76_;
				genAsgn__vmgen_2270(c, (*dest), n, requiresCopy);
			}
			LA67_: ;
		}
		goto LA59_;
		LA65_: ;
		{
			cannotEval__vmgen_2286(c, n);
		}
		LA59_: ;
	}
	LA1_: ;
}
static N_INLINE(NimStringDesc*, X5BX5D___vmgen_3160)(NimStringDesc** s, NI sLen_0, NI i) {
	NimStringDesc* result;
	result = NIM_NIL;
	result = copyString(s[(NI)(sLen_0 - i)]);
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__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;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, matches__vmgen_3142)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, NimStringDesc* x) {
	NIM_BOOL result;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* y;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
{	result = (NIM_BOOL)0;
	y = nsuSplitChar(x, 46, ((NI) -1));
	s_2 = s;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (y ? y->Sup.len : 0);
		colontmp_ = T2_;
		res = ((NI) 1);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					NIM_BOOL T7_;
					NIM_BOOL T9_;
					NimStringDesc* T10_;
					NI T11_;
					NimStringDesc* T13_;
					T7_ = (NIM_BOOL)0;
					T7_ = (s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
					if (T7_) goto LA8_;
					T9_ = (NIM_BOOL)0;
					T10_ = NIM_NIL;
					T10_ = X5BX5D___vmgen_3160((y) ? (y->data) : NIM_NIL, (y ? y->Sup.len : 0), i);
					T11_ = (NI)0;
					T11_ = nsuCmpIgnoreStyle(T10_, (*(*s_2).name).s);
					T9_ = !((T11_ == ((NI) 0)));
					if (!(T9_)) goto LA12_;
					T13_ = NIM_NIL;
					T13_ = X5BX5D___vmgen_3160((y) ? (y->data) : NIM_NIL, (y ? y->Sup.len : 0), i);
					T9_ = !(eqStrings(T13_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_27)));
					LA12_: ;
					T7_ = T9_;
					LA8_: ;
					if (!T7_) goto LA14_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA14_: ;
				{
					if (!(((*s_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 2))&63U)))!=0)) goto LA18_;
					s_2 = (*(*s_2).owner).owner;
				}
				goto LA16_;
				LA18_: ;
				{
					s_2 = (*s_2).owner;
				}
				LA16_: ;
				{
					while (1) {
						NIM_BOOL T23_;
						NIM_BOOL T24_;
						T23_ = (NIM_BOOL)0;
						T24_ = (NIM_BOOL)0;
						T24_ = !((s_2 == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						if (!(T24_)) goto LA25_;
						T24_ = ((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 24));
						LA25_: ;
						T23_ = T24_;
						if (!(T23_)) goto LA26_;
						T23_ = !(((*s_2).owner == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
						LA26_: ;
						if (!T23_) goto LA22;
						s_2 = (*s_2).owner;
					} LA22: ;
				}
				res += ((NI) 1);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, procIsCallback__vmgen_3188)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NIM_BOOL result;
	NI i;
{	result = (NIM_BOOL)0;
	{
		if (!((*s).offset < ((NI) -1))) goto LA3_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA3_: ;
	i = ((NI) -2);
	{
		NimStringDesc** key;
		tyProc__vkuGXw0bPP9b9cpazTHQY9bqg* value;
		NI i_2;
		NI L;
		NI T6_;
		key = (NimStringDesc**)0;
		value = (tyProc__vkuGXw0bPP9b9cpazTHQY9bqg*)0;
		i_2 = ((NI) 0);
		T6_ = ((*c).callbacks ? (*c).callbacks->Sup.len : 0);
		L = T6_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA8;
				key = (&(*c).callbacks->data[i_2].Field0);
				value = (&(*c).callbacks->data[i_2].Field1);
				{
					NIM_BOOL T11_;
					T11_ = (NIM_BOOL)0;
					T11_ = matches__vmgen_3142(s, (*key));
					if (!T11_) goto LA12_;
					{
						if (!!(((*s).offset == ((NI) -1)))) goto LA16_;
						failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_28));
					}
					LA16_: ;
					(*s).offset = i;
					result = NIM_TRUE;
					goto BeforeRet_;
				}
				LA12_: ;
				i -= ((NI) 1);
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__vmgen_971)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = NIM_FALSE;
	{
		if (!(a == b)) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T7_ = !((a == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		if (!(T7_)) goto LA8_;
		T7_ = !((b == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA8_: ;
		T6_ = T7_;
		if (!(T6_)) goto LA9_;
		T6_ = ((*a).kind == (*b).kind);
		LA9_: ;
		if (!T6_) goto LA10_;
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		{
			result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
		{
			result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15):
		{
			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 16) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 18):
		{
			union { NF source; NU64 dest; } LOC16;
			union { NF source; NU64 dest; } LOC17;
			LOC16.source = (*a)._kind_2.floatVal;
			LOC17.source = (*b)._kind_2.floatVal;
			result = (LOC16.dest == LOC17.dest);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 20) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22):
		{
			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
		{
			result = ((*a).typ == (*b).typ);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
		{
			result = NIM_TRUE;
		}
		break;
		default:
		{
			{
				NI T24_;
				NI T25_;
				T24_ = (NI)0;
				T24_ = len__ast_3155(a);
				T25_ = (NI)0;
				T25_ = len__ast_3155(b);
				if (!(T24_ == T25_)) goto LA26_;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = len__ast_3155(a);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA30;
							i = i_2;
							{
								NIM_BOOL T33_;
								T33_ = (NIM_BOOL)0;
								T33_ = sameConstant__vmgen_971((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i]);
								if (!!(T33_)) goto LA34_;
								goto BeforeRet_;
							}
							LA34_: ;
							i_2 += ((NI) 1);
						} LA30: ;
					}
				}
				result = NIM_TRUE;
			}
			LA26_: ;
		}
		break;
		}
	}
	goto LA1_;
	LA10_: ;
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGenLiteral__vmgen_948)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	result = len__ast_3155((*c).constants);
	(*n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 4)) & 31);
	(*n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 13)) & 31));
	add__ast_4798((*c).constants, n);
	{
		NimStringDesc* argX60gensym109_;
		if (!!((result < ((NI) 8388607)))) goto LA3_;
		argX60gensym109_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_29);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym109_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_29);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genLiteral__vmgen_1015)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
{	result = (NI)0;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155((*c).constants);
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = sameConstant__vmgen_971((*(*c).constants)._kind_6.sons->data[i], n);
					if (!T6_) goto LA7_;
					result = i;
					goto BeforeRet_;
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	result = rawGenLiteral__vmgen_948(c, n);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genLit__vmgen_1201)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI lit;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	lit = genLiteral__vmgen_1015(c, n);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 178), ((NI) ((*dest))), lit);
}
static N_INLINE(NIM_BOOL, dontInlineConstant__trees_420)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cnst) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NI T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = !(((*orig).kind == (*cnst).kind));
	if (!(T2_)) goto LA3_;
	T2_ = ((*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39) || (*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37) || (*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160) || (*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41) || (*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T5_ = (NI)0;
	T5_ = len__ast_3155(cnst);
	T1_ = (((*cnst).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38)) < T5_);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genTypeLit__vmgen_2464)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, NI* dest) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
	n = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4));
	asgnRef((void**) (&(*n).typ), t);
	genLit__vmgen_1201(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTemp__vmgen_930)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) <= ((NI) (dest)));
	if (!(T1_)) goto LA2_;
	T1_ = (((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3) <= (*(*c).prc).regInfo->data[dest].Field1);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_693)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI d;
	d = ((NI) (dest));
	gen__vmgen_688(c, n, (&d), flags);
}
N_LIB_PRIVATE N_NIMCALL(void, patch__vmgen_435)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI p) {
	NI p_2;
	NI diff;
	NI T1_;
	NU64 oldInstr;
	p_2 = p;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	diff = (NI)(T1_ - p_2);
	{
		NIM_BOOL T4_;
		NimStringDesc* argX60gensym51_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < diff);
		if (!(T4_)) goto LA5_;
		T4_ = (diff < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		argX60gensym51_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_33);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym51_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_33);
	}
	LA6_: ;
	oldInstr = (*c).code->data[p_2];
	(*c).code->data[p_2] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(diff + ((NI) 8388608))))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__vmgen_938)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI* dest) {
	NIM_BOOL copyBack;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NI tmp;
	NI lab1;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) ((*dest))) < ((NI) 0));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = isTemp__vmgen_930(c, (*dest));
	T1_ = !(T3_);
	LA2_: ;
	copyBack = T1_;
	{
		if (!copyBack) goto LA6_;
		tmp = getTemp__vmgen_542(c, (*n).typ);
	}
	goto LA4_;
	LA6_: ;
	{
		tmp = ((NI) ((*dest)));
	}
	LA4_: ;
	gen__vmgen_693(c, (*n)._kind_6.sons->data[((NI) 1)], tmp, 0);
	lab1 = xjmp__vmgen_399(c, n, opc, tmp);
	gen__vmgen_693(c, (*n)._kind_6.sons->data[((NI) 2)], tmp, 0);
	patch__vmgen_435(c, lab1);
	{
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA11_;
		(*dest) = ((NI) (tmp));
	}
	goto LA9_;
	LA11_: ;
	{
		if (!copyBack) goto LA14_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		freeTemp__vmgen_551(c, tmp);
	}
	goto LA9_;
	LA14_: ;
	LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt8Lit__vmgen_1567)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-128) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._kind_1.intVal <= IL64(127));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gABI__vmgen_348)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI a, NI b, NI64 imm) {
	{
		NIM_BOOL T3_;
		NU64 ins;
		NI T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(-128) <= imm);
		if (!(T3_)) goto LA4_;
		T3_ = (imm <= IL64(127));
		LA4_: ;
		if (!T3_) goto LA5_;
		ins = (NU64)((NU64)((NU64)(((NU64) (opc)) | (NU64)((NU64)(((NU64) (a))) << (NU64)(8ULL))) | (NU64)((NU64)(((NU64) (b))) << (NU64)(24ULL))) | (NU64)((NU64)(((NU64) ((NI64)(imm + IL64(128))))) << (NU64)(40ULL)));
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_)));
		T7_ = (*c).code->Sup.len++;
		(*c).code->data[T7_] = ins;
		asgnRef((void**) (&(*c).debug), (tySequence__Gl8s23LA3EFz4kIlya9ameg*) incrSeqV3((TGenericSeq*)((*c).debug), (&NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_)));
		T8_ = (*c).debug->Sup.len++;
		(*c).debug->data[T8_] = (*n).info;
	}
	goto LA1_;
	LA5_: ;
	{
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_34), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__oYO8oEb9aAFcVmMqh9adT1hQ_35, NIM_FALSE);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABC__vmgen_1414)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__vmgen_551(c, tmp);
	freeTemp__vmgen_551(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrow__vmgen_1436)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NI64 size;
	t = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	size = getSize__types_3388((*c).config, t);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40));
		if (!(T5_)) goto LA6_;
		T5_ = (size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) (dest)), ((NI) ((NI64)(size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA7_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		T10_ = (NIM_BOOL)0;
		T10_ = ((*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34));
		if (T10_) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
		if (!(T12_)) goto LA13_;
		T12_ = (size < IL64(8));
		LA13_: ;
		T10_ = T12_;
		LA11_: ;
		if (!T10_) goto LA14_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 98), ((NI) (dest)), ((NI) ((NI64)(size * IL64(8)))), ((NI) 0));
	}
	goto LA1_;
	LA14_: ;
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddSubInt__vmgen_1597)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = isInt8Lit__vmgen_1567((*n)._kind_6.sons->data[((NI) 2)]);
		if (!T3_) goto LA4_;
		tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
		gABI__vmgen_348(c, n, (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)(opc + ((NI) 1)), ((NI) ((*dest))), tmp, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		freeTemp__vmgen_551(c, tmp);
	}
	goto LA1_;
	LA4_: ;
	{
		genBinaryABC__vmgen_1414(c, n, dest, opc);
	}
	LA1_: ;
	genNarrow__vmgen_1436(c, n, (*dest));
}
static N_INLINE(void, unused__vmgen_1028)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI x) {
	{
		if (!(((NI) 0) <= ((NI) (x)))) goto LA3_;
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_37), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_38, NIM_FALSE);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genIndex__vmgen_1307)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* arr) {
	NI result;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T4_;
		tyObject_Int128__ZSLNyYMaD8rorY4HZRFSUQ x;
		NIM_BOOL T6_;
		NI tmp;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T4_ = NIM_NIL;
		T4_ = skipTypes__ast_3723(arr, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
		T3_ = ((*T4_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16));
		if (!(T3_)) goto LA5_;
		x = firstOrd__types_1406((*c).config, arr);
		T6_ = (NIM_BOOL)0;
		T6_ = eqeq___int495056_425(x, Zero__int495056_7);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		tmp = genx__vmgen_713(c, n, 0);
		freeTemp__vmgen_551(c, tmp);
		result = getTemp__vmgen_542(c, (*n).typ);
		T9_ = (NI)0;
		T9_ = toInt__int495056_273(x);
		gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 33), result, tmp, ((NI64) (T9_)));
	}
	goto LA1_;
	LA7_: ;
	{
		result = genx__vmgen_713(c, n, 0);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genField__vmgen_1290)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
		if (T3_) goto LA4_;
		T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19)));
		LA4_: ;
		if (!T3_) goto LA5_;
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_44), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_45, NIM_FALSE);
	}
	LA5_: ;
	s = (*n)._kind_4.sym;
	{
		NimStringDesc* T11_;
		if (!(((NI) 65535) < (*s).position)) goto LA9_;
		T11_ = NIM_NIL;
		T11_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 44);
appendString(T11_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_46));
appendString(T11_, (*(*s).name).s);
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T11_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_47, NIM_FALSE);
	}
	LA9_: ;
	result = ((NI) ((*s).position));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccessAux__vmgen_1318)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* accessExpr;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* checkExpr;
	NIM_BOOL negCheck;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* disc;
	NI discVal;
	NI T14_;
	NI setLit;
	NI rs;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T15_;
	NI lab1;
	tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T16_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* strType;
	NI msgReg;
	NI T22_;
	NimStringDesc* fieldName;
	NimStringDesc* msg;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* strLit;
	{
		NimStringDesc* argX60gensym475_;
		if (!!(((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46)))) goto LA3_;
		argX60gensym475_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_42);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym475_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_42);
	}
	LA3_: ;
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	checkExpr = (*n)._kind_6.sons->data[((NI) 1)];
	negCheck = ((*(*(*checkExpr)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96));
	{
		NI T9_;
		if (!negCheck) goto LA7_;
		T9_ = (NI)0;
		T9_ = len__ast_3155(checkExpr);
		checkExpr = (*checkExpr)._kind_6.sons->data[(NI)(T9_ - ((NI) 1))];
	}
	LA7_: ;
	disc = (*checkExpr)._kind_6.sons->data[((NI) 2)];
	{
		NimStringDesc* argX60gensym484_;
		if (!!(((*(*disc)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19)))) goto LA12_;
		argX60gensym484_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_43);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym484_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_43);
	}
	LA12_: ;
	gen__vmgen_688(c, (*accessExpr)._kind_6.sons->data[((NI) 0)], dest, flags);
	discVal = getTemp__vmgen_542(c, (*disc).typ);
	T14_ = (NI)0;
	T14_ = genField__vmgen_1290(c, disc);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 19), discVal, ((NI) ((*dest))), T14_);
	setLit = genx__vmgen_713(c, (*checkExpr)._kind_6.sons->data[((NI) 1)], 0);
	T15_ = NIM_NIL;
	T15_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	rs = getTemp__vmgen_542(c, T15_);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 85), rs, setLit, discVal);
	freeTemp__vmgen_551(c, discVal);
	freeTemp__vmgen_551(c, setLit);
	T16_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
	{
		if (!negCheck) goto LA19_;
		T16_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166);
	}
	goto LA17_;
	LA19_: ;
	{
		T16_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165);
	}
	LA17_: ;
	lab1 = xjmp__vmgen_399(c, n, T16_, rs);
	freeTemp__vmgen_551(c, rs);
	strType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28));
	T22_ = (NI)0;
	T22_ = getTemp__vmgen_542(c, strType);
	msgReg = ((NI) (T22_));
	fieldName = dollar___renderer_2116((*accessExpr)._kind_6.sons->data[((NI) 1)]);
	msg = genFieldDefect__astmsgs_61((*c).config, fieldName, (*disc)._kind_4.sym);
	strLit = newStrNode__ast_3805(msg, (*(*accessExpr)._kind_6.sons->data[((NI) 1)]).info);
	asgnRef((void**) (&(*strLit).typ), strType);
	genLit__vmgen_1201(c, strLit, (&msgReg));
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 97), ((NI) (msgReg)), discVal, ((NI) 0));
	freeTemp__vmgen_551(c, ((NI) (msgReg)));
	patch__vmgen_435(c, lab1);
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgnPatch__vmgen_1323)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, NI value) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		NI dest;
		NI idx;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* collTyp;
		dest = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx = genIndex__vmgen_1307(c, (*le)._kind_6.sons->data[((NI) 1)], (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		collTyp = skipTypes__ast_3723((*(*le)._kind_6.sons->data[((NI) 0)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_41);
		switch ((*collTyp).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
		{
			gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 26), dest, idx, value);
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
		{
			gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), dest, ((NI) (((NI) ((*(*le)._kind_6.sons->data[((NI) 1)])._kind_1.intVal)))), value);
		}
		break;
		default:
		{
			gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 18), dest, idx, value);
		}
		break;
		}
		freeTemp__vmgen_551(c, dest);
		freeTemp__vmgen_551(c, idx);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		NI objR;
		NI idx_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__vmgen_1318(c, le, (&objR), 1);
		idx_2 = genField__vmgen_1290(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		gABC__vmgen_313(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), ((NI) (objR)), idx_2, value);
		freeTemp__vmgen_551(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		NI dest_2;
		NI idx_3;
		dest_2 = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx_3 = genField__vmgen_1290(c, (*le)._kind_6.sons->data[((NI) 1)]);
		gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), dest_2, idx_3, value);
		freeTemp__vmgen_551(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
		NI dest_3;
		dest_3 = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), dest_3, ((NI) 0), value);
		freeTemp__vmgen_551(c, dest_3);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		{
			NIM_BOOL T11_;
			NI dest_4;
			T11_ = (NIM_BOOL)0;
			T11_ = (((*(*le)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
			if (!(T11_)) goto LA12_;
			T11_ = !(((*(*le)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
			LA12_: ;
			if (!T11_) goto LA13_;
			dest_4 = genx__vmgen_713(c, le, 2);
			gABC__vmgen_313(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), dest_4, ((NI) 0), value);
			freeTemp__vmgen_551(c, dest_4);
		}
		LA13_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getTempRange__vmgen_560)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* cc, NI n, tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA kind) {
	NI result;
	tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* c;
	NI T34_;
	NI T35_;
{	result = (NI)0;
	c = (*cc).prc;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		T3_ = (((NI) 40) <= T4_);
		if (T3_) goto LA5_;
		T6_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		T3_ = (((NI) 65535) <= (NI)(T6_ + n));
		LA5_: ;
		if (!T3_) goto LA7_;
		{
			NI i;
			NI colontmp_;
			NI T10_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T10_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
			colontmp_ = (NI)(T10_ - n);
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA12;
					i = res;
					{
						if (!!((*c).regInfo->data[i].Field0)) goto LA15_;
						{
							{
								NI j;
								NI colontmp__2;
								NI colontmp__3;
								NI res_2;
								j = (NI)0;
								colontmp__2 = (NI)0;
								colontmp__3 = (NI)0;
								colontmp__2 = (NI)(i + ((NI) 1));
								colontmp__3 = (NI)((NI)(i + n) - ((NI) 1));
								res_2 = colontmp__2;
								{
									while (1) {
										if (!(res_2 <= colontmp__3)) goto LA20;
										j = res_2;
										{
											if (!(*c).regInfo->data[j].Field0) goto LA23_;
											goto LA17;
										}
										LA23_: ;
										res_2 += ((NI) 1);
									} LA20: ;
								}
							}
							result = ((NI) (i));
							{
								NI k;
								NI colontmp__4;
								NI res_3;
								k = (NI)0;
								colontmp__4 = (NI)0;
								colontmp__4 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
								res_3 = ((NI) (result));
								{
									while (1) {
										NIM_BOOL colontmp__5;
										tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__6;
										if (!(res_3 <= ((NI) (colontmp__4)))) goto LA27;
										k = ((NI) (res_3));
										colontmp__5 = NIM_TRUE;
										colontmp__6 = kind;
										(*c).regInfo->data[k].Field0 = colontmp__5;
										(*c).regInfo->data[k].Field1 = colontmp__6;
										res_3 += ((NI) 1);
									} LA27: ;
								}
							}
							goto BeforeRet_;
						} LA17: ;
					}
					LA15_: ;
					res += ((NI) 1);
				} LA12: ;
			}
		}
	}
	LA7_: ;
	{
		NI T30_;
		tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T33_;
		T30_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
		if (!(((NI) 65535) <= (NI)(T30_ + n))) goto LA31_;
		T33_ = bestEffort__vmgen_469(cc);
		liMessage__msgs_1128((*cc).config, T33_, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_18), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_48, NIM_FALSE);
	}
	LA31_: ;
	T34_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
	result = ((NI) (T34_));
	T35_ = ((*c).regInfo ? (*c).regInfo->Sup.len : 0);
	asgnRef((void**) (&(*c).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) setLengthSeqV2(((*c).regInfo)?&((*c).regInfo)->Sup:NIM_NIL, (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_), ((NI) ((NI)(T35_ + n)))));
	{
		NI k_2;
		NI colontmp__7;
		NI res_4;
		k_2 = (NI)0;
		colontmp__7 = (NI)0;
		colontmp__7 = ((NI) ((NI)((NI)(((NI) (result)) + n) - ((NI) 1))));
		res_4 = ((NI) (result));
		{
			while (1) {
				NIM_BOOL colontmp__8;
				tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__9;
				if (!(res_4 <= ((NI) (colontmp__7)))) goto LA38;
				k_2 = ((NI) (res_4));
				colontmp__8 = NIM_TRUE;
				colontmp__9 = kind;
				(*c).regInfo->data[k_2].Field0 = colontmp__8;
				(*c).regInfo->data[k_2].Field1 = colontmp__9;
				res_4 += ((NI) 1);
			} LA38: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genType__vmgen_1090)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	NI result;
	NI T10_;
	NI T11_;
{	result = (NI)0;
	{
		NI i;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		NI i_2;
		NI L;
		NI T2_;
		i = (NI)0;
		t = NIM_NIL;
		i_2 = ((NI) 0);
		T2_ = ((*c).types ? (*c).types->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i_2 < L)) goto LA4;
				i = i_2;
				t = (*c).types->data[i_2];
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = sameType__types_1886(t, typ, 0);
					if (!T7_) goto LA8_;
					result = i;
					goto BeforeRet_;
				}
				LA8_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	T10_ = ((*c).types ? (*c).types->Sup.len : 0);
	result = T10_;
	asgnRef((void**) (&(*c).types), (tySequence__vKogasEnJSPhbQmA8r4Y9aA*) incrSeqV3((TGenericSeq*)((*c).types), (&NTIttypeseq__vKogasEnJSPhbQmA8r4Y9aA_)));
	T11_ = (*c).types->Sup.len++;
	asgnRef((void**) (&(*c).types->data[T11_]), typ);
	{
		NimStringDesc* argX60gensym128_;
		if (!!((result <= ((NI) 8388607)))) goto LA14_;
		argX60gensym128_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_50);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym128_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_50);
	}
	LA14_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, freeTempRange__vmgen_627)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI start, NI n) {
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = ((NI) ((NI)((NI)(((NI) (start)) + n) - ((NI) 1))));
		res = ((NI) (start));
		{
			while (1) {
				if (!(res <= ((NI) (colontmp_)))) goto LA3;
				i = ((NI) (res));
				freeTemp__vmgen_551(c, i);
				res += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__vmgen_1206)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI x;
	NI T16_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* fntyp;
	NI T37_;
{	{
		NIM_BOOL T3_;
		NI T4_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(n);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T3_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).typ == 0);
		LA5_: ;
		if (!T3_) goto LA6_;
		goto BeforeRet_;
	}
	LA6_: ;
	{
		NIM_BOOL T10_;
		NIM_BOOL T12_;
		NI T15_;
		T10_ = (NIM_BOOL)0;
		T10_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T10_)) goto LA11_;
		T12_ = (NIM_BOOL)0;
		T12_ = isEmptyType__ast_4780((*n).typ);
		T10_ = !(T12_);
		LA11_: ;
		if (!T10_) goto LA13_;
		T15_ = (NI)0;
		T15_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T15_));
	}
	LA13_: ;
	T16_ = (NI)0;
	T16_ = len__ast_3155(n);
	x = getTempRange__vmgen_560(c, T16_, ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3));
	fntyp = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				NI r;
				if (!(i_2 < colontmp_)) goto LA19;
				i = i_2;
				r = ((NI) ((NI)(((NI) (x)) + i)));
				gen__vmgen_693(c, (*n)._kind_6.sons->data[i], r, 4);
				{
					NI T22_;
					NI T29_;
					T22_ = (NI)0;
					T22_ = len__ast_3990(fntyp);
					if (!(T22_ <= i)) goto LA23_;
					{
						NimStringDesc* argX60gensym147_;
						if (!!((((*fntyp).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 0))&63U)))!=0))) goto LA27_;
						argX60gensym147_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_49);
						internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym147_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_49);
					}
					LA27_: ;
					T29_ = (NI)0;
					T29_ = genType__vmgen_1090(c, (*(*n)._kind_6.sons->data[i]).typ);
					gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 187), r, T29_);
				}
				LA23_: ;
				i_2 += ((NI) 1);
			} LA19: ;
		}
	}
	{
		NI T34_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA32_;
		T34_ = (NI)0;
		T34_ = len__ast_3155(n);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 158), ((NI) 0), x, ((NI) (T34_)));
	}
	goto LA30_;
	LA32_: ;
	{
		NI T36_;
		T36_ = (NI)0;
		T36_ = len__ast_3155(n);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 159), ((NI) ((*dest))), x, ((NI) (T36_)));
	}
	LA30_: ;
	T37_ = (NI)0;
	T37_ = len__ast_3155(n);
	freeTempRange__vmgen_627(c, x, T37_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, needsAsgnPatch__vmgen_1271)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	NIM_BOOL T5_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65));
	if (T1_) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T3_)) goto LA4_;
	T5_ = (NIM_BOOL)0;
	T5_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
	if (!(T5_)) goto LA6_;
	T5_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
	LA6_: ;
	T3_ = T5_;
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genNew__vmgen_1359)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI dest;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T7_;
	NI T8_;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__vmgen_1271((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	T7_ = NIM_NIL;
	T7_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	T8_ = (NI)0;
	T8_ = genType__vmgen_1090(c, (*T7_).sons->data[((NI) 0)]);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 174), dest, T8_);
	genAsgnPatch__vmgen_1323(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__vmgen_551(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeq__vmgen_1373)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NI dest;
	NI tmp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T7_;
	NI T8_;
	t = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = needsAsgnPatch__vmgen_1271((*n)._kind_6.sons->data[((NI) 1)]);
		if (!T3_) goto LA4_;
		dest = getTemp__vmgen_542(c, t);
	}
	goto LA1_;
	LA4_: ;
	{
		dest = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	}
	LA1_: ;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	T7_ = NIM_NIL;
	T7_ = skipTypes__ast_3723(t, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	T8_ = (NI)0;
	T8_ = genType__vmgen_1090(c, T7_);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), dest, T8_);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
	genAsgnPatch__vmgen_1323(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	freeTemp__vmgen_551(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genNewSeqOfCap__vmgen_1388)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NI tmp;
	NI T6_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T7_;
	NI T8_;
	t = (*n).typ;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	T6_ = (NI)0;
	T6_ = genType__vmgen_1090(c, t);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), ((NI) ((*dest))), T6_);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), tmp, ((NI) 0));
	T7_ = NIM_NIL;
	T7_ = skipTypes__ast_3723(t, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	T8_ = (NI)0;
	T8_ = genType__vmgen_1090(c, T7_);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), ((NI) ((*dest))), T8_);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABC__vmgen_1399)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI tmp;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genUnaryABI__vmgen_1406)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI64 imm) {
	NI tmp;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABI__vmgen_348(c, n, opc, ((NI) ((*dest))), tmp, imm);
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genSetType__vmgen_1490)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	t = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_52);
	{
		NI T5_;
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 19))) goto LA3_;
		T5_ = (NI)0;
		T5_ = genType__vmgen_1090(c, t);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 187), dest, T5_);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCard__vmgen_1630)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI tmp;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType__vmgen_1490(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 40), ((NI) ((*dest))), tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrow__vmgen_1480)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	genBinaryABC__vmgen_1414(c, n, dest, opc);
	genNarrow__vmgen_1436(c, n, (*dest));
}
N_LIB_PRIVATE N_NIMCALL(void, genNarrowU__vmgen_1462)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	NI64 size;
	t = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	size = getSize__types_3388((*c).config, t);
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43) || (*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34));
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
		if (!(T5_)) goto LA6_;
		T5_ = (size < IL64(8));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) (dest)), ((NI) ((NI64)(size * IL64(8)))), ((NI) 0));
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCnarrowU__vmgen_1485)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	genBinaryABC__vmgen_1414(c, n, dest, opc);
	genNarrowU__vmgen_1462(c, n, (*dest));
}
static N_NIMCALL(void, Marker_tyRef__5gfb7QBO5jquZp7sfhoLnQ)(void* p, NI op) {
	tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw* a;
	a = (tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw*)p;
	nimGCvisit((void*)(*a).t21, op);
	nimGCvisit((void*)(*a).targ22, op);
	nimGCvisit((void*)(*a).n3, op);
	nimGCvisit((void*)(*a).arg4, op);
}
N_LIB_PRIVATE N_CLOSURE(NIM_BOOL, implicitConv__vmgen_1619)(void* ClE_0) {
	NIM_BOOL result;
	tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw* colonenvP_;
{	result = (NIM_BOOL)0;
	colonenvP_ = (tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw*) ClE_0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameBackendType__types_689((*colonenvP_).t21, (*colonenvP_).targ22);
		if (!T3_) goto LA4_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = ((*(*(*colonenvP_).n3).typ).kind == (*(*(*colonenvP_).arg4).typ).kind);
		if (!(T8_)) goto LA9_;
		T8_ = ((*(*(*colonenvP_).arg4).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		LA9_: ;
		if (!T8_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genConv__vmgen_1611)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw* colonenv_;
	NI tmp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
	NI T13_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T14_;
	NI T15_;
{	colonenv_ = NIM_NIL;
	colonenv_ = (tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw*) newObj((&NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_), sizeof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw));
	(*colonenv_).Sup.m_type = (&NTIobject__ciiSZIX9c04MZVntiKokFrw_);
	asgnRef((void**) (&(*colonenv_).n3), n);
	asgnRef((void**) (&(*colonenv_).arg4), arg);
	asgnRef((void**) (&(*colonenv_).t21), skipTypes__ast_3723((*(*colonenv_).n3).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_54));
	asgnRef((void**) (&(*colonenv_).targ22), skipTypes__ast_3723((*(*colonenv_).arg4).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_54));
	{
		tyProc__In3g79a0qTcRmbTbJp9ba9ctg T3_;
		NIM_BOOL T4_;
		nimZeroMem((void*)(&T3_), sizeof(tyProc__In3g79a0qTcRmbTbJp9ba9ctg));
		T3_.ClP_0 = implicitConv__vmgen_1619; T3_.ClE_0 = colonenv_;
		T4_ = (NIM_BOOL)0;
		T4_ = T3_.ClE_0? T3_.ClP_0(T3_.ClE_0):((TM__oYO8oEb9aAFcVmMqh9adT1hQ_55)(T3_.ClP_0))();
		if (!T4_) goto LA5_;
		gen__vmgen_688(c, (*colonenv_).arg4, dest, 0);
		goto BeforeRet_;
	}
	LA5_: ;
	tmp = genx__vmgen_713(c, (*colonenv_).arg4, 0);
	{
		NI T11_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
		T11_ = (NI)0;
		T11_ = getTemp__vmgen_542(c, (*(*colonenv_).n3).typ);
		(*dest) = ((NI) (T11_));
	}
	LA9_: ;
	gABC__vmgen_313(c, (*colonenv_).n3, opc, ((NI) ((*dest))), tmp, ((NI) 0));
	T12_ = NIM_NIL;
	T12_ = skipTypes__ast_3723((*(*colonenv_).n3).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_16);
	T13_ = (NI)0;
	T13_ = genType__vmgen_1090(c, T12_);
	gABx__vmgen_376(c, (*colonenv_).n3, opc, ((NI) 0), T13_);
	T14_ = NIM_NIL;
	T14_ = skipTypes__ast_3723((*(*colonenv_).arg4).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_16);
	T15_ = (NI)0;
	T15_ = genType__vmgen_1090(c, T14_);
	gABx__vmgen_376(c, (*colonenv_).n3, opc, ((NI) 0), T15_);
	freeTemp__vmgen_551(c, tmp);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinarySet__vmgen_1503)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI tmp;
	NI tmp2;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	genSetType__vmgen_1490(c, (*n)._kind_6.sons->data[((NI) 1)], tmp);
	genSetType__vmgen_1490(c, (*n)._kind_6.sons->data[((NI) 2)], tmp2);
	gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	freeTemp__vmgen_551(c, tmp);
	freeTemp__vmgen_551(c, tmp2);
}
N_LIB_PRIVATE N_NIMCALL(void, genVarargsABC__vmgen_1542)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI x;
	NI T6_;
	NI T10_;
	NI T11_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = len__ast_3155(n);
	x = getTempRange__vmgen_560(c, (NI)(T6_ - ((NI) 1)), ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 6));
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				NI r;
				if (!(i_2 < colontmp_)) goto LA9;
				i = i_2;
				r = ((NI) ((NI)((NI)(((NI) (x)) + i) - ((NI) 1))));
				gen__vmgen_693(c, (*n)._kind_6.sons->data[i], r, 0);
				i_2 += ((NI) 1);
			} LA9: ;
		}
	}
	T10_ = (NI)0;
	T10_ = len__ast_3155(n);
	gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), x, ((NI) ((NI)(T10_ - ((NI) 1)))));
	T11_ = (NI)0;
	T11_ = len__ast_3155(n);
	freeTempRange__vmgen_627(c, x, (NI)(T11_ - ((NI) 1)));
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ, ldNullOpcode__vmgen_1845)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ result;
	result = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = fitsRegister__vmgen_1823(t);
		if (!T3_) goto LA4_;
		result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 177);
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmtVar__vmgen_1522)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	NI dest;
	NI tmp;
	x = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64))) goto LA3_;
		x = (*x)._kind_6.sons->data[((NI) 0)];
	}
	LA3_: ;
	dest = genx__vmgen_713(c, x, 0);
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__vmgen_313(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
	freeTemp__vmgen_551(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryABCD__vmgen_1423)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI tmp;
	NI tmp2;
	NI tmp3;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	tmp3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), tmp, tmp2);
	gABC__vmgen_313(c, n, opc, tmp3, ((NI) 0), ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
	freeTemp__vmgen_551(c, tmp2);
	freeTemp__vmgen_551(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genVoidABC__vmgen_1758)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opcode) {
	NI tmp1;
	NI tmp2;
	NI tmp3;
	unused__vmgen_1028(c, n, dest);
	tmp1 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	tmp3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
	gABC__vmgen_313(c, n, opcode, tmp1, tmp2, tmp3);
	freeTemp__vmgen_551(c, tmp1);
	freeTemp__vmgen_551(c, tmp2);
	freeTemp__vmgen_551(c, tmp3);
}
N_LIB_PRIVATE N_NIMCALL(void, genBinaryStmt__vmgen_1514)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc) {
	NI dest;
	NI tmp;
	dest = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
	gABC__vmgen_313(c, n, opc, dest, tmp, ((NI) 0));
	freeTemp__vmgen_551(c, tmp);
	freeTemp__vmgen_551(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBindSym__vmgen_1769)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	{
		NI T3_;
		T3_ = (NI)0;
		T3_ = len__ast_3155(n);
		if (!(T3_ == ((NI) 2))) goto LA4_;
		{
			NI idx;
			if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 56) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 57) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA8_;
			idx = genLiteral__vmgen_1015(c, (*n)._kind_6.sons->data[((NI) 1)]);
			{
				NI T14_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA12_;
				T14_ = (NI)0;
				T14_ = getTemp__vmgen_542(c, (*n).typ);
				(*dest) = ((NI) (T14_));
			}
			LA12_: ;
			gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 185), ((NI) ((*dest))), idx);
		}
		goto LA6_;
		LA8_: ;
		{
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_62), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__oYO8oEb9aAFcVmMqh9adT1hQ_63, NIM_FALSE);
		}
		LA6_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI x;
		NI T22_;
		NI tmp0;
		NI tmp1;
		NI T27_;
		NI T28_;
		NI tmp2;
		NI T29_;
		NI T30_;
		NI T31_;
		NI T32_;
		{
			NI T21_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA19_;
			T21_ = (NI)0;
			T21_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T21_));
		}
		LA19_: ;
		T22_ = (NI)0;
		T22_ = len__ast_3155(n);
		x = getTempRange__vmgen_560(c, T22_, ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3));
		tmp0 = ((NI) (x));
		genLit__vmgen_1201(c, (*n)._kind_6.sons->data[((NI) 0)], (&tmp0));
		{
			NI i;
			NI colontmp_;
			NI T24_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			T24_ = (NI)0;
			T24_ = len__ast_3155(n);
			colontmp_ = (NI)(T24_ - ((NI) 2));
			i_2 = ((NI) 1);
			{
				while (1) {
					NI r;
					if (!(i_2 < colontmp_)) goto LA26;
					i = i_2;
					r = ((NI) ((NI)(((NI) (x)) + i)));
					gen__vmgen_693(c, (*n)._kind_6.sons->data[i], r, 0);
					i_2 += ((NI) 1);
				} LA26: ;
			}
		}
		T27_ = (NI)0;
		T27_ = len__ast_3155(n);
		tmp1 = ((NI) ((NI)((NI)(((NI) (x)) + T27_) - ((NI) 2))));
		T28_ = (NI)0;
		T28_ = len__ast_3155(n);
		genLit__vmgen_1201(c, (*n)._kind_6.sons->data[(NI)(T28_ - ((NI) 2))], (&tmp1));
		T29_ = (NI)0;
		T29_ = len__ast_3155(n);
		tmp2 = ((NI) ((NI)((NI)(((NI) (x)) + T29_) - ((NI) 1))));
		T30_ = (NI)0;
		T30_ = len__ast_3155(n);
		genLit__vmgen_1201(c, (*n)._kind_6.sons->data[(NI)(T30_ - ((NI) 1))], (&tmp2));
		T31_ = (NI)0;
		T31_ = len__ast_3155(n);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 186), ((NI) ((*dest))), x, ((NI) (T31_)));
		T32_ = (NI)0;
		T32_ = len__ast_3155(n);
		freeTempRange__vmgen_627(c, x, T32_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__vmgen_1867)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m) {
	switch (m) {
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109):
	{
		genAndOr__vmgen_938(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166), dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110):
	{
		genAndOr__vmgen_938(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165), dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 52):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 47):
	{
		genAddSubInt__vmgen_1597(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 32));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 51):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 46):
	{
		genAddSubInt__vmgen_1597(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 30));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 29):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 30):
	{
		NIM_BOOL isUnsigned;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T6_;
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc;
		NI d;
		unused__vmgen_1028(c, n, (*dest));
		T6_ = NIM_NIL;
		T6_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_39);
		isUnsigned = ((*T6_).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*T6_).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44));
		{
			if (!!(isUnsigned)) goto LA9_;
			{
				if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 29))) goto LA13_;
				opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 30);
			}
			goto LA11_;
			LA13_: ;
			{
				opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 32);
			}
			LA11_: ;
		}
		goto LA7_;
		LA9_: ;
		{
			{
				if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 29))) goto LA19_;
				opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 54);
			}
			goto LA17_;
			LA19_: ;
			{
				opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 55);
			}
			LA17_: ;
		}
		LA7_: ;
		d = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NIM_BOOL T24_;
			T24_ = (NIM_BOOL)0;
			T24_ = isInt8Lit__vmgen_1567((*n)._kind_6.sons->data[((NI) 2)]);
			if (!(T24_)) goto LA25_;
			T24_ = !(isUnsigned);
			LA25_: ;
			if (!T24_) goto LA26_;
			gABI__vmgen_348(c, n, (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)(opc + ((NI) 1)), d, d, (*(*n)._kind_6.sons->data[((NI) 2)])._kind_1.intVal);
		}
		goto LA22_;
		LA26_: ;
		{
			NI tmp;
			tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
			gABC__vmgen_313(c, n, opc, d, d, tmp);
			freeTemp__vmgen_551(c, tmp);
		}
		LA22_: ;
		genNarrow__vmgen_1436(c, (*n)._kind_6.sons->data[((NI) 1)], ((NI) (d)));
		genAsgnPatch__vmgen_1323(c, (*n)._kind_6.sons->data[((NI) 1)], d);
		freeTemp__vmgen_551(c, d);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 31):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 43):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 144):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 154):
	{
		gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 145):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 155) ... ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 156):
	{
		genCall__vmgen_1206(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 32):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 33):
	{
		unused__vmgen_1028(c, n, (*dest));
		genNew__vmgen_1359(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 34):
	{
		unused__vmgen_1028(c, n, (*dest));
		genNewSeq__vmgen_1373(c, n);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 35):
	{
		genNewSeqOfCap__vmgen_1388(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 146):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 164));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 147):
	{
		NI T36_;
		NI tmp_2;
		T36_ = (NI)0;
		T36_ = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		freeTemp__vmgen_551(c, T36_);
		tmp_2 = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), tmp_2, ((NI) 0));
		{
			NI T41_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA39_;
			T41_ = (NI)0;
			T41_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T41_));
		}
		LA39_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 164), ((NI) ((*dest))), tmp_2, ((NI) 0));
		freeTemp__vmgen_551(c, tmp_2);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 36):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 38):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 39):
	{
		genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 34), IL64(0));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 37):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T44_;
		T44_ = NIM_NIL;
		T44_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_39);
		switch ((*T44_).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
		{
			genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 35), IL64(0));
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
		{
			genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 36), IL64(0));
		}
		break;
		default:
		{
			{
				NimStringDesc* T52_;
				if (!NIM_TRUE) goto LA50_;
				T52_ = NIM_NIL;
				T52_ = rawNewString((reprEnum((NI)(*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)) ? reprEnum((NI)(*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_))->Sup.len : 0) + 28);
appendString(T52_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_51));
appendString(T52_, reprEnum((NI)(*(*(*n)._kind_6.sons->data[((NI) 1)]).typ).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)));
				failedAssertImpl__systemZassertions_56(T52_);
			}
			LA50_: ;
		}
		break;
		}
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 126):
	{
		NI d_2;
		NI left;
		NI right;
		d_2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		left = genIndex__vmgen_1307(c, (*n)._kind_6.sons->data[((NI) 2)], (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		right = genIndex__vmgen_1307(c, (*n)._kind_6.sons->data[((NI) 3)], (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		{
			NI T58_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA56_;
			T58_ = (NI)0;
			T58_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T58_));
		}
		LA56_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), d_2, ((NI) 0));
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 29), ((NI) ((*dest))), left, right);
		freeTemp__vmgen_551(c, left);
		freeTemp__vmgen_551(c, right);
		freeTemp__vmgen_551(c, d_2);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 40):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 41):
	{
		NI d_3;
		NI tmp_3;
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T60_;
		unused__vmgen_1028(c, n, (*dest));
		d_3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp_3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		genSetType__vmgen_1490(c, (*n)._kind_6.sons->data[((NI) 1)], d_3);
		T60_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
		{
			if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 40))) goto LA63_;
			T60_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 37);
		}
		goto LA61_;
		LA63_: ;
		{
			T60_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 39);
		}
		LA61_: ;
		gABC__vmgen_313(c, n, T60_, d_3, tmp_3, ((NI) 0));
		freeTemp__vmgen_551(c, d_3);
		freeTemp__vmgen_551(c, tmp_3);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 42):
	{
		genCard__vmgen_1630(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 48):
	{
		genBinaryABCnarrow__vmgen_1480(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 41));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 49):
	{
		genBinaryABCnarrow__vmgen_1480(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 42));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 50):
	{
		genBinaryABCnarrow__vmgen_1480(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 43));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 53):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 44));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 54):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 45));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 55):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 46));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 56):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 47));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 57):
	{
		NI tmp_4;
		NI tmp2;
		tmp_4 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		genNarrowU__vmgen_1462(c, n, ((NI) (tmp_4)));
		tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		{
			NI T79_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA77_;
			T79_ = (NI)0;
			T79_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T79_));
		}
		LA77_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 48), ((NI) ((*dest))), tmp_4, tmp2);
		freeTemp__vmgen_551(c, tmp_4);
		freeTemp__vmgen_551(c, tmp2);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 58):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		NI64 size;
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 49));
		t = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
		size = getSize__types_3388((*c).config, t);
		{
			NIM_BOOL T83_;
			NIM_BOOL T85_;
			T83_ = (NIM_BOOL)0;
			T83_ = ((*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43));
			if (T83_) goto LA84_;
			T85_ = (NIM_BOOL)0;
			T85_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40));
			if (!(T85_)) goto LA86_;
			T85_ = (size < IL64(8));
			LA86_: ;
			T83_ = T85_;
			LA84_: ;
			if (!T83_) goto LA87_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) ((*dest))), ((NI) ((NI64)(size * IL64(8)))), ((NI) 0));
		}
		goto LA81_;
		LA87_: ;
		{
			NIM_BOOL T90_;
			NIM_BOOL T92_;
			T90_ = (NIM_BOOL)0;
			T90_ = ((*t).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 32) && (*t).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 34));
			if (T90_) goto LA91_;
			T92_ = (NIM_BOOL)0;
			T92_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
			if (!(T92_)) goto LA93_;
			T92_ = (size < IL64(8));
			LA93_: ;
			T90_ = T92_;
			LA91_: ;
			if (!T90_) goto LA94_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 100), ((NI) ((*dest))), ((NI) ((NI64)(size * IL64(8)))), ((NI) 0));
		}
		goto LA81_;
		LA94_: ;
		LA81_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 59):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 50));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 60):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 51));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 61):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 52));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 62):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 53));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 65):
	{
		genBinaryABCnarrowU__vmgen_1485(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 54));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 66):
	{
		genBinaryABCnarrowU__vmgen_1485(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 55));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 67):
	{
		genBinaryABCnarrowU__vmgen_1485(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 56));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 68):
	{
		genBinaryABCnarrowU__vmgen_1485(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 57));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 69):
	{
		genBinaryABCnarrowU__vmgen_1485(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 58));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 84):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 78):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 81):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 59));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 71):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 79):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 82):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 85):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 60));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 80):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 83):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 86):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 61));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 73):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 62));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 74):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 63));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 75):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 64));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 88):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 76):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 65));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 89):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 77):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 66));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 92):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 67));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 90):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 70));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 71));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 93):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 94):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 72));
		genNarrow__vmgen_1436(c, n, (*dest));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 100):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 73));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 97):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 99):
	{
		gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 98):
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
		NI64 size_2;
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 74));
		t_2 = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
		size_2 = getSize__types_3388((*c).config, t_2);
		{
			NIM_BOOL T122_;
			NIM_BOOL T124_;
			T122_ = (NIM_BOOL)0;
			T122_ = ((*t_2).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 41) && (*t_2).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 43));
			if (T122_) goto LA123_;
			T124_ = (NIM_BOOL)0;
			T124_ = ((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40));
			if (!(T124_)) goto LA125_;
			T124_ = (size_2 < IL64(8));
			LA125_: ;
			T122_ = T124_;
			LA123_: ;
			if (!T122_) goto LA126_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) ((*dest))), ((NI) ((NI64)(size_2 * IL64(8)))), ((NI) 0));
		}
		LA126_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 101):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 102):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 103):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 104):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 105):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 106):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 107):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 108):
	{
		genConv__vmgen_1611(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 94));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 116):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 91):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 75));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 117):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 76));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 118):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 77));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 119):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 78));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 120):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 79));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 121):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 80));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 122):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 81));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 123):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 82));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 124):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 83));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 125):
	{
		genVarargsABC__vmgen_1542(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 84));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 134):
	{
		genBinarySet__vmgen_1503(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 85));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 135):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 86));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 136):
	{
		NI tmp_5;
		unused__vmgen_1028(c, n, (*dest));
		tmp_5 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 96), tmp_5, ((NI) 0), ((NI) 0));
		freeTemp__vmgen_551(c, tmp_5);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 137):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 138):
	{
		NI d_4;
		NI tmp_6;
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T143_;
		unused__vmgen_1028(c, n, (*dest));
		d_4 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp_6 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		T143_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
		{
			if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 137))) goto LA146_;
			T143_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 87);
		}
		goto LA144_;
		LA146_: ;
		{
			T143_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 88);
		}
		LA144_: ;
		gABC__vmgen_313(c, n, T143_, d_4, tmp_6, ((NI) 0));
		genAsgnPatch__vmgen_1323(c, (*n)._kind_6.sons->data[((NI) 1)], d_4);
		freeTemp__vmgen_551(c, tmp_6);
		freeTemp__vmgen_551(c, d_4);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 142):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T150_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T158_;
		unused__vmgen_1028(c, n, (*dest));
		T150_ = NIM_NIL;
		{
			NIM_BOOL T153_;
			T153_ = (NIM_BOOL)0;
			T153_ = ((*c).prc == ((tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw*) NIM_NIL));
			if (T153_) goto LA154_;
			T153_ = ((*(*c).prc).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
			LA154_: ;
			if (!T153_) goto LA155_;
			T150_ = (*c).module;
		}
		goto LA151_;
		LA155_: ;
		{
			T150_ = (*(*c).prc).sym;
		}
		LA151_: ;
		T158_ = NIM_NIL;
		T158_ = lowerSwap__lowerings_251((*c).graph, n, (*c).Sup.idgen, T150_);
		gen__vmgen_708(c, T158_, 0);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 143):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 89));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 148):
	{
		NI d2;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* d2AsNode;
		NI tmp1;
		NI tmp3;
		{
			NI T165_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA163_;
			T165_ = (NI)0;
			T165_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T165_));
		}
		LA163_: ;
		d2 = (NI)0;
		d2AsNode = (*(*n)._kind_6.sons->data[((NI) 2)])._kind_6.sons->data[((NI) 0)];
		{
			NIM_BOOL T168_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T171_;
			T168_ = (NIM_BOOL)0;
			T168_ = needsAsgnPatch__vmgen_1271(d2AsNode);
			if (!T168_) goto LA169_;
			T171_ = NIM_NIL;
			T171_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36));
			d2 = getTemp__vmgen_542(c, T171_);
		}
		goto LA166_;
		LA169_: ;
		{
			d2 = genx__vmgen_713(c, d2AsNode, 0);
		}
		LA166_: ;
		tmp1 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 3)], 0);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 93), ((NI) ((*dest))), tmp1, d2);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 93), tmp3, ((NI) 0), ((NI) 0));
		freeTemp__vmgen_551(c, tmp1);
		freeTemp__vmgen_551(c, tmp3);
		genAsgnPatch__vmgen_1323(c, d2AsNode, d2);
		freeTemp__vmgen_551(c, d2);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 159):
	{
		NI d_5;
		NI T174_;
		unused__vmgen_1028(c, n, (*dest));
		d_5 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T174_ = (NI)0;
		T174_ = genType__vmgen_1090(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), d_5, T174_);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), d_5, d_5, ((NI) 0));
		genAsgnPatch__vmgen_1323(c, (*n)._kind_6.sons->data[((NI) 1)], d_5);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 153):
	{
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T181_;
		NI T182_;
		{
			NI T180_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA178_;
			T180_ = (NI)0;
			T180_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T180_));
		}
		LA178_: ;
		T181_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
		T181_ = ldNullOpcode__vmgen_1845((*n).typ);
		T182_ = (NI)0;
		T182_ = genType__vmgen_1090(c, (*n).typ);
		gABx__vmgen_376(c, n, T181_, ((NI) ((*dest))), T182_);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 15):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 14):
	{
		NI tmp_7;
		NI idx;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T189_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
		NI T194_;
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T195_;
		{
			NI T188_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA186_;
			T188_ = (NI)0;
			T188_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T188_));
		}
		LA186_: ;
		tmp_7 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T189_ = NIM_NIL;
		T189_ = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
		idx = getTemp__vmgen_542(c, T189_);
		typ = (*(*n)._kind_6.sons->data[((NI) 2)]).typ;
		{
			if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 15))) goto LA192_;
			typ = skipTypes__ast_3723(typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_56);
		}
		LA192_: ;
		T194_ = (NI)0;
		T194_ = genType__vmgen_1090(c, typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), idx, T194_);
		T195_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
		{
			if (!(m == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 15))) goto LA198_;
			T195_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 90);
		}
		goto LA196_;
		LA198_: ;
		{
			T195_ = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 91);
		}
		LA196_: ;
		gABC__vmgen_313(c, n, T195_, ((NI) ((*dest))), tmp_7, idx);
		freeTemp__vmgen_551(c, tmp_7);
		freeTemp__vmgen_551(c, idx);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 9):
	{
		NI tmp_8;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T207_;
		{
			NI T206_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA204_;
			T206_ = (NI)0;
			T206_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T206_));
		}
		LA204_: ;
		tmp_8 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		T207_ = NIM_NIL;
		T207_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
		switch ((*T207_).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
		{
			gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 35), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
		{
			gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 36), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		default:
		{
			gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 34), ((NI) ((*dest))), tmp_8, IL64(1));
		}
		break;
		}
		freeTemp__vmgen_551(c, tmp_8);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 20):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
		unused__vmgen_1028(c, n, (*dest));
		n_2 = skipConv__types_3661((*n)._kind_6.sons->data[((NI) 1)]);
		{
			NI x;
			NI T216_;
			NI T220_;
			NI T221_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41))) goto LA214_;
			T216_ = (NI)0;
			T216_ = len__ast_3155(n_2);
			x = getTempRange__vmgen_560(c, T216_, ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3));
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n_2);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI r;
						if (!(i_2 < colontmp_)) goto LA219;
						i = i_2;
						r = ((NI) ((NI)(((NI) (x)) + i)));
						gen__vmgen_693(c, (*n_2)._kind_6.sons->data[i], r, 0);
						i_2 += ((NI) 1);
					} LA219: ;
				}
			}
			T220_ = (NI)0;
			T220_ = len__ast_3155(n_2);
			gABC__vmgen_313(c, n_2, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 157), x, ((NI) (T220_)), ((NI) 0));
			T221_ = (NI)0;
			T221_ = len__ast_3155(n_2);
			freeTempRange__vmgen_627(c, x, T221_);
		}
		LA214_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 131):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmtVar__vmgen_1522(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 101));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 132):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmtVar__vmgen_1522(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 102));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 133):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmtVar__vmgen_1522(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 103));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 25):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 142));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 26):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 143));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 13):
	{
		NI tmp_9;
		NI T233_;
		tmp_9 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T232_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA230_;
			T232_ = (NI)0;
			T232_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T232_));
		}
		LA230_: ;
		T233_ = (NI)0;
		T233_ = genType__vmgen_1090(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 187), tmp_9, T233_);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 188), ((NI) ((*dest))), tmp_9, ((NI) 0));
		freeTemp__vmgen_551(c, tmp_9);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 22):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 140));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 23):
	{
		genBinaryABCD__vmgen_1423(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 141));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 213):
	{
		genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 34), IL64(16));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 256):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 155));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 273):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 156));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 271):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 191));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 274):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 192));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 214):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 161));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 215):
	{
		genVoidABC__vmgen_1758(c, n, (*dest), ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 162));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 218):
	{
		genVoidABC__vmgen_1758(c, n, (*dest), ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 126));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 216):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 105));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 217):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 106));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 219):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 107));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 220):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 108));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 221):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 128));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 222):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 129));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 223):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 130));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 224):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 131));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 225):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 132));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 226):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 133));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 227):
	{
		genVoidABC__vmgen_1758(c, n, (*dest), ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 134));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 228):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 135));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 229):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 136));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 230):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 137));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 231):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 138));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 232):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 109));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 233):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 110));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 234):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 111));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 235):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 112));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 236):
	{
		NI tmp_10;
		NI rc;
		tmp_10 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T268_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA266_;
			T268_ = (NI)0;
			T268_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T268_));
		}
		LA266_: ;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_57))) goto LA269_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_58))) goto LA270_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_59))) goto LA271_;
		goto LA272_;
		LA269_: ;
		{
			rc = ((NI) 0);
		}
		goto LA273_;
		LA270_: ;
		{
			rc = ((NI) 1);
		}
		goto LA273_;
		LA271_: ;
		{
			rc = ((NI) 2);
		}
		goto LA273_;
		LA272_: ;
		{
			rc = ((NI) 3);
		}
		LA273_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 113), ((NI) ((*dest))), tmp_10, ((NI) (rc)));
		freeTemp__vmgen_551(c, tmp_10);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 250):
	{
		NI imm;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_60))) goto LA279_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_61))) goto LA280_;
		goto LA281_;
		LA279_: ;
		{
			imm = ((NI) 0);
		}
		goto LA282_;
		LA280_: ;
		{
			imm = ((NI) 1);
		}
		goto LA282_;
		LA281_: ;
		{
			imm = ((NI) 2);
		}
		LA282_: ;
		genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 116), ((NI64) (imm)));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 237):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 114));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 249):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 115));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 238):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 117));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 239):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 118));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 240):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 119));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 241):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 120));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 242):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 121));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 243):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 122));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 245):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 123));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 246):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 124));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 247):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 125));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 251):
	{
		genBindSym__vmgen_1769(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 248):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 154));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 253):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 153));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 254):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 68));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 255):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 69));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 244):
	{
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_64))) goto LA303_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_65))) goto LA304_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_66))) goto LA305_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_67))) goto LA306_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_68))) goto LA307_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_69))) goto LA308_;
		if (eqStrings((*(*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).name).s, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_70))) goto LA309_;
		goto LA310_;
		LA303_: ;
		{
			genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 148), IL64(0));
		}
		goto LA311_;
		LA304_: ;
		{
			genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 148), IL64(1));
		}
		goto LA311_;
		LA305_: ;
		{
			genUnaryABI__vmgen_1406(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 148), IL64(2));
		}
		goto LA311_;
		LA306_: ;
		{
			{
				NI T318_;
				NimStringDesc* argX60gensym331_;
				T318_ = (NI)0;
				T318_ = len__ast_3155(n);
				if (!!((T318_ == ((NI) 3)))) goto LA319_;
				argX60gensym331_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_71);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym331_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_71);
			}
			LA319_: ;
			unused__vmgen_1028(c, n, (*dest));
			genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 149));
		}
		goto LA311_;
		LA307_: ;
		{
			{
				NI T324_;
				NimStringDesc* argX60gensym333_;
				T324_ = (NI)0;
				T324_ = len__ast_3155(n);
				if (!!((T324_ == ((NI) 3)))) goto LA325_;
				argX60gensym333_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_72);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym333_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_72);
			}
			LA325_: ;
			unused__vmgen_1028(c, n, (*dest));
			genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 150));
		}
		goto LA311_;
		LA308_: ;
		{
			{
				NI T330_;
				NimStringDesc* argX60gensym335_;
				T330_ = (NI)0;
				T330_ = len__ast_3155(n);
				if (!!((T330_ == ((NI) 3)))) goto LA331_;
				argX60gensym335_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_73);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym335_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_73);
			}
			LA331_: ;
			unused__vmgen_1028(c, n, (*dest));
			genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 151));
		}
		goto LA311_;
		LA309_: ;
		{
			{
				NI T336_;
				NimStringDesc* argX60gensym337_;
				T336_ = (NI)0;
				T336_ = len__ast_3155(n);
				if (!!((T336_ == ((NI) 3)))) goto LA337_;
				argX60gensym337_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_74);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym337_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_74);
			}
			LA337_: ;
			unused__vmgen_1028(c, n, (*dest));
			genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 152));
		}
		goto LA311_;
		LA310_: ;
		{
			{
				NimStringDesc* argX60gensym339_;
				if (!NIM_TRUE) goto LA342_;
				argX60gensym339_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_75);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym339_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_75);
			}
			LA342_: ;
		}
		LA311_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 258):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 147));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 259):
	{
		unused__vmgen_1028(c, n, (*dest));
		genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 146));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 260):
	{
		{
			NI T349_;
			T349_ = (NI)0;
			T349_ = len__ast_3155(n);
			if (!(T349_ <= ((NI) 1))) goto LA350_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 144), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
		}
		goto LA347_;
		LA350_: ;
		{
			unused__vmgen_1028(c, n, (*dest));
			genBinaryStmt__vmgen_1514(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 145));
		}
		LA347_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 252):
	{
		{
			NI T358_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA356_;
			T358_ = (NI)0;
			T358_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T358_));
		}
		LA356_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 163), ((NI) ((*dest))), ((NI) 0), ((NI) 0));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 257):
	{
		genBinaryABC__vmgen_1414(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 127));
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 63):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 64):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 95):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 127):
	{
		genCall__vmgen_1206(c, n, dest);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 27):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg;
		{
			NI T364_;
			T364_ = (NI)0;
			T364_ = len__ast_3155(n);
			if (!!((T364_ == ((NI) 2)))) goto LA365_;
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_76), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_77, NIM_FALSE);
		}
		LA365_: ;
		arg = (*n)._kind_6.sons->data[((NI) 1)];
		{
			if (!((*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*arg).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA369_;
			{
				NI T375_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA373_;
				T375_ = (NI)0;
				T375_ = getTemp__vmgen_542(c, (*n).typ);
				(*dest) = ((NI) (T375_));
			}
			LA373_: ;
			genCall__vmgen_1206(c, arg, dest);
		}
		goto LA367_;
		LA369_: ;
		{
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_78), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_79, NIM_FALSE);
		}
		LA367_: ;
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 10):
	{
		NimStringDesc* T378_;
		T378_ = NIM_NIL;
		T378_ = nsuFormatOpenArray(((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_80), TM__oYO8oEb9aAFcVmMqh9adT1hQ_81, 1);
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T378_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_83, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 11):
	{
		NimStringDesc* T380_;
		T380_ = NIM_NIL;
		T380_ = nsuFormatOpenArray(((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_80), TM__oYO8oEb9aAFcVmMqh9adT1hQ_84, 1);
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T380_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_86, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 12):
	{
		NimStringDesc* T382_;
		T382_ = NIM_NIL;
		T382_ = nsuFormatOpenArray(((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_80), TM__oYO8oEb9aAFcVmMqh9adT1hQ_87, 1);
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T382_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_89, NIM_FALSE);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 268):
	{
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 151):
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 152):
	{
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 149):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg_2;
		NI a;
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T391_;
		arg_2 = (*n)._kind_6.sons->data[((NI) 1)];
		a = genx__vmgen_713(c, arg_2, 0);
		{
			NI T390_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA388_;
			T390_ = (NI)0;
			T390_ = getTemp__vmgen_542(c, (*arg_2).typ);
			(*dest) = ((NI) (T390_));
		}
		LA388_: ;
		T391_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
		T391_ = whichAsgnOpc__vmgen_1855(arg_2, NIM_FALSE);
		gABC__vmgen_313(c, arg_2, T391_, ((NI) ((*dest))), a, ((NI) 0));
		freeTemp__vmgen_551(c, a);
	}
	break;
	case ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 275):
	{
		genUnaryABC__vmgen_1399(c, n, dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 139));
	}
	break;
	default:
	{
		NimStringDesc* T394_;
		T394_ = NIM_NIL;
		T394_ = rawNewString((reprEnum((NI)m, (&NTItmagic__3qAy6bDUDlF8Fc2RR6pF9ag_)) ? reprEnum((NI)m, (&NTItmagic__3qAy6bDUDlF8Fc2RR6pF9ag_))->Sup.len : 0) + 26);
appendString(T394_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_30));
appendString(T394_, reprEnum((NI)m, (&NTItmagic__3qAy6bDUDlF8Fc2RR6pF9ag_)));
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T394_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_90, NIM_FALSE);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalLoad__vmgen_2109)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 189), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType__vmgen_1090(c, (*n).typ);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 189), ((NI) 0), T6_);
	freeTemp__vmgen_551(c, tmp);
}
N_LIB_PRIVATE N_NIMCALL(void, genMarshalStore__vmgen_2115)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI tmp;
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 190), ((NI) ((*dest))), tmp, ((NI) 0));
	T6_ = (NI)0;
	T6_ = genType__vmgen_1090(c, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 190), ((NI) 0), T6_);
	freeTemp__vmgen_551(c, tmp);
}
static N_INLINE(void, clearDest__vmgen_719)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= ((NI) ((*dest))));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).typ == 0);
		if (T5_) goto LA6_;
		T5_ = ((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63));
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		freeTemp__vmgen_551(c, ((NI) ((*dest))));
		(*dest) = ((NI) -1);
	}
	LA7_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isInt16Lit__vmgen_1582)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T5_;
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 15))) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = (IL64(-32768) <= (*n)._kind_1.intVal);
		if (!(T5_)) goto LA6_;
		T5_ = ((*n)._kind_1.intVal <= IL64(32767));
		LA6_: ;
		result = T5_;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, preventFalseAlias__vmgen_2374)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, NI dest, NI idx, NI value) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = isTemp__vmgen_930(c, ((NI) (dest)));
		T3_ = !(T4_);
		if (!(T3_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T6_ = fitsRegister__vmgen_1823((*n).typ);
		T3_ = !(T6_);
		LA5_: ;
		if (!T3_) goto LA7_;
		genAdditionalCopy__vmgen_2366(c, n, opc, dest, idx, value);
	}
	goto LA1_;
	LA7_: ;
	{
		gABC__vmgen_313(c, n, opc, dest, idx, value);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAsgn__vmgen_2388)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL requiresCopy) {
	switch ((*le).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		NI dest;
		NI idx;
		NI tmp;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* collTyp;
		dest = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx = genIndex__vmgen_1307(c, (*le)._kind_6.sons->data[((NI) 1)], (*(*le)._kind_6.sons->data[((NI) 0)]).typ);
		tmp = genx__vmgen_713(c, ri, 0);
		collTyp = skipTypes__ast_3723((*(*le)._kind_6.sons->data[((NI) 0)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_41);
		switch ((*collTyp).kind) {
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
		{
			preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 26), dest, idx, tmp);
		}
		break;
		case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
		{
			preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), dest, ((NI) (((NI) ((*(*le)._kind_6.sons->data[((NI) 1)])._kind_1.intVal)))), tmp);
		}
		break;
		default:
		{
			preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 18), dest, idx, tmp);
		}
		break;
		}
		freeTemp__vmgen_551(c, tmp);
		freeTemp__vmgen_551(c, idx);
		freeTemp__vmgen_551(c, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		NI objR;
		NI idx_2;
		NI tmp_2;
		objR = ((NI) -1);
		genCheckedObjAccessAux__vmgen_1318(c, le, (&objR), 1);
		idx_2 = genField__vmgen_1290(c, (*(*le)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
		tmp_2 = genx__vmgen_713(c, ri, 0);
		preventFalseAlias__vmgen_2374(c, (*le)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), ((NI) (objR)), idx_2, tmp_2);
		freeTemp__vmgen_551(c, tmp_2);
		freeTemp__vmgen_551(c, ((NI) (objR)));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		NI dest_2;
		NI idx_3;
		NI tmp_3;
		dest_2 = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		idx_3 = genField__vmgen_1290(c, (*le)._kind_6.sons->data[((NI) 1)]);
		tmp_3 = genx__vmgen_713(c, ri, 0);
		preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), dest_2, idx_3, tmp_3);
		freeTemp__vmgen_551(c, tmp_3);
		freeTemp__vmgen_551(c, dest_2);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
		NI dest_3;
		NI tmp_4;
		dest_3 = genx__vmgen_713(c, (*le)._kind_6.sons->data[((NI) 0)], 1);
		tmp_4 = genx__vmgen_713(c, ri, 0);
		preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), dest_3, ((NI) 0), tmp_4);
		freeTemp__vmgen_551(c, dest_3);
		freeTemp__vmgen_551(c, tmp_4);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = (*le)._kind_4.sym;
		checkCanEval__vmgen_2323(c, le);
		{
			NIM_BOOL T11_;
			NI tmp_5;
			NI val;
			T11_ = (NIM_BOOL)0;
			T11_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
			if (!(T11_)) goto LA12_;
			T11_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
			LA12_: ;
			if (!T11_) goto LA13_;
			tmp_5 = getTemp__vmgen_542(c, (*le).typ);
			gen__vmgen_693(c, le, tmp_5, 2);
			val = genx__vmgen_713(c, ri, 0);
			preventFalseAlias__vmgen_2374(c, le, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), tmp_5, ((NI) 0), val);
			freeTemp__vmgen_551(c, val);
			freeTemp__vmgen_551(c, tmp_5);
		}
		goto LA9_;
		LA13_: ;
		{
			NI dest_4;
			{
				if (!((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21))) goto LA18_;
				setSlot__vmgen_2279(c, s);
			}
			LA18_: ;
			{
				NIM_BOOL T22_;
				NIM_BOOL T24_;
				NimStringDesc* argX60gensym434_;
				T22_ = (NIM_BOOL)0;
				T22_ = (((NI) 0) < (*s).position);
				if (T22_) goto LA23_;
				T24_ = (NIM_BOOL)0;
				T24_ = ((*s).position == ((NI) 0));
				if (!(T24_)) goto LA25_;
				T24_ = ((2056 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA25_: ;
				T22_ = T24_;
				LA23_: ;
				if (!!(T22_)) goto LA26_;
				argX60gensym434_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_96);
				internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym434_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_96);
			}
			LA26_: ;
			dest_4 = ((NI) ((NI)((*s).position + ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3)))));
			{
				NIM_BOOL T30_;
				NIM_BOOL T31_;
				NIM_BOOL T32_;
				NIM_BOOL T34_;
				NI cc;
				tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T38_;
				T30_ = (NIM_BOOL)0;
				T31_ = (NIM_BOOL)0;
				T32_ = (NIM_BOOL)0;
				T32_ = isTemp__vmgen_930(c, ((NI) (dest_4)));
				T31_ = !(T32_);
				if (!(T31_)) goto LA33_;
				T34_ = (NIM_BOOL)0;
				T34_ = fitsRegister__vmgen_1823((*le).typ);
				T31_ = !(T34_);
				LA33_: ;
				T30_ = T31_;
				if (!(T30_)) goto LA35_;
				T30_ = ((2312 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
				LA35_: ;
				if (!T30_) goto LA36_;
				cc = getTemp__vmgen_542(c, (*le).typ);
				gen__vmgen_693(c, ri, cc, 0);
				T38_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
				T38_ = whichAsgnOpc__vmgen_1855(le, NIM_TRUE);
				gABC__vmgen_313(c, le, T38_, dest_4, cc, ((NI) 0));
				freeTemp__vmgen_551(c, cc);
			}
			goto LA28_;
			LA36_: ;
			{
				gen__vmgen_693(c, ri, dest_4, 0);
			}
			LA28_: ;
		}
		LA9_: ;
	}
	break;
	default:
	{
		NI dest_5;
		dest_5 = genx__vmgen_713(c, le, 2);
		genAsgn__vmgen_2270(c, ((NI) (dest_5)), ri, requiresCopy);
		freeTemp__vmgen_551(c, dest_5);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjAccessAux__vmgen_2638)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI a, NI b, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		if (!!(((2 & flags) == 0))) goto LA8_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 20), ((NI) ((*dest))), ((NI) (a)), ((NI) (b)));
	}
	goto LA6_;
	LA8_: ;
	{
		NIM_BOOL T11_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		NI cc;
		T11_ = (NIM_BOOL)0;
		T11_ = ((3 & flags) == 0);
		if (!(T11_)) goto LA12_;
		T13_ = NIM_NIL;
		T13_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_97);
		T11_ = fitsRegister__vmgen_1823(T13_);
		LA12_: ;
		if (!T11_) goto LA14_;
		cc = getTemp__vmgen_542(c, (*n).typ);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 19), cc, ((NI) (a)), ((NI) (b)));
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__vmgen_551(c, cc);
	}
	goto LA6_;
	LA14_: ;
	{
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 19), ((NI) ((*dest))), ((NI) (a)), ((NI) (b)));
	}
	LA6_: ;
	freeTemp__vmgen_551(c, ((NI) (a)));
}
N_LIB_PRIVATE N_NIMCALL(void, genObjAccess__vmgen_2662)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	T2_ = (NI)0;
	T2_ = genField__vmgen_1290(c, (*n)._kind_6.sons->data[((NI) 1)]);
	genObjAccessAux__vmgen_2638(c, n, ((NI) (T1_)), ((NI) (T2_)), dest, flags);
}
N_LIB_PRIVATE N_NIMCALL(void, genCheckedObjAccess__vmgen_2720)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI objR;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* accessExpr;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
	NI fieldPos;
	objR = ((NI) -1);
	genCheckedObjAccessAux__vmgen_1318(c, n, (&objR), flags);
	accessExpr = (*n)._kind_6.sons->data[((NI) 0)];
	field = (*accessExpr)._kind_6.sons->data[((NI) 1)];
	{
		NimStringDesc* argX60gensym492_;
		if (!!(((*(*field)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 19)))) goto LA3_;
		argX60gensym492_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_98);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym492_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_98);
	}
	LA3_: ;
	{
		NI T9_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA7_;
		T9_ = (NI)0;
		T9_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T9_));
	}
	LA7_: ;
	fieldPos = genField__vmgen_1290(c, field);
	{
		if (!!(((2 & flags) == 0))) goto LA12_;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 20), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	goto LA10_;
	LA12_: ;
	{
		NIM_BOOL T15_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T17_;
		NI cc;
		T15_ = (NIM_BOOL)0;
		T15_ = ((3 & flags) == 0);
		if (!(T15_)) goto LA16_;
		T17_ = NIM_NIL;
		T17_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_97);
		T15_ = fitsRegister__vmgen_1823(T17_);
		LA16_: ;
		if (!T15_) goto LA18_;
		cc = getTemp__vmgen_542(c, (*accessExpr).typ);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 19), cc, ((NI) (objR)), fieldPos);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__vmgen_551(c, cc);
	}
	goto LA10_;
	LA18_: ;
	{
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 19), ((NI) ((*dest))), ((NI) (objR)), fieldPos);
	}
	LA10_: ;
	freeTemp__vmgen_551(c, ((NI) (objR)));
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccessOpcode__vmgen_2610)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI a;
	NI b;
	a = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
	b = genIndex__vmgen_1307(c, (*n)._kind_6.sons->data[((NI) 1)], (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = (opc == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 17) || opc == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 28));
		if (!(T8_)) goto LA9_;
		T8_ = ((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 1))&7U)))!=0);
		LA9_: ;
		if (!T8_) goto LA10_;
		gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), a, b);
	}
	goto LA6_;
	LA10_: ;
	{
		NIM_BOOL T13_;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T15_;
		NI cc;
		T13_ = (NIM_BOOL)0;
		T13_ = ((3 & flags) == 0);
		if (!(T13_)) goto LA14_;
		T15_ = NIM_NIL;
		T15_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_97);
		T13_ = fitsRegister__vmgen_1823(T15_);
		LA14_: ;
		if (!T13_) goto LA16_;
		cc = getTemp__vmgen_542(c, (*n).typ);
		gABC__vmgen_313(c, n, opc, cc, a, b);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), cc, ((NI) 0));
		freeTemp__vmgen_551(c, cc);
	}
	goto LA6_;
	LA16_: ;
	{
		gABC__vmgen_313(c, n, opc, ((NI) ((*dest))), a, b);
	}
	LA6_: ;
	freeTemp__vmgen_551(c, a);
	freeTemp__vmgen_551(c, b);
}
N_LIB_PRIVATE N_NIMCALL(void, genArrAccess__vmgen_2756)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg arrayType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_41);
	arrayType = (*T1_).kind;
	switch (arrayType) {
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 28):
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29):
	{
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc;
		{
			if (!((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 1))&7U)))!=0)) goto LA5_;
			opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 28);
		}
		goto LA3_;
		LA5_: ;
		{
			opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 27);
		}
		LA3_: ;
		genArrAccessOpcode__vmgen_2610(c, n, dest, opc, flags);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18):
	{
		NI T9_;
		T9_ = (NI)0;
		T9_ = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		genObjAccessAux__vmgen_2638(c, n, ((NI) (T9_)), ((NI) ((*(*n)._kind_6.sons->data[((NI) 1)])._kind_1.intVal)), dest, flags);
	}
	break;
	case ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8):
	{
		genTypeLit__vmgen_2464(c, (*n).typ, dest);
	}
	break;
	default:
	{
		tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc_2;
		{
			if (!((flags &((NU8)1<<((NU)(((tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ) 1))&7U)))!=0)) goto LA14_;
			opc_2 = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 17);
		}
		goto LA12_;
		LA14_: ;
		{
			opc_2 = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 16);
		}
		LA12_: ;
		genArrAccessOpcode__vmgen_2610(c, n, dest, opc_2, flags);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, unneededIndirection__vmgen_2122)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	result = (NIM_BOOL)0;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_52);
	result = ((*T1_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genDeref__vmgen_2236)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = unneededIndirection__vmgen_2122((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 0)], dest, flags);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((3 & flags) == 0);
			if (!(T8_)) goto LA9_;
			T8_ = fitsRegister__vmgen_1823((*n).typ);
			LA9_: ;
			if (!T8_) goto LA10_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA10_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		NI tmp;
		tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], flags);
		{
			NI T17_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA15_;
			T17_ = (NI)0;
			T17_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T17_));
		}
		LA15_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 24), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = ((3 & flags) == 0);
			if (!(T20_)) goto LA21_;
			T20_ = fitsRegister__vmgen_1823((*n).typ);
			LA21_: ;
			if (!T20_) goto LA22_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 15), ((NI) ((*dest))), ((NI) ((*dest))), ((NI) 0));
		}
		LA22_: ;
		freeTemp__vmgen_551(c, tmp);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, canElimAddr__vmgen_2133)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*(*n)._kind_6.sons->data[((NI) 0)]).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 70):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 68):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 69):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
		m = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		{
			if (!((*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47) || (*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA4_;
			result = copyNode__ast_4324((*n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, (*m)._kind_6.sons->data[((NI) 0)]);
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T8_;
				T8_ = NIM_NIL;
				T8_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_99);
				if (!!(((*T8_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27)))) goto LA9_;
				asgnRef((void**) (&(*result).typ), (*n).typ);
			}
			goto LA6_;
			LA9_: ;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T15_;
				T12_ = NIM_NIL;
				T12_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
				if (!((*T12_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23))) goto LA13_;
				T15_ = NIM_NIL;
				T15_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
				asgnRef((void**) (&(*result).typ), toVar__ast_4863((*result).typ, (*T15_).kind, idgen));
			}
			goto LA6_;
			LA13_: ;
			LA6_: ;
		}
		LA4_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m_2;
		m_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
		{
			if (!((*m_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47) || (*m_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA19_;
			result = copyNode__ast_4324((*n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, (*m_2)._kind_6.sons->data[((NI) 0)]);
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T23_;
				T23_ = NIM_NIL;
				T23_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_99);
				if (!!(((*T23_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27)))) goto LA24_;
				asgnRef((void**) (&(*result).typ), (*n).typ);
			}
			goto LA21_;
			LA24_: ;
			{
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T27_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T30_;
				T27_ = NIM_NIL;
				T27_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
				if (!((*T27_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 23))) goto LA28_;
				T30_ = NIM_NIL;
				T30_ = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_40);
				asgnRef((void**) (&(*result).typ), toVar__ast_4863((*result).typ, (*T30_).kind, idgen));
			}
			goto LA21_;
			LA28_: ;
			LA21_: ;
		}
		LA19_: ;
	}
	break;
	default:
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA34_;
			result = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
		}
		LA34_: ;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isGlobal__vmgen_1256)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
	if (!(T3_)) goto LA4_;
	T3_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genAddr__vmgen_2193)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ newflags;
{	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
		m = canElimAddr__vmgen_2133(n, (*c).Sup.idgen);
		if (!!((m == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA3_;
		gen__vmgen_688(c, m, dest, flags);
		goto BeforeRet_;
	}
	LA3_: ;
	newflags = ((flags & ~ 1) | 2);
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isGlobal__vmgen_1256((*n)._kind_6.sons->data[((NI) 0)]);
		if (T7_) goto LA8_;
		T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
		LA8_: ;
		if (!T7_) goto LA9_;
		gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 0)], dest, newflags);
	}
	goto LA5_;
	LA9_: ;
	{
		NI tmp;
		tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], newflags);
		{
			NI T16_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA14_;
			T16_ = (NI)0;
			T16_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T16_));
		}
		LA14_: ;
		{
			if (!(((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 3) <= (*(*c).prc).regInfo->data[tmp].Field1)) goto LA19_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 23), ((NI) ((*dest))), tmp, ((NI) 0));
			(*(*c).prc).regInfo->data[tmp].Field1 = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 8);
		}
		goto LA17_;
		LA19_: ;
		{
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 22), ((NI) ((*dest))), tmp, ((NI) 0));
		}
		LA17_: ;
		freeTemp__vmgen_551(c, tmp);
	}
	LA5_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNotOpr__vmgen_730)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32));
	if (!(T2_)) goto LA3_;
	T2_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96));
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__vmgen_884)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__ast_4780((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T14_;
					NI tmp;
					NI elsePos;
					T14_ = (NI)0;
					T14_ = len__ast_3155(it);
					if (!(T14_ == ((NI) 2))) goto LA15_;
					tmp = getTemp__vmgen_542(c, (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
					elsePos = (NI)0;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = isNotOpr__vmgen_730((*it)._kind_6.sons->data[((NI) 0)]);
						if (!T19_) goto LA20_;
						gen__vmgen_693(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], tmp, 0);
						elsePos = xjmp__vmgen_399(c, (*(*it)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165), tmp);
					}
					goto LA17_;
					LA20_: ;
					{
						gen__vmgen_693(c, (*it)._kind_6.sons->data[((NI) 0)], tmp, 0);
						elsePos = xjmp__vmgen_399(c, (*it)._kind_6.sons->data[((NI) 0)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166), tmp);
					}
					LA17_: ;
					freeTemp__vmgen_551(c, tmp);
					clearDest__vmgen_719(c, n, dest);
					gen__vmgen_688(c, (*it)._kind_6.sons->data[((NI) 1)], dest, 0);
					{
						NI T25_;
						NI T28_;
						NI T29_;
						T25_ = (NI)0;
						T25_ = len__ast_3155(n);
						if (!(i < (NI)(T25_ - ((NI) 1)))) goto LA26_;
						T28_ = (NI)0;
						T28_ = xjmp__vmgen_399(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
						T29_ = endings->Sup.len++;
						endings->data[T29_] = T28_;
					}
					LA26_: ;
					patch__vmgen_435(c, elsePos);
				}
				goto LA12_;
				LA15_: ;
				{
					clearDest__vmgen_719(c, n, dest);
					gen__vmgen_688(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
				}
				LA12_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	{
		NI* endPos;
		NI i_3;
		NI L;
		NI T32_;
		endPos = (NI*)0;
		i_3 = ((NI) 0);
		T32_ = (endings ? endings->Sup.len : 0);
		L = T32_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA34;
				endPos = (&endings->data[i_3]);
				patch__vmgen_435(c, (*endPos));
				i_3 += ((NI) 1);
			} LA34: ;
		}
	}
	clearDest__vmgen_719(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__vmgen_1032)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI tmp;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__ast_4780((*n).typ);
		if (!!(T3_)) goto LA4_;
		{
			NI T10_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA8_;
			T10_ = (NI)0;
			T10_ = getTemp__vmgen_542(c, (*n).typ);
			(*dest) = ((NI) (T10_));
		}
		LA8_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		unused__vmgen_1028(c, n, (*dest));
	}
	LA1_: ;
	endings = NIM_NIL;
	tmp = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
	gen__vmgen_693(c, (*n)._kind_6.sons->data[((NI) 0)], tmp, 0);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA14;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI T17_;
					T17_ = (NI)0;
					T17_ = len__ast_3155(it);
					if (!(T17_ == ((NI) 1))) goto LA18_;
					{
						NIM_BOOL T22_;
						T22_ = (NIM_BOOL)0;
						T22_ = !(((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23)));
						if (T22_) goto LA23_;
						T22_ = !(((*(*it)._kind_6.sons->data[((NI) 0)]).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
						LA23_: ;
						if (!T22_) goto LA24_;
						gen__vmgen_688(c, (*it)._kind_6.sons->data[((NI) 0)], dest, 0);
					}
					LA24_: ;
				}
				goto LA15_;
				LA18_: ;
				{
					NI b;
					NI elsePos;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
					b = rawGenLiteral__vmgen_948(c, it);
					gABx__vmgen_376(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 169), tmp, b);
					T27_ = NIM_NIL;
					T27_ = lastSon__ast_4833(it);
					elsePos = xjmp__vmgen_399(c, T27_, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166), tmp);
					T28_ = NIM_NIL;
					T28_ = lastSon__ast_4833(it);
					gen__vmgen_688(c, T28_, dest, 0);
					{
						NI T31_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T34_;
						NI T35_;
						NI T36_;
						T31_ = (NI)0;
						T31_ = len__ast_3155(n);
						if (!(i < (NI)(T31_ - ((NI) 1)))) goto LA32_;
						T34_ = NIM_NIL;
						T34_ = lastSon__ast_4833(it);
						T35_ = (NI)0;
						T35_ = xjmp__vmgen_399(c, T34_, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
						T36_ = endings->Sup.len++;
						endings->data[T36_] = T35_;
					}
					LA32_: ;
					patch__vmgen_435(c, elsePos);
				}
				LA15_: ;
				clearDest__vmgen_719(c, n, dest);
				i_2 += ((NI) 1);
			} LA14: ;
		}
	}
	freeTemp__vmgen_551(c, tmp);
	{
		NI* endPos;
		NI i_3;
		NI L;
		NI T38_;
		endPos = (NI*)0;
		i_3 = ((NI) 0);
		T38_ = (endings ? endings->Sup.len : 0);
		L = T38_;
		{
			while (1) {
				if (!(i_3 < L)) goto LA40;
				endPos = (&endings->data[i_3]);
				patch__vmgen_435(c, (*endPos));
				i_3 += ((NI) 1);
			} LA40: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__vmgen_417)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__vmgen_747)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = !(((*(*n)._kind_4.sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6));
	if (!(T7_)) goto LA8_;
	T7_ = !(((*n)._kind_1.intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__vmgen_423)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI p) {
	NI dist;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	dist = (NI)(p - T1_);
	{
		NIM_BOOL T4_;
		NimStringDesc* argX60gensym49_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) -8388607) < dist);
		if (!(T4_)) goto LA5_;
		T4_ = (dist < ((NI) 8388607));
		LA5_: ;
		if (!!(T4_)) goto LA6_;
		argX60gensym49_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_102);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym49_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_102);
	}
	LA6_: ;
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 168), ((NI) 0), dist);
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__vmgen_640)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI oldLen) {
	{
		NI* f;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T2_;
		f = (NI*)0;
		colontmp_ = NIM_NIL;
		colontmp_ = (*(*c).prc).blocks->data[oldLen].fixups;
		i = ((NI) 0);
		T2_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				if (!(i < L)) goto LA4;
				f = (&colontmp_->data[i]);
				patch__vmgen_435(c, (*f));
				i += ((NI) 1);
			} LA4: ;
		}
	}
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__wOOG2VKbTPdEdoo59cOatCw*) setLengthSeqV2(((*(*c).prc).blocks)?&((*(*c).prc).blocks)->Sup:NIM_NIL, (&NTIseqLtblockT__wOOG2VKbTPdEdoo59cOatCw_), ((NI) (oldLen))));
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__vmgen_762)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI lab1;
	NI oldLen;
	NI T1_;
	NI T2_;
	lab1 = genLabel__vmgen_417(c);
	T1_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T1_;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__wOOG2VKbTPdEdoo59cOatCw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTIseqLtblockT__wOOG2VKbTPdEdoo59cOatCw_)));
	T2_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T2_].label), TM__oYO8oEb9aAFcVmMqh9adT1hQ_100.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T2_].fixups), TM__oYO8oEb9aAFcVmMqh9adT1hQ_100.fixups, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue__vmgen_747((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T5_) goto LA6_;
		gen__vmgen_708(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__vmgen_423(c, n, lab1);
	}
	goto LA3_;
	LA6_: ;
	{
		NIM_BOOL T9_;
		NI tmp;
		NI lab2;
		T9_ = (NIM_BOOL)0;
		T9_ = isNotOpr__vmgen_730((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T9_) goto LA10_;
		tmp = genx__vmgen_713(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], 0);
		lab2 = xjmp__vmgen_399(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165), tmp);
		freeTemp__vmgen_551(c, tmp);
		gen__vmgen_708(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__vmgen_423(c, n, lab1);
		patch__vmgen_435(c, lab2);
	}
	goto LA3_;
	LA10_: ;
	{
		NI tmp_2;
		NI lab2_2;
		tmp_2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		lab2_2 = xjmp__vmgen_399(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166), tmp_2);
		freeTemp__vmgen_551(c, tmp_2);
		gen__vmgen_708(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		jmpBack__vmgen_423(c, n, lab1);
		patch__vmgen_435(c, lab2_2);
	}
	LA3_: ;
	popBlock__vmgen_640(c, oldLen);
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__vmgen_809)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI oldRegisterCount;
	NI T1_;
	NI oldLen;
	NI T2_;
	tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ T3_;
	NI T4_;
	T1_ = ((*(*c).prc).regInfo ? (*(*c).prc).regInfo->Sup.len : 0);
	oldRegisterCount = T1_;
	T2_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
	oldLen = T2_;
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ));
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__65dcPwuICorQ6X0g9a7oKkQ));
	T3_.label = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	T3_.fixups = NIM_NIL;
	asgnRef((void**) (&(*(*c).prc).blocks), (tySequence__wOOG2VKbTPdEdoo59cOatCw*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks), (&NTIseqLtblockT__wOOG2VKbTPdEdoo59cOatCw_)));
	T4_ = (*(*c).prc).blocks->Sup.len++;
	asgnRef((void**) (&(*(*c).prc).blocks->data[T4_].label), T3_.label);
	genericSeqAssign((&(*(*c).prc).blocks->data[T4_].fixups), T3_.fixups, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 1)], dest, 0);
	popBlock__vmgen_640(c, oldLen);
	{
		NI i;
		NI colontmp_;
		NI T6_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T6_ = ((*(*c).prc).regInfo ? (*(*c).prc).regInfo->Sup.len : 0);
		colontmp_ = T6_;
		i_2 = oldRegisterCount;
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA8;
				i = i_2;
				{
					NIM_BOOL colontmp__2;
					tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA colontmp__3;
					if (!!((i == ((NI) ((*dest)))))) goto LA11_;
					colontmp__2 = NIM_FALSE;
					colontmp__3 = ((tyEnum_TSlotKind__MaOFY039asb5DVSmSlOHGtA) 0);
					(*(*c).prc).regInfo->data[i].Field0 = colontmp__2;
					(*(*c).prc).regInfo->data[i].Field1 = colontmp__3;
				}
				LA11_: ;
				i_2 += ((NI) 1);
			} LA8: ;
		}
	}
	clearDest__vmgen_719(c, n, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__vmgen_1192)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA3_;
		gen__vmgen_708(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	LA3_: ;
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__vmgen_1187)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI dest;
	dest = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 160), dest, ((NI) 0), ((NI) 0));
	freeTemp__vmgen_551(c, dest);
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__vmgen_841)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI lab1;
{	lab1 = xjmp__vmgen_399(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
	{
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0);
			colontmp_ = (NI)(T6_ - ((NI) 1));
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NI T13_;
						if (!((*(*c).prc).blocks->data[i].label == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym)) goto LA11_;
						asgnRef((void**) (&(*(*c).prc).blocks->data[i].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[i].fixups), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
						T13_ = (*(*c).prc).blocks->data[i].fixups->Sup.len++;
						(*(*c).prc).blocks->data[i].fixups->data[T13_] = lab1;
						goto BeforeRet_;
					}
					LA11_: ;
					res -= ((NI) 1);
				} LA8: ;
			}
		}
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_103), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_104, NIM_FALSE);
	}
	goto LA1_;
	LA3_: ;
	{
		NI T15_;
		NI T16_;
		T15_ = (((*(*c).prc).blocks ? (*(*c).prc).blocks->Sup.len : 0)-1);
		asgnRef((void**) (&(*(*c).prc).blocks->data[T15_].fixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*(*c).prc).blocks->data[T15_].fixups), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
		T16_ = (*(*c).prc).blocks->data[T15_].fixups->Sup.len++;
		(*(*c).prc).blocks->data[T15_].fixups->data[T16_] = lab1;
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__vmgen_1112)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI ehPos;
	NI jumpToFinally;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fin;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) ((*dest))) < ((NI) 0));
		if (!(T3_)) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = isEmptyType__ast_4780((*n).typ);
		T3_ = !(T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		T8_ = (NI)0;
		T8_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T8_));
	}
	LA6_: ;
	endings = NIM_NIL;
	ehPos = xjmp__vmgen_399(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 170), ((NI) 0));
	gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	clearDest__vmgen_719(c, n, dest);
	jumpToFinally = xjmp__vmgen_399(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
	patch__vmgen_435(c, ehPos);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA11;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NI endExcept;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T26_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107)))) goto LA14_;
					endExcept = xjmp__vmgen_399(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 171), ((NI) 0));
					{
						NI j;
						NI colontmp__2;
						NI T17_;
						NI i_3;
						j = (NI)0;
						colontmp__2 = (NI)0;
						T17_ = (NI)0;
						T17_ = len__ast_3155(it);
						colontmp__2 = (NI)(T17_ - ((NI) 1));
						i_3 = ((NI) 0);
						{
							while (1) {
								tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
								NI T20_;
								if (!(i_3 < colontmp__2)) goto LA19;
								j = i_3;
								typ = skipTypes__ast_3723((*(*it)._kind_6.sons->data[j]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_105);
								T20_ = (NI)0;
								T20_ = genType__vmgen_1090(c, typ);
								gABx__vmgen_376(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 171), ((NI) 0), T20_);
								i_3 += ((NI) 1);
							} LA19: ;
						}
					}
					{
						NI T23_;
						T23_ = (NI)0;
						T23_ = len__ast_3155(it);
						if (!(T23_ == ((NI) 1))) goto LA24_;
						gABx__vmgen_376(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 171), ((NI) 0), ((NI) 0));
					}
					LA24_: ;
					T26_ = NIM_NIL;
					T26_ = lastSon__ast_4833(it);
					gen__vmgen_688(c, T26_, dest, 0);
					clearDest__vmgen_719(c, n, dest);
					{
						NI T29_;
						NI T32_;
						NI T33_;
						T29_ = (NI)0;
						T29_ = len__ast_3155(n);
						if (!(i < T29_)) goto LA30_;
						T32_ = (NI)0;
						T32_ = xjmp__vmgen_399(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
						endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
						T33_ = endings->Sup.len++;
						endings->data[T33_] = T32_;
					}
					LA30_: ;
					patch__vmgen_435(c, endExcept);
				}
				LA14_: ;
				i_2 += ((NI) 1);
			} LA11: ;
		}
	}
	fin = lastSon__ast_4833(n);
	patch__vmgen_435(c, jumpToFinally);
	gABx__vmgen_376(c, fin, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 172), ((NI) 0), ((NI) 0));
	{
		NI* endPos;
		NI i_4;
		NI L;
		NI T35_;
		endPos = (NI*)0;
		i_4 = ((NI) 0);
		T35_ = (endings ? endings->Sup.len : 0);
		L = T35_;
		{
			while (1) {
				if (!(i_4 < L)) goto LA37;
				endPos = (&endings->data[i_4]);
				patch__vmgen_435(c, (*endPos));
				i_4 += ((NI) 1);
			} LA37: ;
		}
	}
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA40_;
		gen__vmgen_708(c, (*fin)._kind_6.sons->data[((NI) 0)], 0);
		clearDest__vmgen_719(c, n, dest);
	}
	LA40_: ;
	gABx__vmgen_376(c, fin, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 173), ((NI) 0), ((NI) 0));
}
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3155(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getOwner__vmgen_2306)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	result = NIM_NIL;
	result = (*(*c).prc).sym;
	{
		if (!(result == 0)) goto LA3_;
		result = (*c).module;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__vmgen_2899)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
		a = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						{
							if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125))) goto LA8_;
							goto LA5;
						}
						LA8_: ;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T28_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T29_;
							if (!((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA12_;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__ast_3155(a);
								colontmp__2 = (NI)(T15_ - ((NI) 2));
								i_4 = ((NI) 0);
								{
									while (1) {
										if (!(i_4 < colontmp__2)) goto LA17;
										i_3 = i_4;
										{
											if (!((*(*a)._kind_6.sons->data[i_3]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA20_;
											{
												NIM_BOOL T24_;
												T24_ = (NIM_BOOL)0;
												T24_ = (((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
												if (!(T24_)) goto LA25_;
												T24_ = !(((*(*(*a)._kind_6.sons->data[i_3])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
												LA25_: ;
												if (!!(T24_)) goto LA26_;
												setSlot__vmgen_2279(c, (*(*a)._kind_6.sons->data[i_3])._kind_4.sym);
											}
											LA26_: ;
											checkCanEval__vmgen_2323(c, (*a)._kind_6.sons->data[i_3]);
										}
										LA20_: ;
										i_4 += ((NI) 1);
									} LA17: ;
								}
							}
							T28_ = NIM_NIL;
							T28_ = getOwner__vmgen_2306(c);
							T29_ = NIM_NIL;
							T29_ = lowerTupleUnpacking__lowerings_116((*c).graph, a, (*c).Sup.idgen, T28_);
							gen__vmgen_708(c, T29_, 0);
						}
						goto LA10_;
						LA12_: ;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
							if (!((*(*a)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA31_;
							s = (*(*a)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
							checkCanEval__vmgen_2323(c, (*a)._kind_6.sons->data[((NI) 0)]);
							{
								NIM_BOOL T35_;
								T35_ = (NIM_BOOL)0;
								T35_ = (((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
								if (!(T35_)) goto LA36_;
								T35_ = !(((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21)));
								LA36_: ;
								if (!T35_) goto LA37_;
								{
									if (!((*s).position == ((NI) 0))) goto LA41_;
									{
										NIM_BOOL T45_;
										T45_ = (NIM_BOOL)0;
										T45_ = importcCond__vmgen_2485(c, s);
										if (!T45_) goto LA46_;
										importcSym__vmgen_2497(c, (*a).info, s);
									}
									goto LA43_;
									LA46_: ;
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sa;
										sa = getNullValue__vmgen_2501((*s).typ, (*a).info, (*c).config);
										add__ast_4798((*c).globals, sa);
										(*s).position = len__ast_3155((*c).globals);
									}
									LA43_: ;
								}
								LA41_: ;
								{
									NI tmp;
									NI val;
									if (!!(((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA51_;
									tmp = genx__vmgen_713(c, (*a)._kind_6.sons->data[((NI) 0)], 2);
									val = genx__vmgen_713(c, (*a)._kind_6.sons->data[((NI) 2)], 0);
									genAdditionalCopy__vmgen_2366(c, (*a)._kind_6.sons->data[((NI) 2)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), tmp, ((NI) 0), val);
									freeTemp__vmgen_551(c, val);
									freeTemp__vmgen_551(c, tmp);
								}
								goto LA49_;
								LA51_: ;
								{
									NIM_BOOL T54_;
									NIM_BOOL T55_;
									NIM_BOOL T56_;
									NIM_BOOL T58_;
									NI tmp_2;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* sa_2;
									NI val_2;
									T54_ = (NIM_BOOL)0;
									T55_ = (NIM_BOOL)0;
									T56_ = (NIM_BOOL)0;
									T56_ = importcCondVar__vmgen_2312(s);
									T55_ = !(T56_);
									if (!(T55_)) goto LA57_;
									T58_ = (NIM_BOOL)0;
									T58_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
									if (!(T58_)) goto LA59_;
									T58_ = ((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
									LA59_: ;
									T55_ = !(T58_);
									LA57_: ;
									T54_ = T55_;
									if (!(T54_)) goto LA60_;
									T54_ = !((((*s).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 11))&63U)))!=0));
									LA60_: ;
									if (!T54_) goto LA61_;
									tmp_2 = genx__vmgen_713(c, (*a)._kind_6.sons->data[((NI) 0)], 2);
									sa_2 = getNullValue__vmgen_2501((*s).typ, (*a).info, (*c).config);
									val_2 = genx__vmgen_713(c, sa_2, 0);
									genAdditionalCopy__vmgen_2366(c, sa_2, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 25), tmp_2, ((NI) 0), val_2);
									freeTemp__vmgen_551(c, val_2);
									freeTemp__vmgen_551(c, tmp_2);
								}
								goto LA49_;
								LA61_: ;
								LA49_: ;
							}
							goto LA33_;
							LA37_: ;
							{
								setSlot__vmgen_2279(c, s);
								{
									tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T68_;
									NI T69_;
									if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA66_;
									T68_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
									T68_ = ldNullOpcode__vmgen_1845((*s).typ);
									T69_ = (NI)0;
									T69_ = genType__vmgen_1090(c, (*s).typ);
									gABx__vmgen_376(c, a, T68_, ((NI) ((*s).position)), T69_);
								}
								goto LA64_;
								LA66_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le;
									{
										NIM_BOOL T73_;
										tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T76_;
										NI T77_;
										T73_ = (NIM_BOOL)0;
										T73_ = fitsRegister__vmgen_1823((*s).typ);
										if (!!(T73_)) goto LA74_;
										T76_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
										T76_ = ldNullOpcode__vmgen_1845((*s).typ);
										T77_ = (NI)0;
										T77_ = genType__vmgen_1090(c, (*s).typ);
										gABx__vmgen_376(c, a, T76_, ((NI) ((*s).position)), T77_);
									}
									LA74_: ;
									le = (*a)._kind_6.sons->data[((NI) 0)];
									{
										NIM_BOOL T80_;
										NIM_BOOL T81_;
										NI cc;
										tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T85_;
										T80_ = (NIM_BOOL)0;
										T81_ = (NIM_BOOL)0;
										T81_ = fitsRegister__vmgen_1823((*le).typ);
										T80_ = !(T81_);
										if (!(T80_)) goto LA82_;
										T80_ = ((2312 &((NU32)1<<((NU)((*s).kind)&31U)))!=0);
										LA82_: ;
										if (!T80_) goto LA83_;
										cc = getTemp__vmgen_542(c, (*le).typ);
										gen__vmgen_693(c, (*a)._kind_6.sons->data[((NI) 2)], cc, 0);
										T85_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
										T85_ = whichAsgnOpc__vmgen_1855(le, NIM_TRUE);
										gABC__vmgen_313(c, le, T85_, ((NI) ((*s).position)), cc, ((NI) 0));
										freeTemp__vmgen_551(c, cc);
									}
									goto LA78_;
									LA83_: ;
									{
										gen__vmgen_693(c, (*a)._kind_6.sons->data[((NI) 2)], ((NI) ((*s).position)), 0);
									}
									LA78_: ;
								}
								LA64_: ;
							}
							LA33_: ;
						}
						goto LA10_;
						LA31_: ;
						{
							{
								NI tmp_3;
								tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T92_;
								NI T93_;
								if (!((*(*a)._kind_6.sons->data[((NI) 2)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA90_;
								tmp_3 = genx__vmgen_713(c, (*a)._kind_6.sons->data[((NI) 0)], 0);
								T92_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
								T92_ = ldNullOpcode__vmgen_1845((*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								T93_ = (NI)0;
								T93_ = genType__vmgen_1090(c, (*(*a)._kind_6.sons->data[((NI) 0)]).typ);
								gABx__vmgen_376(c, a, T92_, tmp_3, T93_);
								freeTemp__vmgen_551(c, tmp_3);
							}
							goto LA88_;
							LA90_: ;
							{
								genAsgn__vmgen_2388(c, (*a)._kind_6.sons->data[((NI) 0)], (*a)._kind_6.sons->data[((NI) 2)], NIM_TRUE);
							}
							LA88_: ;
						}
						LA10_: ;
					} LA5: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genArrayConstr__vmgen_3031)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI T6_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* intType;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* seqType;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType__vmgen_1090(c, (*n).typ);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), ((NI) ((*dest))), T6_);
	intType = getSysType__magicsys_60((*c).graph, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	seqType = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_36);
	{
		NI tmp;
		NI T11_;
		NI T12_;
		if (!((*seqType).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24))) goto LA9_;
		tmp = getTemp__vmgen_542(c, intType);
		T11_ = (NI)0;
		T11_ = len__ast_3155(n);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), tmp, T11_);
		T12_ = (NI)0;
		T12_ = genType__vmgen_1090(c, seqType);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), ((NI) ((*dest))), T12_);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 175), tmp, ((NI) 0));
		freeTemp__vmgen_551(c, tmp);
	}
	LA9_: ;
	{
		NI T15_;
		NI tmp_2;
		NI T18_;
		T15_ = (NI)0;
		T15_ = len__ast_3155(n);
		if (!(((NI) 0) < T15_)) goto LA16_;
		tmp_2 = getTemp__vmgen_542(c, intType);
		T18_ = (NI)0;
		T18_ = genType__vmgen_1090(c, intType);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 177), tmp_2, T18_);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
			x = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						NI a;
						if (!(i_2 < colontmp_)) goto LA22;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						a = genx__vmgen_713(c, x, 0);
						preventFalseAlias__vmgen_2374(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 18), ((NI) ((*dest))), tmp_2, a);
						gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 31), tmp_2, tmp_2, IL64(1));
						freeTemp__vmgen_551(c, a);
						i_2 += ((NI) 1);
					} LA22: ;
				}
			}
		}
		freeTemp__vmgen_551(c, tmp_2);
	}
	LA16_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genSetConstr__vmgen_3055)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	NI T6_;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	T6_ = (NI)0;
	T6_ = genType__vmgen_1090(c, (*n).typ);
	gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), ((NI) ((*dest))), T6_);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
		x = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					x = (*n)._kind_6.sons->data[i];
					{
						NI a;
						NI b;
						if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44))) goto LA13_;
						a = genx__vmgen_713(c, (*x)._kind_6.sons->data[((NI) 0)], 0);
						b = genx__vmgen_713(c, (*x)._kind_6.sons->data[((NI) 1)], 0);
						gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 38), ((NI) ((*dest))), a, b);
						freeTemp__vmgen_551(c, b);
						freeTemp__vmgen_551(c, a);
					}
					goto LA11_;
					LA13_: ;
					{
						NI a_2;
						a_2 = genx__vmgen_713(c, x, 0);
						gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 37), ((NI) ((*dest))), a_2, ((NI) 0));
						freeTemp__vmgen_551(c, a_2);
					}
					LA11_: ;
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genObjConstr__vmgen_3069)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	t = skipTypes__ast_3723((*n).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_17);
	{
		NI T10_;
		if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22))) goto LA8_;
		T10_ = (NI)0;
		T10_ = genType__vmgen_1090(c, (*t).sons->data[((NI) 0)]);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 174), ((NI) ((*dest))), T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		NI T12_;
		T12_ = (NI)0;
		T12_ = genType__vmgen_1090(c, (*n).typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), ((NI) ((*dest))), T12_);
	}
	LA6_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3155(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				if (!(i_2 < colontmp_)) goto LA15;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T18_;
					NI idx;
					NI tmp;
					T18_ = (NIM_BOOL)0;
					T18_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34));
					if (!(T18_)) goto LA19_;
					T18_ = ((*(*it)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
					LA19_: ;
					if (!T18_) goto LA20_;
					idx = genField__vmgen_1290(c, (*it)._kind_6.sons->data[((NI) 0)]);
					tmp = genx__vmgen_713(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
					preventFalseAlias__vmgen_2374(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), ((NI) ((*dest))), idx, tmp);
					freeTemp__vmgen_551(c, tmp);
				}
				goto LA16_;
				LA20_: ;
				{
					liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_106), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_107, NIM_FALSE);
				}
				LA16_: ;
				i_2 += ((NI) 1);
			} LA15: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genTupleConstr__vmgen_3111)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	{
		NI T5_;
		if (!(((NI) ((*dest))) < ((NI) 0))) goto LA3_;
		T5_ = (NI)0;
		T5_ = getTemp__vmgen_542(c, (*n).typ);
		(*dest) = ((NI) (T5_));
	}
	LA3_: ;
	{
		NI T10_;
		if (!!(((*(*n).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8)))) goto LA8_;
		T10_ = (NI)0;
		T10_ = genType__vmgen_1090(c, (*n).typ);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 176), ((NI) ((*dest))), T10_);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					it = (*n)._kind_6.sons->data[i];
					{
						NI idx;
						NI tmp;
						if (!((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA16_;
						idx = genField__vmgen_1290(c, (*it)._kind_6.sons->data[((NI) 0)]);
						tmp = genx__vmgen_713(c, (*it)._kind_6.sons->data[((NI) 1)], 0);
						preventFalseAlias__vmgen_2374(c, (*it)._kind_6.sons->data[((NI) 1)], ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), ((NI) ((*dest))), idx, tmp);
						freeTemp__vmgen_551(c, tmp);
					}
					goto LA14_;
					LA16_: ;
					{
						NI tmp_2;
						tmp_2 = genx__vmgen_713(c, it, 0);
						preventFalseAlias__vmgen_2374(c, it, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 21), ((NI) ((*dest))), ((NI) (i)), tmp_2);
						freeTemp__vmgen_551(c, tmp_2);
					}
					LA14_: ;
					i_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	LA8_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCastIntFloat__vmgen_1637)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest) {
	tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg signedIntegers;
	tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg unsignedIntegers;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* src;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* dst;
	NI64 srcSize;
	NI64 dstSize;
	nimZeroMem((void*)signedIntegers, sizeof(tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg));
	nimCopyMem((void*)signedIntegers, (NIM_CONST void*)TM__oYO8oEb9aAFcVmMqh9adT1hQ_108, 9);
	nimZeroMem((void*)unsignedIntegers, sizeof(tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg));
	nimCopyMem((void*)unsignedIntegers, (NIM_CONST void*)TM__oYO8oEb9aAFcVmMqh9adT1hQ_109, 9);
	src = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_110);
	dst = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__oYO8oEb9aAFcVmMqh9adT1hQ_110);
	srcSize = getSize__types_3388((*c).config, src);
	dstSize = getSize__types_3388((*c).config, dst);
	{
		NIM_BOOL T3_;
		NI tmp;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*src).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*src).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*src).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*src).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		if (!(T3_)) goto LA4_;
		T3_ = ((*dst).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*dst).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*dst).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*dst).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		LA4_: ;
		if (!T3_) goto LA5_;
		tmp = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T11_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA9_;
			T11_ = (NI)0;
			T11_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T11_));
		}
		LA9_: ;
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 4), ((NI) ((*dest))), tmp, ((NI) 0));
		{
			if (!!((dstSize == IL64(8)))) goto LA14_;
			{
				if (!((signedIntegers[(NU)((*dst).kind)>>3] &(1U<<((NU)((*dst).kind)&7U)))!=0)) goto LA18_;
				{
					if (!(dstSize <= srcSize)) goto LA22_;
					gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 100), ((NI) ((*dest))), ((NI) ((NI64)(dstSize * IL64(8)))), ((NI) 0));
				}
				LA22_: ;
			}
			goto LA16_;
			LA18_: ;
			{
				if (!((unsignedIntegers[(NU)((*dst).kind)>>3] &(1U<<((NU)((*dst).kind)&7U)))!=0)) goto LA25_;
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((signedIntegers[(NU)((*src).kind)>>3] &(1U<<((NU)((*src).kind)&7U)))!=0);
					if (T29_) goto LA30_;
					T29_ = (dstSize < srcSize);
					LA30_: ;
					if (!T29_) goto LA31_;
					gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) ((*dest))), ((NI) ((NI64)(dstSize * IL64(8)))), ((NI) 0));
				}
				LA31_: ;
			}
			goto LA16_;
			LA25_: ;
			LA16_: ;
		}
		LA14_: ;
		freeTemp__vmgen_551(c, tmp);
	}
	goto LA1_;
	LA5_: ;
	{
		NIM_BOOL T34_;
		NIM_BOOL T35_;
		NI tmp_2;
		T34_ = (NIM_BOOL)0;
		T35_ = (NIM_BOOL)0;
		T35_ = (srcSize == dstSize);
		if (!(T35_)) goto LA36_;
		T35_ = ((*src).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*src).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*src).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*src).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		LA36_: ;
		T34_ = T35_;
		if (!(T34_)) goto LA37_;
		T34_ = ((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38));
		LA37_: ;
		if (!T34_) goto LA38_;
		tmp_2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T44_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA42_;
			T44_ = (NI)0;
			T44_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T44_));
		}
		LA42_: ;
		{
			if (!((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37))) goto LA47_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 8), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		goto LA45_;
		LA47_: ;
		{
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 9), ((NI) ((*dest))), tmp_2, ((NI) 0));
		}
		LA45_: ;
		freeTemp__vmgen_551(c, tmp_2);
	}
	goto LA1_;
	LA38_: ;
	{
		NIM_BOOL T51_;
		NIM_BOOL T52_;
		NI tmp_3;
		T51_ = (NIM_BOOL)0;
		T52_ = (NIM_BOOL)0;
		T52_ = (srcSize == dstSize);
		if (!(T52_)) goto LA53_;
		T52_ = ((*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 36) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 38));
		LA53_: ;
		T51_ = T52_;
		if (!(T51_)) goto LA54_;
		T51_ = ((*dst).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31) && (*dst).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 35) || (*dst).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 40) && (*dst).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 44) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 2));
		LA54_: ;
		if (!T51_) goto LA55_;
		tmp_3 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T61_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA59_;
			T61_ = (NI)0;
			T61_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T61_));
		}
		LA59_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 37))) goto LA64_;
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 10), ((NI) ((*dest))), tmp_3, ((NI) 0));
			{
				if (!((unsignedIntegers[(NU)((*dst).kind)>>3] &(1U<<((NU)((*dst).kind)&7U)))!=0)) goto LA68_;
				gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 99), ((NI) ((*dest))), ((NI) 32), ((NI) 0));
			}
			LA68_: ;
		}
		goto LA62_;
		LA64_: ;
		{
			gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 11), ((NI) ((*dest))), tmp_3, ((NI) 0));
		}
		LA62_: ;
		freeTemp__vmgen_551(c, tmp_3);
	}
	goto LA1_;
	LA55_: ;
	{
		NIM_BOOL T72_;
		NI tmp_4;
		NI64 imm;
		T72_ = (NIM_BOOL)0;
		T72_ = ((*src).kind >= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) && (*src).kind <= ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26));
		if (!(T72_)) goto LA73_;
		T72_ = ((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
		LA73_: ;
		if (!T72_) goto LA74_;
		tmp_4 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T80_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA78_;
			T80_ = (NI)0;
			T80_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T80_));
		}
		LA78_: ;
		{
			if (!((*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21))) goto LA83_;
			imm = IL64(1);
		}
		goto LA81_;
		LA83_: ;
		{
			imm = IL64(2);
		}
		LA81_: ;
		gABI__vmgen_348(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 12), ((NI) ((*dest))), tmp_4, imm);
		freeTemp__vmgen_551(c, tmp_4);
	}
	goto LA1_;
	LA74_: ;
	{
		NIM_BOOL T87_;
		NI tmp_5;
		NI T96_;
		T87_ = (NIM_BOOL)0;
		T87_ = ((*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26) || (*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
		if (!(T87_)) goto LA88_;
		T87_ = ((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21));
		LA88_: ;
		if (!T87_) goto LA89_;
		tmp_5 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		{
			NI T95_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA93_;
			T95_ = (NI)0;
			T95_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T95_));
		}
		LA93_: ;
		T96_ = (NI)0;
		T96_ = genType__vmgen_1090(c, dst);
		gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 187), ((NI) ((*dest))), T96_);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 13), ((NI) ((*dest))), tmp_5, ((NI) 0));
		freeTemp__vmgen_551(c, tmp_5);
	}
	goto LA1_;
	LA89_: ;
	{
		NIM_BOOL T98_;
		T98_ = (NIM_BOOL)0;
		T98_ = ((*src).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 5));
		if (!(T98_)) goto LA99_;
		T98_ = ((*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 29) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25) || (*dst).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 50));
		LA99_: ;
		if (!T98_) goto LA100_;
		{
			NI T106_;
			if (!(((NI) ((*dest))) < ((NI) 0))) goto LA104_;
			T106_ = (NI)0;
			T106_ = getTemp__vmgen_542(c, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
			(*dest) = ((NI) (T106_));
		}
		LA104_: ;
		genLit__vmgen_1201(c, (*n)._kind_6.sons->data[((NI) 1)], dest);
	}
	goto LA1_;
	LA100_: ;
	{
		NimStringDesc* T108_;
		T108_ = NIM_NIL;
		T108_ = rawNewString((reprEnum((NI)(*src).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)) ? reprEnum((NI)(*src).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_))->Sup.len : 0) + (reprEnum((NI)(*dst).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)) ? reprEnum((NI)(*dst).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_))->Sup.len : 0) + 36);
appendString(T108_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_111));
appendString(T108_, reprEnum((NI)(*src).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)));
appendString(T108_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_112));
appendString(T108_, reprEnum((NI)(*dst).kind, (&NTIttypekind__b28l2MkhJpnFhatVrsrXpg_)));
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T108_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_113, NIM_FALSE);
	}
	LA1_: ;
}
static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3592)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 8) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_688)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NI* dest, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s;
		s = (*n)._kind_4.sym;
		checkCanEval__vmgen_2323(c, n);
		switch ((*s).kind) {
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 21):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 11):
		{
			genRdVar__vmgen_2522(c, n, dest, flags);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 12):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 13):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 16):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 18):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14):
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15):
		{
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
				if (!(T6_)) goto LA7_;
				T6_ = ((*(*s).typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
				LA7_: ;
				if (!T6_) goto LA8_;
				liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_25), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_26, NIM_FALSE);
			}
			LA8_: ;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = procIsCallback__vmgen_3188(c, s);
				if (!T12_) goto LA13_;
			}
			goto LA10_;
			LA13_: ;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = importcCond__vmgen_2485(c, s);
				if (!T16_) goto LA17_;
				importcSym__vmgen_2497(c, (*n).info, s);
			}
			goto LA10_;
			LA17_: ;
			LA10_: ;
			genLit__vmgen_1201(c, n, dest);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 10):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constVal;
			{
				if (!!(((*s).ast == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA22_;
				constVal = (*s).ast;
			}
			goto LA20_;
			LA22_: ;
			{
				constVal = (*(*s).typ).n;
			}
			LA20_: ;
			{
				NIM_BOOL T27_;
				T27_ = (NIM_BOOL)0;
				T27_ = dontInlineConstant__trees_420(n, constVal);
				if (!T27_) goto LA28_;
				genLit__vmgen_1201(c, constVal, dest);
			}
			goto LA25_;
			LA28_: ;
			{
				gen__vmgen_688(c, constVal, dest, 0);
			}
			LA25_: ;
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 20):
		{
			{
				NI T36_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA34_;
				T36_ = (NI)0;
				T36_ = getTemp__vmgen_542(c, (*n).typ);
				(*dest) = ((NI) (T36_));
			}
			LA34_: ;
			{
				NIM_BOOL T39_;
				T39_ = (NIM_BOOL)0;
				T39_ = (((NI) -32768) <= (*s).position);
				if (!(T39_)) goto LA40_;
				T39_ = ((*s).position <= ((NI) 32767));
				LA40_: ;
				if (!T39_) goto LA41_;
				gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), ((NI) ((*dest))), (*s).position);
			}
			goto LA37_;
			LA41_: ;
			{
				NI lit;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T44_;
				T44_ = NIM_NIL;
				T44_ = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((*s).position)));
				lit = genLiteral__vmgen_1015(c, T44_);
				gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 178), ((NI) ((*dest))), lit);
			}
			LA37_: ;
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 7):
		{
			genTypeLit__vmgen_2464(c, (*s).typ, dest);
		}
		break;
		case ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 4):
		{
			{
				NIM_BOOL T49_;
				T49_ = (NIM_BOOL)0;
				T49_ = !(((*(*c).prc).sym == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
				if (!(T49_)) goto LA50_;
				T49_ = ((*(*(*c).prc).sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
				LA50_: ;
				if (!T49_) goto LA51_;
				genRdVar__vmgen_2522(c, n, dest, flags);
			}
			goto LA47_;
			LA51_: ;
			{
				NimStringDesc* T54_;
				T54_ = NIM_NIL;
				T54_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T54_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_30));
appendString(T54_, (*(*s).name).s);
				liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T54_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_31, NIM_FALSE);
			}
			LA47_: ;
		}
		break;
		default:
		{
			NimStringDesc* T56_;
			T56_ = NIM_NIL;
			T56_ = rawNewString(((*(*s).name).s ? (*(*s).name).s->Sup.len : 0) + 26);
appendString(T56_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_30));
appendString(T56_, (*(*s).name).s);
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T56_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_32, NIM_FALSE);
		}
		break;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	{
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s_2;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA60_;
			s_2 = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!!(((*s_2).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 0)))) goto LA64_;
				genMagic__vmgen_1867(c, n, dest, (*s_2).magic);
			}
			goto LA62_;
			LA64_: ;
			{
				NimStringDesc* T69_;
				if (!((*s_2).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 14))) goto LA67_;
				T69_ = NIM_NIL;
				T69_ = rawNewString(((*(*s_2).name).s ? (*(*s_2).name).s->Sup.len : 0) + 35);
appendString(T69_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_91));
appendString(T69_, (*(*s_2).name).s);
appendString(T69_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_92));
				liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T69_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__oYO8oEb9aAFcVmMqh9adT1hQ_93, NIM_FALSE);
			}
			goto LA62_;
			LA67_: ;
			{
				NIM_BOOL T71_;
				T71_ = (NIM_BOOL)0;
				T71_ = matches__vmgen_3142(s_2, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_94));
				if (!T71_) goto LA72_;
				genMarshalLoad__vmgen_2109(c, n, dest);
			}
			goto LA62_;
			LA72_: ;
			{
				NIM_BOOL T75_;
				T75_ = (NIM_BOOL)0;
				T75_ = matches__vmgen_3142(s_2, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_95));
				if (!T75_) goto LA76_;
				genMarshalStore__vmgen_2115(c, n, dest);
			}
			goto LA62_;
			LA76_: ;
			{
				genCall__vmgen_1206(c, n, dest);
				clearDest__vmgen_719(c, n, dest);
			}
			LA62_: ;
		}
		goto LA58_;
		LA60_: ;
		{
			genCall__vmgen_1206(c, n, dest);
			clearDest__vmgen_719(c, n, dest);
		}
		LA58_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 10):
	{
		{
			NIM_BOOL T83_;
			T83_ = (NIM_BOOL)0;
			T83_ = isInt16Lit__vmgen_1582(n);
			if (!T83_) goto LA84_;
			{
				NI T90_;
				if (!(((NI) ((*dest))) < ((NI) 0))) goto LA88_;
				T90_ = (NI)0;
				T90_ = getTemp__vmgen_542(c, (*n).typ);
				(*dest) = ((NI) (T90_));
			}
			LA88_: ;
			gABx__vmgen_376(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 184), ((NI) ((*dest))), ((NI) ((*n)._kind_1.intVal)));
		}
		goto LA81_;
		LA84_: ;
		{
			genLit__vmgen_1201(c, n, dest);
		}
		LA81_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 11) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22):
	{
		genLit__vmgen_1201(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	{
		{
			NIM_BOOL T96_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T99_;
			T96_ = (NIM_BOOL)0;
			T96_ = isEmptyType__ast_4780((*n).typ);
			if (!!(T96_)) goto LA97_;
			T99_ = NIM_NIL;
			T99_ = getNullValue__vmgen_2501((*n).typ, (*n).info, (*c).config);
			genLit__vmgen_1201(c, T99_, dest);
		}
		goto LA94_;
		LA97_: ;
		{
			unused__vmgen_1028(c, n, (*dest));
		}
		LA94_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
	{
		unused__vmgen_1028(c, n, (*dest));
		genAsgn__vmgen_2388(c, (*n)._kind_6.sons->data[((NI) 0)], (*n)._kind_6.sons->data[((NI) 1)], ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73)));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		genObjAccess__vmgen_2662(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		genCheckedObjAccess__vmgen_2720(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		genArrAccess__vmgen_2756(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
		genDeref__vmgen_2236(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
	{
		genAddr__vmgen_2193(c, n, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
	{
		genIf__vmgen_884(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
	{
		gen__vmgen_688(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		genCase__vmgen_1032(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		unused__vmgen_1028(c, n, (*dest));
		genWhile__vmgen_762(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	{
		genBlock__vmgen_809(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
	{
		genReturn__vmgen_1192(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
	{
		genRaise__vmgen_1187(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
	{
		genBreak__vmgen_841(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		genTry__vmgen_1112(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
			x = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA120;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						gen__vmgen_708(c, x, 0);
						i_2 += ((NI) 1);
					} LA120: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		NI T126_;
		{
			NI i_3;
			NI colontmp__2;
			NI T123_;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T123_ = (NI)0;
			T123_ = len__ast_3155(n);
			colontmp__2 = (NI)(T123_ - ((NI) 1));
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA125;
					i_3 = i_4;
					gen__vmgen_708(c, (*n)._kind_6.sons->data[i_3], 0);
					i_4 += ((NI) 1);
				} LA125: ;
			}
		}
		T126_ = (NI)0;
		T126_ = len__ast_3155(n);
		gen__vmgen_688(c, (*n)._kind_6.sons->data[(NI)(T126_ - ((NI) 1))], dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 91):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T128_;
		T128_ = NIM_NIL;
		T128_ = lastSon__ast_4833(n);
		gen__vmgen_688(c, T128_, dest, flags);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114):
	{
		unused__vmgen_1028(c, n, (*dest));
		gen__vmgen_708(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
	{
		genConv__vmgen_1611(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 94));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
	{
		genConv__vmgen_1611(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 94));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
	{
		genConv__vmgen_1611(c, n, (*n)._kind_6.sons->data[((NI) 0)], dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 94));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	{
		unused__vmgen_1028(c, n, (*dest));
		genVarSection__vmgen_2899(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
		unused__vmgen_1028(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T136_;
		T136_ = NIM_NIL;
		T136_ = newSymNode__ast_3704((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
		genLit__vmgen_1201(c, T136_, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 68):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 69):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 70):
	{
		NI tmp0;
		NI tmp1;
		NI tmp2;
		tmp0 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 0)], 0);
		tmp1 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 1)], 0);
		tmp2 = genx__vmgen_713(c, (*n)._kind_6.sons->data[((NI) 2)], 0);
		gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 104), tmp0, tmp1, tmp2);
		freeTemp__vmgen_551(c, tmp1);
		freeTemp__vmgen_551(c, tmp2);
		{
			tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ T142_;
			if (!(((NI) 0) <= ((NI) ((*dest))))) goto LA140_;
			T142_ = (tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ)0;
			T142_ = whichAsgnOpc__vmgen_1855(n, NIM_TRUE);
			gABC__vmgen_313(c, n, T142_, ((NI) ((*dest))), tmp0, ((NI) 0));
			freeTemp__vmgen_551(c, tmp0);
		}
		goto LA138_;
		LA140_: ;
		{
			(*dest) = ((NI) (tmp0));
		}
		LA138_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 120):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
	{
		unused__vmgen_1028(c, n, (*dest));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 71):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 72):
	{
		gen__vmgen_688(c, (*n)._kind_6.sons->data[((NI) 0)], dest, 0);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
	{
		genArrayConstr__vmgen_3031(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39):
	{
		genSetConstr__vmgen_3055(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
	{
		genObjConstr__vmgen_3069(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		genTupleConstr__vmgen_3111(c, n, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
	{
		{
			if (!(((*c).features &((NU8)1<<((NU)(((tyEnum_TSandboxFlag__6jKj8dTCDIUGegA1P2RahA) 0))&7U)))!=0)) goto LA153_;
			genConv__vmgen_1611(c, n, (*n)._kind_6.sons->data[((NI) 1)], dest, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 95));
		}
		goto LA151_;
		LA153_: ;
		{
			genCastIntFloat__vmgen_1637(c, n, dest);
		}
		LA151_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
	{
		genTypeLit__vmgen_2464(c, (*n).typ, dest);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 24):
	{
	}
	break;
	default:
	{
		{
			NIM_BOOL T161_;
			T161_ = (NIM_BOOL)0;
			T161_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
			if (!(T161_)) goto LA162_;
			T161_ = isCompileTimeOnly__types_3592((*n).typ);
			LA162_: ;
			if (!T161_) goto LA163_;
			genTypeLit__vmgen_2464(c, (*n).typ, dest);
		}
		goto LA159_;
		LA163_: ;
		{
			NimStringDesc* T166_;
			NimStringDesc* T167_;
			T166_ = NIM_NIL;
			T167_ = NIM_NIL;
			T167_ = dollar___renderer_2116(n);
			T166_ = rawNewString((T167_ ? T167_->Sup.len : 0) + 28);
appendString(T166_, ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_114));
appendString(T166_, T167_);
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T166_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_115, NIM_FALSE);
		}
		LA159_: ;
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, gen__vmgen_708)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TGenFlag__cGGumafWXBk29c9b9bI7EwaxQ flags) {
	NI tmp;
	tmp = ((NI) -1);
	gen__vmgen_688(c, n, (&tmp), flags);
	{
		if (!(((NI) 0) <= ((NI) (tmp)))) goto LA3_;
		freeTemp__vmgen_551(c, ((NI) (tmp)));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, finalJumpTarget__vmgen_3415)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI pc, NI diff) {
	NU64 oldInstr;
	{
		NIM_BOOL T3_;
		NimStringDesc* argX60gensym630_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) -8388607) < diff);
		if (!(T3_)) goto LA4_;
		T3_ = (diff < ((NI) 8388607));
		LA4_: ;
		if (!!(T3_)) goto LA5_;
		argX60gensym630_ = toFileLineCol__msgs_625(TM__oYO8oEb9aAFcVmMqh9adT1hQ_116);
		internalErrorImpl__msgs_1441((*c).config, unknownLineInfo__lineinfos_284, argX60gensym630_, TM__oYO8oEb9aAFcVmMqh9adT1hQ_116);
	}
	LA5_: ;
	oldInstr = (*c).code->data[pc];
	(*c).code->data[pc] = (NU64)((NU64)(oldInstr & 16777215ULL) | (NU64)((NU64)(((NU64) ((NI)(diff + ((NI) 8388608))))) << (NU64)(24ULL)));
}
N_LIB_PRIVATE N_NIMCALL(void, optimizeJumps__vmgen_3462)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, NI start) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*c).code ? (*c).code->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = start;
		{
			while (1) {
				tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ opc;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				opc = ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(0ULL)) & 255ULL)));
				switch (opc) {
				case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165):
				case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166):
				{
					NI reg;
					NI d;
					reg = ((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(8ULL)) & 65535ULL)));
					d = (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)));
					{
						NI iters;
						NI res;
						iters = (NI)0;
						res = ((NI) 10);
						{
							while (1) {
								if (!(((NI) 0) <= res)) goto LA8;
								iters = res;
								switch (((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL)))) {
								case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167):
								{
									d += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
								}
								break;
								case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 165):
								case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 166):
								{
									{
										if (!!((((NI) (((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(8ULL)) & 65535ULL))))) == ((NI) (reg))))) goto LA13_;
										goto LA6;
									}
									LA13_: ;
									{
										if (!(((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(0ULL)) & 255ULL))) == opc)) goto LA17_;
										d += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
									}
									goto LA15_;
									LA17_: ;
									{
										d += ((NI) 1);
									}
									LA15_: ;
								}
								break;
								default:
								{
									goto LA6;
								}
								break;
								}
								res -= ((NI) 1);
							} LA8: ;
						}
					} LA6: ;
					{
						if (!!((d == (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)))))) goto LA23_;
						finalJumpTarget__vmgen_3415(c, i, (NI)(d - i));
					}
					LA23_: ;
				}
				break;
				case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167):
				case ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 168):
				{
					NI d_2;
					NI iters_2;
					d_2 = (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)));
					iters_2 = ((NI) 10);
					{
						while (1) {
							NIM_BOOL T28_;
							T28_ = (NIM_BOOL)0;
							T28_ = (((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167));
							if (!(T28_)) goto LA29_;
							T28_ = (((NI) 0) < iters_2);
							LA29_: ;
							if (!T28_) goto LA27;
							d_2 += (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608));
							iters_2 -= ((NI) 1);
						} LA27: ;
					}
					{
						if (!(((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[d_2]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 1))) goto LA32_;
						(*c).code->data[i] = (*c).code->data[d_2];
					}
					goto LA30_;
					LA32_: ;
					{
						if (!!((d_2 == (NI)(i + (NI)(((NI) ((NU64)((NU64)((NU64)((*c).code->data[i]) >> (NU64)(24ULL)) & 16777215ULL))) - ((NI) 8388608)))))) goto LA35_;
						finalJumpTarget__vmgen_3415(c, i, (NI)(d_2 - i));
					}
					goto LA30_;
					LA35_: ;
					LA30_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, genProc__vmgen_3139)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	NI result;
	NI pos;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym658_;
	NIM_BOOL wasNotGenProcBefore;
	NIM_BOOL noRegistersAllocated;
	result = (NI)0;
	xX60gensym658_ = s;
	pos = getOrDefault__vmgen_3672((*c).procToCodePos, (NI)((NI)((NU64)(((NI) ((*xX60gensym658_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym658_).Sup.itemId.item))));
	wasNotGenProcBefore = (pos == ((NI) 0));
	noRegistersAllocated = ((*s).offset == ((NI) -1));
	{
		NIM_BOOL T3_;
		NI last;
		NI T7_;
		NU64 eofInstr;
		NI T14_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym663_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
		NIM_BOOL T15_;
		NI procStart;
		tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* p;
		tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* T16_;
		tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw* oldPrc;
		NI T28_;
		T3_ = (NIM_BOOL)0;
		T3_ = wasNotGenProcBefore;
		if (T3_) goto LA4_;
		T3_ = noRegistersAllocated;
		LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = ((*c).code ? (*c).code->Sup.len : 0);
		last = (NI)(T7_ - ((NI) 1));
		eofInstr = (NU64)0;
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = (((NI) 0) <= last);
			if (!(T10_)) goto LA11_;
			T10_ = (((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 0));
			LA11_: ;
			if (!T10_) goto LA12_;
			eofInstr = (*c).code->data[last];
			asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(((*c).code)?&((*c).code)->Sup:NIM_NIL, (&NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
			asgnRef((void**) (&(*c).debug), (tySequence__Gl8s23LA3EFz4kIlya9ameg*) setLengthSeqV2(((*c).debug)?&((*c).debug)->Sup:NIM_NIL, (&NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_), ((NI) (last))));
		}
		LA12_: ;
		T14_ = ((*c).code ? (*c).code->Sup.len : 0);
		result = (NI)(T14_ + ((NI) 1));
		xX60gensym663_ = s;
		X5BX5Deq___importer_2265((&(*c).procToCodePos), (NI)((NI)((NU64)(((NI) ((*xX60gensym663_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym663_).Sup.itemId.item))), result);
		T15_ = (NIM_BOOL)0;
		T15_ = isCompileTimeProc__ast_4684(s);
		body = transformBody__transf_16((*c).graph, (*c).Sup.idgen, s, !(T15_));
		procStart = xjmp__vmgen_399(c, body, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 167), ((NI) 0));
		T16_ = NIM_NIL;
		T16_ = (tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw*) newObj((&NTIpproc__JDRtrAs1KGboZOsEqZ5HdQ_), sizeof(tyObject_PProccolonObjectType___1XP6mUlNhJdzLnDeBOqcVw));
		if ((*T16_).blocks) { nimGCunrefNoCycle((*T16_).blocks); (*T16_).blocks = NIM_NIL; }
		asgnRef((void**) (&(*T16_).sym), s);
		p = T16_;
		oldPrc = (*c).prc;
		asgnRef((void**) (&(*c).prc), p);
		genParams__vmgen_3393(c, (*(*s).typ).n);
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = ((*s).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 17));
			if (!(T19_)) goto LA20_;
			T19_ = isGenericRoutineStrict__ast_4640(s);
			LA20_: ;
			if (!T19_) goto LA21_;
			genGenericParams__vmgen_3436(c, (*(*s).ast)._kind_6.sons->data[((NI) 2)]);
		}
		LA21_: ;
		{
			NI T27_;
			if (!(((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 12))&63U)))!=0)) goto LA25_;
			asgnRef((void**) (&(*(*c).prc).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) incrSeqV3((TGenericSeq*)((*(*c).prc).regInfo), (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_)));
			T27_ = (*(*c).prc).regInfo->Sup.len++;
			(*(*c).prc).regInfo->data[T27_] = TM__oYO8oEb9aAFcVmMqh9adT1hQ_5;
		}
		LA25_: ;
		gen__vmgen_708(c, body, 0);
		gABC__vmgen_313(c, body, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 1), ((NI) 0), ((NI) 0), ((NI) 0));
		patch__vmgen_435(c, procStart);
		gABC__vmgen_313(c, body, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 0), ((NI) ((NU64)((NU64)((NU64)(eofInstr) >> (NU64)(8ULL)) & 65535ULL))), ((NI) 0), ((NI) 0));
		optimizeJumps__vmgen_3462(c, result);
		T28_ = ((*(*c).prc).regInfo ? (*(*c).prc).regInfo->Sup.len : 0);
		(*s).offset = T28_;
		asgnRef((void**) (&(*c).prc), oldPrc);
	}
	goto LA1_;
	LA5_: ;
	{
		asgnRef((void**) (&(*(*c).prc).regInfo), (tySequence__UyAyNhiI7poI9amqn9aUHktQ*) setLengthSeqV2(((*(*c).prc).regInfo)?&((*(*c).prc).regInfo)->Sup:NIM_NIL, (&NTIseqLtupleLinuse58bool_kind58tslotkindTT__UyAyNhiI7poI9amqn9aUHktQ_), ((NI) ((*s).offset))));
		result = pos;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, removeLastEof__vmgen_3343)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c) {
	NI last;
	NI T1_;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	last = (NI)(T1_ - ((NI) 1));
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = (((NI) 0) <= last);
		if (!(T4_)) goto LA5_;
		T4_ = (((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) ((NU64)((NU64)((NU64)((*c).code->data[last]) >> (NU64)(0ULL)) & 255ULL))) == ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 0));
		LA5_: ;
		if (!T4_) goto LA6_;
		asgnRef((void**) (&(*c).code), (tySequence__YdLNCDKYeipzJx3I8Xw82Q*) setLengthSeqV2(((*c).code)?&((*c).code)->Sup:NIM_NIL, (&NTIseqLtinstrT__YdLNCDKYeipzJx3I8Xw82Q_), ((NI) (last))));
		asgnRef((void**) (&(*c).debug), (tySequence__Gl8s23LA3EFz4kIlya9ameg*) setLengthSeqV2(((*c).debug)?&((*c).debug)->Sup:NIM_NIL, (&NTIseqLtlineinfoT__Gl8s23LA3EFz4kIlya9ameg_), ((NI) (last))));
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genExpr__vmgen_3384)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL requiresValue) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__vmgen_3343(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__vmgen_688(c, n, (&d), 0);
	{
		if (!(((NI) (d)) < ((NI) 0))) goto LA4_;
		{
			if (!requiresValue) goto LA8_;
			liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_117), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_118, NIM_FALSE);
		}
		LA8_: ;
		d = ((NI) 0);
	}
	LA4_: ;
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 0), ((NI) (d)), ((NI) 0), ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, genStmt__vmgen_3376)(tyObject_TCtx__CRPlhL1hATwZc5hefTGOQQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	NI d;
	result = (NI)0;
	removeLastEof__vmgen_3343(c);
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	d = ((NI) -1);
	gen__vmgen_688(c, n, (&d), 0);
	gABC__vmgen_313(c, n, ((tyEnum_TOpcode__6Md36HXDC8kz9aZEdeQ4KoQ) 0), ((NI) 0), ((NI) 0), ((NI) 0));
	{
		if (!(((NI) 0) <= ((NI) (d)))) goto LA4_;
		liMessage__msgs_1128((*c).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__oYO8oEb9aAFcVmMqh9adT1hQ_119), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__oYO8oEb9aAFcVmMqh9adT1hQ_120, NIM_FALSE);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmvmgendotnim_DatInit000)(void) {
static TNimNode* TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[5];
static TNimNode TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[6];
NTIobject__ciiSZIX9c04MZVntiKokFrw_.size = sizeof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw);
NTIobject__ciiSZIX9c04MZVntiKokFrw_.align = NIM_ALIGNOF(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw);
NTIobject__ciiSZIX9c04MZVntiKokFrw_.kind = 17;
NTIobject__ciiSZIX9c04MZVntiKokFrw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[0] = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[1];
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[1].kind = 1;
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[1].offset = offsetof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw, colonstate_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[1].typ = (&NTIint__xHTZrq9aYs6boc9bCba0JbpQ_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[1].name = ":state";
TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[1] = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[2];
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[2].kind = 1;
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[2].offset = offsetof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw, t21);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[2].typ = (&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[2].name = "t21";
TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[2] = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[3];
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[3].kind = 1;
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[3].offset = offsetof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw, targ22);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[3].typ = (&NTIptype__q1v0zzhoMWrhMLs6UEp1IA_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[3].name = "targ22";
TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[3] = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[4];
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[4].kind = 1;
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[4].offset = offsetof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw, n3);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[4].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[4].name = "n3";
TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[4] = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[5];
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[5].kind = 1;
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[5].offset = offsetof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw, arg4);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[5].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[5].name = "arg4";
TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[0].len = 5; TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[0].kind = 2; TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[0].sons = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_53_5[0];
NTIobject__ciiSZIX9c04MZVntiKokFrw_.node = &TM__oYO8oEb9aAFcVmMqh9adT1hQ_0[0];
NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_.size = sizeof(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw*);
NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_.align = NIM_ALIGNOF(tyObject_Env_vmgendotnim_genConv___ciiSZIX9c04MZVntiKokFrw*);
NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_.kind = 22;
NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_.base = (&NTIobject__ciiSZIX9c04MZVntiKokFrw_);
NTIrefobject__5gfb7QBO5jquZp7sfhoLnQ_.marker = Marker_tyRef__5gfb7QBO5jquZp7sfhoLnQ;
}

