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

#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_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
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_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
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 tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ;
typedef struct tySequence__7Ph69cTgZS9be09cTzR9afiJeA tySequence__7Ph69cTgZS9be09cTzR9afiJeA;
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_Instr__M1JDxfxGyVaK5N9ctM7QW2w tyObject_Instr__M1JDxfxGyVaK5N9ctM7QW2w;
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_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
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_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_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
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_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 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 tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ;
typedef struct tySequence__M6nNbkJL2MtfqXbBdPxKHw tySequence__M6nNbkJL2MtfqXbBdPxKHw;
typedef struct tyTuple__eMNaK7LFFWgqXqKPoI0Pag tyTuple__eMNaK7LFFWgqXqKPoI0Pag;
typedef struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ tyTuple__Q066krdfdsSnR5DaFMOk9bQ;
typedef struct tySequence__s4MJIltFooh7znZAPDHauw tySequence__s4MJIltFooh7znZAPDHauw;
typedef struct tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ;
typedef struct tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA;
typedef struct tySequence__387YteDgSUbs69cJAUWxHOA tySequence__387YteDgSUbs69cJAUWxHOA;
typedef struct tyTuple__FMW2STq9c4aUT0G5x9aeTpkw tyTuple__FMW2STq9c4aUT0G5x9aeTpkw;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ;
typedef struct tySequence__VB6DBx8qy4TStAbCEq1dzg tySequence__VB6DBx8qy4TStAbCEq1dzg;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyTuple__dPapXWg9c4XSU1oh4xRoUfQ tyTuple__dPapXWg9c4XSU1oh4xRoUfQ;
typedef struct tyObject_Scope__8EDqaKtZCWIbyBmeputFbg tyObject_Scope__8EDqaKtZCWIbyBmeputFbg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw;
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__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
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_TPassContext__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ;
typedef struct tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w tyObject_TFileInfo__2PBRRPxvvEH2sQ9cRi19bh7w;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw;
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;
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_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;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
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_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
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 NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
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 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_Con__G6tlviVt9bgUWYf7bj7daMQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySequence__7Ph69cTgZS9be09cTzR9afiJeA* g;
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph;
NI inLoop;
NI inSpawn;
NI inLoopCond;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw uninit;
NIM_BOOL uninitComputed;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
typedef NU8 tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw;
struct tyObject_Instr__M1JDxfxGyVaK5N9ctM7QW2w {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw kind;
union{
NI dest;
};
};
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_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
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;
};
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;
};
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 NU8 tySet_tyEnum_TErrorOutput__AR9blT7YaZzdImck9a5cntbQ;
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_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 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_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
struct tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ {
tySequence__M6nNbkJL2MtfqXbBdPxKHw* data;
NI counter;
};
struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
typedef NU8 tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w;
struct tyTuple__eMNaK7LFFWgqXqKPoI0Pag {
NI Field0;
tyTuple__Q066krdfdsSnR5DaFMOk9bQ Field1;
tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w Field2;
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA {
tySequence__387YteDgSUbs69cJAUWxHOA* data;
NI counter;
};
struct tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ {
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw lastReads;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw potentialLastReads;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw notLastReads;
tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA alreadySeen;
};
struct tyTuple__FMW2STq9c4aUT0G5x9aeTpkw {
NI Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
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 NU tyArray__VqSA39cBDWnwnJySTumCdjw[8];
struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg {
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* next;
NI key;
tyArray__VqSA39cBDWnwnJySTumCdjw bits;
};
typedef NU8 tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
struct tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ {
tySequence__VB6DBx8qy4TStAbCEq1dzg* data;
NI counter;
};
struct tyTuple__dPapXWg9c4XSU1oh4xRoUfQ {
NI Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_Scope__8EDqaKtZCWIbyBmeputFbg {
tySequence__ed0C0uAUZPhvw3RAc5hfYg* vars;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* wasMoved;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* final;
NIM_BOOL needsTry;
tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* parent;
};
typedef NU8 tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw;
typedef NU8 tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw[21];
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__id9c0PBojP5C2oM2bRQSViA[3];
struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU8 tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg[9];
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
typedef NU8 tySet_tyEnum_ConsiderFlag__GoLTePImz7fvtyywyQa3DQ;
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NimStringDesc* tyArray__EeEKCO7QpNg9c8wnv9c1UhNQ[5];
typedef NU8 tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg;
typedef NU16 tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA;
struct tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw {
NI a;
NI b;
};
struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg {
NI id;
NimStringDesc* s;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* next;
NI h;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__Nfk9cOEzg2bRz9c1V8fGzONg[2];
typedef NU8 tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__iegsN9bf6GqRiWprrJjTAoA[1];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__DkuVegaMCU6g1mpIOSQPIw[1];
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__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 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;
};
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 tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ {
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw Field0;
NimStringDesc* Field1;
};
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 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;
};
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__7Ph69cTgZS9be09cTzR9afiJeA {
  TGenericSeq Sup;
  tyObject_Instr__M1JDxfxGyVaK5N9ctM7QW2w data[SEQ_DECL_SIZE];
};
struct tySequence__M6nNbkJL2MtfqXbBdPxKHw {
  TGenericSeq Sup;
  tyTuple__eMNaK7LFFWgqXqKPoI0Pag data[SEQ_DECL_SIZE];
};
struct tySequence__s4MJIltFooh7znZAPDHauw {
  TGenericSeq Sup;
  tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* data[SEQ_DECL_SIZE];
};
struct tySequence__387YteDgSUbs69cJAUWxHOA {
  TGenericSeq Sup;
  tyTuple__FMW2STq9c4aUT0G5x9aeTpkw data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__VB6DBx8qy4TStAbCEq1dzg {
  TGenericSeq Sup;
  tyTuple__dPapXWg9c4XSU1oh4xRoUfQ data[SEQ_DECL_SIZE];
};
struct tySequence__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* 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__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw 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__mIo9bZUsotCEUUtEGNhYmaA {
  TGenericSeq Sup;
  tyTuple__U3hs4iGgBd4Y9beL6zJV9boQ 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__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__KLItBKQec3LJzPmfiYYfQA {
  TGenericSeq Sup;
  tyObject_Cfile__n9b2nVKiXbLpHsfkan9c3Rkw 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];
};
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
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(tySequence__7Ph69cTgZS9be09cTzR9afiJeA*, constructCfg__dfa_1143)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
N_LIB_PRIVATE N_NIMCALL(void, computeCursors__varpartitions_1798)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g);
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites__injectdestructors_3780)(tySequence__7Ph69cTgZS9be09cTzR9afiJeA* cfg);
N_LIB_PRIVATE N_NIMCALL(void, initTable__injectdestructors_3782)(NI initialSize, tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* Result);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__M6nNbkJL2MtfqXbBdPxKHw)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, preprocessCfg__injectdestructors_1924)(tySequence__7Ph69cTgZS9be09cTzR9afiJeA** cfg);
N_LIB_PRIVATE N_NIMCALL(tySequence__s4MJIltFooh7znZAPDHauw*, newSeq__injectdestructors_3802)(NI len);
static N_NIMCALL(void, Marker_tySequence__387YteDgSUbs69cJAUWxHOA)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef__ALTfJJmp9b2ty9bmQcML9b2kA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__s4MJIltFooh7znZAPDHauw)(void* p, NI op);
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5340)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5302)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5347)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5296)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w, aliasesCached__injectdestructors_121)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* cache, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__injectdestructors_174)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key);
static N_INLINE(NI, hash__pureZhashes_124)(void* x);
static N_INLINE(NI, hash__pureZhashes_128)(NI x);
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x);
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___injectdestructors_509)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key, tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w val);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w, aliases__dfa_808)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w*, X5BX5D___injectdestructors_1731)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* t, tyTuple__Q066krdfdsSnR5DaFMOk9bQ key);
N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_55)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, excl__reorder_273)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, commenteq___ast_1365)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NimStringDesc* a);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
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*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_2169)(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA s);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(void, incl__injectdestructors_2395)(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key);
N_LIB_PRIVATE N_NIMCALL(void, mergeStates__injectdestructors_1944)(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** a, tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* b);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, incl__importer_1492)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* other);
N_LIB_PRIVATE N_NIMCALL(void, excl__injectdestructors_2012)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* other);
N_LIB_PRIVATE N_NIMCALL(void, incl__injectdestructors_2107)(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA* s, tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA other);
static N_INLINE(void, minus___sem_4262)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference__sem_4267)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(void, plus___injectdestructors_4122)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
N_LIB_PRIVATE N_NIMCALL(void, union__injectdestructors_4127)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result);
static N_INLINE(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**, X5BX5D___injectdestructors_4096)(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut__injectdestructors_4251)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val);
static N_NIMCALL(void, Marker_tySequence__VB6DBx8qy4TStAbCEq1dzg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_5732)(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ t);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__astalgo_3489)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, p__injectdestructors_105)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw mode);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, shallowCopy__ast_4414)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(void, nestedScope__injectdestructors_72)(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* parent, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, processScope__injectdestructors_7005)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ret);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTree__ast_3356)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTryFinally__lowerings_207)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* final);
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(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getTemp__injectdestructors_61)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSym__ast_3409)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
static N_INLINE(NIM_BOOL, hasDestructor__injectdestructors_49)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDestroy__injectdestructors_6516)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest);
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*, genOp__injectdestructors_6419)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getAttachedOp__modulegraphs_4049)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ op);
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, hashType__sighashes_473)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tySet_tyEnum_ConsiderFlag__GoLTePImz7fvtyywyQa3DQ flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getOrDefault__liftdestructors_977)(tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
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_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg prefer);
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__injectdestructors_6369)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NimStringDesc* opname);
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(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree__renderer_46)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tySet_tyEnum_TRenderFlag__ppo9aY4M5jqJlCPC7ZH9bmwA renderFlags);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(NIM_BOOL, startsWith__pureZstrutils_1246)(NimStringDesc* s, NIM_CHAR prefix);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_997)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___msgs_634)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___stdZenumutils_90)(NI a, NI b);
static N_INLINE(NIM_BOOL, isSinkType__ast_5057)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genOp__injectdestructors_6409)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makePtrType__injectdestructors_6405)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newType__ast_3884)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit__magicsys_136)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, moveOrCopy__injectdestructors_110)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameLocation__injectdestructors_8431)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__injectdestructors_8435)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__injectdestructors_6358)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genSink__injectdestructors_6553)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess__dfa_911)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__injectdestructors_6109)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConvDfa__dfa_796)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NIM_BOOL, isNoInit__injectdestructors_6542)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__injectdestructors_6092)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c);
static N_INLINE(NIM_BOOL, isAtom__ast_4769)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genWasMoved__injectdestructors_6728)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, createMagic__modulegraphs_9046)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genFieldAccessSideEffects__injectdestructors_8471)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3324)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, destructiveMoveVar__injectdestructors_6749)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipConv__types_3661)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic__injectdestructors_6601)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicType__liftdestructors_1367)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, callCodegenProc__lowerings_641)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NimStringDesc* name, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg1, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg2, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg3, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* optionalArgs);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genBuiltin__liftdestructors_113)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic, NimStringDesc* name, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* i);
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(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genCopy__injectdestructors_6636)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genCopyNoCheck__injectdestructors_6623)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri);
N_LIB_PRIVATE N_NIMCALL(void, finishCopy__injectdestructors_6587)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, NIM_BOOL isFromSink);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, boolLit__liftdestructors_428)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NIM_BOOL value);
static N_INLINE(NIM_BOOL, isCriticalLink__injectdestructors_6580)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest);
static N_INLINE(NIM_BOOL, isDangerousSeq__injectdestructors_6836)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
static N_INLINE(NIM_BOOL, isSinkParam__ast_5042)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
static N_INLINE(NIM_BOOL, canBeMoved__injectdestructors_6521)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pRaiseStmt__injectdestructors_7115)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lastSon__ast_4833)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq__injectdestructors_6849)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, passCopyToSink__injectdestructors_6794)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue__parampatterns_497)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__injectdestructors_6786)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getRoot__trees_390)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2116)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, lookupFieldAgain__types_4152)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* ty, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, ensureDestruction__injectdestructors_6874)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s);
static N_INLINE(NI, len__ast_3990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly__types_3592)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam__types_4145)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__ast_5100)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fn);
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(void, pVarTopLevel__injectdestructors_6956)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDefaultCall__injectdestructors_6740)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__injectdestructors_6897)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b, NIM_BOOL strictSymEquality);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDiscriminantField__astalgo_4328)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDiscriminantAsgn__injectdestructors_6657)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, produceDestructorForDiscriminator__liftdestructors_2004)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getMagicEqSymForType__magicsys_171)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
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(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, optimize__optimizer_390)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__9aYeizX9bryvlooxqmPkPxqA* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE TNimType NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_;
extern TNimType NTIaliaskind__vyyqF5f609aD8pvRKZixr4w_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_;
extern TNimType NTIcontrolflowgraph__7Ph69cTgZS9be09cTzR9afiJeA_;
N_LIB_PRIVATE TNimType NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_;
extern TNimType NTIpackedset__THXDbzJSs2hcC9a33en2pdw_;
N_LIB_PRIVATE TNimType NTIhashset__4M9cdYsKLFZugenKrKIlmiA_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_;
extern TNimType NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_;
N_LIB_PRIVATE TNimType NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_;
N_LIB_PRIVATE TNimType NTIseqLstateT__s4MJIltFooh7znZAPDHauw_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_;
static NIM_CONST tySet_tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw TM__qy9cjzsMcb87orRThTwa4gQ_7 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x03, 0x04, 0x09, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_8, ":tmpD", 5);
extern TNimType NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__qy9cjzsMcb87orRThTwa4gQ_9 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_10, "internal error: \'", 17);
extern NIM_CONST tyArray__EeEKCO7QpNg9c8wnv9c1UhNQ AttachedOpToStr__ast_3836;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_11, "\' operator not found for type ", 30);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_13, "/home/runner/work/nightlies/nightlies/nim/compiler/injectdestructors.nim", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_12 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 284),
((NI) 15)}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_14, "\' operator is generic", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_15 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 287),
((NI) 15)}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_16, "\'", 1);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_17, "\' is not available for type <", 29);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_18, ">", 1);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_19, "=", 1);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_20, "=copy", 5);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_21, "; requires a copy because it\'s not the last read of \'", 53);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_22, "; another read is done here: ", 29);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_23, "; try to make ", 14);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_24, " a \'sink\' parameter", 19);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_25, "; routine: ", 11);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_26 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 263),
((NI) 12)}
;
extern TNimType NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_27, "wasMoved", 8);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_28, "bracketTmp", 10);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_29, "blitTmp", 7);
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__qy9cjzsMcb87orRThTwa4gQ_30 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_31, "nimMarkCyclic", 13);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_32, "accessEnv", 9);
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__qy9cjzsMcb87orRThTwa4gQ_33 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_34, "passing \'$1\' to a sink parameter introduces an implicit copy; if possible, rearrange your program\'s control flow to prevent it", 126);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_35 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 462),
((NI) 13)}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_36, "cannot create an implicit openArray copy to be passed to a sink parameter", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_37 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 469),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__qy9cjzsMcb87orRThTwa4gQ_38 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_39, "default", 7);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_40, "\'$#\' creates an uncollectable ref cycle; annotate \'$#\' with .cursor", 67);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_41, "\'$#\' creates an uncollectable ref cycle", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_42 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 535),
((NI) 13)}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_43, "Assignment to discriminant for objects with user defined destructor is not supported, object must have default destructor.\012It is best to factor out piece of object that needs custom destructor into separate object or not use discriminator assignment", 249);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_44 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 393),
((NI) 16)}
;
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_45, "not", 3);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_46, "nkWhileStmt should have been handled earlier", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_47 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 909),
((NI) 19)}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_48, "cannot inject destructors to node kind: ", 40);
extern TNimType NTItnodekind__clSgDh22o9au33BrVH9bDQZw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qy9cjzsMcb87orRThTwa4gQ_49 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_13),
((NI) 996),
((NI) 19)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg TM__qy9cjzsMcb87orRThTwa4gQ_50 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_51, "--expandArc: ", 13);
STRING_LITERAL(TM__qy9cjzsMcb87orRThTwa4gQ_53, "-- end of expandArc ------------------------", 44);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__qy9cjzsMcb87orRThTwa4gQ_52 = {((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_53)}
;
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5249;
static N_INLINE(NIM_BOOL, isInlineIterator__ast_4990)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9)));
	LA4_: ;
	result = T1_;
	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);
}
static N_NIMCALL(void, Marker_tySequence__M6nNbkJL2MtfqXbBdPxKHw)(void* p, NI op) {
	tySequence__M6nNbkJL2MtfqXbBdPxKHw* a;
	NI T1_;
	a = (tySequence__M6nNbkJL2MtfqXbBdPxKHw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1.Field0, op);
	nimGCvisit((void*)a->data[T1_].Field1.Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, preprocessCfg__injectdestructors_1924)(tySequence__7Ph69cTgZS9be09cTzR9afiJeA** cfg) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*cfg) ? (*cfg)->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				{
					NIM_BOOL T7_;
					NI T9_;
					NI T12_;
					T7_ = (NIM_BOOL)0;
					T7_ = ((3 &((NU8)1<<((NU)((*cfg)->data[i].kind)&7U)))!=0);
					if (!(T7_)) goto LA8_;
					T9_ = ((*cfg) ? (*cfg)->Sup.len : 0);
					T7_ = (T9_ < (NI)(i + (*cfg)->data[i].dest));
					LA8_: ;
					if (!T7_) goto LA10_;
					T12_ = ((*cfg) ? (*cfg)->Sup.len : 0);
					(*cfg)->data[i].dest = (NI)(T12_ - i);
				}
				LA10_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
static N_NIMCALL(void, Marker_tySequence__387YteDgSUbs69cJAUWxHOA)(void* p, NI op) {
	tySequence__387YteDgSUbs69cJAUWxHOA* a;
	NI T1_;
	a = (tySequence__387YteDgSUbs69cJAUWxHOA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tyRef__ALTfJJmp9b2ty9bmQcML9b2kA)(void* p, NI op) {
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* a;
	NI T1_;
	NI T2_;
	NI T3_;
	a = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*)p;
	nimGCvisit((void*)(*a).lastReads.head, op);
	nimGCvisit((void*)(*a).lastReads.data, op);
	T1_ = (NI)0;
	nimGCvisit((void*)(*a).potentialLastReads.head, op);
	nimGCvisit((void*)(*a).potentialLastReads.data, op);
	T2_ = (NI)0;
	nimGCvisit((void*)(*a).notLastReads.head, op);
	nimGCvisit((void*)(*a).notLastReads.data, op);
	T3_ = (NI)0;
	nimGCvisit((void*)(*a).alreadySeen.data, op);
}
static N_NIMCALL(void, Marker_tySequence__s4MJIltFooh7znZAPDHauw)(void* p, NI op) {
	tySequence__s4MJIltFooh7znZAPDHauw* a;
	NI T1_;
	a = (tySequence__s4MJIltFooh7znZAPDHauw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_], op);
	}
}
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_5340)(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_5302)(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_5345)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5296((&gch__system_5249.zct), c);
}
static N_INLINE(void, decRef__system_5347)(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_5345(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_5302(src);
		incRef__system_5340(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5302((*dest));
		decRef__system_5347(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b) {
	NU64 result;
	result = (NU64)0;
	__uint128_t r = a; r *= b; result = (r >> 64) ^ r;
	return result;
}
static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x) {
	NI result;
	NU64 T1_;
	NU64 T2_;
	result = (NI)0;
	T1_ = (NU64)0;
	T1_ = hiXorLo__pureZhashes_79(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
	T2_ = (NU64)0;
	T2_ = hiXorLo__pureZhashes_79(T1_, 16952864883938283885ULL);
	result = ((NI) (T2_));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_128)(NI x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, hash__pureZhashes_124)(void* x) {
	NI result;
	NI y;
	result = (NI)0;
	y = ((NI) (ptrdiff_t) (x));
	result = hash__pureZhashes_128(y);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_118)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	result = hash__pureZhashes_124(((void*) (n)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w, aliasesCached__injectdestructors_121)(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ* cache, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* obj, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field) {
	tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w result;
	tyTuple__Q066krdfdsSnR5DaFMOk9bQ key;
	tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w* T7_;
	result = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
	nimZeroMem((void*)(&key), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
	key.Field0 = obj;
	key.Field1 = field;
	{
		NIM_BOOL T3_;
		tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasKey__injectdestructors_174((*cache), key);
		if (!!(T3_)) goto LA4_;
		T6_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
		T6_ = aliases__dfa_808(obj, field);
		X5BX5Deq___injectdestructors_509(cache, key, T6_);
	}
	LA4_: ;
	T7_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w*)0;
	T7_ = X5BX5D___injectdestructors_1731(cache, key);
	result = (*T7_);
	return result;
}
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[(*dest).Sup.len] = c;
	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
	(*dest).Sup.len += ((NI) 1);
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_38)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, mergeStates__injectdestructors_1944)(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** a, tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* b) {
	{
		if (!((*a) == ((tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*) NIM_NIL))) goto LA3_;
		unsureAsgnRef((void**) (&(*a)), b);
	}
	goto LA1_;
	LA3_: ;
	{
		incl__importer_1492((&(*(*a)).lastReads), (&(*b).lastReads));
		incl__importer_1492((&(*(*a)).potentialLastReads), (&(*b).potentialLastReads));
		excl__injectdestructors_2012((&(*(*a)).potentialLastReads), (&(*(*a)).notLastReads));
		excl__injectdestructors_2012((&(*(*a)).potentialLastReads), (&(*b).notLastReads));
		incl__importer_1492((&(*(*a)).notLastReads), (&(*b).notLastReads));
		incl__injectdestructors_2107((&(*(*a)).alreadySeen), (*b).alreadySeen);
	}
	LA1_: ;
}
static N_INLINE(void, minus___sem_4262)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	difference__sem_4267(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
}
static N_INLINE(void, plus___injectdestructors_4122)(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s1, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* s2, tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw* Result) {
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	union__injectdestructors_4127(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
}
static N_INLINE(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**, X5BX5D___injectdestructors_4096)(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** s, NI sLen_0, NI i) {
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** result;
	result = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**)0;
	result = &s[(NI)(sLen_0 - i)];
	return result;
}
static N_NIMCALL(void, Marker_tySequence__VB6DBx8qy4TStAbCEq1dzg)(void* p, NI op) {
	tySequence__VB6DBx8qy4TStAbCEq1dzg* a;
	NI T1_;
	a = (tySequence__VB6DBx8qy4TStAbCEq1dzg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites__injectdestructors_3780)(tySequence__7Ph69cTgZS9be09cTzR9afiJeA* cfg) {
	tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ cache;
	tySequence__7Ph69cTgZS9be09cTzR9afiJeA* cfg_2;
	tySequence__s4MJIltFooh7znZAPDHauw* states;
	NI T1_;
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T2_;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw lastReads;
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** T125_;
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** T126_;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T127_;
	tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ** T128_;
	tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw T129_;
	tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ lastReadTable;
	nimZeroMem((void*)(&cache), sizeof(tyObject_Table__KUhY6T9bmSgRvuj0AtVGxOQ));
	initTable__injectdestructors_3782(((NI) 32), (&cache));
	genericSeqAssign((&cfg_2), cfg, (&NTIcontrolflowgraph__7Ph69cTgZS9be09cTzR9afiJeA_));
	preprocessCfg__injectdestructors_1924((&cfg_2));
	T1_ = (cfg_2 ? cfg_2->Sup.len : 0);
	states = newSeq__injectdestructors_3802(((NI) ((NI)(T1_ + ((NI) 1)))));
	T2_ = NIM_NIL;
	T2_ = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*) newObj((&NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_), sizeof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ));
	asgnRef((void**) (&states->data[((NI) 0)]), T2_);
	{
		NI pc;
		NI colontmp_;
		NI T4_;
		NI i;
		pc = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (cfg_2 ? cfg_2->Sup.len : 0);
		colontmp_ = T4_;
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < colontmp_)) goto LA6;
				pc = i;
				{
					if (!!((states->data[pc] == ((tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*) NIM_NIL)))) goto LA9_;
					switch (cfg_2->data[pc].kind) {
					case ((tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw) 2):
					{
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw potentialLastReadsCopy;
						NIM_BOOL alreadySeenThisNode;
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T77_;
						nimZeroMem((void*)(&potentialLastReadsCopy), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						genericAssign((void*)(&potentialLastReadsCopy), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
						{
							NI r;
							r = (NI)0;
							{
								if (!(potentialLastReadsCopy.elems <= ((NI) 34))) goto LA15_;
								{
									NI i_2;
									NI i_3;
									i_2 = (NI)0;
									i_3 = ((NI) 0);
									{
										while (1) {
											if (!(i_3 < potentialLastReadsCopy.elems)) goto LA19;
											i_2 = i_3;
											r = potentialLastReadsCopy.a[(i_2)- 0];
											{
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T22_;
												T22_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T22_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
												if (!(T22_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 0))) goto LA23_;
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
												excl__reorder_273((&(*states->data[pc]).potentialLastReads), r);
											}
											goto LA20_;
											LA23_: ;
											{
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T26_;
												NimStringDesc* T29_;
												NimStringDesc* T30_;
												T26_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T26_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
												if (!!((T26_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)))) goto LA27_;
												T29_ = NIM_NIL;
												T30_ = NIM_NIL;
												T30_ = dollar___systemZdollars_3(pc);
												T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 1);
appendChar(T29_, 10);
appendString(T29_, T30_);
												commenteq___ast_1365(cfg_2->data[r].n, T29_);
												excl__reorder_273((&(*states->data[pc]).potentialLastReads), r);
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r);
											}
											goto LA20_;
											LA27_: ;
											LA20_: ;
											i_3 += ((NI) 1);
										} LA19: ;
									}
								}
							}
							goto LA13_;
							LA15_: ;
							{
								tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* r_2;
								r_2 = potentialLastReadsCopy.head;
								{
									while (1) {
										NI i_4;
										if (!!((r_2 == ((tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg*) NIM_NIL)))) goto LA33;
										i_4 = ((NI) 0);
										{
											while (1) {
												NU w;
												NI j;
												if (!(i_4 <= ((NI) 7))) goto LA35;
												w = (*r_2).bits[(i_4)- 0];
												j = ((NI) 0);
												{
													while (1) {
														if (!!((w == ((NU) 0)))) goto LA37;
														{
															NI T42_;
															if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA40_;
															T42_ = (NI)0;
															T42_ = pluspercent___system_696((NI)((NU64)(i_4) << (NU64)(((NI) 6))), j);
															r = (NI)((NI)((NU64)((*r_2).key) << (NU64)(((NI) 9))) | T42_);
															{
																tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T45_;
																T45_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
																T45_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
																if (!(T45_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 0))) goto LA46_;
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
																excl__reorder_273((&(*states->data[pc]).potentialLastReads), r);
															}
															goto LA43_;
															LA46_: ;
															{
																tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T49_;
																NimStringDesc* T52_;
																NimStringDesc* T53_;
																T49_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
																T49_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
																if (!!((T49_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)))) goto LA50_;
																T52_ = NIM_NIL;
																T53_ = NIM_NIL;
																T53_ = dollar___systemZdollars_3(pc);
																T52_ = rawNewString((T53_ ? T53_->Sup.len : 0) + 1);
appendChar(T52_, 10);
appendString(T52_, T53_);
																commenteq___ast_1365(cfg_2->data[r].n, T52_);
																excl__reorder_273((&(*states->data[pc]).potentialLastReads), r);
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r);
															}
															goto LA43_;
															LA50_: ;
															LA43_: ;
														}
														LA40_: ;
														j += ((NI) 1);
														w = (NU)((NU64)(w) >> (NU64)(((NI) 1)));
													} LA37: ;
												}
												i_4 += ((NI) 1);
											} LA35: ;
										}
										r_2 = (*r_2).next;
									} LA33: ;
								}
							}
							LA13_: ;
						}
						alreadySeenThisNode = NIM_FALSE;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
							tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA colontmp__2;
							NI length;
							s = NIM_NIL;
							nimZeroMem((void*)(&colontmp__2), sizeof(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA));
							colontmp__2.data = (*states->data[pc]).alreadySeen.data;
							colontmp__2.counter = (*states->data[pc]).alreadySeen.counter;
							length = len__injectdestructors_2169(colontmp__2);
							{
								NI h;
								NI colontmp__3;
								NI T56_;
								NI res;
								h = (NI)0;
								colontmp__3 = (NI)0;
								T56_ = ((colontmp__2.data ? colontmp__2.data->Sup.len : 0)-1);
								colontmp__3 = T56_;
								res = ((NI) 0);
								{
									while (1) {
										if (!(res <= colontmp__3)) goto LA58;
										h = res;
										{
											NIM_BOOL T61_;
											T61_ = (NIM_BOOL)0;
											T61_ = isFilled__pureZcollectionsZsets_38(colontmp__2.data->data[h].Field0);
											if (!T61_) goto LA62_;
											s = colontmp__2.data->data[h].Field1;
											{
												NIM_BOOL T66_;
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T67_;
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T69_;
												T66_ = (NIM_BOOL)0;
												T67_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T67_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, s);
												T66_ = !((T67_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
												if (T66_) goto LA68_;
												T69_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T69_ = aliasesCached__injectdestructors_121((&cache), s, cfg_2->data[pc].n);
												T66_ = !((T69_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
												LA68_: ;
												if (!T66_) goto LA70_;
												alreadySeenThisNode = NIM_TRUE;
												goto LA54;
											}
											LA70_: ;
										}
										LA62_: ;
										res += ((NI) 1);
									} LA58: ;
								}
							}
						} LA54: ;
						{
							if (!alreadySeenThisNode) goto LA74_;
							(*cfg_2->data[pc].n).flags &= ~(((NU32)1) << ((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 22)) & 31));
						}
						goto LA72_;
						LA74_: ;
						{
							(*cfg_2->data[pc].n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 22)) & 31);
						}
						LA72_: ;
						incl__injectdestructors_2395((&(*states->data[pc]).alreadySeen), cfg_2->data[pc].n);
						T77_ = NIM_NIL;
						T77_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T77_);
					}
					break;
					case ((tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw) 3):
					{
						tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw potentialLastReadsCopy_2;
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T119_;
						nimZeroMem((void*)(&potentialLastReadsCopy_2), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
						genericAssign((void*)(&potentialLastReadsCopy_2), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
						{
							NI r_3;
							r_3 = (NI)0;
							{
								if (!(potentialLastReadsCopy_2.elems <= ((NI) 34))) goto LA82_;
								{
									NI i_5;
									NI i_6;
									i_5 = (NI)0;
									i_6 = ((NI) 0);
									{
										while (1) {
											if (!(i_6 < potentialLastReadsCopy_2.elems)) goto LA86;
											i_5 = i_6;
											r_3 = potentialLastReadsCopy_2.a[(i_5)- 0];
											{
												NIM_BOOL T89_;
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T90_;
												tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T92_;
												NimStringDesc* T95_;
												NimStringDesc* T96_;
												T89_ = (NIM_BOOL)0;
												T90_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T90_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
												T89_ = !((T90_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
												if (T89_) goto LA91_;
												T92_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
												T92_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
												T89_ = !((T92_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
												LA91_: ;
												if (!T89_) goto LA93_;
												T95_ = NIM_NIL;
												T96_ = NIM_NIL;
												T96_ = dollar___systemZdollars_3(pc);
												T95_ = rawNewString((T96_ ? T96_->Sup.len : 0) + 1);
appendChar(T95_, 10);
appendString(T95_, T96_);
												commenteq___ast_1365(cfg_2->data[r_3].n, T95_);
												excl__reorder_273((&(*states->data[pc]).potentialLastReads), r_3);
												incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r_3);
											}
											LA93_: ;
											i_6 += ((NI) 1);
										} LA86: ;
									}
								}
							}
							goto LA80_;
							LA82_: ;
							{
								tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* r_4;
								r_4 = potentialLastReadsCopy_2.head;
								{
									while (1) {
										NI i_7;
										if (!!((r_4 == ((tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg*) NIM_NIL)))) goto LA99;
										i_7 = ((NI) 0);
										{
											while (1) {
												NU w_2;
												NI j_2;
												if (!(i_7 <= ((NI) 7))) goto LA101;
												w_2 = (*r_4).bits[(i_7)- 0];
												j_2 = ((NI) 0);
												{
													while (1) {
														if (!!((w_2 == ((NU) 0)))) goto LA103;
														{
															NI T108_;
															if (!!(((NU)(w_2 & ((NU) 1)) == ((NU) 0)))) goto LA106_;
															T108_ = (NI)0;
															T108_ = pluspercent___system_696((NI)((NU64)(i_7) << (NU64)(((NI) 6))), j_2);
															r_3 = (NI)((NI)((NU64)((*r_4).key) << (NU64)(((NI) 9))) | T108_);
															{
																NIM_BOOL T111_;
																tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T112_;
																tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T114_;
																NimStringDesc* T117_;
																NimStringDesc* T118_;
																T111_ = (NIM_BOOL)0;
																T112_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
																T112_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
																T111_ = !((T112_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
																if (T111_) goto LA113_;
																T114_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
																T114_ = aliasesCached__injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
																T111_ = !((T114_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1)));
																LA113_: ;
																if (!T111_) goto LA115_;
																T117_ = NIM_NIL;
																T118_ = NIM_NIL;
																T118_ = dollar___systemZdollars_3(pc);
																T117_ = rawNewString((T118_ ? T118_->Sup.len : 0) + 1);
appendChar(T117_, 10);
appendString(T117_, T118_);
																commenteq___ast_1365(cfg_2->data[r_3].n, T117_);
																excl__reorder_273((&(*states->data[pc]).potentialLastReads), r_3);
																incl__pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r_3);
															}
															LA115_: ;
														}
														LA106_: ;
														j_2 += ((NI) 1);
														w_2 = (NU)((NU64)(w_2) >> (NU64)(((NI) 1)));
													} LA103: ;
												}
												i_7 += ((NI) 1);
											} LA101: ;
										}
										r_4 = (*r_4).next;
									} LA99: ;
								}
							}
							LA80_: ;
						}
						incl__pureZcollectionsZintsets_55((&(*states->data[pc]).potentialLastReads), pc);
						incl__injectdestructors_2395((&(*states->data[pc]).alreadySeen), cfg_2->data[pc].n);
						T119_ = NIM_NIL;
						T119_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T119_);
					}
					break;
					case ((tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw) 0):
					{
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T121_;
						T121_ = NIM_NIL;
						T121_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + cfg_2->data[pc].dest)], T121_);
					}
					break;
					case ((tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw) 1):
					{
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* copy;
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T123_;
						tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ* T124_;
						T123_ = NIM_NIL;
						T123_ = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*) newObj((&NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_), sizeof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ));
						copy = T123_;
						genericAssign((void*)(&(*copy).lastReads), (void*)(&(*states->data[pc]).lastReads), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
						genericAssign((void*)(&(*copy).potentialLastReads), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
						genericAssign((void*)(&(*copy).notLastReads), (void*)(&(*states->data[pc]).notLastReads), (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_));
						genericSeqAssign((&(*copy).alreadySeen.data), (*states->data[pc]).alreadySeen.data, (&NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_));
						(*copy).alreadySeen.counter = (*states->data[pc]).alreadySeen.counter;
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + cfg_2->data[pc].dest)], copy);
						T124_ = NIM_NIL;
						T124_ = states->data[pc];
						asgnRef((void**) (&states->data[pc]), NIM_NIL);
						mergeStates__injectdestructors_1944(&states->data[(NI)(pc + ((NI) 1))], T124_);
					}
					break;
					}
				}
				LA9_: ;
				i += ((NI) 1);
			} LA6: ;
		}
	}
	nimZeroMem((void*)(&lastReads), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	T125_ = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**)0;
	T125_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	T126_ = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**)0;
	T126_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T127_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	plus___injectdestructors_4122((&(*(*T125_)).lastReads), (&(*(*T126_)).potentialLastReads), (&T127_));
	T128_ = (tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ**)0;
	T128_ = X5BX5D___injectdestructors_4096((states) ? (states->data) : NIM_NIL, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T129_), sizeof(tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw));
	minus___sem_4262((&T127_), (&(*(*T128_)).notLastReads), (&T129_));
	nimCopyMem((void*)(&lastReads), (NIM_CONST void*)(&T129_), sizeof(lastReads));
	nimZeroMem((void*)(&lastReadTable), sizeof(tyObject_Table__aNOGMSUWVGGRiCqNKpJQFQ));
	{
		NI position;
		tyObject_Instr__M1JDxfxGyVaK5N9ctM7QW2w node;
		NI i_8;
		NI L;
		NI T131_;
		position = (NI)0;
		nimZeroMem((void*)(&node), sizeof(tyObject_Instr__M1JDxfxGyVaK5N9ctM7QW2w));
		i_8 = ((NI) 0);
		T131_ = (cfg_2 ? cfg_2->Sup.len : 0);
		L = T131_;
		{
			while (1) {
				if (!(i_8 < L)) goto LA133;
				position = i_8;
				nimCopyMem((void*)(&node), (NIM_CONST void*)(&cfg_2->data[i_8]), sizeof(node));
				{
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T138_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g** T139_;
					NI T140_;
					if (!(node.kind == ((tyEnum_InstrKind__82Too4YSWL3lxgkmNlM6Mw) 3))) goto LA136_;
					T138_ = NIM_NIL;
					T138_ = NIM_NIL;
					T139_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
					T139_ = mgetOrPut__injectdestructors_4251((&lastReadTable), node.n, T138_);
					unsureAsgnRef((void**) (&(*T139_)), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*T139_)), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
					T140_ = (*T139_)->Sup.len++;
					(*T139_)->data[T140_] = position;
				}
				LA136_: ;
				i_8 += ((NI) 1);
			} LA133: ;
		}
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* node_2;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* positions;
		NI L_2;
		node_2 = NIM_NIL;
		positions = NIM_NIL;
		L_2 = len__injectdestructors_5732(lastReadTable);
		{
			NI h_2;
			NI colontmp__4;
			NI T143_;
			NI res_2;
			h_2 = (NI)0;
			colontmp__4 = (NI)0;
			T143_ = ((lastReadTable.data ? lastReadTable.data->Sup.len : 0)-1);
			colontmp__4 = T143_;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__4)) goto LA145;
					h_2 = res_2;
					{
						NIM_BOOL T148_;
						T148_ = (NIM_BOOL)0;
						T148_ = isFilled__pureZcollectionsZtables_31(lastReadTable.data->data[h_2].Field0);
						if (!T148_) goto LA149_;
						node_2 = lastReadTable.data->data[h_2].Field1;
						positions = lastReadTable.data->data[h_2].Field2;
						{
							{
								NI* p;
								NI i_9;
								NI L_3;
								NI T153_;
								p = (NI*)0;
								i_9 = ((NI) 0);
								T153_ = (positions ? positions->Sup.len : 0);
								L_3 = T153_;
								{
									while (1) {
										if (!(i_9 < L_3)) goto LA155;
										p = (&positions->data[i_9]);
										{
											NIM_BOOL T158_;
											T158_ = (NIM_BOOL)0;
											T158_ = contains__astalgo_3489((&lastReads), (*p));
											if (!!(T158_)) goto LA159_;
											goto LA151;
										}
										LA159_: ;
										i_9 += ((NI) 1);
									} LA155: ;
								}
							}
							(*node_2).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 21)) & 31);
						} LA151: ;
					}
					LA149_: ;
					res_2 += ((NI) 1);
				} LA145: ;
			}
		}
	}
}
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;
}
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(void, nestedScope__injectdestructors_72)(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* parent, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* Result) {
	unsureAsgnRef((void**)&(*Result).vars, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).wasMoved, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).final, NIM_NIL);
	(*Result).needsTry = 0;
	(*Result).parent = NIM_NIL;
	unsureAsgnRef((void**) (&(*Result).vars), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).wasMoved), NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).final), NIM_NIL);
	(*Result).needsTry = NIM_FALSE;
	(*Result).parent = parent;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, processScope__injectdestructors_7005)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ret) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*ret).info);
	{
		NI T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSection;
		T3_ = ((*s).vars ? (*s).vars->Sup.len : 0);
		if (!(((NI) 0) < T3_)) goto LA4_;
		varSection = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*ret).info);
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmp;
			NI i;
			NI L;
			NI T7_;
			tmp = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
			i = ((NI) 0);
			T7_ = ((*s).vars ? (*s).vars->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					tyArray__id9c0PBojP5C2oM2bRQSViA T10_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
					if (!(i < L)) goto LA9;
					tmp = &(*s).vars->data[i];
					nimZeroMem((void*)T10_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
					T10_[0] = newSymNode__ast_3704((*tmp));
					T10_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*ret).info);
					T10_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*ret).info);
					T11_ = NIM_NIL;
					T11_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T10_, 3);
					add__ast_4798(varSection, T11_);
					i += ((NI) 1);
				} LA9: ;
			}
		}
		add__ast_4798(result, varSection);
	}
	LA4_: ;
	{
		NIM_BOOL T14_;
		NI T15_;
		NI T17_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSection;
		T14_ = (NIM_BOOL)0;
		T15_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
		T14_ = (((NI) 0) < T15_);
		if (T14_) goto LA16_;
		T17_ = ((*s).final ? (*s).final->Sup.len : 0);
		T14_ = (((NI) 0) < T17_);
		LA16_: ;
		if (!T14_) goto LA18_;
		finSection = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*ret).info);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** m;
			NI i_2;
			NI L_2;
			NI T21_;
			m = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
			i_2 = ((NI) 0);
			T21_ = ((*s).wasMoved ? (*s).wasMoved->Sup.len : 0);
			L_2 = T21_;
			{
				while (1) {
					if (!(i_2 < L_2)) goto LA23;
					m = &(*s).wasMoved->data[i_2];
					add__ast_4798(finSection, (*m));
					i_2 += ((NI) 1);
				} LA23: ;
			}
		}
		{
			NI i_3;
			NI colontmp_;
			NI T25_;
			NI res;
			i_3 = (NI)0;
			colontmp_ = (NI)0;
			T25_ = (((*s).final ? (*s).final->Sup.len : 0)-1);
			colontmp_ = T25_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA27;
					i_3 = res;
					add__ast_4798(finSection, (*s).final->data[i_3]);
					res -= ((NI) 1);
				} LA27: ;
			}
		}
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
			if (!(*s).needsTry) goto LA30_;
			T32_ = NIM_NIL;
			T32_ = newTryFinally__lowerings_207(ret, finSection);
			add__ast_4798(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			add__ast_4798(result, ret);
			add__ast_4798(result, finSection);
		}
		LA28_: ;
	}
	goto LA12_;
	LA18_: ;
	{
		add__ast_4798(result, ret);
	}
	LA12_: ;
	{
		NIM_BOOL T39_;
		if (!!(((*s).parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA37_;
		T39_ = (NIM_BOOL)0;
		T39_ = (*(*s).parent).needsTry;
		if (T39_) goto LA40_;
		T39_ = (*s).needsTry;
		LA40_: ;
		(*(*s).parent).needsTry = T39_;
	}
	LA37_: ;
	return result;
}
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getTemp__injectdestructors_61)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	NI T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*(*c).graph).cache, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_8));
	T2_ = nextSymId__ast_3103((*c).idgen);
	sym = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5), T1_, T2_, (*c).owner, info, 0);
	asgnRef((void**) (&(*sym).typ), typ);
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
	T3_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T3_]), sym);
	result = newSymNode__ast_3704(sym);
	return result;
}
static N_INLINE(NIM_BOOL, hasDestructor__injectdestructors_49)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((IL64(2147483664) & (*t).flags) == 0));
	return result;
}
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(int, nimCmpMem)(void* a, void* b, NI size) {
	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1741)(void* a, void* b, NI size) {
	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__system_1741(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, startsWith__pureZstrutils_1246)(NimStringDesc* s, NIM_CHAR prefix) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((NI) 0) < (s ? s->Sup.len : 0));
	if (!(T1_)) goto LA2_;
	T1_ = ((NU8)(s->data[((NI) 0)]) == (NU8)(prefix));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NimStringDesc*, X5BX5D___pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = NIM_NIL;
	a = x.a;
	L = (NI)((NI)((NI)((s ? s->Sup.len : 0) - x.b) - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw, dotdot___stdZenumutils_90)(NI a, NI b) {
	tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkType__ast_5057)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46));
	if (T1_) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma__injectdestructors_6369)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NimStringDesc* opname) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
	T1_ = rawNewString((opname ? opname->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 31);
appendString(T1_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_16));
appendString(T1_, opname);
appendString(T1_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_17));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_18));
	m = T1_;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NimStringDesc* T11_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_19));
		if (T6_) goto LA7_;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_20));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !((ri == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)));
		LA8_: ;
		if (!T5_) goto LA9_;
		m = resizeString(m, 53);
appendString(m, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_21));
		T11_ = NIM_NIL;
		T11_ = renderTree__renderer_46(ri, 0);
		m = resizeString(m, (T11_ ? T11_->Sup.len : 0) + 0);
appendString(m, T11_);
		m = addChar(m, 39);
		{
			NimStringDesc* T14_;
			NIM_BOOL T15_;
			NimStringDesc* T18_;
			tyObject_HSlice__dyNB5o2GYLzoO6FJ2RhiZw T19_;
			NimStringDesc* T20_;
			NI T21_;
			NimStringDesc* T22_;
			T14_ = NIM_NIL;
			T14_ = comment__ast_997(ri);
			T15_ = (NIM_BOOL)0;
			T15_ = startsWith__pureZstrutils_1246(T14_, 10);
			if (!T15_) goto LA16_;
			m = resizeString(m, 29);
appendString(m, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_22));
			T18_ = NIM_NIL;
			T18_ = comment__ast_997(ri);
			T19_ = dotdot___stdZenumutils_90(((NI) 1), ((NI) 1));
			T20_ = NIM_NIL;
			T20_ = X5BX5D___pureZunicode_3215(T18_, T19_);
			T21_ = (NI)0;
			T21_ = nsuParseInt(T20_);
			T22_ = NIM_NIL;
			T22_ = dollar___msgs_634((*(*c).graph).config, (*(*c).g->data[T21_].n).info);
			m = resizeString(m, (T22_ ? T22_->Sup.len : 0) + 0);
appendString(m, T22_);
		}
		goto LA12_;
		LA16_: ;
		{
			NIM_BOOL T24_;
			NIM_BOOL T25_;
			NIM_BOOL T28_;
			NimStringDesc* T31_;
			T24_ = (NIM_BOOL)0;
			T25_ = (NIM_BOOL)0;
			T25_ = ((*ri).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T25_)) goto LA26_;
			T25_ = ((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3));
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA27_;
			T28_ = (NIM_BOOL)0;
			T28_ = isSinkType__ast_5057((*(*ri)._kind_4.sym).typ);
			T24_ = !(T28_);
			LA27_: ;
			if (!T24_) goto LA29_;
			m = resizeString(m, 14);
appendString(m, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_23));
			T31_ = NIM_NIL;
			T31_ = renderTree__renderer_46(ri, 0);
			m = resizeString(m, (T31_ ? T31_->Sup.len : 0) + 0);
appendString(m, T31_);
			m = resizeString(m, 19);
appendString(m, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_24));
		}
		goto LA12_;
		LA29_: ;
		LA12_: ;
	}
	LA9_: ;
	m = resizeString(m, 11);
appendString(m, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_25));
	m = resizeString(m, ((*(*(*c).owner).name).s ? (*(*(*c).owner).name).s->Sup.len : 0) + 0);
appendString(m, (*(*(*c).owner).name).s);
	liMessage__msgs_1128((*(*c).graph).config, (*ri).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), m, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__qy9cjzsMcb87orRThTwa4gQ_26, NIM_FALSE);
}
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, makePtrType__injectdestructors_6405)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* baseType) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3122((*c).idgen);
	result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 21), T1_, (*c).owner);
	addSonSkipIntLit__magicsys_136(result, baseType, (*c).idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genOp__injectdestructors_6409)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* addrExp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T1_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = makePtrType__injectdestructors_6405(c, (*dest).typ);
	addrExp = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64), (*dest).info, T1_);
	add__ast_4798(addrExp, dest);
	nimZeroMem((void*)T2_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T2_[0] = newSymNode__ast_3704(op);
	T2_[1] = addrExp;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T2_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genOp__injectdestructors_6419)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* op;
	result = NIM_NIL;
	op = getAttachedOp__modulegraphs_4049((*c).graph, t, kind);
	{
		NIM_BOOL T3_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* canon;
		T3_ = (NIM_BOOL)0;
		T3_ = (op == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = isGenericRoutine__ast_4628((*op).ast);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType__sighashes_473(t, (*(*c).graph).config, 50, h);
		canon = getOrDefault__liftdestructors_977((*(*c).graph).canonTypes, h);
		{
			if (!!((canon == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA9_;
			op = getAttachedOp__modulegraphs_4049((*c).graph, canon, kind);
		}
		LA9_: ;
	}
	LA5_: ;
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		if (!(op == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA13_;
		T15_ = NIM_NIL;
		T16_ = NIM_NIL;
		T16_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__lx9aDnWjKktcSUo0yfjOvMg) 0));
		T15_ = rawNewString((AttachedOpToStr__ast_3836[(kind)- 0] ? AttachedOpToStr__ast_3836[(kind)- 0]->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 47);
appendString(T15_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_10));
appendString(T15_, AttachedOpToStr__ast_3836[(kind)- 0]);
appendString(T15_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_11));
appendString(T15_, T16_);
		liMessage__msgs_1128((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T15_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__qy9cjzsMcb87orRThTwa4gQ_12, NIM_FALSE);
	}
	goto LA11_;
	LA13_: ;
	{
		NIM_BOOL T18_;
		NimStringDesc* T21_;
		T18_ = (NIM_BOOL)0;
		T18_ = isGenericRoutine__ast_4628((*op).ast);
		if (!T18_) goto LA19_;
		T21_ = NIM_NIL;
		T21_ = rawNewString((AttachedOpToStr__ast_3836[(kind)- 0] ? AttachedOpToStr__ast_3836[(kind)- 0]->Sup.len : 0) + 38);
appendString(T21_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_10));
appendString(T21_, AttachedOpToStr__ast_3836[(kind)- 0]);
appendString(T21_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_14));
		liMessage__msgs_1128((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 2), TM__qy9cjzsMcb87orRThTwa4gQ_15, NIM_FALSE);
	}
	goto LA11_;
	LA19_: ;
	LA11_: ;
	{
		if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 24))&63U)))!=0)) goto LA24_;
		checkForErrorPragma__injectdestructors_6369((&(*c)), t, ri, AttachedOpToStr__ast_3836[(kind)- 0]);
	}
	LA24_: ;
	result = genOp__injectdestructors_6409(c, op, dest);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDestroy__injectdestructors_6516)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	t = skipTypes__ast_3723((*dest).typ, TM__qy9cjzsMcb87orRThTwa4gQ_9);
	result = genOp__injectdestructors_6419(c, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0), dest, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant__injectdestructors_8435)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*a).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*a).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 22));
	if (!(T1_)) goto LA2_;
	T1_ = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameLocation__injectdestructors_8431)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46) || (*a).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3) || (*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) || (*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46) || (*b).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*a).kind == (*b).kind)) goto LA9_;
			switch ((*a).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
			{
				result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T13_)) goto LA14_;
				T13_ = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA14_: ;
				result = T13_;
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T16_)) goto LA17_;
				T16_ = sameConstant__injectdestructors_8435((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA17_: ;
				result = T16_;
			}
			break;
			default:
			{
				result = NIM_FALSE;
			}
			break;
			}
		}
		goto LA7_;
		LA9_: ;
		{
			result = NIM_FALSE;
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		switch ((*a).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
		{
			result = sameLocation__injectdestructors_8431(b, a);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
		{
			result = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
		{
			result = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
		{
			result = sameLocation__injectdestructors_8431((*a)._kind_6.sons->data[((NI) 1)], b);
		}
		break;
		default:
		{
			result = NIM_FALSE;
		}
		break;
		}
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor__injectdestructors_6358)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		result = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 41))&63U)))!=0);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	{
		result = isCursor__injectdestructors_6358((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		result = isCursor__injectdestructors_6358((*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite__injectdestructors_6109)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
	result = (NIM_BOOL)0;
	m = skipConvDfa__dfa_796(n);
	result = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 22))&31U)))!=0);
	return result;
}
static N_INLINE(NIM_BOOL, isNoInit__injectdestructors_6542)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*dest).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*dest)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 14))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genSink__injectdestructors_6553)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T14_;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T19_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*c).inLoopCond == ((NI) 0));
		if (!(T4_)) goto LA5_;
		T6_ = (NIM_BOOL)0;
		T7_ = (NIM_BOOL)0;
		T8_ = (NIM_BOOL)0;
		T9_ = (NIM_BOOL)0;
		T9_ = ((*dest).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T9_)) goto LA10_;
		T9_ = ((*(*dest)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*(*dest)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
		LA11_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T7_ = isDecl;
		LA12_: ;
		T6_ = T7_;
		if (T6_) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = isAnalysableFieldAccess__dfa_911(dest, (*c).owner);
		if (!(T14_)) goto LA15_;
		T14_ = isFirstWrite__injectdestructors_6109(dest, c);
		LA15_: ;
		T6_ = T14_;
		LA13_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA16_;
		T3_ = isNoInit__injectdestructors_6542(dest);
		LA16_: ;
		if (!T3_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T19_[0] = dest;
		T19_[1] = ri;
		result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T19_, 2);
	}
	goto LA1_;
	LA17_: ;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		t = skipTypes__ast_3723((*dest).typ, TM__qy9cjzsMcb87orRThTwa4gQ_9);
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T23_;
			T23_ = NIM_NIL;
			T23_ = getAttachedOp__modulegraphs_4049((*c).graph, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 2));
			if (!!((T23_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA24_;
			result = genOp__injectdestructors_6419(c, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 2), dest, ri);
			add__ast_4798(result, ri);
		}
		goto LA21_;
		LA24_: ;
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T27_;
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T28_;
			nimZeroMem((void*)T27_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T27_[0] = genDestroy__injectdestructors_6516(c, dest);
			nimZeroMem((void*)T28_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T28_[0] = dest;
			T28_[1] = ri;
			T27_[1] = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T28_, 2);
			result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T27_, 2);
		}
		LA21_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead__injectdestructors_6092)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c) {
	NIM_BOOL result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	m = skipConvDfa__dfa_796(n);
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*m).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*m)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg) 21))&31U)))!=0);
	LA4_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isAtom__ast_4769)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) <= (*n).kind);
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genWasMoved__injectdestructors_6728)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), (*n).info);
	T1_ = NIM_NIL;
	T1_ = createMagic__modulegraphs_9046((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_27), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 150));
	T2_ = NIM_NIL;
	T2_ = newSymNode__ast_3704(T1_);
	add__ast_4798(result, T2_);
	T3_ = NIM_NIL;
	T3_ = copyTree__ast_4432(n);
	add__ast_4798(result, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genFieldAccessSideEffects__injectdestructors_8471)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* temp;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tempAsNode;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* vpart;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newAccess;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* snk;
	tyArray__id9c0PBojP5C2oM2bRQSViA T3_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*(*c).graph).cache, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_28));
	T2_ = nextSymId__ast_3103((*c).idgen);
	temp = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), T1_, T2_, (*c).owner, (*(*ri)._kind_6.sons->data[((NI) 1)]).info, 0);
	asgnRef((void**) (&(*temp).typ), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
	v = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
	tempAsNode = newSymNode__ast_3704(temp);
	vpart = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*tempAsNode).info, ((NI) 3));
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*tempAsNode).info));
	asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), (*ri)._kind_6.sons->data[((NI) 1)]);
	add__ast_4798(v, vpart);
	newAccess = copyNode__ast_4324(ri);
	add__ast_4798(newAccess, (*ri)._kind_6.sons->data[((NI) 0)]);
	add__ast_4798(newAccess, tempAsNode);
	snk = genSink__injectdestructors_6553(c, dest, newAccess, isDecl);
	nimZeroMem((void*)T3_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T3_[0] = v;
	T3_[1] = snk;
	T3_[2] = genWasMoved__injectdestructors_6728(c, newAccess);
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T3_, 3);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic__injectdestructors_6601)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest) {
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w) 5))) goto LA3_;
		t = skipTypes__ast_3723((*dest).typ, TM__qy9cjzsMcb87orRThTwa4gQ_30);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType__liftdestructors_1367((*c).graph, t);
			if (!T7_) goto LA8_;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T14_;
				if (!((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22))) goto LA12_;
				T14_ = NIM_NIL;
				T14_ = callCodegenProc__lowerings_641((*c).graph, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_31), (*dest).info, dest, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				add__ast_4798(result, T14_);
			}
			goto LA10_;
			LA12_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* xenv;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
				xenv = genBuiltin__liftdestructors_113((*c).graph, (*c).idgen, ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 157), ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_32), dest);
				asgnRef((void**) (&(*xenv).typ), getSysType__magicsys_60((*c).graph, (*dest).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 26)));
				T16_ = NIM_NIL;
				T16_ = callCodegenProc__lowerings_641((*c).graph, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_31), (*dest).info, xenv, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
				add__ast_4798(result, T16_);
			}
			LA10_: ;
		}
		LA8_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, destructiveMoveVar__injectdestructors_6749)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
		if (!!(T3_)) goto LA4_;
		result = copyTree__ast_4432(n);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* temp;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T7_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T8_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tempAsNode;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* vpart;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nn;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* wasMovedCall;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info, (*n).typ);
		T7_ = NIM_NIL;
		T7_ = getIdent__idents_152((*(*c).graph).cache, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_29));
		T8_ = nextSymId__ast_3103((*c).idgen);
		temp = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 9), T7_, T8_, (*c).owner, (*n).info, 0);
		asgnRef((void**) (&(*temp).typ), (*n).typ);
		v = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100), (*n).info);
		tempAsNode = newSymNode__ast_3704(temp);
		vpart = newNodeI__ast_3324(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), (*tempAsNode).info, ((NI) 3));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 0)]), tempAsNode);
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 1)]), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*tempAsNode).info));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), n);
		add__ast_4798(v, vpart);
		add__ast_4798(result, v);
		nn = skipConv__types_3661(n);
		genMarkCyclic__injectdestructors_6601(c, result, nn);
		wasMovedCall = genWasMoved__injectdestructors_6728(c, nn);
		add__ast_4798(result, wasMovedCall);
		add__ast_4798(result, tempAsNode);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genCopyNoCheck__injectdestructors_6623)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	t = skipTypes__ast_3723((*dest).typ, TM__qy9cjzsMcb87orRThTwa4gQ_9);
	result = genOp__injectdestructors_6419(c, t, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 1), dest, ri);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genCopy__injectdestructors_6636)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
	result = NIM_NIL;
	t = (*dest).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*ri).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23)));
		LA4_: ;
		if (!T3_) goto LA5_;
		checkForErrorPragma__injectdestructors_6369((&(*c)), t, ri, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_20));
	}
	LA5_: ;
	result = genCopyNoCheck__injectdestructors_6623(c, dest, ri);
	return result;
}
static N_INLINE(NIM_BOOL, isCriticalLink__injectdestructors_6580)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*dest).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, finishCopy__injectdestructors_6587)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, NIM_BOOL isFromSink) {
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w) 5))) goto LA3_;
		t = skipTypes__ast_3723((*dest).typ, TM__qy9cjzsMcb87orRThTwa4gQ_30);
		{
			NIM_BOOL T7_;
			NIM_BOOL T10_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType__liftdestructors_1367((*c).graph, t);
			if (!T7_) goto LA8_;
			T10_ = (NIM_BOOL)0;
			T10_ = isFromSink;
			if (T10_) goto LA11_;
			T10_ = isCriticalLink__injectdestructors_6580(dest);
			LA11_: ;
			T12_ = NIM_NIL;
			T12_ = boolLit__liftdestructors_428((*c).graph, (*result).info, T10_);
			add__ast_4798(result, T12_);
		}
		LA8_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isDangerousSeq__injectdestructors_6836)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__ast_3723(t, TM__qy9cjzsMcb87orRThTwa4gQ_33);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 24));
	if (!(T1_)) goto LA2_;
	T1_ = !((((*(*t_2).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4))&63U)))!=0));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam__ast_5042)(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) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, canBeMoved__injectdestructors_6521)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t_2;
	result = (NIM_BOOL)0;
	t_2 = skipTypes__ast_3723(t, TM__qy9cjzsMcb87orRThTwa4gQ_9);
	{
		NIM_BOOL T5_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T7_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0)) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*t_2).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22)));
		if (!(T5_)) goto LA6_;
		T7_ = NIM_NIL;
		T7_ = getAttachedOp__modulegraphs_4049((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 2));
		T5_ = !((T7_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
		LA6_: ;
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T9_;
		T9_ = NIM_NIL;
		T9_ = getAttachedOp__modulegraphs_4049((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 2));
		result = !((T9_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pRaiseStmt__injectdestructors_7115)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg) 42))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* call;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA9_;
			call = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			result = copyNode__ast_4324(n);
			add__ast_4798(result, call);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmp;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T13_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* toDisarm;
			tyArray__iegsN9bf6GqRiWprrJjTAoA T25_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T26_;
			tmp = getTemp__injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*n).info);
			m = genCopyNoCheck__injectdestructors_6623(c, tmp, (*n)._kind_6.sons->data[((NI) 0)]);
			T12_ = NIM_NIL;
			T12_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			add__ast_4798(m, T12_);
			finishCopy__injectdestructors_6587(c, m, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
			nimZeroMem((void*)T13_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T13_[0] = genWasMoved__injectdestructors_6728(c, tmp);
			T13_[1] = m;
			result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T13_, 2);
			toDisarm = (*n)._kind_6.sons->data[((NI) 0)];
			{
				if (!((*toDisarm).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA16_;
				toDisarm = lastSon__ast_4833(toDisarm);
			}
			LA16_: ;
			{
				NIM_BOOL T20_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*toDisarm).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = ((*(*toDisarm)._kind_4.sym).owner == (*c).owner);
				LA21_: ;
				if (!T20_) goto LA22_;
				T24_ = NIM_NIL;
				T24_ = genWasMoved__injectdestructors_6728(c, toDisarm);
				add__ast_4798(result, T24_);
			}
			LA22_: ;
			nimZeroMem((void*)T25_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
			T25_[0] = tmp;
			T26_ = NIM_NIL;
			T26_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108), T25_, 1);
			add__ast_4798(result, T26_);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyNode__ast_4324(n);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T32_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA30_;
			T32_ = NIM_NIL;
			T32_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2));
			add__ast_4798(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T34_;
			T34_ = NIM_NIL;
			T34_ = copyNode__ast_4324((*n)._kind_6.sons->data[((NI) 0)]);
			add__ast_4798(result, T34_);
		}
		LA28_: ;
	}
	LA1_: ;
	(*s).needsTry = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, moveOrCopy__injectdestructors_110)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* dest, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, NIM_BOOL isDecl) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameLocation__injectdestructors_8431(dest, ri);
		if (!T3_) goto LA4_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*dest).info);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isCursor__injectdestructors_6358(dest);
		if (!T7_) goto LA8_;
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T22_;
				{
					NI T14_;
					T14_ = (NI)0;
					T14_ = len__ast_3155(ri);
					if (!(T14_ == ((NI) 0))) goto LA15_;
					result = ri;
					goto BeforeRet_;
				}
				LA15_: ;
				result = copyNode__ast_4324(ri);
				{
					NI iX60gensym511_;
					NI colontmp_;
					NI T18_;
					NI i;
					iX60gensym511_ = (NI)0;
					colontmp_ = (NI)0;
					T18_ = (NI)0;
					T18_ = len__ast_3155(ri);
					colontmp_ = (NI)(T18_ - ((NI) 1));
					i = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T21_;
							if (!(i < colontmp_)) goto LA20;
							iX60gensym511_ = i;
							T21_ = NIM_NIL;
							T21_ = p__injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym511_], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
							add__ast_4798(result, T21_);
							i += ((NI) 1);
						} LA20: ;
					}
				}
				T22_ = NIM_NIL;
				{
					NI T25_;
					NIM_BOOL T26_;
					NI T29_;
					T25_ = (NI)0;
					T25_ = len__ast_3155(ri);
					T26_ = (NIM_BOOL)0;
					T26_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))]).typ);
					if (!T26_) goto LA27_;
					T29_ = (NI)0;
					T29_ = len__ast_3155(ri);
					T22_ = p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T29_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				}
				goto LA23_;
				LA27_: ;
				{
					NI T31_;
					T31_ = (NI)0;
					T31_ = len__ast_3155(ri);
					T22_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T31_ - ((NI) 1))], c, s, isDecl);
				}
				LA23_: ;
				add__ast_4798(result, T22_);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
				result = copyNode__ast_4324(ri);
				T33_ = NIM_NIL;
				T33_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				add__ast_4798(result, T33_);
				{
					NI iX60gensym511__2;
					NI colontmp__2;
					NI i_2;
					iX60gensym511__2 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len__ast_3155(ri);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym511_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym511_;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg ofScopeX60gensym511_;
							NI T41_;
							if (!(i_2 < colontmp__2)) goto LA36;
							iX60gensym511__2 = i_2;
							itX60gensym511_ = (*ri)._kind_6.sons->data[iX60gensym511__2];
							branchX60gensym511_ = shallowCopy__ast_4414(itX60gensym511_);
							{
								NI jX60gensym511_;
								NI colontmp__3;
								NI T38_;
								NI i_3;
								jX60gensym511_ = (NI)0;
								colontmp__3 = (NI)0;
								T38_ = (NI)0;
								T38_ = len__ast_3155(itX60gensym511_);
								colontmp__3 = (NI)(T38_ - ((NI) 1));
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 < colontmp__3)) goto LA40;
										jX60gensym511_ = i_3;
										asgnRef((void**) (&(*branchX60gensym511_)._kind_6.sons->data[jX60gensym511_]), copyTree__ast_4432((*itX60gensym511_)._kind_6.sons->data[jX60gensym511_]));
										i_3 += ((NI) 1);
									} LA40: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym511_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&ofScopeX60gensym511_));
							T41_ = (NI)0;
							T41_ = len__ast_3155(branchX60gensym511_);
							{
								NIM_BOOL T44_;
								NI T45_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T49_;
								T44_ = (NIM_BOOL)0;
								T45_ = (NI)0;
								T45_ = len__ast_3155(itX60gensym511_);
								T44_ = isEmptyType__ast_4780((*(*itX60gensym511_)._kind_6.sons->data[(NI)(T45_ - ((NI) 1))]).typ);
								if (T44_) goto LA46_;
								T44_ = NIM_TRUE;
								LA46_: ;
								if (!T44_) goto LA47_;
								T49_ = NIM_NIL;
								{
									NI T52_;
									NIM_BOOL T53_;
									NI T56_;
									T52_ = (NI)0;
									T52_ = len__ast_3155(itX60gensym511_);
									T53_ = (NIM_BOOL)0;
									T53_ = isEmptyType__ast_4780((*(*itX60gensym511_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))]).typ);
									if (!T53_) goto LA54_;
									T56_ = (NI)0;
									T56_ = len__ast_3155(itX60gensym511_);
									T49_ = p__injectdestructors_105((*itX60gensym511_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))], c, (&ofScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA50_;
								LA54_: ;
								{
									NI T58_;
									T58_ = (NI)0;
									T58_ = len__ast_3155(itX60gensym511_);
									T49_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym511_)._kind_6.sons->data[(NI)(T58_ - ((NI) 1))], c, (&ofScopeX60gensym511_), isDecl);
								}
								LA50_: ;
								asgnRef((void**) (&(*branchX60gensym511_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&ofScopeX60gensym511_), T49_));
							}
							goto LA42_;
							LA47_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym549_;
								NI T60_;
								NI T61_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym549_;
								NI T62_;
								NI T63_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym549_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym549_;
								NI T90_;
								T60_ = (NI)0;
								T60_ = len__ast_3155(itX60gensym511_);
								T61_ = (NI)0;
								T61_ = len__ast_3155(itX60gensym511_);
								resultX60gensym549_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).info, (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T61_ - ((NI) 1))]).typ);
								T62_ = (NI)0;
								T62_ = len__ast_3155(itX60gensym511_);
								T63_ = (NI)0;
								T63_ = len__ast_3155(itX60gensym511_);
								tmpX60gensym549_ = getTemp__injectdestructors_61(c, ofScopeX60gensym511_.parent, (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T62_ - ((NI) 1))]).typ, (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T63_ - ((NI) 1))]).info);
								(*(*tmpX60gensym549_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T66_;
									NIM_BOOL T67_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T70_;
									NI T71_;
									NI T72_;
									T66_ = (NI)0;
									T66_ = len__ast_3155(itX60gensym511_);
									T67_ = (NIM_BOOL)0;
									T67_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))]).typ);
									if (!T67_) goto LA68_;
									T70_ = NIM_NIL;
									T70_ = genDestroy__injectdestructors_6516(c, tmpX60gensym549_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym511_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym511_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T71_ = (*ofScopeX60gensym511_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym511_.parent).final->data[T71_]), T70_);
									T72_ = (NI)0;
									T72_ = len__ast_3155(itX60gensym511_);
									cpyX60gensym549_ = moveOrCopy__injectdestructors_110(tmpX60gensym549_, (*itX60gensym511_)._kind_6.sons->data[(NI)(T72_ - ((NI) 1))], c, (&ofScopeX60gensym511_), NIM_TRUE);
								}
								goto LA64_;
								LA68_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T74_;
									NI T75_;
									nimZeroMem((void*)T74_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T74_[0] = tmpX60gensym549_;
									T75_ = (NI)0;
									T75_ = len__ast_3155(itX60gensym511_);
									T74_[1] = p__injectdestructors_105((*itX60gensym511_)._kind_6.sons->data[(NI)(T75_ - ((NI) 1))], c, (&ofScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym549_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T74_, 2);
								}
								LA64_: ;
								{
									NI T78_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym549_;
									NI T81_;
									T78_ = (ofScopeX60gensym511_.vars ? ofScopeX60gensym511_.vars->Sup.len : 0);
									if (!(((NI) 0) < T78_)) goto LA79_;
									T81_ = (NI)0;
									T81_ = len__ast_3155(itX60gensym511_);
									varSectionX60gensym549_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym549__2;
										NI i_4;
										NI L;
										NI T83_;
										tmpX60gensym549__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_4 = ((NI) 0);
										T83_ = (ofScopeX60gensym511_.vars ? ofScopeX60gensym511_.vars->Sup.len : 0);
										L = T83_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T86_;
												NI T87_;
												NI T88_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T89_;
												if (!(i_4 < L)) goto LA85;
												tmpX60gensym549__2 = &ofScopeX60gensym511_.vars->data[i_4];
												nimZeroMem((void*)T86_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T86_[0] = newSymNode__ast_3704((*tmpX60gensym549__2));
												T87_ = (NI)0;
												T87_ = len__ast_3155(itX60gensym511_);
												T86_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T87_ - ((NI) 1))]).info);
												T88_ = (NI)0;
												T88_ = len__ast_3155(itX60gensym511_);
												T86_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T88_ - ((NI) 1))]).info);
												T89_ = NIM_NIL;
												T89_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T86_, 3);
												add__ast_4798(varSectionX60gensym549_, T89_);
												i_4 += ((NI) 1);
											} LA85: ;
										}
									}
									add__ast_4798(resultX60gensym549_, varSectionX60gensym549_);
								}
								LA79_: ;
								T90_ = (NI)0;
								T90_ = len__ast_3155(itX60gensym511_);
								finSectionX60gensym549_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym511_)._kind_6.sons->data[(NI)(T90_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym549_;
									NI i_5;
									NI L_2;
									NI T92_;
									mX60gensym549_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_5 = ((NI) 0);
									T92_ = (ofScopeX60gensym511_.wasMoved ? ofScopeX60gensym511_.wasMoved->Sup.len : 0);
									L_2 = T92_;
									{
										while (1) {
											if (!(i_5 < L_2)) goto LA94;
											mX60gensym549_ = &ofScopeX60gensym511_.wasMoved->data[i_5];
											add__ast_4798(finSectionX60gensym549_, (*mX60gensym549_));
											i_5 += ((NI) 1);
										} LA94: ;
									}
								}
								{
									NI iX60gensym549_;
									NI colontmp__4;
									NI T96_;
									NI res;
									iX60gensym549_ = (NI)0;
									colontmp__4 = (NI)0;
									T96_ = ((ofScopeX60gensym511_.final ? ofScopeX60gensym511_.final->Sup.len : 0)-1);
									colontmp__4 = T96_;
									res = colontmp__4;
									{
										while (1) {
											if (!(((NI) 0) <= res)) goto LA98;
											iX60gensym549_ = res;
											add__ast_4798(finSectionX60gensym549_, ofScopeX60gensym511_.final->data[iX60gensym549_]);
											res -= ((NI) 1);
										} LA98: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T103_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T104_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T105_;
									if (!ofScopeX60gensym511_.needsTry) goto LA101_;
									nimZeroMem((void*)T103_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T103_[0] = cpyX60gensym549_;
									T103_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym549_, c, ofScopeX60gensym511_.parent, isDecl);
									T104_ = NIM_NIL;
									T104_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T103_, 2);
									T105_ = NIM_NIL;
									T105_ = newTryFinally__lowerings_207(T104_, finSectionX60gensym549_);
									add__ast_4798(resultX60gensym549_, T105_);
								}
								goto LA99_;
								LA101_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T107_;
									add__ast_4798(resultX60gensym549_, cpyX60gensym549_);
									add__ast_4798(resultX60gensym549_, finSectionX60gensym549_);
									T107_ = NIM_NIL;
									T107_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym549_, c, ofScopeX60gensym511_.parent, isDecl);
									add__ast_4798(resultX60gensym549_, T107_);
								}
								LA99_: ;
								{
									NIM_BOOL T112_;
									if (!!((ofScopeX60gensym511_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA110_;
									T112_ = (NIM_BOOL)0;
									T112_ = (*ofScopeX60gensym511_.parent).needsTry;
									if (T112_) goto LA113_;
									T112_ = ofScopeX60gensym511_.needsTry;
									LA113_: ;
									(*ofScopeX60gensym511_.parent).needsTry = T112_;
								}
								LA110_: ;
								asgnRef((void**) (&(*branchX60gensym511_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), resultX60gensym549_);
							}
							LA42_: ;
							add__ast_4798(result, branchX60gensym511_);
							i_2 += ((NI) 1);
						} LA36: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T115_;
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym511_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym511_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T116_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode__ast_4324(ri);
				T115_ = NIM_NIL;
				T115_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				add__ast_4798(result, T115_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym511_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym511_));
				bodyResultX60gensym511_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				T116_ = NIM_NIL;
				T116_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym511_), bodyResultX60gensym511_);
				add__ast_4798(result, T116_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
			{
				NI lastX60gensym511_;
				NI T118_;
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym511__2;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym511__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy__ast_4414(ri);
				T118_ = (NI)0;
				T118_ = len__ast_3155(ri);
				lastX60gensym511_ = (NI)(T118_ - ((NI) 1));
				{
					NI iX60gensym511__3;
					NI colontmp__5;
					NI i_6;
					iX60gensym511__3 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = (NI)(lastX60gensym511_ - ((NI) 1));
					i_6 = ((NI) 0);
					{
						while (1) {
							if (!(i_6 < colontmp__5)) goto LA121;
							iX60gensym511__3 = i_6;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym511__3]), (*ri)._kind_6.sons->data[iX60gensym511__3]);
							i_6 += ((NI) 1);
						} LA121: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym511_ - ((NI) 1))]), p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym511_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym511__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym511__2));
				bodyResultX60gensym511__2 = p__injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym511_], c, (&bodyScopeX60gensym511__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym511_]), processScope__injectdestructors_7005(c, (&bodyScopeX60gensym511__2), bodyResultX60gensym511__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
			{
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym511__3;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T123_;
				result = copyNode__ast_4324(ri);
				add__ast_4798(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym511__3), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym511__3));
				T123_ = NIM_NIL;
				{
					NIM_BOOL T126_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T130_;
					T126_ = (NIM_BOOL)0;
					T126_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T126_) goto LA127_;
					T126_ = NIM_TRUE;
					LA127_: ;
					if (!T126_) goto LA128_;
					T130_ = NIM_NIL;
					T130_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym511__3), isDecl);
					T123_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym511__3), T130_);
				}
				goto LA124_;
				LA128_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym571_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym571_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym571_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym571_;
					resultX60gensym571_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					tmpX60gensym571_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym511__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym571_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
					{
						NIM_BOOL T134_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T137_;
						NI T138_;
						T134_ = (NIM_BOOL)0;
						T134_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T134_) goto LA135_;
						T137_ = NIM_NIL;
						T137_ = genDestroy__injectdestructors_6516(c, tmpX60gensym571_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym511__3.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym511__3.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						T138_ = (*bodyScopeX60gensym511__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym511__3.parent).final->data[T138_]), T137_);
						cpyX60gensym571_ = moveOrCopy__injectdestructors_110(tmpX60gensym571_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym511__3), NIM_TRUE);
					}
					goto LA132_;
					LA135_: ;
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T140_;
						nimZeroMem((void*)T140_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T140_[0] = tmpX60gensym571_;
						T140_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym511__3), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						cpyX60gensym571_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T140_, 2);
					}
					LA132_: ;
					{
						NI T143_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym571_;
						T143_ = (bodyScopeX60gensym511__3.vars ? bodyScopeX60gensym511__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T143_)) goto LA144_;
						varSectionX60gensym571_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym571__2;
							NI i_7;
							NI L_3;
							NI T147_;
							tmpX60gensym571__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
							i_7 = ((NI) 0);
							T147_ = (bodyScopeX60gensym511__3.vars ? bodyScopeX60gensym511__3.vars->Sup.len : 0);
							L_3 = T147_;
							{
								while (1) {
									tyArray__id9c0PBojP5C2oM2bRQSViA T150_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T151_;
									if (!(i_7 < L_3)) goto LA149;
									tmpX60gensym571__2 = &bodyScopeX60gensym511__3.vars->data[i_7];
									nimZeroMem((void*)T150_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
									T150_[0] = newSymNode__ast_3704((*tmpX60gensym571__2));
									T150_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T150_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T151_ = NIM_NIL;
									T151_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T150_, 3);
									add__ast_4798(varSectionX60gensym571_, T151_);
									i_7 += ((NI) 1);
								} LA149: ;
							}
						}
						add__ast_4798(resultX60gensym571_, varSectionX60gensym571_);
					}
					LA144_: ;
					finSectionX60gensym571_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym571_;
						NI i_8;
						NI L_4;
						NI T153_;
						mX60gensym571_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
						i_8 = ((NI) 0);
						T153_ = (bodyScopeX60gensym511__3.wasMoved ? bodyScopeX60gensym511__3.wasMoved->Sup.len : 0);
						L_4 = T153_;
						{
							while (1) {
								if (!(i_8 < L_4)) goto LA155;
								mX60gensym571_ = &bodyScopeX60gensym511__3.wasMoved->data[i_8];
								add__ast_4798(finSectionX60gensym571_, (*mX60gensym571_));
								i_8 += ((NI) 1);
							} LA155: ;
						}
					}
					{
						NI iX60gensym571_;
						NI colontmp__6;
						NI T157_;
						NI res_2;
						iX60gensym571_ = (NI)0;
						colontmp__6 = (NI)0;
						T157_ = ((bodyScopeX60gensym511__3.final ? bodyScopeX60gensym511__3.final->Sup.len : 0)-1);
						colontmp__6 = T157_;
						res_2 = colontmp__6;
						{
							while (1) {
								if (!(((NI) 0) <= res_2)) goto LA159;
								iX60gensym571_ = res_2;
								add__ast_4798(finSectionX60gensym571_, bodyScopeX60gensym511__3.final->data[iX60gensym571_]);
								res_2 -= ((NI) 1);
							} LA159: ;
						}
					}
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T164_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T165_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T166_;
						if (!bodyScopeX60gensym511__3.needsTry) goto LA162_;
						nimZeroMem((void*)T164_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T164_[0] = cpyX60gensym571_;
						T164_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym571_, c, bodyScopeX60gensym511__3.parent, isDecl);
						T165_ = NIM_NIL;
						T165_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T164_, 2);
						T166_ = NIM_NIL;
						T166_ = newTryFinally__lowerings_207(T165_, finSectionX60gensym571_);
						add__ast_4798(resultX60gensym571_, T166_);
					}
					goto LA160_;
					LA162_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T168_;
						add__ast_4798(resultX60gensym571_, cpyX60gensym571_);
						add__ast_4798(resultX60gensym571_, finSectionX60gensym571_);
						T168_ = NIM_NIL;
						T168_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym571_, c, bodyScopeX60gensym511__3.parent, isDecl);
						add__ast_4798(resultX60gensym571_, T168_);
					}
					LA160_: ;
					{
						NIM_BOOL T173_;
						if (!!((bodyScopeX60gensym511__3.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA171_;
						T173_ = (NIM_BOOL)0;
						T173_ = (*bodyScopeX60gensym511__3.parent).needsTry;
						if (T173_) goto LA174_;
						T173_ = bodyScopeX60gensym511__3.needsTry;
						LA174_: ;
						(*bodyScopeX60gensym511__3.parent).needsTry = T173_;
					}
					LA171_: ;
					T123_ = resultX60gensym571_;
				}
				LA124_: ;
				add__ast_4798(result, T123_);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
			{
				result = copyNode__ast_4324(ri);
				{
					NI iX60gensym511__4;
					NI colontmp__7;
					NI i_9;
					iX60gensym511__4 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__ast_3155(ri);
					i_9 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym511__2;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym511__2;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym511_;
							NI T183_;
							if (!(i_9 < colontmp__7)) goto LA178;
							iX60gensym511__4 = i_9;
							itX60gensym511__2 = (*ri)._kind_6.sons->data[iX60gensym511__4];
							branchX60gensym511__2 = shallowCopy__ast_4414(itX60gensym511__2);
							nimZeroMem((void*)(&branchScopeX60gensym511_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym511_));
							{
								if (!((*itX60gensym511__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86) || (*itX60gensym511__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49))) goto LA181_;
								asgnRef((void**) (&(*branchX60gensym511__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym511__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
							}
							LA181_: ;
							T183_ = (NI)0;
							T183_ = len__ast_3155(branchX60gensym511__2);
							{
								NIM_BOOL T186_;
								NI T187_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T191_;
								T186_ = (NIM_BOOL)0;
								T187_ = (NI)0;
								T187_ = len__ast_3155(itX60gensym511__2);
								T186_ = isEmptyType__ast_4780((*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T187_ - ((NI) 1))]).typ);
								if (T186_) goto LA188_;
								T186_ = NIM_TRUE;
								LA188_: ;
								if (!T186_) goto LA189_;
								T191_ = NIM_NIL;
								{
									NI T194_;
									NIM_BOOL T195_;
									NI T198_;
									T194_ = (NI)0;
									T194_ = len__ast_3155(itX60gensym511__2);
									T195_ = (NIM_BOOL)0;
									T195_ = isEmptyType__ast_4780((*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))]).typ);
									if (!T195_) goto LA196_;
									T198_ = (NI)0;
									T198_ = len__ast_3155(itX60gensym511__2);
									T191_ = p__injectdestructors_105((*itX60gensym511__2)._kind_6.sons->data[(NI)(T198_ - ((NI) 1))], c, (&branchScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA192_;
								LA196_: ;
								{
									NI T200_;
									T200_ = (NI)0;
									T200_ = len__ast_3155(itX60gensym511__2);
									T191_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym511__2)._kind_6.sons->data[(NI)(T200_ - ((NI) 1))], c, (&branchScopeX60gensym511_), isDecl);
								}
								LA192_: ;
								asgnRef((void**) (&(*branchX60gensym511__2)._kind_6.sons->data[(NI)(T183_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym511_), T191_));
							}
							goto LA184_;
							LA189_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym600_;
								NI T202_;
								NI T203_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym600_;
								NI T204_;
								NI T205_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym600_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym600_;
								NI T232_;
								T202_ = (NI)0;
								T202_ = len__ast_3155(itX60gensym511__2);
								T203_ = (NI)0;
								T203_ = len__ast_3155(itX60gensym511__2);
								resultX60gensym600_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).info, (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T203_ - ((NI) 1))]).typ);
								T204_ = (NI)0;
								T204_ = len__ast_3155(itX60gensym511__2);
								T205_ = (NI)0;
								T205_ = len__ast_3155(itX60gensym511__2);
								tmpX60gensym600_ = getTemp__injectdestructors_61(c, branchScopeX60gensym511_.parent, (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T204_ - ((NI) 1))]).typ, (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T205_ - ((NI) 1))]).info);
								(*(*tmpX60gensym600_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T208_;
									NIM_BOOL T209_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T212_;
									NI T213_;
									NI T214_;
									T208_ = (NI)0;
									T208_ = len__ast_3155(itX60gensym511__2);
									T209_ = (NIM_BOOL)0;
									T209_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))]).typ);
									if (!T209_) goto LA210_;
									T212_ = NIM_NIL;
									T212_ = genDestroy__injectdestructors_6516(c, tmpX60gensym600_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym511_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym511_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T213_ = (*branchScopeX60gensym511_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym511_.parent).final->data[T213_]), T212_);
									T214_ = (NI)0;
									T214_ = len__ast_3155(itX60gensym511__2);
									cpyX60gensym600_ = moveOrCopy__injectdestructors_110(tmpX60gensym600_, (*itX60gensym511__2)._kind_6.sons->data[(NI)(T214_ - ((NI) 1))], c, (&branchScopeX60gensym511_), NIM_TRUE);
								}
								goto LA206_;
								LA210_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T216_;
									NI T217_;
									nimZeroMem((void*)T216_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T216_[0] = tmpX60gensym600_;
									T217_ = (NI)0;
									T217_ = len__ast_3155(itX60gensym511__2);
									T216_[1] = p__injectdestructors_105((*itX60gensym511__2)._kind_6.sons->data[(NI)(T217_ - ((NI) 1))], c, (&branchScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym600_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T216_, 2);
								}
								LA206_: ;
								{
									NI T220_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym600_;
									NI T223_;
									T220_ = (branchScopeX60gensym511_.vars ? branchScopeX60gensym511_.vars->Sup.len : 0);
									if (!(((NI) 0) < T220_)) goto LA221_;
									T223_ = (NI)0;
									T223_ = len__ast_3155(itX60gensym511__2);
									varSectionX60gensym600_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym600__2;
										NI i_10;
										NI L_5;
										NI T225_;
										tmpX60gensym600__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_10 = ((NI) 0);
										T225_ = (branchScopeX60gensym511_.vars ? branchScopeX60gensym511_.vars->Sup.len : 0);
										L_5 = T225_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T228_;
												NI T229_;
												NI T230_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T231_;
												if (!(i_10 < L_5)) goto LA227;
												tmpX60gensym600__2 = &branchScopeX60gensym511_.vars->data[i_10];
												nimZeroMem((void*)T228_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T228_[0] = newSymNode__ast_3704((*tmpX60gensym600__2));
												T229_ = (NI)0;
												T229_ = len__ast_3155(itX60gensym511__2);
												T228_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T229_ - ((NI) 1))]).info);
												T230_ = (NI)0;
												T230_ = len__ast_3155(itX60gensym511__2);
												T228_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T230_ - ((NI) 1))]).info);
												T231_ = NIM_NIL;
												T231_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T228_, 3);
												add__ast_4798(varSectionX60gensym600_, T231_);
												i_10 += ((NI) 1);
											} LA227: ;
										}
									}
									add__ast_4798(resultX60gensym600_, varSectionX60gensym600_);
								}
								LA221_: ;
								T232_ = (NI)0;
								T232_ = len__ast_3155(itX60gensym511__2);
								finSectionX60gensym600_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym511__2)._kind_6.sons->data[(NI)(T232_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym600_;
									NI i_11;
									NI L_6;
									NI T234_;
									mX60gensym600_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_11 = ((NI) 0);
									T234_ = (branchScopeX60gensym511_.wasMoved ? branchScopeX60gensym511_.wasMoved->Sup.len : 0);
									L_6 = T234_;
									{
										while (1) {
											if (!(i_11 < L_6)) goto LA236;
											mX60gensym600_ = &branchScopeX60gensym511_.wasMoved->data[i_11];
											add__ast_4798(finSectionX60gensym600_, (*mX60gensym600_));
											i_11 += ((NI) 1);
										} LA236: ;
									}
								}
								{
									NI iX60gensym600_;
									NI colontmp__8;
									NI T238_;
									NI res_3;
									iX60gensym600_ = (NI)0;
									colontmp__8 = (NI)0;
									T238_ = ((branchScopeX60gensym511_.final ? branchScopeX60gensym511_.final->Sup.len : 0)-1);
									colontmp__8 = T238_;
									res_3 = colontmp__8;
									{
										while (1) {
											if (!(((NI) 0) <= res_3)) goto LA240;
											iX60gensym600_ = res_3;
											add__ast_4798(finSectionX60gensym600_, branchScopeX60gensym511_.final->data[iX60gensym600_]);
											res_3 -= ((NI) 1);
										} LA240: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T245_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T246_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T247_;
									if (!branchScopeX60gensym511_.needsTry) goto LA243_;
									nimZeroMem((void*)T245_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T245_[0] = cpyX60gensym600_;
									T245_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym600_, c, branchScopeX60gensym511_.parent, isDecl);
									T246_ = NIM_NIL;
									T246_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T245_, 2);
									T247_ = NIM_NIL;
									T247_ = newTryFinally__lowerings_207(T246_, finSectionX60gensym600_);
									add__ast_4798(resultX60gensym600_, T247_);
								}
								goto LA241_;
								LA243_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T249_;
									add__ast_4798(resultX60gensym600_, cpyX60gensym600_);
									add__ast_4798(resultX60gensym600_, finSectionX60gensym600_);
									T249_ = NIM_NIL;
									T249_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym600_, c, branchScopeX60gensym511_.parent, isDecl);
									add__ast_4798(resultX60gensym600_, T249_);
								}
								LA241_: ;
								{
									NIM_BOOL T254_;
									if (!!((branchScopeX60gensym511_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA252_;
									T254_ = (NIM_BOOL)0;
									T254_ = (*branchScopeX60gensym511_.parent).needsTry;
									if (T254_) goto LA255_;
									T254_ = branchScopeX60gensym511_.needsTry;
									LA255_: ;
									(*branchScopeX60gensym511_.parent).needsTry = T254_;
								}
								LA252_: ;
								asgnRef((void**) (&(*branchX60gensym511__2)._kind_6.sons->data[(NI)(T183_ - ((NI) 1))]), resultX60gensym600_);
							}
							LA184_: ;
							add__ast_4798(result, branchX60gensym511__2);
							i_9 += ((NI) 1);
						} LA178: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
			{
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg tryScopeX60gensym511_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T257_;
				result = copyNode__ast_4324(ri);
				nimZeroMem((void*)(&tryScopeX60gensym511_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&tryScopeX60gensym511_));
				T257_ = NIM_NIL;
				{
					NIM_BOOL T260_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T264_;
					T260_ = (NIM_BOOL)0;
					T260_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T260_) goto LA261_;
					T260_ = NIM_TRUE;
					LA261_: ;
					if (!T260_) goto LA262_;
					T264_ = NIM_NIL;
					{
						NIM_BOOL T267_;
						T267_ = (NIM_BOOL)0;
						T267_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T267_) goto LA268_;
						T264_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					}
					goto LA265_;
					LA268_: ;
					{
						T264_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym511_), isDecl);
					}
					LA265_: ;
					T257_ = processScope__injectdestructors_7005(c, (&tryScopeX60gensym511_), T264_);
				}
				goto LA258_;
				LA262_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym616_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym616_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym616_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym616_;
					resultX60gensym616_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					tmpX60gensym616_ = getTemp__injectdestructors_61(c, tryScopeX60gensym511_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym616_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
					{
						NIM_BOOL T274_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T277_;
						NI T278_;
						T274_ = (NIM_BOOL)0;
						T274_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T274_) goto LA275_;
						T277_ = NIM_NIL;
						T277_ = genDestroy__injectdestructors_6516(c, tmpX60gensym616_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym511_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym511_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						T278_ = (*tryScopeX60gensym511_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym511_.parent).final->data[T278_]), T277_);
						cpyX60gensym616_ = moveOrCopy__injectdestructors_110(tmpX60gensym616_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym511_), NIM_TRUE);
					}
					goto LA272_;
					LA275_: ;
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T280_;
						nimZeroMem((void*)T280_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T280_[0] = tmpX60gensym616_;
						T280_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym511_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						cpyX60gensym616_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T280_, 2);
					}
					LA272_: ;
					{
						NI T283_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym616_;
						T283_ = (tryScopeX60gensym511_.vars ? tryScopeX60gensym511_.vars->Sup.len : 0);
						if (!(((NI) 0) < T283_)) goto LA284_;
						varSectionX60gensym616_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym616__2;
							NI i_12;
							NI L_7;
							NI T287_;
							tmpX60gensym616__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
							i_12 = ((NI) 0);
							T287_ = (tryScopeX60gensym511_.vars ? tryScopeX60gensym511_.vars->Sup.len : 0);
							L_7 = T287_;
							{
								while (1) {
									tyArray__id9c0PBojP5C2oM2bRQSViA T290_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T291_;
									if (!(i_12 < L_7)) goto LA289;
									tmpX60gensym616__2 = &tryScopeX60gensym511_.vars->data[i_12];
									nimZeroMem((void*)T290_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
									T290_[0] = newSymNode__ast_3704((*tmpX60gensym616__2));
									T290_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T290_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T291_ = NIM_NIL;
									T291_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T290_, 3);
									add__ast_4798(varSectionX60gensym616_, T291_);
									i_12 += ((NI) 1);
								} LA289: ;
							}
						}
						add__ast_4798(resultX60gensym616_, varSectionX60gensym616_);
					}
					LA284_: ;
					finSectionX60gensym616_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym616_;
						NI i_13;
						NI L_8;
						NI T293_;
						mX60gensym616_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
						i_13 = ((NI) 0);
						T293_ = (tryScopeX60gensym511_.wasMoved ? tryScopeX60gensym511_.wasMoved->Sup.len : 0);
						L_8 = T293_;
						{
							while (1) {
								if (!(i_13 < L_8)) goto LA295;
								mX60gensym616_ = &tryScopeX60gensym511_.wasMoved->data[i_13];
								add__ast_4798(finSectionX60gensym616_, (*mX60gensym616_));
								i_13 += ((NI) 1);
							} LA295: ;
						}
					}
					{
						NI iX60gensym616_;
						NI colontmp__9;
						NI T297_;
						NI res_4;
						iX60gensym616_ = (NI)0;
						colontmp__9 = (NI)0;
						T297_ = ((tryScopeX60gensym511_.final ? tryScopeX60gensym511_.final->Sup.len : 0)-1);
						colontmp__9 = T297_;
						res_4 = colontmp__9;
						{
							while (1) {
								if (!(((NI) 0) <= res_4)) goto LA299;
								iX60gensym616_ = res_4;
								add__ast_4798(finSectionX60gensym616_, tryScopeX60gensym511_.final->data[iX60gensym616_]);
								res_4 -= ((NI) 1);
							} LA299: ;
						}
					}
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T304_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T311_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T312_;
						if (!tryScopeX60gensym511_.needsTry) goto LA302_;
						nimZeroMem((void*)T304_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T304_[0] = cpyX60gensym616_;
						{
							NIM_BOOL T307_;
							T307_ = (NIM_BOOL)0;
							T307_ = isEmptyType__ast_4780((*tmpX60gensym616_).typ);
							if (!T307_) goto LA308_;
							T304_[1] = p__injectdestructors_105(tmpX60gensym616_, c, tryScopeX60gensym511_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						}
						goto LA305_;
						LA308_: ;
						{
							T304_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym616_, c, tryScopeX60gensym511_.parent, isDecl);
						}
						LA305_: ;
						T311_ = NIM_NIL;
						T311_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T304_, 2);
						T312_ = NIM_NIL;
						T312_ = newTryFinally__lowerings_207(T311_, finSectionX60gensym616_);
						add__ast_4798(resultX60gensym616_, T312_);
					}
					goto LA300_;
					LA302_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T314_;
						add__ast_4798(resultX60gensym616_, cpyX60gensym616_);
						add__ast_4798(resultX60gensym616_, finSectionX60gensym616_);
						T314_ = NIM_NIL;
						{
							NIM_BOOL T317_;
							T317_ = (NIM_BOOL)0;
							T317_ = isEmptyType__ast_4780((*tmpX60gensym616_).typ);
							if (!T317_) goto LA318_;
							T314_ = p__injectdestructors_105(tmpX60gensym616_, c, tryScopeX60gensym511_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						}
						goto LA315_;
						LA318_: ;
						{
							T314_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym616_, c, tryScopeX60gensym511_.parent, isDecl);
						}
						LA315_: ;
						add__ast_4798(resultX60gensym616_, T314_);
					}
					LA300_: ;
					{
						NIM_BOOL T325_;
						if (!!((tryScopeX60gensym511_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA323_;
						T325_ = (NIM_BOOL)0;
						T325_ = (*tryScopeX60gensym511_.parent).needsTry;
						if (T325_) goto LA326_;
						T325_ = tryScopeX60gensym511_.needsTry;
						LA326_: ;
						(*tryScopeX60gensym511_.parent).needsTry = T325_;
					}
					LA323_: ;
					T257_ = resultX60gensym616_;
				}
				LA258_: ;
				add__ast_4798(result, T257_);
				{
					NI iX60gensym511__5;
					NI colontmp__10;
					NI i_14;
					iX60gensym511__5 = (NI)0;
					colontmp__10 = (NI)0;
					colontmp__10 = len__ast_3155(ri);
					i_14 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym511__3;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym511__3;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym511__2;
							NI T330_;
							if (!(i_14 < colontmp__10)) goto LA329;
							iX60gensym511__5 = i_14;
							itX60gensym511__3 = (*ri)._kind_6.sons->data[iX60gensym511__5];
							branchX60gensym511__3 = copyTree__ast_4432(itX60gensym511__3);
							nimZeroMem((void*)(&branchScopeX60gensym511__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym511__2));
							T330_ = (NI)0;
							T330_ = len__ast_3155(branchX60gensym511__3);
							{
								NIM_BOOL T333_;
								NIM_BOOL T334_;
								NI T335_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T340_;
								T333_ = (NIM_BOOL)0;
								T334_ = (NIM_BOOL)0;
								T335_ = (NI)0;
								T335_ = len__ast_3155(itX60gensym511__3);
								T334_ = isEmptyType__ast_4780((*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T335_ - ((NI) 1))]).typ);
								if (T334_) goto LA336_;
								T334_ = NIM_TRUE;
								LA336_: ;
								T333_ = T334_;
								if (T333_) goto LA337_;
								T333_ = ((*itX60gensym511__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107));
								LA337_: ;
								if (!T333_) goto LA338_;
								T340_ = NIM_NIL;
								{
									NI T345_;
									if (!((*itX60gensym511__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA343_;
									T345_ = (NI)0;
									T345_ = len__ast_3155(itX60gensym511__3);
									T340_ = p__injectdestructors_105((*itX60gensym511__3)._kind_6.sons->data[(NI)(T345_ - ((NI) 1))], c, (&branchScopeX60gensym511__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA341_;
								LA343_: ;
								{
									{
										NI T349_;
										NIM_BOOL T350_;
										NI T353_;
										T349_ = (NI)0;
										T349_ = len__ast_3155(itX60gensym511__3);
										T350_ = (NIM_BOOL)0;
										T350_ = isEmptyType__ast_4780((*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T349_ - ((NI) 1))]).typ);
										if (!T350_) goto LA351_;
										T353_ = (NI)0;
										T353_ = len__ast_3155(itX60gensym511__3);
										T340_ = p__injectdestructors_105((*itX60gensym511__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))], c, (&branchScopeX60gensym511__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									}
									goto LA347_;
									LA351_: ;
									{
										NI T355_;
										T355_ = (NI)0;
										T355_ = len__ast_3155(itX60gensym511__3);
										T340_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym511__3)._kind_6.sons->data[(NI)(T355_ - ((NI) 1))], c, (&branchScopeX60gensym511__2), isDecl);
									}
									LA347_: ;
								}
								LA341_: ;
								asgnRef((void**) (&(*branchX60gensym511__3)._kind_6.sons->data[(NI)(T330_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym511__2), T340_));
							}
							goto LA331_;
							LA338_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym647_;
								NI T357_;
								NI T358_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym647_;
								NI T359_;
								NI T360_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym647_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym647_;
								NI T387_;
								T357_ = (NI)0;
								T357_ = len__ast_3155(itX60gensym511__3);
								T358_ = (NI)0;
								T358_ = len__ast_3155(itX60gensym511__3);
								resultX60gensym647_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T357_ - ((NI) 1))]).info, (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T358_ - ((NI) 1))]).typ);
								T359_ = (NI)0;
								T359_ = len__ast_3155(itX60gensym511__3);
								T360_ = (NI)0;
								T360_ = len__ast_3155(itX60gensym511__3);
								tmpX60gensym647_ = getTemp__injectdestructors_61(c, branchScopeX60gensym511__2.parent, (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T359_ - ((NI) 1))]).typ, (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T360_ - ((NI) 1))]).info);
								(*(*tmpX60gensym647_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T363_;
									NIM_BOOL T364_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T367_;
									NI T368_;
									NI T369_;
									T363_ = (NI)0;
									T363_ = len__ast_3155(itX60gensym511__3);
									T364_ = (NIM_BOOL)0;
									T364_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))]).typ);
									if (!T364_) goto LA365_;
									T367_ = NIM_NIL;
									T367_ = genDestroy__injectdestructors_6516(c, tmpX60gensym647_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym511__2.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym511__2.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T368_ = (*branchScopeX60gensym511__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym511__2.parent).final->data[T368_]), T367_);
									T369_ = (NI)0;
									T369_ = len__ast_3155(itX60gensym511__3);
									cpyX60gensym647_ = moveOrCopy__injectdestructors_110(tmpX60gensym647_, (*itX60gensym511__3)._kind_6.sons->data[(NI)(T369_ - ((NI) 1))], c, (&branchScopeX60gensym511__2), NIM_TRUE);
								}
								goto LA361_;
								LA365_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T371_;
									NI T372_;
									nimZeroMem((void*)T371_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T371_[0] = tmpX60gensym647_;
									T372_ = (NI)0;
									T372_ = len__ast_3155(itX60gensym511__3);
									T371_[1] = p__injectdestructors_105((*itX60gensym511__3)._kind_6.sons->data[(NI)(T372_ - ((NI) 1))], c, (&branchScopeX60gensym511__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym647_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T371_, 2);
								}
								LA361_: ;
								{
									NI T375_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym647_;
									NI T378_;
									T375_ = (branchScopeX60gensym511__2.vars ? branchScopeX60gensym511__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T375_)) goto LA376_;
									T378_ = (NI)0;
									T378_ = len__ast_3155(itX60gensym511__3);
									varSectionX60gensym647_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym647__2;
										NI i_15;
										NI L_9;
										NI T380_;
										tmpX60gensym647__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_15 = ((NI) 0);
										T380_ = (branchScopeX60gensym511__2.vars ? branchScopeX60gensym511__2.vars->Sup.len : 0);
										L_9 = T380_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T383_;
												NI T384_;
												NI T385_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T386_;
												if (!(i_15 < L_9)) goto LA382;
												tmpX60gensym647__2 = &branchScopeX60gensym511__2.vars->data[i_15];
												nimZeroMem((void*)T383_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T383_[0] = newSymNode__ast_3704((*tmpX60gensym647__2));
												T384_ = (NI)0;
												T384_ = len__ast_3155(itX60gensym511__3);
												T383_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T384_ - ((NI) 1))]).info);
												T385_ = (NI)0;
												T385_ = len__ast_3155(itX60gensym511__3);
												T383_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T385_ - ((NI) 1))]).info);
												T386_ = NIM_NIL;
												T386_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T383_, 3);
												add__ast_4798(varSectionX60gensym647_, T386_);
												i_15 += ((NI) 1);
											} LA382: ;
										}
									}
									add__ast_4798(resultX60gensym647_, varSectionX60gensym647_);
								}
								LA376_: ;
								T387_ = (NI)0;
								T387_ = len__ast_3155(itX60gensym511__3);
								finSectionX60gensym647_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym511__3)._kind_6.sons->data[(NI)(T387_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym647_;
									NI i_16;
									NI L_10;
									NI T389_;
									mX60gensym647_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_16 = ((NI) 0);
									T389_ = (branchScopeX60gensym511__2.wasMoved ? branchScopeX60gensym511__2.wasMoved->Sup.len : 0);
									L_10 = T389_;
									{
										while (1) {
											if (!(i_16 < L_10)) goto LA391;
											mX60gensym647_ = &branchScopeX60gensym511__2.wasMoved->data[i_16];
											add__ast_4798(finSectionX60gensym647_, (*mX60gensym647_));
											i_16 += ((NI) 1);
										} LA391: ;
									}
								}
								{
									NI iX60gensym647_;
									NI colontmp__11;
									NI T393_;
									NI res_5;
									iX60gensym647_ = (NI)0;
									colontmp__11 = (NI)0;
									T393_ = ((branchScopeX60gensym511__2.final ? branchScopeX60gensym511__2.final->Sup.len : 0)-1);
									colontmp__11 = T393_;
									res_5 = colontmp__11;
									{
										while (1) {
											if (!(((NI) 0) <= res_5)) goto LA395;
											iX60gensym647_ = res_5;
											add__ast_4798(finSectionX60gensym647_, branchScopeX60gensym511__2.final->data[iX60gensym647_]);
											res_5 -= ((NI) 1);
										} LA395: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T400_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T401_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T402_;
									if (!branchScopeX60gensym511__2.needsTry) goto LA398_;
									nimZeroMem((void*)T400_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T400_[0] = cpyX60gensym647_;
									T400_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym647_, c, branchScopeX60gensym511__2.parent, isDecl);
									T401_ = NIM_NIL;
									T401_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T400_, 2);
									T402_ = NIM_NIL;
									T402_ = newTryFinally__lowerings_207(T401_, finSectionX60gensym647_);
									add__ast_4798(resultX60gensym647_, T402_);
								}
								goto LA396_;
								LA398_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T404_;
									add__ast_4798(resultX60gensym647_, cpyX60gensym647_);
									add__ast_4798(resultX60gensym647_, finSectionX60gensym647_);
									T404_ = NIM_NIL;
									T404_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym647_, c, branchScopeX60gensym511__2.parent, isDecl);
									add__ast_4798(resultX60gensym647_, T404_);
								}
								LA396_: ;
								{
									NIM_BOOL T409_;
									if (!!((branchScopeX60gensym511__2.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA407_;
									T409_ = (NIM_BOOL)0;
									T409_ = (*branchScopeX60gensym511__2.parent).needsTry;
									if (T409_) goto LA410_;
									T409_ = branchScopeX60gensym511__2.needsTry;
									LA410_: ;
									(*branchScopeX60gensym511__2.parent).needsTry = T409_;
								}
								LA407_: ;
								asgnRef((void**) (&(*branchX60gensym511__3)._kind_6.sons->data[(NI)(T330_ - ((NI) 1))]), resultX60gensym647_);
							}
							LA331_: ;
							add__ast_4798(result, branchX60gensym511__3);
							i_14 += ((NI) 1);
						} LA329: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
			{
				result = copyTree__ast_4432(ri);
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__injectdestructors_110(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
			}
			break;
			default:
			{
			}
			break;
			}
		}
		break;
		default:
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T414_;
			nimZeroMem((void*)T414_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T414_[0] = dest;
			T414_[1] = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T414_, 2);
		}
		break;
		}
	}
	goto LA1_;
	LA8_: ;
	{
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T417_;
			T417_ = NIM_NIL;
			T417_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
			result = genSink__injectdestructors_6553(c, dest, T417_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
		{
			{
				NIM_BOOL T421_;
				NIM_BOOL T422_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T427_;
				T421_ = (NIM_BOOL)0;
				T422_ = (NIM_BOOL)0;
				T422_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T422_)) goto LA423_;
				T422_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5));
				LA423_: ;
				T421_ = T422_;
				if (!(T421_)) goto LA424_;
				T421_ = ((*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
				LA424_: ;
				if (!T421_) goto LA425_;
				T427_ = NIM_NIL;
				T427_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				result = genSink__injectdestructors_6553(c, dest, T427_, isDecl);
			}
			goto LA419_;
			LA425_: ;
			{
				NIM_BOOL T429_;
				T429_ = (NIM_BOOL)0;
				T429_ = isAnalysableFieldAccess__dfa_911(ri, (*c).owner);
				if (!(T429_)) goto LA430_;
				T429_ = isLastRead__injectdestructors_6092(ri, c);
				LA430_: ;
				if (!T429_) goto LA431_;
				{
					tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w T435_;
					T435_ = (tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w)0;
					T435_ = aliases__dfa_808(dest, ri);
					if (!(T435_ == ((tyEnum_AliasKind__vyyqF5f609aD8pvRKZixr4w) 1))) goto LA436_;
					{
						NIM_BOOL T440_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* snk;
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T443_;
						T440_ = (NIM_BOOL)0;
						T440_ = isAtom__ast_4769((*ri)._kind_6.sons->data[((NI) 1)]);
						if (!T440_) goto LA441_;
						snk = genSink__injectdestructors_6553(c, dest, ri, isDecl);
						nimZeroMem((void*)T443_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T443_[0] = snk;
						T443_[1] = genWasMoved__injectdestructors_6728(c, ri);
						result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T443_, 2);
					}
					goto LA438_;
					LA441_: ;
					{
						result = genFieldAccessSideEffects__injectdestructors_8471(c, dest, ri, isDecl);
					}
					LA438_: ;
				}
				goto LA433_;
				LA436_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T446_;
					T446_ = NIM_NIL;
					T446_ = destructiveMoveVar__injectdestructors_6749(ri, c, s);
					result = genSink__injectdestructors_6553(c, dest, T446_, isDecl);
				}
				LA433_: ;
			}
			goto LA419_;
			LA431_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T448_;
				result = genCopy__injectdestructors_6636(c, dest, ri);
				T448_ = NIM_NIL;
				T448_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				add__ast_4798(result, T448_);
				finishCopy__injectdestructors_6587(c, result, dest, NIM_FALSE);
			}
			LA419_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
		{
			{
				NIM_BOOL T452_;
				NI T453_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T457_;
				T452_ = (NIM_BOOL)0;
				T453_ = (NI)0;
				T453_ = len__ast_3155(ri);
				T452_ = (((NI) 0) < T453_);
				if (!(T452_)) goto LA454_;
				T452_ = isDangerousSeq__injectdestructors_6836((*ri).typ);
				LA454_: ;
				if (!T452_) goto LA455_;
				result = genCopy__injectdestructors_6636(c, dest, ri);
				T457_ = NIM_NIL;
				T457_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				add__ast_4798(result, T457_);
				finishCopy__injectdestructors_6587(c, result, dest, NIM_FALSE);
			}
			goto LA450_;
			LA455_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T459_;
				T459_ = NIM_NIL;
				T459_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				result = genSink__injectdestructors_6553(c, dest, T459_, isDecl);
			}
			LA450_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T461_;
			T461_ = NIM_NIL;
			T461_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
			result = genSink__injectdestructors_6553(c, dest, T461_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
		{
			{
				NIM_BOOL T465_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* snk_2;
				tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T469_;
				T465_ = (NIM_BOOL)0;
				T465_ = isSinkParam__ast_5042((*ri)._kind_4.sym);
				if (!(T465_)) goto LA466_;
				T465_ = isLastRead__injectdestructors_6092(ri, c);
				LA466_: ;
				if (!T465_) goto LA467_;
				snk_2 = genSink__injectdestructors_6553(c, dest, ri, isDecl);
				nimZeroMem((void*)T469_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
				T469_[0] = snk_2;
				T469_[1] = genWasMoved__injectdestructors_6728(c, ri);
				result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T469_, 2);
			}
			goto LA463_;
			LA467_: ;
			{
				NIM_BOOL T471_;
				NIM_BOOL T472_;
				NIM_BOOL T473_;
				NIM_BOOL T474_;
				NIM_BOOL T479_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* snk_3;
				tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T482_;
				T471_ = (NIM_BOOL)0;
				T472_ = (NIM_BOOL)0;
				T473_ = (NIM_BOOL)0;
				T474_ = (NIM_BOOL)0;
				T474_ = !(((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 3)));
				if (!(T474_)) goto LA475_;
				T474_ = ((*(*ri)._kind_4.sym).owner == (*c).owner);
				LA475_: ;
				T473_ = T474_;
				if (!(T473_)) goto LA476_;
				T473_ = isLastRead__injectdestructors_6092(ri, c);
				LA476_: ;
				T472_ = T473_;
				if (!(T472_)) goto LA477_;
				T472_ = canBeMoved__injectdestructors_6521((&(*c)), (*dest).typ);
				LA477_: ;
				T471_ = T472_;
				if (!(T471_)) goto LA478_;
				T479_ = (NIM_BOOL)0;
				T479_ = isCursor__injectdestructors_6358(ri);
				T471_ = !(T479_);
				LA478_: ;
				if (!T471_) goto LA480_;
				snk_3 = genSink__injectdestructors_6553(c, dest, ri, isDecl);
				nimZeroMem((void*)T482_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
				T482_[0] = snk_3;
				T482_[1] = genWasMoved__injectdestructors_6728(c, ri);
				result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T482_, 2);
			}
			goto LA463_;
			LA480_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T484_;
				result = genCopy__injectdestructors_6636(c, dest, ri);
				T484_ = NIM_NIL;
				T484_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				add__ast_4798(result, T484_);
				finishCopy__injectdestructors_6587(c, result, dest, NIM_FALSE);
			}
			LA463_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T486_;
			T486_ = NIM_NIL;
			T486_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2));
			result = genSink__injectdestructors_6553(c, dest, T486_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T499_;
				{
					NI T491_;
					T491_ = (NI)0;
					T491_ = len__ast_3155(ri);
					if (!(T491_ == ((NI) 0))) goto LA492_;
					result = ri;
					goto BeforeRet_;
				}
				LA492_: ;
				result = copyNode__ast_4324(ri);
				{
					NI iX60gensym668_;
					NI colontmp__12;
					NI T495_;
					NI i_17;
					iX60gensym668_ = (NI)0;
					colontmp__12 = (NI)0;
					T495_ = (NI)0;
					T495_ = len__ast_3155(ri);
					colontmp__12 = (NI)(T495_ - ((NI) 1));
					i_17 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T498_;
							if (!(i_17 < colontmp__12)) goto LA497;
							iX60gensym668_ = i_17;
							T498_ = NIM_NIL;
							T498_ = p__injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym668_], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
							add__ast_4798(result, T498_);
							i_17 += ((NI) 1);
						} LA497: ;
					}
				}
				T499_ = NIM_NIL;
				{
					NI T502_;
					NIM_BOOL T503_;
					NI T506_;
					T502_ = (NI)0;
					T502_ = len__ast_3155(ri);
					T503_ = (NIM_BOOL)0;
					T503_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[(NI)(T502_ - ((NI) 1))]).typ);
					if (!T503_) goto LA504_;
					T506_ = (NI)0;
					T506_ = len__ast_3155(ri);
					T499_ = p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T506_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				}
				goto LA500_;
				LA504_: ;
				{
					NI T508_;
					T508_ = (NI)0;
					T508_ = len__ast_3155(ri);
					T499_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T508_ - ((NI) 1))], c, s, isDecl);
				}
				LA500_: ;
				add__ast_4798(result, T499_);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T510_;
				result = copyNode__ast_4324(ri);
				T510_ = NIM_NIL;
				T510_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				add__ast_4798(result, T510_);
				{
					NI iX60gensym668__2;
					NI colontmp__13;
					NI i_18;
					iX60gensym668__2 = (NI)0;
					colontmp__13 = (NI)0;
					colontmp__13 = len__ast_3155(ri);
					i_18 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym668_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym668_;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg ofScopeX60gensym668_;
							NI T518_;
							if (!(i_18 < colontmp__13)) goto LA513;
							iX60gensym668__2 = i_18;
							itX60gensym668_ = (*ri)._kind_6.sons->data[iX60gensym668__2];
							branchX60gensym668_ = shallowCopy__ast_4414(itX60gensym668_);
							{
								NI jX60gensym668_;
								NI colontmp__14;
								NI T515_;
								NI i_19;
								jX60gensym668_ = (NI)0;
								colontmp__14 = (NI)0;
								T515_ = (NI)0;
								T515_ = len__ast_3155(itX60gensym668_);
								colontmp__14 = (NI)(T515_ - ((NI) 1));
								i_19 = ((NI) 0);
								{
									while (1) {
										if (!(i_19 < colontmp__14)) goto LA517;
										jX60gensym668_ = i_19;
										asgnRef((void**) (&(*branchX60gensym668_)._kind_6.sons->data[jX60gensym668_]), copyTree__ast_4432((*itX60gensym668_)._kind_6.sons->data[jX60gensym668_]));
										i_19 += ((NI) 1);
									} LA517: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym668_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&ofScopeX60gensym668_));
							T518_ = (NI)0;
							T518_ = len__ast_3155(branchX60gensym668_);
							{
								NIM_BOOL T521_;
								NI T522_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T526_;
								T521_ = (NIM_BOOL)0;
								T522_ = (NI)0;
								T522_ = len__ast_3155(itX60gensym668_);
								T521_ = isEmptyType__ast_4780((*(*itX60gensym668_)._kind_6.sons->data[(NI)(T522_ - ((NI) 1))]).typ);
								if (T521_) goto LA523_;
								T521_ = NIM_TRUE;
								LA523_: ;
								if (!T521_) goto LA524_;
								T526_ = NIM_NIL;
								{
									NI T529_;
									NIM_BOOL T530_;
									NI T533_;
									T529_ = (NI)0;
									T529_ = len__ast_3155(itX60gensym668_);
									T530_ = (NIM_BOOL)0;
									T530_ = isEmptyType__ast_4780((*(*itX60gensym668_)._kind_6.sons->data[(NI)(T529_ - ((NI) 1))]).typ);
									if (!T530_) goto LA531_;
									T533_ = (NI)0;
									T533_ = len__ast_3155(itX60gensym668_);
									T526_ = p__injectdestructors_105((*itX60gensym668_)._kind_6.sons->data[(NI)(T533_ - ((NI) 1))], c, (&ofScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA527_;
								LA531_: ;
								{
									NI T535_;
									T535_ = (NI)0;
									T535_ = len__ast_3155(itX60gensym668_);
									T526_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym668_)._kind_6.sons->data[(NI)(T535_ - ((NI) 1))], c, (&ofScopeX60gensym668_), isDecl);
								}
								LA527_: ;
								asgnRef((void**) (&(*branchX60gensym668_)._kind_6.sons->data[(NI)(T518_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&ofScopeX60gensym668_), T526_));
							}
							goto LA519_;
							LA524_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym706_;
								NI T537_;
								NI T538_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym706_;
								NI T539_;
								NI T540_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym706_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym706_;
								NI T567_;
								T537_ = (NI)0;
								T537_ = len__ast_3155(itX60gensym668_);
								T538_ = (NI)0;
								T538_ = len__ast_3155(itX60gensym668_);
								resultX60gensym706_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T537_ - ((NI) 1))]).info, (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T538_ - ((NI) 1))]).typ);
								T539_ = (NI)0;
								T539_ = len__ast_3155(itX60gensym668_);
								T540_ = (NI)0;
								T540_ = len__ast_3155(itX60gensym668_);
								tmpX60gensym706_ = getTemp__injectdestructors_61(c, ofScopeX60gensym668_.parent, (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T539_ - ((NI) 1))]).typ, (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T540_ - ((NI) 1))]).info);
								(*(*tmpX60gensym706_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T543_;
									NIM_BOOL T544_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T547_;
									NI T548_;
									NI T549_;
									T543_ = (NI)0;
									T543_ = len__ast_3155(itX60gensym668_);
									T544_ = (NIM_BOOL)0;
									T544_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T543_ - ((NI) 1))]).typ);
									if (!T544_) goto LA545_;
									T547_ = NIM_NIL;
									T547_ = genDestroy__injectdestructors_6516(c, tmpX60gensym706_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym668_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym668_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T548_ = (*ofScopeX60gensym668_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym668_.parent).final->data[T548_]), T547_);
									T549_ = (NI)0;
									T549_ = len__ast_3155(itX60gensym668_);
									cpyX60gensym706_ = moveOrCopy__injectdestructors_110(tmpX60gensym706_, (*itX60gensym668_)._kind_6.sons->data[(NI)(T549_ - ((NI) 1))], c, (&ofScopeX60gensym668_), NIM_TRUE);
								}
								goto LA541_;
								LA545_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T551_;
									NI T552_;
									nimZeroMem((void*)T551_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T551_[0] = tmpX60gensym706_;
									T552_ = (NI)0;
									T552_ = len__ast_3155(itX60gensym668_);
									T551_[1] = p__injectdestructors_105((*itX60gensym668_)._kind_6.sons->data[(NI)(T552_ - ((NI) 1))], c, (&ofScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym706_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T551_, 2);
								}
								LA541_: ;
								{
									NI T555_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym706_;
									NI T558_;
									T555_ = (ofScopeX60gensym668_.vars ? ofScopeX60gensym668_.vars->Sup.len : 0);
									if (!(((NI) 0) < T555_)) goto LA556_;
									T558_ = (NI)0;
									T558_ = len__ast_3155(itX60gensym668_);
									varSectionX60gensym706_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T558_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym706__2;
										NI i_20;
										NI L_11;
										NI T560_;
										tmpX60gensym706__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_20 = ((NI) 0);
										T560_ = (ofScopeX60gensym668_.vars ? ofScopeX60gensym668_.vars->Sup.len : 0);
										L_11 = T560_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T563_;
												NI T564_;
												NI T565_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T566_;
												if (!(i_20 < L_11)) goto LA562;
												tmpX60gensym706__2 = &ofScopeX60gensym668_.vars->data[i_20];
												nimZeroMem((void*)T563_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T563_[0] = newSymNode__ast_3704((*tmpX60gensym706__2));
												T564_ = (NI)0;
												T564_ = len__ast_3155(itX60gensym668_);
												T563_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T564_ - ((NI) 1))]).info);
												T565_ = (NI)0;
												T565_ = len__ast_3155(itX60gensym668_);
												T563_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T565_ - ((NI) 1))]).info);
												T566_ = NIM_NIL;
												T566_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T563_, 3);
												add__ast_4798(varSectionX60gensym706_, T566_);
												i_20 += ((NI) 1);
											} LA562: ;
										}
									}
									add__ast_4798(resultX60gensym706_, varSectionX60gensym706_);
								}
								LA556_: ;
								T567_ = (NI)0;
								T567_ = len__ast_3155(itX60gensym668_);
								finSectionX60gensym706_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym668_)._kind_6.sons->data[(NI)(T567_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym706_;
									NI i_21;
									NI L_12;
									NI T569_;
									mX60gensym706_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_21 = ((NI) 0);
									T569_ = (ofScopeX60gensym668_.wasMoved ? ofScopeX60gensym668_.wasMoved->Sup.len : 0);
									L_12 = T569_;
									{
										while (1) {
											if (!(i_21 < L_12)) goto LA571;
											mX60gensym706_ = &ofScopeX60gensym668_.wasMoved->data[i_21];
											add__ast_4798(finSectionX60gensym706_, (*mX60gensym706_));
											i_21 += ((NI) 1);
										} LA571: ;
									}
								}
								{
									NI iX60gensym706_;
									NI colontmp__15;
									NI T573_;
									NI res_6;
									iX60gensym706_ = (NI)0;
									colontmp__15 = (NI)0;
									T573_ = ((ofScopeX60gensym668_.final ? ofScopeX60gensym668_.final->Sup.len : 0)-1);
									colontmp__15 = T573_;
									res_6 = colontmp__15;
									{
										while (1) {
											if (!(((NI) 0) <= res_6)) goto LA575;
											iX60gensym706_ = res_6;
											add__ast_4798(finSectionX60gensym706_, ofScopeX60gensym668_.final->data[iX60gensym706_]);
											res_6 -= ((NI) 1);
										} LA575: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T580_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T581_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T582_;
									if (!ofScopeX60gensym668_.needsTry) goto LA578_;
									nimZeroMem((void*)T580_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T580_[0] = cpyX60gensym706_;
									T580_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym706_, c, ofScopeX60gensym668_.parent, isDecl);
									T581_ = NIM_NIL;
									T581_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T580_, 2);
									T582_ = NIM_NIL;
									T582_ = newTryFinally__lowerings_207(T581_, finSectionX60gensym706_);
									add__ast_4798(resultX60gensym706_, T582_);
								}
								goto LA576_;
								LA578_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T584_;
									add__ast_4798(resultX60gensym706_, cpyX60gensym706_);
									add__ast_4798(resultX60gensym706_, finSectionX60gensym706_);
									T584_ = NIM_NIL;
									T584_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym706_, c, ofScopeX60gensym668_.parent, isDecl);
									add__ast_4798(resultX60gensym706_, T584_);
								}
								LA576_: ;
								{
									NIM_BOOL T589_;
									if (!!((ofScopeX60gensym668_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA587_;
									T589_ = (NIM_BOOL)0;
									T589_ = (*ofScopeX60gensym668_.parent).needsTry;
									if (T589_) goto LA590_;
									T589_ = ofScopeX60gensym668_.needsTry;
									LA590_: ;
									(*ofScopeX60gensym668_.parent).needsTry = T589_;
								}
								LA587_: ;
								asgnRef((void**) (&(*branchX60gensym668_)._kind_6.sons->data[(NI)(T518_ - ((NI) 1))]), resultX60gensym706_);
							}
							LA519_: ;
							add__ast_4798(result, branchX60gensym668_);
							i_18 += ((NI) 1);
						} LA513: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T592_;
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym668_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym668_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T593_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode__ast_4324(ri);
				T592_ = NIM_NIL;
				T592_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				add__ast_4798(result, T592_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym668_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym668_));
				bodyResultX60gensym668_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				T593_ = NIM_NIL;
				T593_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym668_), bodyResultX60gensym668_);
				add__ast_4798(result, T593_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
			{
				NI lastX60gensym668_;
				NI T595_;
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym668__2;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym668__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy__ast_4414(ri);
				T595_ = (NI)0;
				T595_ = len__ast_3155(ri);
				lastX60gensym668_ = (NI)(T595_ - ((NI) 1));
				{
					NI iX60gensym668__3;
					NI colontmp__16;
					NI i_22;
					iX60gensym668__3 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = (NI)(lastX60gensym668_ - ((NI) 1));
					i_22 = ((NI) 0);
					{
						while (1) {
							if (!(i_22 < colontmp__16)) goto LA598;
							iX60gensym668__3 = i_22;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym668__3]), (*ri)._kind_6.sons->data[iX60gensym668__3]);
							i_22 += ((NI) 1);
						} LA598: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym668_ - ((NI) 1))]), p__injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym668_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym668__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym668__2));
				bodyResultX60gensym668__2 = p__injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym668_], c, (&bodyScopeX60gensym668__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym668_]), processScope__injectdestructors_7005(c, (&bodyScopeX60gensym668__2), bodyResultX60gensym668__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
			{
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym668__3;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T600_;
				result = copyNode__ast_4324(ri);
				add__ast_4798(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym668__3), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym668__3));
				T600_ = NIM_NIL;
				{
					NIM_BOOL T603_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T607_;
					T603_ = (NIM_BOOL)0;
					T603_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T603_) goto LA604_;
					T603_ = NIM_TRUE;
					LA604_: ;
					if (!T603_) goto LA605_;
					T607_ = NIM_NIL;
					T607_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym668__3), isDecl);
					T600_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym668__3), T607_);
				}
				goto LA601_;
				LA605_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym728_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym728_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym728_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym728_;
					resultX60gensym728_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					tmpX60gensym728_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym668__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym728_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
					{
						NIM_BOOL T611_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T614_;
						NI T615_;
						T611_ = (NIM_BOOL)0;
						T611_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T611_) goto LA612_;
						T614_ = NIM_NIL;
						T614_ = genDestroy__injectdestructors_6516(c, tmpX60gensym728_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym668__3.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym668__3.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						T615_ = (*bodyScopeX60gensym668__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym668__3.parent).final->data[T615_]), T614_);
						cpyX60gensym728_ = moveOrCopy__injectdestructors_110(tmpX60gensym728_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym668__3), NIM_TRUE);
					}
					goto LA609_;
					LA612_: ;
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T617_;
						nimZeroMem((void*)T617_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T617_[0] = tmpX60gensym728_;
						T617_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym668__3), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						cpyX60gensym728_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T617_, 2);
					}
					LA609_: ;
					{
						NI T620_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym728_;
						T620_ = (bodyScopeX60gensym668__3.vars ? bodyScopeX60gensym668__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T620_)) goto LA621_;
						varSectionX60gensym728_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym728__2;
							NI i_23;
							NI L_13;
							NI T624_;
							tmpX60gensym728__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
							i_23 = ((NI) 0);
							T624_ = (bodyScopeX60gensym668__3.vars ? bodyScopeX60gensym668__3.vars->Sup.len : 0);
							L_13 = T624_;
							{
								while (1) {
									tyArray__id9c0PBojP5C2oM2bRQSViA T627_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T628_;
									if (!(i_23 < L_13)) goto LA626;
									tmpX60gensym728__2 = &bodyScopeX60gensym668__3.vars->data[i_23];
									nimZeroMem((void*)T627_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
									T627_[0] = newSymNode__ast_3704((*tmpX60gensym728__2));
									T627_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T627_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T628_ = NIM_NIL;
									T628_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T627_, 3);
									add__ast_4798(varSectionX60gensym728_, T628_);
									i_23 += ((NI) 1);
								} LA626: ;
							}
						}
						add__ast_4798(resultX60gensym728_, varSectionX60gensym728_);
					}
					LA621_: ;
					finSectionX60gensym728_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym728_;
						NI i_24;
						NI L_14;
						NI T630_;
						mX60gensym728_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
						i_24 = ((NI) 0);
						T630_ = (bodyScopeX60gensym668__3.wasMoved ? bodyScopeX60gensym668__3.wasMoved->Sup.len : 0);
						L_14 = T630_;
						{
							while (1) {
								if (!(i_24 < L_14)) goto LA632;
								mX60gensym728_ = &bodyScopeX60gensym668__3.wasMoved->data[i_24];
								add__ast_4798(finSectionX60gensym728_, (*mX60gensym728_));
								i_24 += ((NI) 1);
							} LA632: ;
						}
					}
					{
						NI iX60gensym728_;
						NI colontmp__17;
						NI T634_;
						NI res_7;
						iX60gensym728_ = (NI)0;
						colontmp__17 = (NI)0;
						T634_ = ((bodyScopeX60gensym668__3.final ? bodyScopeX60gensym668__3.final->Sup.len : 0)-1);
						colontmp__17 = T634_;
						res_7 = colontmp__17;
						{
							while (1) {
								if (!(((NI) 0) <= res_7)) goto LA636;
								iX60gensym728_ = res_7;
								add__ast_4798(finSectionX60gensym728_, bodyScopeX60gensym668__3.final->data[iX60gensym728_]);
								res_7 -= ((NI) 1);
							} LA636: ;
						}
					}
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T641_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T642_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T643_;
						if (!bodyScopeX60gensym668__3.needsTry) goto LA639_;
						nimZeroMem((void*)T641_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T641_[0] = cpyX60gensym728_;
						T641_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym728_, c, bodyScopeX60gensym668__3.parent, isDecl);
						T642_ = NIM_NIL;
						T642_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T641_, 2);
						T643_ = NIM_NIL;
						T643_ = newTryFinally__lowerings_207(T642_, finSectionX60gensym728_);
						add__ast_4798(resultX60gensym728_, T643_);
					}
					goto LA637_;
					LA639_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T645_;
						add__ast_4798(resultX60gensym728_, cpyX60gensym728_);
						add__ast_4798(resultX60gensym728_, finSectionX60gensym728_);
						T645_ = NIM_NIL;
						T645_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym728_, c, bodyScopeX60gensym668__3.parent, isDecl);
						add__ast_4798(resultX60gensym728_, T645_);
					}
					LA637_: ;
					{
						NIM_BOOL T650_;
						if (!!((bodyScopeX60gensym668__3.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA648_;
						T650_ = (NIM_BOOL)0;
						T650_ = (*bodyScopeX60gensym668__3.parent).needsTry;
						if (T650_) goto LA651_;
						T650_ = bodyScopeX60gensym668__3.needsTry;
						LA651_: ;
						(*bodyScopeX60gensym668__3.parent).needsTry = T650_;
					}
					LA648_: ;
					T600_ = resultX60gensym728_;
				}
				LA601_: ;
				add__ast_4798(result, T600_);
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
			{
				result = copyNode__ast_4324(ri);
				{
					NI iX60gensym668__4;
					NI colontmp__18;
					NI i_25;
					iX60gensym668__4 = (NI)0;
					colontmp__18 = (NI)0;
					colontmp__18 = len__ast_3155(ri);
					i_25 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym668__2;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym668__2;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym668_;
							NI T660_;
							if (!(i_25 < colontmp__18)) goto LA655;
							iX60gensym668__4 = i_25;
							itX60gensym668__2 = (*ri)._kind_6.sons->data[iX60gensym668__4];
							branchX60gensym668__2 = shallowCopy__ast_4414(itX60gensym668__2);
							nimZeroMem((void*)(&branchScopeX60gensym668_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym668_));
							{
								if (!((*itX60gensym668__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86) || (*itX60gensym668__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49))) goto LA658_;
								asgnRef((void**) (&(*branchX60gensym668__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym668__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
							}
							LA658_: ;
							T660_ = (NI)0;
							T660_ = len__ast_3155(branchX60gensym668__2);
							{
								NIM_BOOL T663_;
								NI T664_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T668_;
								T663_ = (NIM_BOOL)0;
								T664_ = (NI)0;
								T664_ = len__ast_3155(itX60gensym668__2);
								T663_ = isEmptyType__ast_4780((*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T664_ - ((NI) 1))]).typ);
								if (T663_) goto LA665_;
								T663_ = NIM_TRUE;
								LA665_: ;
								if (!T663_) goto LA666_;
								T668_ = NIM_NIL;
								{
									NI T671_;
									NIM_BOOL T672_;
									NI T675_;
									T671_ = (NI)0;
									T671_ = len__ast_3155(itX60gensym668__2);
									T672_ = (NIM_BOOL)0;
									T672_ = isEmptyType__ast_4780((*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T671_ - ((NI) 1))]).typ);
									if (!T672_) goto LA673_;
									T675_ = (NI)0;
									T675_ = len__ast_3155(itX60gensym668__2);
									T668_ = p__injectdestructors_105((*itX60gensym668__2)._kind_6.sons->data[(NI)(T675_ - ((NI) 1))], c, (&branchScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA669_;
								LA673_: ;
								{
									NI T677_;
									T677_ = (NI)0;
									T677_ = len__ast_3155(itX60gensym668__2);
									T668_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym668__2)._kind_6.sons->data[(NI)(T677_ - ((NI) 1))], c, (&branchScopeX60gensym668_), isDecl);
								}
								LA669_: ;
								asgnRef((void**) (&(*branchX60gensym668__2)._kind_6.sons->data[(NI)(T660_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym668_), T668_));
							}
							goto LA661_;
							LA666_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym757_;
								NI T679_;
								NI T680_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym757_;
								NI T681_;
								NI T682_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym757_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym757_;
								NI T709_;
								T679_ = (NI)0;
								T679_ = len__ast_3155(itX60gensym668__2);
								T680_ = (NI)0;
								T680_ = len__ast_3155(itX60gensym668__2);
								resultX60gensym757_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T679_ - ((NI) 1))]).info, (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T680_ - ((NI) 1))]).typ);
								T681_ = (NI)0;
								T681_ = len__ast_3155(itX60gensym668__2);
								T682_ = (NI)0;
								T682_ = len__ast_3155(itX60gensym668__2);
								tmpX60gensym757_ = getTemp__injectdestructors_61(c, branchScopeX60gensym668_.parent, (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T681_ - ((NI) 1))]).typ, (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T682_ - ((NI) 1))]).info);
								(*(*tmpX60gensym757_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T685_;
									NIM_BOOL T686_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T689_;
									NI T690_;
									NI T691_;
									T685_ = (NI)0;
									T685_ = len__ast_3155(itX60gensym668__2);
									T686_ = (NIM_BOOL)0;
									T686_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T685_ - ((NI) 1))]).typ);
									if (!T686_) goto LA687_;
									T689_ = NIM_NIL;
									T689_ = genDestroy__injectdestructors_6516(c, tmpX60gensym757_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym668_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym668_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T690_ = (*branchScopeX60gensym668_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym668_.parent).final->data[T690_]), T689_);
									T691_ = (NI)0;
									T691_ = len__ast_3155(itX60gensym668__2);
									cpyX60gensym757_ = moveOrCopy__injectdestructors_110(tmpX60gensym757_, (*itX60gensym668__2)._kind_6.sons->data[(NI)(T691_ - ((NI) 1))], c, (&branchScopeX60gensym668_), NIM_TRUE);
								}
								goto LA683_;
								LA687_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T693_;
									NI T694_;
									nimZeroMem((void*)T693_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T693_[0] = tmpX60gensym757_;
									T694_ = (NI)0;
									T694_ = len__ast_3155(itX60gensym668__2);
									T693_[1] = p__injectdestructors_105((*itX60gensym668__2)._kind_6.sons->data[(NI)(T694_ - ((NI) 1))], c, (&branchScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym757_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T693_, 2);
								}
								LA683_: ;
								{
									NI T697_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym757_;
									NI T700_;
									T697_ = (branchScopeX60gensym668_.vars ? branchScopeX60gensym668_.vars->Sup.len : 0);
									if (!(((NI) 0) < T697_)) goto LA698_;
									T700_ = (NI)0;
									T700_ = len__ast_3155(itX60gensym668__2);
									varSectionX60gensym757_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T700_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym757__2;
										NI i_26;
										NI L_15;
										NI T702_;
										tmpX60gensym757__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_26 = ((NI) 0);
										T702_ = (branchScopeX60gensym668_.vars ? branchScopeX60gensym668_.vars->Sup.len : 0);
										L_15 = T702_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T705_;
												NI T706_;
												NI T707_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T708_;
												if (!(i_26 < L_15)) goto LA704;
												tmpX60gensym757__2 = &branchScopeX60gensym668_.vars->data[i_26];
												nimZeroMem((void*)T705_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T705_[0] = newSymNode__ast_3704((*tmpX60gensym757__2));
												T706_ = (NI)0;
												T706_ = len__ast_3155(itX60gensym668__2);
												T705_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T706_ - ((NI) 1))]).info);
												T707_ = (NI)0;
												T707_ = len__ast_3155(itX60gensym668__2);
												T705_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T707_ - ((NI) 1))]).info);
												T708_ = NIM_NIL;
												T708_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T705_, 3);
												add__ast_4798(varSectionX60gensym757_, T708_);
												i_26 += ((NI) 1);
											} LA704: ;
										}
									}
									add__ast_4798(resultX60gensym757_, varSectionX60gensym757_);
								}
								LA698_: ;
								T709_ = (NI)0;
								T709_ = len__ast_3155(itX60gensym668__2);
								finSectionX60gensym757_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym668__2)._kind_6.sons->data[(NI)(T709_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym757_;
									NI i_27;
									NI L_16;
									NI T711_;
									mX60gensym757_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_27 = ((NI) 0);
									T711_ = (branchScopeX60gensym668_.wasMoved ? branchScopeX60gensym668_.wasMoved->Sup.len : 0);
									L_16 = T711_;
									{
										while (1) {
											if (!(i_27 < L_16)) goto LA713;
											mX60gensym757_ = &branchScopeX60gensym668_.wasMoved->data[i_27];
											add__ast_4798(finSectionX60gensym757_, (*mX60gensym757_));
											i_27 += ((NI) 1);
										} LA713: ;
									}
								}
								{
									NI iX60gensym757_;
									NI colontmp__19;
									NI T715_;
									NI res_8;
									iX60gensym757_ = (NI)0;
									colontmp__19 = (NI)0;
									T715_ = ((branchScopeX60gensym668_.final ? branchScopeX60gensym668_.final->Sup.len : 0)-1);
									colontmp__19 = T715_;
									res_8 = colontmp__19;
									{
										while (1) {
											if (!(((NI) 0) <= res_8)) goto LA717;
											iX60gensym757_ = res_8;
											add__ast_4798(finSectionX60gensym757_, branchScopeX60gensym668_.final->data[iX60gensym757_]);
											res_8 -= ((NI) 1);
										} LA717: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T722_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T723_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T724_;
									if (!branchScopeX60gensym668_.needsTry) goto LA720_;
									nimZeroMem((void*)T722_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T722_[0] = cpyX60gensym757_;
									T722_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym757_, c, branchScopeX60gensym668_.parent, isDecl);
									T723_ = NIM_NIL;
									T723_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T722_, 2);
									T724_ = NIM_NIL;
									T724_ = newTryFinally__lowerings_207(T723_, finSectionX60gensym757_);
									add__ast_4798(resultX60gensym757_, T724_);
								}
								goto LA718_;
								LA720_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T726_;
									add__ast_4798(resultX60gensym757_, cpyX60gensym757_);
									add__ast_4798(resultX60gensym757_, finSectionX60gensym757_);
									T726_ = NIM_NIL;
									T726_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym757_, c, branchScopeX60gensym668_.parent, isDecl);
									add__ast_4798(resultX60gensym757_, T726_);
								}
								LA718_: ;
								{
									NIM_BOOL T731_;
									if (!!((branchScopeX60gensym668_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA729_;
									T731_ = (NIM_BOOL)0;
									T731_ = (*branchScopeX60gensym668_.parent).needsTry;
									if (T731_) goto LA732_;
									T731_ = branchScopeX60gensym668_.needsTry;
									LA732_: ;
									(*branchScopeX60gensym668_.parent).needsTry = T731_;
								}
								LA729_: ;
								asgnRef((void**) (&(*branchX60gensym668__2)._kind_6.sons->data[(NI)(T660_ - ((NI) 1))]), resultX60gensym757_);
							}
							LA661_: ;
							add__ast_4798(result, branchX60gensym668__2);
							i_25 += ((NI) 1);
						} LA655: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
			{
				tyObject_Scope__8EDqaKtZCWIbyBmeputFbg tryScopeX60gensym668_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T734_;
				result = copyNode__ast_4324(ri);
				nimZeroMem((void*)(&tryScopeX60gensym668_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
				nestedScope__injectdestructors_72(s, (&tryScopeX60gensym668_));
				T734_ = NIM_NIL;
				{
					NIM_BOOL T737_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T741_;
					T737_ = (NIM_BOOL)0;
					T737_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T737_) goto LA738_;
					T737_ = NIM_TRUE;
					LA738_: ;
					if (!T737_) goto LA739_;
					T741_ = NIM_NIL;
					{
						NIM_BOOL T744_;
						T744_ = (NIM_BOOL)0;
						T744_ = isEmptyType__ast_4780((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T744_) goto LA745_;
						T741_ = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					}
					goto LA742_;
					LA745_: ;
					{
						T741_ = moveOrCopy__injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym668_), isDecl);
					}
					LA742_: ;
					T734_ = processScope__injectdestructors_7005(c, (&tryScopeX60gensym668_), T741_);
				}
				goto LA735_;
				LA739_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym773_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym773_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym773_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym773_;
					resultX60gensym773_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					tmpX60gensym773_ = getTemp__injectdestructors_61(c, tryScopeX60gensym668_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym773_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
					{
						NIM_BOOL T751_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T754_;
						NI T755_;
						T751_ = (NIM_BOOL)0;
						T751_ = hasDestructor__injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T751_) goto LA752_;
						T754_ = NIM_NIL;
						T754_ = genDestroy__injectdestructors_6516(c, tmpX60gensym773_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym668_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym668_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
						T755_ = (*tryScopeX60gensym668_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym668_.parent).final->data[T755_]), T754_);
						cpyX60gensym773_ = moveOrCopy__injectdestructors_110(tmpX60gensym773_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym668_), NIM_TRUE);
					}
					goto LA749_;
					LA752_: ;
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T757_;
						nimZeroMem((void*)T757_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T757_[0] = tmpX60gensym773_;
						T757_[1] = p__injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym668_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						cpyX60gensym773_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T757_, 2);
					}
					LA749_: ;
					{
						NI T760_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym773_;
						T760_ = (tryScopeX60gensym668_.vars ? tryScopeX60gensym668_.vars->Sup.len : 0);
						if (!(((NI) 0) < T760_)) goto LA761_;
						varSectionX60gensym773_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym773__2;
							NI i_28;
							NI L_17;
							NI T764_;
							tmpX60gensym773__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
							i_28 = ((NI) 0);
							T764_ = (tryScopeX60gensym668_.vars ? tryScopeX60gensym668_.vars->Sup.len : 0);
							L_17 = T764_;
							{
								while (1) {
									tyArray__id9c0PBojP5C2oM2bRQSViA T767_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T768_;
									if (!(i_28 < L_17)) goto LA766;
									tmpX60gensym773__2 = &tryScopeX60gensym668_.vars->data[i_28];
									nimZeroMem((void*)T767_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
									T767_[0] = newSymNode__ast_3704((*tmpX60gensym773__2));
									T767_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T767_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T768_ = NIM_NIL;
									T768_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T767_, 3);
									add__ast_4798(varSectionX60gensym773_, T768_);
									i_28 += ((NI) 1);
								} LA766: ;
							}
						}
						add__ast_4798(resultX60gensym773_, varSectionX60gensym773_);
					}
					LA761_: ;
					finSectionX60gensym773_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym773_;
						NI i_29;
						NI L_18;
						NI T770_;
						mX60gensym773_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
						i_29 = ((NI) 0);
						T770_ = (tryScopeX60gensym668_.wasMoved ? tryScopeX60gensym668_.wasMoved->Sup.len : 0);
						L_18 = T770_;
						{
							while (1) {
								if (!(i_29 < L_18)) goto LA772;
								mX60gensym773_ = &tryScopeX60gensym668_.wasMoved->data[i_29];
								add__ast_4798(finSectionX60gensym773_, (*mX60gensym773_));
								i_29 += ((NI) 1);
							} LA772: ;
						}
					}
					{
						NI iX60gensym773_;
						NI colontmp__20;
						NI T774_;
						NI res_9;
						iX60gensym773_ = (NI)0;
						colontmp__20 = (NI)0;
						T774_ = ((tryScopeX60gensym668_.final ? tryScopeX60gensym668_.final->Sup.len : 0)-1);
						colontmp__20 = T774_;
						res_9 = colontmp__20;
						{
							while (1) {
								if (!(((NI) 0) <= res_9)) goto LA776;
								iX60gensym773_ = res_9;
								add__ast_4798(finSectionX60gensym773_, tryScopeX60gensym668_.final->data[iX60gensym773_]);
								res_9 -= ((NI) 1);
							} LA776: ;
						}
					}
					{
						tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T781_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T788_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T789_;
						if (!tryScopeX60gensym668_.needsTry) goto LA779_;
						nimZeroMem((void*)T781_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
						T781_[0] = cpyX60gensym773_;
						{
							NIM_BOOL T784_;
							T784_ = (NIM_BOOL)0;
							T784_ = isEmptyType__ast_4780((*tmpX60gensym773_).typ);
							if (!T784_) goto LA785_;
							T781_[1] = p__injectdestructors_105(tmpX60gensym773_, c, tryScopeX60gensym668_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						}
						goto LA782_;
						LA785_: ;
						{
							T781_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym773_, c, tryScopeX60gensym668_.parent, isDecl);
						}
						LA782_: ;
						T788_ = NIM_NIL;
						T788_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T781_, 2);
						T789_ = NIM_NIL;
						T789_ = newTryFinally__lowerings_207(T788_, finSectionX60gensym773_);
						add__ast_4798(resultX60gensym773_, T789_);
					}
					goto LA777_;
					LA779_: ;
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T791_;
						add__ast_4798(resultX60gensym773_, cpyX60gensym773_);
						add__ast_4798(resultX60gensym773_, finSectionX60gensym773_);
						T791_ = NIM_NIL;
						{
							NIM_BOOL T794_;
							T794_ = (NIM_BOOL)0;
							T794_ = isEmptyType__ast_4780((*tmpX60gensym773_).typ);
							if (!T794_) goto LA795_;
							T791_ = p__injectdestructors_105(tmpX60gensym773_, c, tryScopeX60gensym668_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						}
						goto LA792_;
						LA795_: ;
						{
							T791_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym773_, c, tryScopeX60gensym668_.parent, isDecl);
						}
						LA792_: ;
						add__ast_4798(resultX60gensym773_, T791_);
					}
					LA777_: ;
					{
						NIM_BOOL T802_;
						if (!!((tryScopeX60gensym668_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA800_;
						T802_ = (NIM_BOOL)0;
						T802_ = (*tryScopeX60gensym668_.parent).needsTry;
						if (T802_) goto LA803_;
						T802_ = tryScopeX60gensym668_.needsTry;
						LA803_: ;
						(*tryScopeX60gensym668_.parent).needsTry = T802_;
					}
					LA800_: ;
					T734_ = resultX60gensym773_;
				}
				LA735_: ;
				add__ast_4798(result, T734_);
				{
					NI iX60gensym668__5;
					NI colontmp__21;
					NI i_30;
					iX60gensym668__5 = (NI)0;
					colontmp__21 = (NI)0;
					colontmp__21 = len__ast_3155(ri);
					i_30 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym668__3;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym668__3;
							tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym668__2;
							NI T807_;
							if (!(i_30 < colontmp__21)) goto LA806;
							iX60gensym668__5 = i_30;
							itX60gensym668__3 = (*ri)._kind_6.sons->data[iX60gensym668__5];
							branchX60gensym668__3 = copyTree__ast_4432(itX60gensym668__3);
							nimZeroMem((void*)(&branchScopeX60gensym668__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
							nestedScope__injectdestructors_72(s, (&branchScopeX60gensym668__2));
							T807_ = (NI)0;
							T807_ = len__ast_3155(branchX60gensym668__3);
							{
								NIM_BOOL T810_;
								NIM_BOOL T811_;
								NI T812_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T817_;
								T810_ = (NIM_BOOL)0;
								T811_ = (NIM_BOOL)0;
								T812_ = (NI)0;
								T812_ = len__ast_3155(itX60gensym668__3);
								T811_ = isEmptyType__ast_4780((*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T812_ - ((NI) 1))]).typ);
								if (T811_) goto LA813_;
								T811_ = NIM_TRUE;
								LA813_: ;
								T810_ = T811_;
								if (T810_) goto LA814_;
								T810_ = ((*itX60gensym668__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107));
								LA814_: ;
								if (!T810_) goto LA815_;
								T817_ = NIM_NIL;
								{
									NI T822_;
									if (!((*itX60gensym668__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA820_;
									T822_ = (NI)0;
									T822_ = len__ast_3155(itX60gensym668__3);
									T817_ = p__injectdestructors_105((*itX60gensym668__3)._kind_6.sons->data[(NI)(T822_ - ((NI) 1))], c, (&branchScopeX60gensym668__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA818_;
								LA820_: ;
								{
									{
										NI T826_;
										NIM_BOOL T827_;
										NI T830_;
										T826_ = (NI)0;
										T826_ = len__ast_3155(itX60gensym668__3);
										T827_ = (NIM_BOOL)0;
										T827_ = isEmptyType__ast_4780((*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T826_ - ((NI) 1))]).typ);
										if (!T827_) goto LA828_;
										T830_ = (NI)0;
										T830_ = len__ast_3155(itX60gensym668__3);
										T817_ = p__injectdestructors_105((*itX60gensym668__3)._kind_6.sons->data[(NI)(T830_ - ((NI) 1))], c, (&branchScopeX60gensym668__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									}
									goto LA824_;
									LA828_: ;
									{
										NI T832_;
										T832_ = (NI)0;
										T832_ = len__ast_3155(itX60gensym668__3);
										T817_ = moveOrCopy__injectdestructors_110(dest, (*itX60gensym668__3)._kind_6.sons->data[(NI)(T832_ - ((NI) 1))], c, (&branchScopeX60gensym668__2), isDecl);
									}
									LA824_: ;
								}
								LA818_: ;
								asgnRef((void**) (&(*branchX60gensym668__3)._kind_6.sons->data[(NI)(T807_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym668__2), T817_));
							}
							goto LA808_;
							LA815_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym804_;
								NI T834_;
								NI T835_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym804_;
								NI T836_;
								NI T837_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym804_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym804_;
								NI T864_;
								T834_ = (NI)0;
								T834_ = len__ast_3155(itX60gensym668__3);
								T835_ = (NI)0;
								T835_ = len__ast_3155(itX60gensym668__3);
								resultX60gensym804_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T834_ - ((NI) 1))]).info, (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T835_ - ((NI) 1))]).typ);
								T836_ = (NI)0;
								T836_ = len__ast_3155(itX60gensym668__3);
								T837_ = (NI)0;
								T837_ = len__ast_3155(itX60gensym668__3);
								tmpX60gensym804_ = getTemp__injectdestructors_61(c, branchScopeX60gensym668__2.parent, (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T836_ - ((NI) 1))]).typ, (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T837_ - ((NI) 1))]).info);
								(*(*tmpX60gensym804_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
								{
									NI T840_;
									NIM_BOOL T841_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T844_;
									NI T845_;
									NI T846_;
									T840_ = (NI)0;
									T840_ = len__ast_3155(itX60gensym668__3);
									T841_ = (NIM_BOOL)0;
									T841_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T840_ - ((NI) 1))]).typ);
									if (!T841_) goto LA842_;
									T844_ = NIM_NIL;
									T844_ = genDestroy__injectdestructors_6516(c, tmpX60gensym804_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym668__2.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym668__2.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
									T845_ = (*branchScopeX60gensym668__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym668__2.parent).final->data[T845_]), T844_);
									T846_ = (NI)0;
									T846_ = len__ast_3155(itX60gensym668__3);
									cpyX60gensym804_ = moveOrCopy__injectdestructors_110(tmpX60gensym804_, (*itX60gensym668__3)._kind_6.sons->data[(NI)(T846_ - ((NI) 1))], c, (&branchScopeX60gensym668__2), NIM_TRUE);
								}
								goto LA838_;
								LA842_: ;
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T848_;
									NI T849_;
									nimZeroMem((void*)T848_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T848_[0] = tmpX60gensym804_;
									T849_ = (NI)0;
									T849_ = len__ast_3155(itX60gensym668__3);
									T848_[1] = p__injectdestructors_105((*itX60gensym668__3)._kind_6.sons->data[(NI)(T849_ - ((NI) 1))], c, (&branchScopeX60gensym668__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
									cpyX60gensym804_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T848_, 2);
								}
								LA838_: ;
								{
									NI T852_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym804_;
									NI T855_;
									T852_ = (branchScopeX60gensym668__2.vars ? branchScopeX60gensym668__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T852_)) goto LA853_;
									T855_ = (NI)0;
									T855_ = len__ast_3155(itX60gensym668__3);
									varSectionX60gensym804_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T855_ - ((NI) 1))]).info);
									{
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym804__2;
										NI i_31;
										NI L_19;
										NI T857_;
										tmpX60gensym804__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
										i_31 = ((NI) 0);
										T857_ = (branchScopeX60gensym668__2.vars ? branchScopeX60gensym668__2.vars->Sup.len : 0);
										L_19 = T857_;
										{
											while (1) {
												tyArray__id9c0PBojP5C2oM2bRQSViA T860_;
												NI T861_;
												NI T862_;
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T863_;
												if (!(i_31 < L_19)) goto LA859;
												tmpX60gensym804__2 = &branchScopeX60gensym668__2.vars->data[i_31];
												nimZeroMem((void*)T860_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
												T860_[0] = newSymNode__ast_3704((*tmpX60gensym804__2));
												T861_ = (NI)0;
												T861_ = len__ast_3155(itX60gensym668__3);
												T860_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T861_ - ((NI) 1))]).info);
												T862_ = (NI)0;
												T862_ = len__ast_3155(itX60gensym668__3);
												T860_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T862_ - ((NI) 1))]).info);
												T863_ = NIM_NIL;
												T863_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T860_, 3);
												add__ast_4798(varSectionX60gensym804_, T863_);
												i_31 += ((NI) 1);
											} LA859: ;
										}
									}
									add__ast_4798(resultX60gensym804_, varSectionX60gensym804_);
								}
								LA853_: ;
								T864_ = (NI)0;
								T864_ = len__ast_3155(itX60gensym668__3);
								finSectionX60gensym804_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym668__3)._kind_6.sons->data[(NI)(T864_ - ((NI) 1))]).info);
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym804_;
									NI i_32;
									NI L_20;
									NI T866_;
									mX60gensym804_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
									i_32 = ((NI) 0);
									T866_ = (branchScopeX60gensym668__2.wasMoved ? branchScopeX60gensym668__2.wasMoved->Sup.len : 0);
									L_20 = T866_;
									{
										while (1) {
											if (!(i_32 < L_20)) goto LA868;
											mX60gensym804_ = &branchScopeX60gensym668__2.wasMoved->data[i_32];
											add__ast_4798(finSectionX60gensym804_, (*mX60gensym804_));
											i_32 += ((NI) 1);
										} LA868: ;
									}
								}
								{
									NI iX60gensym804_;
									NI colontmp__22;
									NI T870_;
									NI res_10;
									iX60gensym804_ = (NI)0;
									colontmp__22 = (NI)0;
									T870_ = ((branchScopeX60gensym668__2.final ? branchScopeX60gensym668__2.final->Sup.len : 0)-1);
									colontmp__22 = T870_;
									res_10 = colontmp__22;
									{
										while (1) {
											if (!(((NI) 0) <= res_10)) goto LA872;
											iX60gensym804_ = res_10;
											add__ast_4798(finSectionX60gensym804_, branchScopeX60gensym668__2.final->data[iX60gensym804_]);
											res_10 -= ((NI) 1);
										} LA872: ;
									}
								}
								{
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T877_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T878_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T879_;
									if (!branchScopeX60gensym668__2.needsTry) goto LA875_;
									nimZeroMem((void*)T877_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T877_[0] = cpyX60gensym804_;
									T877_[1] = moveOrCopy__injectdestructors_110(dest, tmpX60gensym804_, c, branchScopeX60gensym668__2.parent, isDecl);
									T878_ = NIM_NIL;
									T878_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T877_, 2);
									T879_ = NIM_NIL;
									T879_ = newTryFinally__lowerings_207(T878_, finSectionX60gensym804_);
									add__ast_4798(resultX60gensym804_, T879_);
								}
								goto LA873_;
								LA875_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T881_;
									add__ast_4798(resultX60gensym804_, cpyX60gensym804_);
									add__ast_4798(resultX60gensym804_, finSectionX60gensym804_);
									T881_ = NIM_NIL;
									T881_ = moveOrCopy__injectdestructors_110(dest, tmpX60gensym804_, c, branchScopeX60gensym668__2.parent, isDecl);
									add__ast_4798(resultX60gensym804_, T881_);
								}
								LA873_: ;
								{
									NIM_BOOL T886_;
									if (!!((branchScopeX60gensym668__2.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA884_;
									T886_ = (NIM_BOOL)0;
									T886_ = (*branchScopeX60gensym668__2.parent).needsTry;
									if (T886_) goto LA887_;
									T886_ = branchScopeX60gensym668__2.needsTry;
									LA887_: ;
									(*branchScopeX60gensym668__2.parent).needsTry = T886_;
								}
								LA884_: ;
								asgnRef((void**) (&(*branchX60gensym668__3)._kind_6.sons->data[(NI)(T807_ - ((NI) 1))]), resultX60gensym804_);
							}
							LA808_: ;
							add__ast_4798(result, branchX60gensym668__3);
							i_30 += ((NI) 1);
						} LA806: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
			{
				result = copyTree__ast_4432(ri);
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), moveOrCopy__injectdestructors_110(dest, (*(*ri)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, isDecl));
			}
			break;
			default:
			{
			}
			break;
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
		{
			result = pRaiseStmt__injectdestructors_7115(ri, c, s);
		}
		break;
		default:
		{
			{
				NIM_BOOL T894_;
				NIM_BOOL T895_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* snk_4;
				tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T900_;
				T894_ = (NIM_BOOL)0;
				T895_ = (NIM_BOOL)0;
				T895_ = isAnalysableFieldAccess__dfa_911(ri, (*c).owner);
				if (!(T895_)) goto LA896_;
				T895_ = isLastRead__injectdestructors_6092(ri, c);
				LA896_: ;
				T894_ = T895_;
				if (!(T894_)) goto LA897_;
				T894_ = canBeMoved__injectdestructors_6521((&(*c)), (*dest).typ);
				LA897_: ;
				if (!T894_) goto LA898_;
				snk_4 = genSink__injectdestructors_6553(c, dest, ri, isDecl);
				nimZeroMem((void*)T900_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
				T900_[0] = snk_4;
				T900_[1] = genWasMoved__injectdestructors_6728(c, ri);
				result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T900_, 2);
			}
			goto LA892_;
			LA898_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T902_;
				result = genCopy__injectdestructors_6636(c, dest, ri);
				T902_ = NIM_NIL;
				T902_ = p__injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				add__ast_4798(result, T902_);
				finishCopy__injectdestructors_6587(c, result, dest, NIM_FALSE);
			}
			LA892_: ;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
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(NIM_BOOL, containsConstSeq__injectdestructors_6849)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		NI T7_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__ast_3155(n);
		T5_ = (((NI) 0) < T7_);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		LA8_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA9_;
		T3_ = isDangerousSeq__injectdestructors_6836((*n).typ);
		LA9_: ;
		if (!T3_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	result = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 33):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
	{
		result = containsConstSeq__injectdestructors_6849((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 1);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA16;
					i = i_2;
					{
						NIM_BOOL T19_;
						T19_ = (NIM_BOOL)0;
						T19_ = containsConstSeq__injectdestructors_6849((*n)._kind_6.sons->data[i]);
						if (!T19_) goto LA20_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA20_: ;
					i_2 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son;
			son = NIM_NIL;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen__ast_3148(n);
				i_4 = ((NI) 0);
				{
					while (1) {
						if (!(i_4 < colontmp__2)) goto LA26;
						i_3 = i_4;
						son = (*n)._kind_6.sons->data[i_3];
						{
							NIM_BOOL T29_;
							T29_ = (NIM_BOOL)0;
							T29_ = containsConstSeq__injectdestructors_6849(son);
							if (!T29_) goto LA30_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA30_: ;
						i_4 += ((NI) 1);
					} LA26: ;
				}
			}
		}
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar__injectdestructors_6786)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* root;
	result = (NIM_BOOL)0;
	root = getRoot__trees_390(n);
	{
		if (!!((root == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)))) goto LA3_;
		result = ((NU8)((*(*root).name).s->data[((NI) 0)]) == (NU8)(58));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, passCopyToSink__injectdestructors_6794)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmp;
	result = NIM_NIL;
	result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info, (*n).typ);
	tmp = getTemp__injectdestructors_61(c, s, (*n).typ, (*n).info);
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* m;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
		if (!T3_) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = genWasMoved__injectdestructors_6728(c, tmp);
		add__ast_4798(result, T6_);
		m = genCopy__injectdestructors_6636(c, tmp, n);
		T7_ = NIM_NIL;
		T7_ = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
		add__ast_4798(m, T7_);
		finishCopy__injectdestructors_6587(c, m, n, NIM_TRUE);
		add__ast_4798(result, m);
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T16_;
			NimStringDesc* T20_;
			NimStringDesc* T21_;
			T10_ = (NIM_BOOL)0;
			T11_ = (NIM_BOOL)0;
			T12_ = (NIM_BOOL)0;
			T12_ = isLValue__parampatterns_497(n);
			if (!(T12_)) goto LA13_;
			T14_ = (NIM_BOOL)0;
			T14_ = isCapturedVar__injectdestructors_6786(n);
			T12_ = !(T14_);
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T16_ = NIM_NIL;
			T16_ = skipTypes__ast_3723((*n).typ, TM__qy9cjzsMcb87orRThTwa4gQ_33);
			T11_ = !(((*T16_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22)));
			LA15_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*c).inSpawn == ((NI) 0));
			LA17_: ;
			if (!T10_) goto LA18_;
			T20_ = NIM_NIL;
			T20_ = dollar___renderer_2116(n);
			T21_ = NIM_NIL;
			T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_34), T20_);
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 97), T21_, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__qy9cjzsMcb87orRThTwa4gQ_35, NIM_FALSE);
		}
		LA18_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T32_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
		{
			if (!((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA25_;
		}
		LA25_: ;
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T29_;
			T29_ = NIM_NIL;
			T29_ = skipTypes__ast_3723((*n).typ, TM__qy9cjzsMcb87orRThTwa4gQ_33);
			if (!((*T29_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 27) || (*T29_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 48))) goto LA30_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_36), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__qy9cjzsMcb87orRThTwa4gQ_37, NIM_FALSE);
		}
		LA30_: ;
		nimZeroMem((void*)T32_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T32_[0] = tmp;
		T32_[1] = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
		T33_ = NIM_NIL;
		T33_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T32_, 2);
		add__ast_4798(result, T33_);
	}
	LA1_: ;
	add__ast_4798(result, tmp);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, ensureDestruction__injectdestructors_6874)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* orig, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmp;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*arg).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = hasDestructor__injectdestructors_49((&(*c)), (*arg).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*arg).info, (*arg).typ);
		tmp = getTemp__injectdestructors_61(c, s, (*arg).typ, (*arg).info);
		T7_ = NIM_NIL;
		T7_ = genSink__injectdestructors_6553(c, tmp, arg, NIM_TRUE);
		add__ast_4798(result, T7_);
		add__ast_4798(result, tmp);
		T8_ = NIM_NIL;
		T8_ = genDestroy__injectdestructors_6516(c, tmp);
		unsureAsgnRef((void**) (&(*s).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
		T9_ = (*s).final->Sup.len++;
		asgnRef((void**) (&(*s).final->data[T9_]), T8_);
	}
	goto LA1_;
	LA5_: ;
	{
		result = arg;
	}
	LA1_: ;
	return result;
}
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;
}
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(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDefaultCall__injectdestructors_6740)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T2_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), info);
	T1_ = NIM_NIL;
	T1_ = createMagic__modulegraphs_9046((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_39), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 153));
	T2_ = NIM_NIL;
	T2_ = newSymNode__ast_3704(T1_);
	add__ast_4798(result, T2_);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel__injectdestructors_6956)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res) {
	NI T1_;
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__ed0C0uAUZPhvw3RAc5hfYg*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__ed0C0uAUZPhvw3RAc5hfYg_)));
	T1_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T1_]), (*v)._kind_4.sym);
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*v).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*v)._kind_4.sym).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 5));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 18));
		LA7_: ;
		if (!T4_) goto LA8_;
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T14_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
			if (!(((NI) 0) < (*c).inLoop)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T14_[0] = v;
			T14_[1] = genDefaultCall__injectdestructors_6740((*v).typ, (&(*c)), (*v).info);
			T15_ = NIM_NIL;
			T15_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T14_, 2);
			add__ast_4798(res, T15_);
		}
		LA12_: ;
	}
	goto LA2_;
	LA8_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 26))&63U)))!=0));
		if (!(T17_)) goto LA18_;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 41))&63U)))!=0));
		LA18_: ;
		if (!T17_) goto LA19_;
		{
			NIM_BOOL T23_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
			NI T28_;
			T23_ = (NIM_BOOL)0;
			T23_ = (((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 3))&63U)))!=0);
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL));
			LA24_: ;
			if (!T23_) goto LA25_;
			T27_ = NIM_NIL;
			T27_ = genDestroy__injectdestructors_6516(c, v);
			asgnRef((void**) (&(*(*c).graph).globalDestructors), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*(*c).graph).globalDestructors), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			T28_ = (*(*c).graph).globalDestructors->Sup.len++;
			asgnRef((void**) (&(*(*c).graph).globalDestructors->data[T28_]), T27_);
		}
		goto LA21_;
		LA25_: ;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
			NI T31_;
			T30_ = NIM_NIL;
			T30_ = genDestroy__injectdestructors_6516(c, v);
			unsureAsgnRef((void**) (&(*s).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			T31_ = (*s).final->Sup.len++;
			asgnRef((void**) (&(*s).final->data[T31_]), T30_);
		}
		LA21_: ;
	}
	goto LA2_;
	LA19_: ;
	LA2_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck__injectdestructors_6897)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* value;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* destTyp;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* field;
{	{
		if (!!(((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w) 4)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	value = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155))) goto LA7_;
		value = (*value)._kind_6.sons->data[((NI) 1)];
	}
	LA7_: ;
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	destTyp = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__qy9cjzsMcb87orRThTwa4gQ_33);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = !(((*destTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22)));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*destTyp).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 25));
		if (!(T17_)) goto LA18_;
		T17_ = ((*destTyp).callConv == ((tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg) 9));
		LA18_: ;
		T15_ = !(T17_);
		LA16_: ;
		if (!T15_) goto LA19_;
		goto BeforeRet_;
	}
	LA19_: ;
	x = (*n)._kind_6.sons->data[((NI) 0)];
	field = ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL);
	{
		while (1) {
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45))) goto LA25_;
				field = (*x)._kind_6.sons->data[((NI) 1)];
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*field).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
					if (!(T29_)) goto LA30_;
					T29_ = (((*(*field)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 41))&63U)))!=0);
					LA30_: ;
					if (!T29_) goto LA31_;
					goto BeforeRet_;
				}
				LA31_: ;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA25_: ;
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47) || (*x).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65))) goto LA34_;
				x = (*x)._kind_6.sons->data[((NI) 0)];
			}
			goto LA23_;
			LA34_: ;
			{
				goto LA21;
			}
			LA23_: ;
			{
				NIM_BOOL T39_;
				NimStringDesc* msg;
				T39_ = (NIM_BOOL)0;
				T39_ = exprStructuralEquivalent__trees_56(x, value, NIM_TRUE);
				if (!T39_) goto LA40_;
				{
					tyArray__Re75IspeoxXy2oCZHwcRrA T46_;
					if (!!((field == ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL)))) goto LA44_;
					nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T46_[0] = dollar___renderer_2116(n);
					T46_[1] = dollar___renderer_2116(field);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_40), T46_, 2);
				}
				goto LA42_;
				LA44_: ;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T48_;
					nimZeroMem((void*)T48_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T48_[0] = dollar___renderer_2116(n);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_41), T48_, 1);
				}
				LA42_: ;
				liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 57), msg, ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__qy9cjzsMcb87orRThTwa4gQ_42, NIM_FALSE);
				goto LA21;
			}
			LA40_: ;
		}
	} LA21: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, genDiscriminantAsgn__injectdestructors_6657)(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmp;
	tyArray__DkuVegaMCU6g1mpIOSQPIw T1_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T4_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* le;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* leDotExpr;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* objType;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T34_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T35_;
{	result = NIM_NIL;
	tmp = getTemp__injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__DkuVegaMCU6g1mpIOSQPIw));
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T1_, 0);
	nimZeroMem((void*)T2_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T2_[0] = tmp;
	T2_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
	T3_ = NIM_NIL;
	T3_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T2_, 2);
	add__ast_4798(result, T3_);
	T4_ = NIM_NIL;
	T4_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
	add__ast_4798(result, T4_);
	le = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
	{
		if (!((*le).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46))) goto LA7_;
		leDotExpr = (*le)._kind_6.sons->data[((NI) 0)];
	}
	goto LA5_;
	LA7_: ;
	{
		leDotExpr = le;
	}
	LA5_: ;
	objType = (*(*leDotExpr)._kind_6.sons->data[((NI) 0)]).typ;
	{
		NIM_BOOL T12_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* branchDestructor;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T25_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T26_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* notExpr;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T28_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T29_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T30_;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T31_;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T32_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T33_;
		T12_ = (NIM_BOOL)0;
		T12_ = hasDestructor__injectdestructors_49((&(*c)), objType);
		if (!T12_) goto LA13_;
		{
			NIM_BOOL T17_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T18_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T20_;
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T23_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
			T17_ = (NIM_BOOL)0;
			T18_ = NIM_NIL;
			T18_ = getAttachedOp__modulegraphs_4049((*c).graph, objType, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
			T17_ = !((T18_ == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
			if (!(T17_)) goto LA19_;
			T20_ = NIM_NIL;
			T20_ = getAttachedOp__modulegraphs_4049((*c).graph, objType, ((tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ) 0));
			T17_ = (((*T20_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 35))&63U)))!=0);
			LA19_: ;
			if (!T17_) goto LA21_;
			liMessage__msgs_1128((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_43), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__qy9cjzsMcb87orRThTwa4gQ_44, NIM_FALSE);
			nimZeroMem((void*)T23_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T23_[0] = le;
			T23_[1] = tmp;
			T24_ = NIM_NIL;
			T24_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T23_, 2);
			add__ast_4798(result, T24_);
			goto BeforeRet_;
		}
		LA21_: ;
		branchDestructor = produceDestructorForDiscriminator__liftdestructors_2004((*c).graph, objType, (*(*leDotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym, (*n).info, (*c).idgen);
		T25_ = NIM_NIL;
		T25_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_284, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
		cond = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29), (*n).info, T25_);
		T26_ = NIM_NIL;
		T26_ = getMagicEqSymForType__magicsys_171((*c).graph, (*le).typ, (*n).info);
		T27_ = NIM_NIL;
		T27_ = newSymNode__ast_3704(T26_);
		add__ast_4798(cond, T27_);
		add__ast_4798(cond, le);
		add__ast_4798(cond, tmp);
		T28_ = NIM_NIL;
		T28_ = getSysType__magicsys_60((*c).graph, unknownLineInfo__lineinfos_284, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
		notExpr = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30), (*n).info, T28_);
		T29_ = NIM_NIL;
		T29_ = createMagic__modulegraphs_9046((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_45), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96));
		T30_ = NIM_NIL;
		T30_ = newSymNode__ast_3704(T29_);
		add__ast_4798(notExpr, T30_);
		add__ast_4798(notExpr, cond);
		nimZeroMem((void*)T31_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		nimZeroMem((void*)T32_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T32_[0] = notExpr;
		T32_[1] = genOp__injectdestructors_6409(c, branchDestructor, le);
		T31_[0] = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T32_, 2);
		T33_ = NIM_NIL;
		T33_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T31_, 1);
		add__ast_4798(result, T33_);
	}
	LA13_: ;
	nimZeroMem((void*)T34_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T34_[0] = le;
	T34_[1] = tmp;
	T35_ = NIM_NIL;
	T35_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T34_, 2);
	add__ast_4798(result, T35_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, p__injectdestructors_105)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ* c, tyObject_Scope__8EDqaKtZCWIbyBmeputFbg* s, tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw mode) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	{
		if (!((TM__qy9cjzsMcb87orRThTwa4gQ_7[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
			{
				NI T8_;
				T8_ = (NI)0;
				T8_ = len__ast_3155(n);
				if (!(T8_ == ((NI) 0))) goto LA9_;
				result = n;
				goto BeforeRet_;
			}
			LA9_: ;
			result = copyNode__ast_4324(n);
			{
				NI iX60gensym198_;
				NI colontmp_;
				NI T12_;
				NI i;
				iX60gensym198_ = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (NI)0;
				T12_ = len__ast_3155(n);
				colontmp_ = (NI)(T12_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
						if (!(i < colontmp_)) goto LA14;
						iX60gensym198_ = i;
						T15_ = NIM_NIL;
						T15_ = p__injectdestructors_105((*n)._kind_6.sons->data[iX60gensym198_], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
						add__ast_4798(result, T15_);
						i += ((NI) 1);
					} LA14: ;
				}
			}
			T16_ = NIM_NIL;
			{
				NI T19_;
				NIM_BOOL T20_;
				NI T23_;
				T19_ = (NI)0;
				T19_ = len__ast_3155(n);
				T20_ = (NIM_BOOL)0;
				T20_ = isEmptyType__ast_4780((*(*n)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]).typ);
				if (!T20_) goto LA21_;
				T23_ = (NI)0;
				T23_ = len__ast_3155(n);
				T16_ = p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			}
			goto LA17_;
			LA21_: ;
			{
				NI T25_;
				T25_ = (NI)0;
				T25_ = len__ast_3155(n);
				T16_ = p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))], c, s, mode);
			}
			LA17_: ;
			add__ast_4798(result, T16_);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
			result = copyNode__ast_4324(n);
			T27_ = NIM_NIL;
			T27_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			add__ast_4798(result, T27_);
			{
				NI iX60gensym198__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym198__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len__ast_3155(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym198_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym198_;
						tyObject_Scope__8EDqaKtZCWIbyBmeputFbg ofScopeX60gensym198_;
						NI T35_;
						if (!(i_2 < colontmp__2)) goto LA30;
						iX60gensym198__2 = i_2;
						itX60gensym198_ = (*n)._kind_6.sons->data[iX60gensym198__2];
						branchX60gensym198_ = shallowCopy__ast_4414(itX60gensym198_);
						{
							NI jX60gensym198_;
							NI colontmp__3;
							NI T32_;
							NI i_3;
							jX60gensym198_ = (NI)0;
							colontmp__3 = (NI)0;
							T32_ = (NI)0;
							T32_ = len__ast_3155(itX60gensym198_);
							colontmp__3 = (NI)(T32_ - ((NI) 1));
							i_3 = ((NI) 0);
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA34;
									jX60gensym198_ = i_3;
									asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[jX60gensym198_]), copyTree__ast_4432((*itX60gensym198_)._kind_6.sons->data[jX60gensym198_]));
									i_3 += ((NI) 1);
								} LA34: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym198_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
						nestedScope__injectdestructors_72(s, (&ofScopeX60gensym198_));
						T35_ = (NI)0;
						T35_ = len__ast_3155(branchX60gensym198_);
						{
							NIM_BOOL T38_;
							NI T39_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
							T38_ = (NIM_BOOL)0;
							T39_ = (NI)0;
							T39_ = len__ast_3155(itX60gensym198_);
							T38_ = isEmptyType__ast_4780((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).typ);
							if (T38_) goto LA40_;
							T38_ = NIM_FALSE;
							LA40_: ;
							if (!T38_) goto LA41_;
							T43_ = NIM_NIL;
							{
								NI T46_;
								NIM_BOOL T47_;
								NI T50_;
								T46_ = (NI)0;
								T46_ = len__ast_3155(itX60gensym198_);
								T47_ = (NIM_BOOL)0;
								T47_ = isEmptyType__ast_4780((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T46_ - ((NI) 1))]).typ);
								if (!T47_) goto LA48_;
								T50_ = (NI)0;
								T50_ = len__ast_3155(itX60gensym198_);
								T43_ = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
							}
							goto LA44_;
							LA48_: ;
							{
								NI T52_;
								T52_ = (NI)0;
								T52_ = len__ast_3155(itX60gensym198_);
								T43_ = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))], c, (&ofScopeX60gensym198_), mode);
							}
							LA44_: ;
							asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&ofScopeX60gensym198_), T43_));
						}
						goto LA36_;
						LA41_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym236_;
							NI T54_;
							NI T55_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym236_;
							NI T56_;
							NI T57_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym236_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym236_;
							NI T84_;
							T54_ = (NI)0;
							T54_ = len__ast_3155(itX60gensym198_);
							T55_ = (NI)0;
							T55_ = len__ast_3155(itX60gensym198_);
							resultX60gensym236_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T54_ - ((NI) 1))]).info, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T55_ - ((NI) 1))]).typ);
							T56_ = (NI)0;
							T56_ = len__ast_3155(itX60gensym198_);
							T57_ = (NI)0;
							T57_ = len__ast_3155(itX60gensym198_);
							tmpX60gensym236_ = getTemp__injectdestructors_61(c, ofScopeX60gensym198_.parent, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))]).typ, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T57_ - ((NI) 1))]).info);
							(*(*tmpX60gensym236_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
							{
								NI T60_;
								NIM_BOOL T61_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T64_;
								NI T65_;
								NI T66_;
								T60_ = (NI)0;
								T60_ = len__ast_3155(itX60gensym198_);
								T61_ = (NIM_BOOL)0;
								T61_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).typ);
								if (!T61_) goto LA62_;
								T64_ = NIM_NIL;
								T64_ = genDestroy__injectdestructors_6516(c, tmpX60gensym236_);
								unsureAsgnRef((void**) (&(*ofScopeX60gensym198_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym198_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
								T65_ = (*ofScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*ofScopeX60gensym198_.parent).final->data[T65_]), T64_);
								T66_ = (NI)0;
								T66_ = len__ast_3155(itX60gensym198_);
								cpyX60gensym236_ = moveOrCopy__injectdestructors_110(tmpX60gensym236_, (*itX60gensym198_)._kind_6.sons->data[(NI)(T66_ - ((NI) 1))], c, (&ofScopeX60gensym198_), NIM_TRUE);
							}
							goto LA58_;
							LA62_: ;
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T68_;
								NI T69_;
								nimZeroMem((void*)T68_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T68_[0] = tmpX60gensym236_;
								T69_ = (NI)0;
								T69_ = len__ast_3155(itX60gensym198_);
								T68_[1] = p__injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T69_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								cpyX60gensym236_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T68_, 2);
							}
							LA58_: ;
							{
								NI T72_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym236_;
								NI T75_;
								T72_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T72_)) goto LA73_;
								T75_ = (NI)0;
								T75_ = len__ast_3155(itX60gensym198_);
								varSectionX60gensym236_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T75_ - ((NI) 1))]).info);
								{
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym236__2;
									NI i_4;
									NI L;
									NI T77_;
									tmpX60gensym236__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
									i_4 = ((NI) 0);
									T77_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
									L = T77_;
									{
										while (1) {
											tyArray__id9c0PBojP5C2oM2bRQSViA T80_;
											NI T81_;
											NI T82_;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T83_;
											if (!(i_4 < L)) goto LA79;
											tmpX60gensym236__2 = &ofScopeX60gensym198_.vars->data[i_4];
											nimZeroMem((void*)T80_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
											T80_[0] = newSymNode__ast_3704((*tmpX60gensym236__2));
											T81_ = (NI)0;
											T81_ = len__ast_3155(itX60gensym198_);
											T80_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
											T82_ = (NI)0;
											T82_ = len__ast_3155(itX60gensym198_);
											T80_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T82_ - ((NI) 1))]).info);
											T83_ = NIM_NIL;
											T83_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T80_, 3);
											add__ast_4798(varSectionX60gensym236_, T83_);
											i_4 += ((NI) 1);
										} LA79: ;
									}
								}
								add__ast_4798(resultX60gensym236_, varSectionX60gensym236_);
							}
							LA73_: ;
							T84_ = (NI)0;
							T84_ = len__ast_3155(itX60gensym198_);
							finSectionX60gensym236_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T84_ - ((NI) 1))]).info);
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym236_;
								NI i_5;
								NI L_2;
								NI T86_;
								mX60gensym236_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
								i_5 = ((NI) 0);
								T86_ = (ofScopeX60gensym198_.wasMoved ? ofScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_2 = T86_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA88;
										mX60gensym236_ = &ofScopeX60gensym198_.wasMoved->data[i_5];
										add__ast_4798(finSectionX60gensym236_, (*mX60gensym236_));
										i_5 += ((NI) 1);
									} LA88: ;
								}
							}
							{
								NI iX60gensym236_;
								NI colontmp__4;
								NI T90_;
								NI res;
								iX60gensym236_ = (NI)0;
								colontmp__4 = (NI)0;
								T90_ = ((ofScopeX60gensym198_.final ? ofScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__4 = T90_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA92;
										iX60gensym236_ = res;
										add__ast_4798(finSectionX60gensym236_, ofScopeX60gensym198_.final->data[iX60gensym236_]);
										res -= ((NI) 1);
									} LA92: ;
								}
							}
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T97_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T98_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T99_;
								if (!ofScopeX60gensym198_.needsTry) goto LA95_;
								nimZeroMem((void*)T97_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T97_[0] = cpyX60gensym236_;
								T97_[1] = p__injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								T98_ = NIM_NIL;
								T98_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T97_, 2);
								T99_ = NIM_NIL;
								T99_ = newTryFinally__lowerings_207(T98_, finSectionX60gensym236_);
								add__ast_4798(resultX60gensym236_, T99_);
							}
							goto LA93_;
							LA95_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T101_;
								add__ast_4798(resultX60gensym236_, cpyX60gensym236_);
								add__ast_4798(resultX60gensym236_, finSectionX60gensym236_);
								T101_ = NIM_NIL;
								T101_ = p__injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								add__ast_4798(resultX60gensym236_, T101_);
							}
							LA93_: ;
							{
								NIM_BOOL T106_;
								if (!!((ofScopeX60gensym198_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA104_;
								T106_ = (NIM_BOOL)0;
								T106_ = (*ofScopeX60gensym198_.parent).needsTry;
								if (T106_) goto LA107_;
								T106_ = ofScopeX60gensym198_.needsTry;
								LA107_: ;
								(*ofScopeX60gensym198_.parent).needsTry = T106_;
							}
							LA104_: ;
							asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), resultX60gensym236_);
						}
						LA36_: ;
						add__ast_4798(result, branchX60gensym198_);
						i_2 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T109_;
			tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym198_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym198_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T110_;
			(*c).inLoop += ((NI) 1);
			(*c).inLoopCond += ((NI) 1);
			result = copyNode__ast_4324(n);
			T109_ = NIM_NIL;
			T109_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			add__ast_4798(result, T109_);
			(*c).inLoopCond -= ((NI) 1);
			nimZeroMem((void*)(&bodyScopeX60gensym198_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198_));
			bodyResultX60gensym198_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			T110_ = NIM_NIL;
			T110_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym198_), bodyResultX60gensym198_);
			add__ast_4798(result, T110_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 95):
		{
			NI lastX60gensym198_;
			NI T112_;
			tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym198__2;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* bodyResultX60gensym198__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy__ast_4414(n);
			T112_ = (NI)0;
			T112_ = len__ast_3155(n);
			lastX60gensym198_ = (NI)(T112_ - ((NI) 1));
			{
				NI iX60gensym198__3;
				NI colontmp__5;
				NI i_6;
				iX60gensym198__3 = (NI)0;
				colontmp__5 = (NI)0;
				colontmp__5 = (NI)(lastX60gensym198_ - ((NI) 1));
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__5)) goto LA115;
						iX60gensym198__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym198__3]), (*n)._kind_6.sons->data[iX60gensym198__3]);
						i_6 += ((NI) 1);
					} LA115: ;
				}
			}
			asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym198_ - ((NI) 1))]), p__injectdestructors_105((*n)._kind_6.sons->data[(NI)(lastX60gensym198_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym198__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198__2));
			bodyResultX60gensym198__2 = p__injectdestructors_105((*n)._kind_6.sons->data[lastX60gensym198_], c, (&bodyScopeX60gensym198__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym198_]), processScope__injectdestructors_7005(c, (&bodyScopeX60gensym198__2), bodyResultX60gensym198__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
		{
			tyObject_Scope__8EDqaKtZCWIbyBmeputFbg bodyScopeX60gensym198__3;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T117_;
			result = copyNode__ast_4324(n);
			add__ast_4798(result, (*n)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym198__3), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
			nestedScope__injectdestructors_72(s, (&bodyScopeX60gensym198__3));
			T117_ = NIM_NIL;
			{
				NIM_BOOL T120_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T124_;
				T120_ = (NIM_BOOL)0;
				T120_ = isEmptyType__ast_4780((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				if (T120_) goto LA121_;
				T120_ = NIM_FALSE;
				LA121_: ;
				if (!T120_) goto LA122_;
				T124_ = NIM_NIL;
				T124_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), mode);
				T117_ = processScope__injectdestructors_7005(c, (&bodyScopeX60gensym198__3), T124_);
			}
			goto LA118_;
			LA122_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym258_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym258_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym258_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym258_;
				resultX60gensym258_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*n)._kind_6.sons->data[((NI) 1)]).info, (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				tmpX60gensym258_ = getTemp__injectdestructors_61(c, bodyScopeX60gensym198__3.parent, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				(*(*tmpX60gensym258_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
				{
					NIM_BOOL T128_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T131_;
					NI T132_;
					T128_ = (NIM_BOOL)0;
					T128_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T128_) goto LA129_;
					T131_ = NIM_NIL;
					T131_ = genDestroy__injectdestructors_6516(c, tmpX60gensym258_);
					unsureAsgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym198__3.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
					T132_ = (*bodyScopeX60gensym198__3.parent).final->Sup.len++;
					asgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final->data[T132_]), T131_);
					cpyX60gensym258_ = moveOrCopy__injectdestructors_110(tmpX60gensym258_, (*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), NIM_TRUE);
				}
				goto LA126_;
				LA129_: ;
				{
					tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T134_;
					nimZeroMem((void*)T134_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
					T134_[0] = tmpX60gensym258_;
					T134_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					cpyX60gensym258_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T134_, 2);
				}
				LA126_: ;
				{
					NI T137_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym258_;
					T137_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T137_)) goto LA138_;
					varSectionX60gensym258_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym258__2;
						NI i_7;
						NI L_3;
						NI T141_;
						tmpX60gensym258__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
						i_7 = ((NI) 0);
						T141_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
						L_3 = T141_;
						{
							while (1) {
								tyArray__id9c0PBojP5C2oM2bRQSViA T144_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T145_;
								if (!(i_7 < L_3)) goto LA143;
								tmpX60gensym258__2 = &bodyScopeX60gensym198__3.vars->data[i_7];
								nimZeroMem((void*)T144_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
								T144_[0] = newSymNode__ast_3704((*tmpX60gensym258__2));
								T144_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T144_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T145_ = NIM_NIL;
								T145_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T144_, 3);
								add__ast_4798(varSectionX60gensym258_, T145_);
								i_7 += ((NI) 1);
							} LA143: ;
						}
					}
					add__ast_4798(resultX60gensym258_, varSectionX60gensym258_);
				}
				LA138_: ;
				finSectionX60gensym258_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym258_;
					NI i_8;
					NI L_4;
					NI T147_;
					mX60gensym258_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
					i_8 = ((NI) 0);
					T147_ = (bodyScopeX60gensym198__3.wasMoved ? bodyScopeX60gensym198__3.wasMoved->Sup.len : 0);
					L_4 = T147_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA149;
							mX60gensym258_ = &bodyScopeX60gensym198__3.wasMoved->data[i_8];
							add__ast_4798(finSectionX60gensym258_, (*mX60gensym258_));
							i_8 += ((NI) 1);
						} LA149: ;
					}
				}
				{
					NI iX60gensym258_;
					NI colontmp__6;
					NI T151_;
					NI res_2;
					iX60gensym258_ = (NI)0;
					colontmp__6 = (NI)0;
					T151_ = ((bodyScopeX60gensym198__3.final ? bodyScopeX60gensym198__3.final->Sup.len : 0)-1);
					colontmp__6 = T151_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA153;
							iX60gensym258_ = res_2;
							add__ast_4798(finSectionX60gensym258_, bodyScopeX60gensym198__3.final->data[iX60gensym258_]);
							res_2 -= ((NI) 1);
						} LA153: ;
					}
				}
				{
					tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T158_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T159_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T160_;
					if (!bodyScopeX60gensym198__3.needsTry) goto LA156_;
					nimZeroMem((void*)T158_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
					T158_[0] = cpyX60gensym258_;
					T158_[1] = p__injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					T159_ = NIM_NIL;
					T159_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T158_, 2);
					T160_ = NIM_NIL;
					T160_ = newTryFinally__lowerings_207(T159_, finSectionX60gensym258_);
					add__ast_4798(resultX60gensym258_, T160_);
				}
				goto LA154_;
				LA156_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T162_;
					add__ast_4798(resultX60gensym258_, cpyX60gensym258_);
					add__ast_4798(resultX60gensym258_, finSectionX60gensym258_);
					T162_ = NIM_NIL;
					T162_ = p__injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					add__ast_4798(resultX60gensym258_, T162_);
				}
				LA154_: ;
				{
					NIM_BOOL T167_;
					if (!!((bodyScopeX60gensym198__3.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA165_;
					T167_ = (NIM_BOOL)0;
					T167_ = (*bodyScopeX60gensym198__3.parent).needsTry;
					if (T167_) goto LA168_;
					T167_ = bodyScopeX60gensym198__3.needsTry;
					LA168_: ;
					(*bodyScopeX60gensym198__3.parent).needsTry = T167_;
				}
				LA165_: ;
				T117_ = resultX60gensym258_;
			}
			LA118_: ;
			add__ast_4798(result, T117_);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
		{
			result = copyNode__ast_4324(n);
			{
				NI iX60gensym198__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym198__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len__ast_3155(n);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym198__2;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym198__2;
						tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym198_;
						NI T177_;
						if (!(i_9 < colontmp__7)) goto LA172;
						iX60gensym198__4 = i_9;
						itX60gensym198__2 = (*n)._kind_6.sons->data[iX60gensym198__4];
						branchX60gensym198__2 = shallowCopy__ast_4414(itX60gensym198__2);
						nimZeroMem((void*)(&branchScopeX60gensym198_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
						nestedScope__injectdestructors_72(s, (&branchScopeX60gensym198_));
						{
							if (!((*itX60gensym198__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86) || (*itX60gensym198__2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49))) goto LA175_;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
						}
						LA175_: ;
						T177_ = (NI)0;
						T177_ = len__ast_3155(branchX60gensym198__2);
						{
							NIM_BOOL T180_;
							NI T181_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T185_;
							T180_ = (NIM_BOOL)0;
							T181_ = (NI)0;
							T181_ = len__ast_3155(itX60gensym198__2);
							T180_ = isEmptyType__ast_4780((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T181_ - ((NI) 1))]).typ);
							if (T180_) goto LA182_;
							T180_ = NIM_FALSE;
							LA182_: ;
							if (!T180_) goto LA183_;
							T185_ = NIM_NIL;
							{
								NI T188_;
								NIM_BOOL T189_;
								NI T192_;
								T188_ = (NI)0;
								T188_ = len__ast_3155(itX60gensym198__2);
								T189_ = (NIM_BOOL)0;
								T189_ = isEmptyType__ast_4780((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T188_ - ((NI) 1))]).typ);
								if (!T189_) goto LA190_;
								T192_ = (NI)0;
								T192_ = len__ast_3155(itX60gensym198__2);
								T185_ = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T192_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
							}
							goto LA186_;
							LA190_: ;
							{
								NI T194_;
								T194_ = (NI)0;
								T194_ = len__ast_3155(itX60gensym198__2);
								T185_ = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T194_ - ((NI) 1))], c, (&branchScopeX60gensym198_), mode);
							}
							LA186_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T177_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym198_), T185_));
						}
						goto LA178_;
						LA183_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym287_;
							NI T196_;
							NI T197_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym287_;
							NI T198_;
							NI T199_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym287_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym287_;
							NI T226_;
							T196_ = (NI)0;
							T196_ = len__ast_3155(itX60gensym198__2);
							T197_ = (NI)0;
							T197_ = len__ast_3155(itX60gensym198__2);
							resultX60gensym287_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T196_ - ((NI) 1))]).info, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T197_ - ((NI) 1))]).typ);
							T198_ = (NI)0;
							T198_ = len__ast_3155(itX60gensym198__2);
							T199_ = (NI)0;
							T199_ = len__ast_3155(itX60gensym198__2);
							tmpX60gensym287_ = getTemp__injectdestructors_61(c, branchScopeX60gensym198_.parent, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T198_ - ((NI) 1))]).typ, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T199_ - ((NI) 1))]).info);
							(*(*tmpX60gensym287_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
							{
								NI T202_;
								NIM_BOOL T203_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T206_;
								NI T207_;
								NI T208_;
								T202_ = (NI)0;
								T202_ = len__ast_3155(itX60gensym198__2);
								T203_ = (NIM_BOOL)0;
								T203_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).typ);
								if (!T203_) goto LA204_;
								T206_ = NIM_NIL;
								T206_ = genDestroy__injectdestructors_6516(c, tmpX60gensym287_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
								T207_ = (*branchScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198_.parent).final->data[T207_]), T206_);
								T208_ = (NI)0;
								T208_ = len__ast_3155(itX60gensym198__2);
								cpyX60gensym287_ = moveOrCopy__injectdestructors_110(tmpX60gensym287_, (*itX60gensym198__2)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))], c, (&branchScopeX60gensym198_), NIM_TRUE);
							}
							goto LA200_;
							LA204_: ;
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T210_;
								NI T211_;
								nimZeroMem((void*)T210_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T210_[0] = tmpX60gensym287_;
								T211_ = (NI)0;
								T211_ = len__ast_3155(itX60gensym198__2);
								T210_[1] = p__injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T211_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								cpyX60gensym287_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T210_, 2);
							}
							LA200_: ;
							{
								NI T214_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym287_;
								NI T217_;
								T214_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T214_)) goto LA215_;
								T217_ = (NI)0;
								T217_ = len__ast_3155(itX60gensym198__2);
								varSectionX60gensym287_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T217_ - ((NI) 1))]).info);
								{
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym287__2;
									NI i_10;
									NI L_5;
									NI T219_;
									tmpX60gensym287__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
									i_10 = ((NI) 0);
									T219_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
									L_5 = T219_;
									{
										while (1) {
											tyArray__id9c0PBojP5C2oM2bRQSViA T222_;
											NI T223_;
											NI T224_;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T225_;
											if (!(i_10 < L_5)) goto LA221;
											tmpX60gensym287__2 = &branchScopeX60gensym198_.vars->data[i_10];
											nimZeroMem((void*)T222_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
											T222_[0] = newSymNode__ast_3704((*tmpX60gensym287__2));
											T223_ = (NI)0;
											T223_ = len__ast_3155(itX60gensym198__2);
											T222_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T223_ - ((NI) 1))]).info);
											T224_ = (NI)0;
											T224_ = len__ast_3155(itX60gensym198__2);
											T222_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))]).info);
											T225_ = NIM_NIL;
											T225_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T222_, 3);
											add__ast_4798(varSectionX60gensym287_, T225_);
											i_10 += ((NI) 1);
										} LA221: ;
									}
								}
								add__ast_4798(resultX60gensym287_, varSectionX60gensym287_);
							}
							LA215_: ;
							T226_ = (NI)0;
							T226_ = len__ast_3155(itX60gensym198__2);
							finSectionX60gensym287_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T226_ - ((NI) 1))]).info);
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym287_;
								NI i_11;
								NI L_6;
								NI T228_;
								mX60gensym287_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
								i_11 = ((NI) 0);
								T228_ = (branchScopeX60gensym198_.wasMoved ? branchScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_6 = T228_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA230;
										mX60gensym287_ = &branchScopeX60gensym198_.wasMoved->data[i_11];
										add__ast_4798(finSectionX60gensym287_, (*mX60gensym287_));
										i_11 += ((NI) 1);
									} LA230: ;
								}
							}
							{
								NI iX60gensym287_;
								NI colontmp__8;
								NI T232_;
								NI res_3;
								iX60gensym287_ = (NI)0;
								colontmp__8 = (NI)0;
								T232_ = ((branchScopeX60gensym198_.final ? branchScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__8 = T232_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA234;
										iX60gensym287_ = res_3;
										add__ast_4798(finSectionX60gensym287_, branchScopeX60gensym198_.final->data[iX60gensym287_]);
										res_3 -= ((NI) 1);
									} LA234: ;
								}
							}
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T239_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T240_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T241_;
								if (!branchScopeX60gensym198_.needsTry) goto LA237_;
								nimZeroMem((void*)T239_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T239_[0] = cpyX60gensym287_;
								T239_[1] = p__injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								T240_ = NIM_NIL;
								T240_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T239_, 2);
								T241_ = NIM_NIL;
								T241_ = newTryFinally__lowerings_207(T240_, finSectionX60gensym287_);
								add__ast_4798(resultX60gensym287_, T241_);
							}
							goto LA235_;
							LA237_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T243_;
								add__ast_4798(resultX60gensym287_, cpyX60gensym287_);
								add__ast_4798(resultX60gensym287_, finSectionX60gensym287_);
								T243_ = NIM_NIL;
								T243_ = p__injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								add__ast_4798(resultX60gensym287_, T243_);
							}
							LA235_: ;
							{
								NIM_BOOL T248_;
								if (!!((branchScopeX60gensym198_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA246_;
								T248_ = (NIM_BOOL)0;
								T248_ = (*branchScopeX60gensym198_.parent).needsTry;
								if (T248_) goto LA249_;
								T248_ = branchScopeX60gensym198_.needsTry;
								LA249_: ;
								(*branchScopeX60gensym198_.parent).needsTry = T248_;
							}
							LA246_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T177_ - ((NI) 1))]), resultX60gensym287_);
						}
						LA178_: ;
						add__ast_4798(result, branchX60gensym198__2);
						i_9 += ((NI) 1);
					} LA172: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
		{
			tyObject_Scope__8EDqaKtZCWIbyBmeputFbg tryScopeX60gensym198_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T251_;
			result = copyNode__ast_4324(n);
			nimZeroMem((void*)(&tryScopeX60gensym198_), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
			nestedScope__injectdestructors_72(s, (&tryScopeX60gensym198_));
			T251_ = NIM_NIL;
			{
				NIM_BOOL T254_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T258_;
				T254_ = (NIM_BOOL)0;
				T254_ = isEmptyType__ast_4780((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (T254_) goto LA255_;
				T254_ = NIM_FALSE;
				LA255_: ;
				if (!T254_) goto LA256_;
				T258_ = NIM_NIL;
				{
					NIM_BOOL T261_;
					T261_ = (NIM_BOOL)0;
					T261_ = isEmptyType__ast_4780((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T261_) goto LA262_;
					T258_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				}
				goto LA259_;
				LA262_: ;
				{
					T258_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), mode);
				}
				LA259_: ;
				T251_ = processScope__injectdestructors_7005(c, (&tryScopeX60gensym198_), T258_);
			}
			goto LA252_;
			LA256_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym303_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym303_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym303_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym303_;
				resultX60gensym303_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*n)._kind_6.sons->data[((NI) 0)]).info, (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				tmpX60gensym303_ = getTemp__injectdestructors_61(c, tryScopeX60gensym198_.parent, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				(*(*tmpX60gensym303_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
				{
					NIM_BOOL T268_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T271_;
					NI T272_;
					T268_ = (NIM_BOOL)0;
					T268_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T268_) goto LA269_;
					T271_ = NIM_NIL;
					T271_ = genDestroy__injectdestructors_6516(c, tmpX60gensym303_);
					unsureAsgnRef((void**) (&(*tryScopeX60gensym198_.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym198_.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
					T272_ = (*tryScopeX60gensym198_.parent).final->Sup.len++;
					asgnRef((void**) (&(*tryScopeX60gensym198_.parent).final->data[T272_]), T271_);
					cpyX60gensym303_ = moveOrCopy__injectdestructors_110(tmpX60gensym303_, (*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), NIM_TRUE);
				}
				goto LA266_;
				LA269_: ;
				{
					tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T274_;
					nimZeroMem((void*)T274_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
					T274_[0] = tmpX60gensym303_;
					T274_[1] = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					cpyX60gensym303_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T274_, 2);
				}
				LA266_: ;
				{
					NI T277_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym303_;
					T277_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
					if (!(((NI) 0) < T277_)) goto LA278_;
					varSectionX60gensym303_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym303__2;
						NI i_12;
						NI L_7;
						NI T281_;
						tmpX60gensym303__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
						i_12 = ((NI) 0);
						T281_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
						L_7 = T281_;
						{
							while (1) {
								tyArray__id9c0PBojP5C2oM2bRQSViA T284_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T285_;
								if (!(i_12 < L_7)) goto LA283;
								tmpX60gensym303__2 = &tryScopeX60gensym198_.vars->data[i_12];
								nimZeroMem((void*)T284_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
								T284_[0] = newSymNode__ast_3704((*tmpX60gensym303__2));
								T284_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T284_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T285_ = NIM_NIL;
								T285_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T284_, 3);
								add__ast_4798(varSectionX60gensym303_, T285_);
								i_12 += ((NI) 1);
							} LA283: ;
						}
					}
					add__ast_4798(resultX60gensym303_, varSectionX60gensym303_);
				}
				LA278_: ;
				finSectionX60gensym303_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym303_;
					NI i_13;
					NI L_8;
					NI T287_;
					mX60gensym303_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
					i_13 = ((NI) 0);
					T287_ = (tryScopeX60gensym198_.wasMoved ? tryScopeX60gensym198_.wasMoved->Sup.len : 0);
					L_8 = T287_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA289;
							mX60gensym303_ = &tryScopeX60gensym198_.wasMoved->data[i_13];
							add__ast_4798(finSectionX60gensym303_, (*mX60gensym303_));
							i_13 += ((NI) 1);
						} LA289: ;
					}
				}
				{
					NI iX60gensym303_;
					NI colontmp__9;
					NI T291_;
					NI res_4;
					iX60gensym303_ = (NI)0;
					colontmp__9 = (NI)0;
					T291_ = ((tryScopeX60gensym198_.final ? tryScopeX60gensym198_.final->Sup.len : 0)-1);
					colontmp__9 = T291_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA293;
							iX60gensym303_ = res_4;
							add__ast_4798(finSectionX60gensym303_, tryScopeX60gensym198_.final->data[iX60gensym303_]);
							res_4 -= ((NI) 1);
						} LA293: ;
					}
				}
				{
					tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T298_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T305_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T306_;
					if (!tryScopeX60gensym198_.needsTry) goto LA296_;
					nimZeroMem((void*)T298_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
					T298_[0] = cpyX60gensym303_;
					{
						NIM_BOOL T301_;
						T301_ = (NIM_BOOL)0;
						T301_ = isEmptyType__ast_4780((*tmpX60gensym303_).typ);
						if (!T301_) goto LA302_;
						T298_[1] = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					}
					goto LA299_;
					LA302_: ;
					{
						T298_[1] = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA299_: ;
					T305_ = NIM_NIL;
					T305_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T298_, 2);
					T306_ = NIM_NIL;
					T306_ = newTryFinally__lowerings_207(T305_, finSectionX60gensym303_);
					add__ast_4798(resultX60gensym303_, T306_);
				}
				goto LA294_;
				LA296_: ;
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T308_;
					add__ast_4798(resultX60gensym303_, cpyX60gensym303_);
					add__ast_4798(resultX60gensym303_, finSectionX60gensym303_);
					T308_ = NIM_NIL;
					{
						NIM_BOOL T311_;
						T311_ = (NIM_BOOL)0;
						T311_ = isEmptyType__ast_4780((*tmpX60gensym303_).typ);
						if (!T311_) goto LA312_;
						T308_ = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
					}
					goto LA309_;
					LA312_: ;
					{
						T308_ = p__injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA309_: ;
					add__ast_4798(resultX60gensym303_, T308_);
				}
				LA294_: ;
				{
					NIM_BOOL T319_;
					if (!!((tryScopeX60gensym198_.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA317_;
					T319_ = (NIM_BOOL)0;
					T319_ = (*tryScopeX60gensym198_.parent).needsTry;
					if (T319_) goto LA320_;
					T319_ = tryScopeX60gensym198_.needsTry;
					LA320_: ;
					(*tryScopeX60gensym198_.parent).needsTry = T319_;
				}
				LA317_: ;
				T251_ = resultX60gensym303_;
			}
			LA252_: ;
			add__ast_4798(result, T251_);
			{
				NI iX60gensym198__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym198__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len__ast_3155(n);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itX60gensym198__3;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchX60gensym198__3;
						tyObject_Scope__8EDqaKtZCWIbyBmeputFbg branchScopeX60gensym198__2;
						NI T324_;
						if (!(i_14 < colontmp__10)) goto LA323;
						iX60gensym198__5 = i_14;
						itX60gensym198__3 = (*n)._kind_6.sons->data[iX60gensym198__5];
						branchX60gensym198__3 = copyTree__ast_4432(itX60gensym198__3);
						nimZeroMem((void*)(&branchScopeX60gensym198__2), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
						nestedScope__injectdestructors_72(s, (&branchScopeX60gensym198__2));
						T324_ = (NI)0;
						T324_ = len__ast_3155(branchX60gensym198__3);
						{
							NIM_BOOL T327_;
							NIM_BOOL T328_;
							NI T329_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T334_;
							T327_ = (NIM_BOOL)0;
							T328_ = (NIM_BOOL)0;
							T329_ = (NI)0;
							T329_ = len__ast_3155(itX60gensym198__3);
							T328_ = isEmptyType__ast_4780((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T329_ - ((NI) 1))]).typ);
							if (T328_) goto LA330_;
							T328_ = NIM_FALSE;
							LA330_: ;
							T327_ = T328_;
							if (T327_) goto LA331_;
							T327_ = ((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107));
							LA331_: ;
							if (!T327_) goto LA332_;
							T334_ = NIM_NIL;
							{
								NI T339_;
								if (!((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA337_;
								T339_ = (NI)0;
								T339_ = len__ast_3155(itX60gensym198__3);
								T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T339_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
							}
							goto LA335_;
							LA337_: ;
							{
								{
									NI T343_;
									NIM_BOOL T344_;
									NI T347_;
									T343_ = (NI)0;
									T343_ = len__ast_3155(itX60gensym198__3);
									T344_ = (NIM_BOOL)0;
									T344_ = isEmptyType__ast_4780((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T343_ - ((NI) 1))]).typ);
									if (!T344_) goto LA345_;
									T347_ = (NI)0;
									T347_ = len__ast_3155(itX60gensym198__3);
									T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T347_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								}
								goto LA341_;
								LA345_: ;
								{
									NI T349_;
									T349_ = (NI)0;
									T349_ = len__ast_3155(itX60gensym198__3);
									T334_ = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T349_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), mode);
								}
								LA341_: ;
							}
							LA335_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T324_ - ((NI) 1))]), processScope__injectdestructors_7005(c, (&branchScopeX60gensym198__2), T334_));
						}
						goto LA325_;
						LA332_: ;
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resultX60gensym334_;
							NI T351_;
							NI T352_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tmpX60gensym334_;
							NI T353_;
							NI T354_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cpyX60gensym334_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finSectionX60gensym334_;
							NI T381_;
							T351_ = (NI)0;
							T351_ = len__ast_3155(itX60gensym198__3);
							T352_ = (NI)0;
							T352_ = len__ast_3155(itX60gensym198__3);
							resultX60gensym334_ = newNodeIT__ast_3342(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T351_ - ((NI) 1))]).info, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T352_ - ((NI) 1))]).typ);
							T353_ = (NI)0;
							T353_ = len__ast_3155(itX60gensym198__3);
							T354_ = (NI)0;
							T354_ = len__ast_3155(itX60gensym198__3);
							tmpX60gensym334_ = getTemp__injectdestructors_61(c, branchScopeX60gensym198__2.parent, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))]).typ, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T354_ - ((NI) 1))]).info);
							(*(*tmpX60gensym334_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 45)) & 63);
							{
								NI T357_;
								NIM_BOOL T358_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T361_;
								NI T362_;
								NI T363_;
								T357_ = (NI)0;
								T357_ = len__ast_3155(itX60gensym198__3);
								T358_ = (NIM_BOOL)0;
								T358_ = hasDestructor__injectdestructors_49((&(*c)), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T357_ - ((NI) 1))]).typ);
								if (!T358_) goto LA359_;
								T361_ = NIM_NIL;
								T361_ = genDestroy__injectdestructors_6516(c, tmpX60gensym334_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198__2.parent).final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
								T362_ = (*branchScopeX60gensym198__2.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final->data[T362_]), T361_);
								T363_ = (NI)0;
								T363_ = len__ast_3155(itX60gensym198__3);
								cpyX60gensym334_ = moveOrCopy__injectdestructors_110(tmpX60gensym334_, (*itX60gensym198__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), NIM_TRUE);
							}
							goto LA355_;
							LA359_: ;
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T365_;
								NI T366_;
								nimZeroMem((void*)T365_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T365_[0] = tmpX60gensym334_;
								T366_ = (NI)0;
								T366_ = len__ast_3155(itX60gensym198__3);
								T365_[1] = p__injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T366_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								cpyX60gensym334_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T365_, 2);
							}
							LA355_: ;
							{
								NI T369_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSectionX60gensym334_;
								NI T372_;
								T369_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T369_)) goto LA370_;
								T372_ = (NI)0;
								T372_ = len__ast_3155(itX60gensym198__3);
								varSectionX60gensym334_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T372_ - ((NI) 1))]).info);
								{
									tyObject_TSym__3r34mwqcVmg5JFNmiaVncw** tmpX60gensym334__2;
									NI i_15;
									NI L_9;
									NI T374_;
									tmpX60gensym334__2 = (tyObject_TSym__3r34mwqcVmg5JFNmiaVncw**)0;
									i_15 = ((NI) 0);
									T374_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
									L_9 = T374_;
									{
										while (1) {
											tyArray__id9c0PBojP5C2oM2bRQSViA T377_;
											NI T378_;
											NI T379_;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T380_;
											if (!(i_15 < L_9)) goto LA376;
											tmpX60gensym334__2 = &branchScopeX60gensym198__2.vars->data[i_15];
											nimZeroMem((void*)T377_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
											T377_[0] = newSymNode__ast_3704((*tmpX60gensym334__2));
											T378_ = (NI)0;
											T378_ = len__ast_3155(itX60gensym198__3);
											T377_[1] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
											T379_ = (NI)0;
											T379_ = len__ast_3155(itX60gensym198__3);
											T377_[2] = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T379_ - ((NI) 1))]).info);
											T380_ = NIM_NIL;
											T380_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35), T377_, 3);
											add__ast_4798(varSectionX60gensym334_, T380_);
											i_15 += ((NI) 1);
										} LA376: ;
									}
								}
								add__ast_4798(resultX60gensym334_, varSectionX60gensym334_);
							}
							LA370_: ;
							T381_ = (NI)0;
							T381_ = len__ast_3155(itX60gensym198__3);
							finSectionX60gensym334_ = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T381_ - ((NI) 1))]).info);
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** mX60gensym334_;
								NI i_16;
								NI L_10;
								NI T383_;
								mX60gensym334_ = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
								i_16 = ((NI) 0);
								T383_ = (branchScopeX60gensym198__2.wasMoved ? branchScopeX60gensym198__2.wasMoved->Sup.len : 0);
								L_10 = T383_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA385;
										mX60gensym334_ = &branchScopeX60gensym198__2.wasMoved->data[i_16];
										add__ast_4798(finSectionX60gensym334_, (*mX60gensym334_));
										i_16 += ((NI) 1);
									} LA385: ;
								}
							}
							{
								NI iX60gensym334_;
								NI colontmp__11;
								NI T387_;
								NI res_5;
								iX60gensym334_ = (NI)0;
								colontmp__11 = (NI)0;
								T387_ = ((branchScopeX60gensym198__2.final ? branchScopeX60gensym198__2.final->Sup.len : 0)-1);
								colontmp__11 = T387_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA389;
										iX60gensym334_ = res_5;
										add__ast_4798(finSectionX60gensym334_, branchScopeX60gensym198__2.final->data[iX60gensym334_]);
										res_5 -= ((NI) 1);
									} LA389: ;
								}
							}
							{
								tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T394_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T395_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T396_;
								if (!branchScopeX60gensym198__2.needsTry) goto LA392_;
								nimZeroMem((void*)T394_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
								T394_[0] = cpyX60gensym334_;
								T394_[1] = p__injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								T395_ = NIM_NIL;
								T395_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), T394_, 2);
								T396_ = NIM_NIL;
								T396_ = newTryFinally__lowerings_207(T395_, finSectionX60gensym334_);
								add__ast_4798(resultX60gensym334_, T396_);
							}
							goto LA390_;
							LA392_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T398_;
								add__ast_4798(resultX60gensym334_, cpyX60gensym334_);
								add__ast_4798(resultX60gensym334_, finSectionX60gensym334_);
								T398_ = NIM_NIL;
								T398_ = p__injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								add__ast_4798(resultX60gensym334_, T398_);
							}
							LA390_: ;
							{
								NIM_BOOL T403_;
								if (!!((branchScopeX60gensym198__2.parent == ((tyObject_Scope__8EDqaKtZCWIbyBmeputFbg*) NIM_NIL)))) goto LA401_;
								T403_ = (NIM_BOOL)0;
								T403_ = (*branchScopeX60gensym198__2.parent).needsTry;
								if (T403_) goto LA404_;
								T403_ = branchScopeX60gensym198__2.needsTry;
								LA404_: ;
								(*branchScopeX60gensym198__2.parent).needsTry = T403_;
							}
							LA401_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T324_ - ((NI) 1))]), resultX60gensym334_);
						}
						LA325_: ;
						add__ast_4798(result, branchX60gensym198__3);
						i_14 += ((NI) 1);
					} LA323: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 93):
		{
			result = copyTree__ast_4432(n);
			asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		default:
		{
		}
		break;
		}
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2))) goto LA408_;
		{
			NIM_BOOL T412_;
			T412_ = (NIM_BOOL)0;
			T412_ = containsConstSeq__injectdestructors_6849(n);
			if (!T412_) goto LA413_;
			result = passCopyToSink__injectdestructors_6794(n, c, s);
		}
		goto LA410_;
		LA413_: ;
		{
			if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 5) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23) || (*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160))) goto LA416_;
			result = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
		}
		goto LA410_;
		LA416_: ;
		{
			NIM_BOOL T419_;
			NIM_BOOL T420_;
			NIM_BOOL T421_;
			NIM_BOOL T422_;
			NIM_BOOL T427_;
			T419_ = (NIM_BOOL)0;
			T420_ = (NIM_BOOL)0;
			T421_ = (NIM_BOOL)0;
			T422_ = (NIM_BOOL)0;
			T422_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T422_)) goto LA423_;
			T422_ = isSinkParam__ast_5042((*n)._kind_4.sym);
			LA423_: ;
			T421_ = T422_;
			if (T421_) goto LA424_;
			T421_ = isAnalysableFieldAccess__dfa_911(n, (*c).owner);
			LA424_: ;
			T420_ = T421_;
			if (!(T420_)) goto LA425_;
			T420_ = isLastRead__injectdestructors_6092(n, c);
			LA425_: ;
			T419_ = T420_;
			if (!(T419_)) goto LA426_;
			T427_ = (NIM_BOOL)0;
			T427_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
			if (!(T427_)) goto LA428_;
			T427_ = isCursor__injectdestructors_6358(n);
			LA428_: ;
			T419_ = !(T427_);
			LA426_: ;
			if (!T419_) goto LA429_;
			result = destructiveMoveVar__injectdestructors_6749(n, c, s);
		}
		goto LA410_;
		LA429_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60))) goto LA432_;
			result = copyTree__ast_4432(n);
			{
				NIM_BOOL T436_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T437_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T439_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* nTyp;
				T436_ = (NIM_BOOL)0;
				T437_ = NIM_NIL;
				T437_ = skipTypes__ast_3723((*n).typ, TM__qy9cjzsMcb87orRThTwa4gQ_38);
				T436_ = !(((*T437_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
				if (!(T436_)) goto LA438_;
				T439_ = NIM_NIL;
				T439_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__qy9cjzsMcb87orRThTwa4gQ_38);
				T436_ = ((*T439_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
				LA438_: ;
				if (!T436_) goto LA440_;
				nTyp = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2)));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp);
			}
			goto LA434_;
			LA440_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2)));
			}
			LA434_: ;
		}
		goto LA410_;
		LA432_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66) || (*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67))) goto LA444_;
			result = copyTree__ast_4432(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2)));
		}
		goto LA410_;
		LA444_: ;
		{
			if (!((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL))) goto LA447_;
			result = p__injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
		}
		goto LA410_;
		LA447_: ;
		{
			result = passCopyToSink__injectdestructors_6794(n, c, s);
		}
		LA410_: ;
	}
	goto LA1_;
	LA408_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 39):
		{
			tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw m;
			{
				if (!(mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0))) goto LA454_;
				m = ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0);
			}
			goto LA452_;
			LA454_: ;
			{
				m = ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2);
			}
			LA452_: ;
			result = copyTree__ast_4432(n);
			{
				NI i_17;
				NI colontmp__12;
				NI colontmp__13;
				NI i_18;
				i_17 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__13 = (NI)0;
				colontmp__12 = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 155));
				colontmp__13 = len__ast_3155(n);
				i_18 = colontmp__12;
				{
					while (1) {
						if (!(i_18 < colontmp__13)) goto LA459;
						i_17 = i_18;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA462_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA460_;
						LA462_: ;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44))) goto LA465_;
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 0)], c, s, m));
							asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_17])._kind_6.sons->data[((NI) 1)], c, s, m));
						}
						goto LA460_;
						LA465_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_17]), p__injectdestructors_105((*n)._kind_6.sons->data[i_17], c, s, m));
						}
						LA460_: ;
						i_18 += ((NI) 1);
					} LA459: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
		{
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
			NIM_BOOL isRefConstr;
			tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw m_2;
			t = skipTypes__ast_3723((*n).typ, TM__qy9cjzsMcb87orRThTwa4gQ_33);
			isRefConstr = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 22));
			{
				if (!isRefConstr) goto LA471_;
				m_2 = ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2);
			}
			goto LA469_;
			LA471_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0))) goto LA474_;
				m_2 = ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0);
			}
			goto LA469_;
			LA474_: ;
			{
				m_2 = ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2);
			}
			LA469_: ;
			result = copyTree__ast_4432(n);
			{
				NI i_19;
				NI colontmp__14;
				NI i_20;
				i_19 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len__ast_3155(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						if (!(i_20 < colontmp__14)) goto LA479;
						i_19 = i_20;
						{
							tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field;
							if (!((*(*n)._kind_6.sons->data[i_19]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34))) goto LA482_;
							field = lookupFieldAgain__types_4152(t, (*(*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 0)])._kind_4.sym);
							{
								NIM_BOOL T486_;
								T486_ = (NIM_BOOL)0;
								T486_ = !((field == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL)));
								if (!(T486_)) goto LA487_;
								T486_ = (((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 41))&63U)))!=0);
								LA487_: ;
								if (!T486_) goto LA488_;
								asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
							}
							goto LA484_;
							LA488_: ;
							{
								asgnRef((void**) (&(*(*result)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 1)], c, s, m_2));
							}
							LA484_: ;
						}
						goto LA480_;
						LA482_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p__injectdestructors_105((*n)._kind_6.sons->data[i_19], c, s, m_2));
						}
						LA480_: ;
						i_20 += ((NI) 1);
					} LA479: ;
				}
			}
			{
				NIM_BOOL T494_;
				T494_ = (NIM_BOOL)0;
				T494_ = (mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
				if (!(T494_)) goto LA495_;
				T494_ = isRefConstr;
				LA495_: ;
				if (!T494_) goto LA496_;
				result = ensureDestruction__injectdestructors_6874(result, n, c, s);
			}
			LA496_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
		{
			NI inSpawn;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* parameters;
			NI L_11;
			inSpawn = (*c).inSpawn;
			{
				NIM_BOOL T501_;
				T501_ = (NIM_BOOL)0;
				T501_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T501_)) goto LA502_;
				T501_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 199));
				LA502_: ;
				if (!T501_) goto LA503_;
				(*c).inSpawn += ((NI) 1);
			}
			goto LA499_;
			LA503_: ;
			{
				if (!(((NI) 0) < (*c).inSpawn)) goto LA506_;
				(*c).inSpawn -= ((NI) 1);
			}
			goto LA499_;
			LA506_: ;
			LA499_: ;
			parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
			{
				if (!!((parameters == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)))) goto LA510_;
				L_11 = len__ast_3990(parameters);
			}
			goto LA508_;
			LA510_: ;
			{
				L_11 = ((NI) 0);
			}
			LA508_: ;
			result = shallowCopy__ast_4414(n);
			{
				NI i_21;
				NI colontmp__15;
				NI i_22;
				i_21 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len__ast_3155(n);
				i_22 = ((NI) 1);
				{
					while (1) {
						if (!(i_22 < colontmp__15)) goto LA515;
						i_21 = i_22;
						{
							NIM_BOOL T518_;
							T518_ = (NIM_BOOL)0;
							T518_ = (i_21 < L_11);
							if (!(T518_)) goto LA519_;
							T518_ = isCompileTimeOnly__types_3592((*parameters).sons->data[i_21]);
							LA519_: ;
							if (!T518_) goto LA520_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), (*n)._kind_6.sons->data[i_21]);
						}
						goto LA516_;
						LA520_: ;
						{
							NIM_BOOL T523_;
							NIM_BOOL T525_;
							T523_ = (NIM_BOOL)0;
							T523_ = (i_21 < L_11);
							if (!(T523_)) goto LA524_;
							T525_ = (NIM_BOOL)0;
							T525_ = isSinkTypeForParam__types_4145((*parameters).sons->data[i_21]);
							if (T525_) goto LA526_;
							T525_ = (((NI) 0) < inSpawn);
							LA526_: ;
							T523_ = T525_;
							LA524_: ;
							if (!T523_) goto LA527_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p__injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2)));
						}
						goto LA516_;
						LA527_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p__injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
						}
						LA516_: ;
						i_22 += ((NI) 1);
					} LA515: ;
				}
			}
			{
				NIM_BOOL T532_;
				T532_ = (NIM_BOOL)0;
				T532_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T532_)) goto LA533_;
				T532_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 33));
				LA533_: ;
				if (!T532_) goto LA534_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyTree__ast_4432((*n)._kind_6.sons->data[((NI) 0)]));
				{
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* destroyOld;
					tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T540_;
					if (!((176 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA538_;
					destroyOld = genDestroy__injectdestructors_6516(c, (*result)._kind_6.sons->data[((NI) 1)]);
					nimZeroMem((void*)T540_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
					T540_[0] = destroyOld;
					T540_[1] = result;
					result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T540_, 2);
				}
				LA538_: ;
			}
			goto LA530_;
			LA534_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
			}
			LA530_: ;
			{
				NIM_BOOL T544_;
				T544_ = (NIM_BOOL)0;
				T544_ = canRaise__ast_5100((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T544_) goto LA545_;
				(*s).needsTry = NIM_TRUE;
			}
			LA545_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0))) goto LA549_;
				result = ensureDestruction__injectdestructors_6874(result, n, c, s);
			}
			LA549_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114):
		{
			result = shallowCopy__ast_4414(n);
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA554_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
			}
			goto LA552_;
			LA554_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyNode__ast_4324((*n)._kind_6.sons->data[((NI) 0)]));
			}
			LA552_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
		{
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
				it = NIM_NIL;
				{
					NI i_23;
					NI colontmp__16;
					NI i_24;
					i_23 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = safeLen__ast_3148(n);
					i_24 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ri;
							NI T562_;
							if (!(i_24 < colontmp__16)) goto LA561;
							i_23 = i_24;
							it = (*n)._kind_6.sons->data[i_23];
							T562_ = (NI)0;
							T562_ = len__ast_3155(it);
							ri = (*it)._kind_6.sons->data[(NI)(T562_ - ((NI) 1))];
							{
								NIM_BOOL T565_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T569_;
								T565_ = (NIM_BOOL)0;
								T565_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36));
								if (!(T565_)) goto LA566_;
								T565_ = hasDestructor__injectdestructors_49((&(*c)), (*ri).typ);
								LA566_: ;
								if (!T565_) goto LA567_;
								x = lowerTupleUnpacking__lowerings_116((*c).graph, it, (*c).idgen, (*c).owner);
								T569_ = NIM_NIL;
								T569_ = p__injectdestructors_105(x, c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
								add__ast_4798(result, T569_);
							}
							goto LA563_;
							LA567_: ;
							{
								NIM_BOOL T571_;
								T571_ = (NIM_BOOL)0;
								T571_ = ((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35));
								if (!(T571_)) goto LA572_;
								T571_ = hasDestructor__injectdestructors_49((&(*c)), (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
								LA572_: ;
								if (!T571_) goto LA573_;
								{
									NI j;
									NI colontmp__17;
									NI T576_;
									NI i_25;
									j = (NI)0;
									colontmp__17 = (NI)0;
									T576_ = (NI)0;
									T576_ = len__ast_3155(it);
									colontmp__17 = (NI)(T576_ - ((NI) 2));
									i_25 = ((NI) 0);
									{
										while (1) {
											if (!(i_25 < colontmp__17)) goto LA578;
											j = i_25;
											{
												tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v;
												v = (*it)._kind_6.sons->data[j];
												{
													if (!((*v).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA582_;
													{
														if (!(((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 28))&63U)))!=0)) goto LA586_;
														goto LA579;
													}
													LA586_: ;
													pVarTopLevel__injectdestructors_6956(v, c, s, result);
												}
												LA582_: ;
												{
													tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T592_;
													if (!!(((*ri).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA590_;
													T592_ = NIM_NIL;
													T592_ = moveOrCopy__injectdestructors_110(v, ri, c, s, ((*v).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
													add__ast_4798(result, T592_);
												}
												goto LA588_;
												LA590_: ;
												{
													NIM_BOOL T594_;
													NIM_BOOL skipInit;
													NIM_BOOL T598_;
													T594_ = (NIM_BOOL)0;
													T594_ = ((*ri).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1));
													if (!(T594_)) goto LA595_;
													T594_ = (((NI) 0) < (*c).inLoop);
													LA595_: ;
													if (!T594_) goto LA596_;
													T598_ = (NIM_BOOL)0;
													T598_ = ((*v).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45));
													if (!(T598_)) goto LA599_;
													T598_ = (((*(*(*v)._kind_6.sons->data[((NI) 1)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 14))&63U)))!=0);
													LA599_: ;
													skipInit = T598_;
													{
														tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T604_;
														tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T605_;
														if (!!(skipInit)) goto LA602_;
														T604_ = NIM_NIL;
														T604_ = genDefaultCall__injectdestructors_6740((*v).typ, (&(*c)), (*v).info);
														T605_ = NIM_NIL;
														T605_ = moveOrCopy__injectdestructors_110(v, T604_, c, s, ((*v).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3)));
														add__ast_4798(result, T605_);
													}
													LA602_: ;
												}
												goto LA588_;
												LA596_: ;
												LA588_: ;
											} LA579: ;
											i_25 += ((NI) 1);
										} LA578: ;
									}
								}
							}
							goto LA563_;
							LA573_: ;
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v_2;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* itCopy;
								NI T611_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T612_;
								v_2 = copyNode__ast_4324(n);
								itCopy = copyNode__ast_4324(it);
								{
									NI j_2;
									NI colontmp__18;
									NI T608_;
									NI i_26;
									j_2 = (NI)0;
									colontmp__18 = (NI)0;
									T608_ = (NI)0;
									T608_ = len__ast_3155(it);
									colontmp__18 = (NI)(T608_ - ((NI) 1));
									i_26 = ((NI) 0);
									{
										while (1) {
											if (!(i_26 < colontmp__18)) goto LA610;
											j_2 = i_26;
											add__ast_4798(itCopy, (*it)._kind_6.sons->data[j_2]);
											i_26 += ((NI) 1);
										} LA610: ;
									}
								}
								T611_ = (NI)0;
								T611_ = len__ast_3155(it);
								T612_ = NIM_NIL;
								T612_ = p__injectdestructors_105((*it)._kind_6.sons->data[(NI)(T611_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
								add__ast_4798(itCopy, T612_);
								add__ast_4798(v_2, itCopy);
								add__ast_4798(result, v_2);
							}
							LA563_: ;
							i_24 += ((NI) 1);
						} LA561: ;
					}
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
		{
			{
				NIM_BOOL T616_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T624_;
				T616_ = (NIM_BOOL)0;
				T616_ = hasDestructor__injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (!(T616_)) goto LA617_;
				T616_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51)));
				LA617_: ;
				if (!T616_) goto LA618_;
				{
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46))) goto LA622_;
					cycleCheck__injectdestructors_6897(n, c);
				}
				LA622_: ;
				T624_ = NIM_NIL;
				T624_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				result = moveOrCopy__injectdestructors_110(T624_, (*n)._kind_6.sons->data[((NI) 1)], c, s, NIM_FALSE);
			}
			goto LA614_;
			LA618_: ;
			{
				NIM_BOOL T626_;
				T626_ = (NIM_BOOL)0;
				T626_ = isDiscriminantField__astalgo_4328((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T626_) goto LA627_;
				result = genDiscriminantAsgn__injectdestructors_6657(c, s, n);
			}
			goto LA614_;
			LA627_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T630_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T631_;
				result = copyNode__ast_4324(n);
				T630_ = NIM_NIL;
				T630_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				add__ast_4798(result, T630_);
				T631_ = NIM_NIL;
				T631_ = p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 1));
				add__ast_4798(result, T631_);
			}
			LA614_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
		{
			result = pRaiseStmt__injectdestructors_7115(n, c, s);
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
		{
			internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_46), TM__qy9cjzsMcb87orRThTwa4gQ_47);
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 80):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 82):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 101):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 102):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 121):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 116):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 118):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 90):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 158):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 132):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122):
		{
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 71):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 72):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 68):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 69):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 70):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 91):
		{
			result = shallowCopy__ast_4414(n);
			{
				NI i_27;
				NI colontmp__19;
				NI i_28;
				i_27 = (NI)0;
				colontmp__19 = (NI)0;
				colontmp__19 = len__ast_3155(n);
				i_28 = ((NI) 0);
				{
					while (1) {
						if (!(i_28 < colontmp__19)) goto LA638;
						i_27 = i_28;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_27]), p__injectdestructors_105((*n)._kind_6.sons->data[i_27], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
						i_28 += ((NI) 1);
					} LA638: ;
				}
			}
			{
				NIM_BOOL T641_;
				T641_ = (NIM_BOOL)0;
				T641_ = !(((*n).typ == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL)));
				if (!(T641_)) goto LA642_;
				T641_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA642_: ;
				if (!T641_) goto LA643_;
				{
					if (!(mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0))) goto LA647_;
					result = ensureDestruction__injectdestructors_6874(result, n, c, s);
				}
				LA647_: ;
			}
			LA643_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
		{
			result = copyTree__ast_4432(n);
			{
				NIM_BOOL T652_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T653_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T655_;
				tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* nTyp_2;
				T652_ = (NIM_BOOL)0;
				T653_ = NIM_NIL;
				T653_ = skipTypes__ast_3723((*n).typ, TM__qy9cjzsMcb87orRThTwa4gQ_38);
				T652_ = !(((*T653_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45)));
				if (!(T652_)) goto LA654_;
				T655_ = NIM_NIL;
				T655_ = skipTypes__ast_3723((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__qy9cjzsMcb87orRThTwa4gQ_38);
				T652_ = ((*T655_).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 45));
				LA654_: ;
				if (!T652_) goto LA656_;
				nTyp_2 = (*(*n)._kind_6.sons->data[((NI) 1)]).typ;
				asgnRef((void**) (&(*(*n)._kind_6.sons->data[((NI) 1)]).typ), (*n).typ);
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp_2);
			}
			goto LA650_;
			LA656_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
			}
			LA650_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 67):
		{
			result = copyTree__ast_4432(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
		{
			result = shallowCopy__ast_4414(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
			{
				NI i_29;
				NI colontmp__20;
				NI i_30;
				i_29 = (NI)0;
				colontmp__20 = (NI)0;
				colontmp__20 = len__ast_3155(n);
				i_30 = ((NI) 1);
				{
					while (1) {
						if (!(i_30 < colontmp__20)) goto LA663;
						i_29 = i_30;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_29]), (*n)._kind_6.sons->data[i_29]);
						i_30 += ((NI) 1);
					} LA663: ;
				}
			}
			{
				NIM_BOOL T666_;
				T666_ = (NIM_BOOL)0;
				T666_ = (mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2));
				if (!(T666_)) goto LA667_;
				T666_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA667_: ;
				if (!T666_) goto LA668_;
				{
					NIM_BOOL T672_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T676_;
					NI T677_;
					T672_ = (NIM_BOOL)0;
					T672_ = isAnalysableFieldAccess__dfa_911(n, (*c).owner);
					if (!(T672_)) goto LA673_;
					T672_ = isLastRead__injectdestructors_6092(n, c);
					LA673_: ;
					if (!T672_) goto LA674_;
					T676_ = NIM_NIL;
					T676_ = genWasMoved__injectdestructors_6728(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
					T677_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T677_]), T676_);
				}
				goto LA670_;
				LA674_: ;
				{
					result = passCopyToSink__injectdestructors_6794(result, c, s);
				}
				LA670_: ;
			}
			LA668_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 63):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 64):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
		{
			result = shallowCopy__ast_4414(n);
			{
				NI i_31;
				NI colontmp__21;
				NI i_32;
				i_31 = (NI)0;
				colontmp__21 = (NI)0;
				colontmp__21 = len__ast_3155(n);
				i_32 = ((NI) 0);
				{
					while (1) {
						if (!(i_32 < colontmp__21)) goto LA682;
						i_31 = i_32;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_31]), p__injectdestructors_105((*n)._kind_6.sons->data[i_31], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
						i_32 += ((NI) 1);
					} LA682: ;
				}
			}
			{
				NIM_BOOL T685_;
				T685_ = (NIM_BOOL)0;
				T685_ = (mode == ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 2));
				if (!(T685_)) goto LA686_;
				T685_ = hasDestructor__injectdestructors_49((&(*c)), (*n).typ);
				LA686_: ;
				if (!T685_) goto LA687_;
				{
					NIM_BOOL T691_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T695_;
					NI T696_;
					T691_ = (NIM_BOOL)0;
					T691_ = isAnalysableFieldAccess__dfa_911(n, (*c).owner);
					if (!(T691_)) goto LA692_;
					T691_ = isLastRead__injectdestructors_6092(n, c);
					LA692_: ;
					if (!T691_) goto LA693_;
					T695_ = NIM_NIL;
					T695_ = genWasMoved__injectdestructors_6728(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
					T696_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T696_]), T695_);
				}
				goto LA689_;
				LA693_: ;
				{
					result = passCopyToSink__injectdestructors_6794(result, c, s);
				}
				LA689_: ;
			}
			LA687_: ;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 105):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44):
		{
			result = shallowCopy__ast_4414(n);
			{
				NI i_33;
				NI colontmp__22;
				NI i_34;
				i_33 = (NI)0;
				colontmp__22 = (NI)0;
				colontmp__22 = len__ast_3155(n);
				i_34 = ((NI) 0);
				{
					while (1) {
						if (!(i_34 < colontmp__22)) goto LA701;
						i_33 = i_34;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_33]), p__injectdestructors_105((*n)._kind_6.sons->data[i_33], c, s, ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0)));
						i_34 += ((NI) 1);
					} LA701: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
		{
			(*s).needsTry = NIM_TRUE;
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
		{
			result = shallowCopy__ast_4414(n);
			{
				NI i_35;
				NI colontmp__23;
				NI i_36;
				i_35 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len__ast_3155(n);
				i_36 = ((NI) 0);
				{
					while (1) {
						if (!(i_36 < colontmp__23)) goto LA706;
						i_35 = i_36;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_35]), p__injectdestructors_105((*n)._kind_6.sons->data[i_35], c, s, mode));
						i_36 += ((NI) 1);
					} LA706: ;
				}
			}
			(*s).needsTry = NIM_TRUE;
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
		{
			result = shallowCopy__ast_4414(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), (*n)._kind_6.sons->data[((NI) 0)]);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
		{
			result = shallowCopy__ast_4414(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p__injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode));
			{
				NI i_37;
				NI colontmp__24;
				NI i_38;
				i_37 = (NI)0;
				colontmp__24 = (NI)0;
				colontmp__24 = len__ast_3155(n);
				i_38 = ((NI) 1);
				{
					while (1) {
						if (!(i_38 < colontmp__24)) goto LA711;
						i_37 = i_38;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_37]), (*n)._kind_6.sons->data[i_37]);
						i_38 += ((NI) 1);
					} LA711: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 157):
		case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 89):
		{
			result = n;
		}
		break;
		default:
		{
			NimStringDesc* T714_;
			T714_ = NIM_NIL;
			T714_ = rawNewString((reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 40);
appendString(T714_, ((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_48));
appendString(T714_, reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
			internalErrorImpl__msgs_1441((*(*c).graph).config, (*n).info, T714_, TM__qy9cjzsMcb87orRThTwa4gQ_49);
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, injectDestructorCalls__injectdestructors_10132)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ c;
	tyObject_Scope__8EDqaKtZCWIbyBmeputFbg scope;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T29_;
{	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA) 39))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*owner).kind == ((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 15));
		if (!(T5_)) goto LA6_;
		T5_ = isInlineIterator__ast_4990((*owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__G6tlviVt9bgUWYf7bj7daMQ));
	c.owner = owner;
	c.graph = g;
	c.g = constructCfg__dfa_1143(owner, n);
	c.idgen = idgen;
	{
		if (!(((*(*g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ) 26))&31U)))!=0)) goto LA11_;
		computeCursors__varpartitions_1798(owner, n, g);
	}
	LA11_: ;
	computeLastReadsAndFirstWrites__injectdestructors_3780(c.g);
	nimZeroMem((void*)(&scope), sizeof(tyObject_Scope__8EDqaKtZCWIbyBmeputFbg));
	body = p__injectdestructors_105(n, (&c), (&scope), ((tyEnum_ProcessMode__fhx9b6Sr05u0M9c38pSYDYMw) 0));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* params;
		if (!((126976 &((NU32)1<<((NU)((*owner).kind)&31U)))!=0)) goto LA15_;
		params = (*(*owner).typ).n;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t;
					if (!(i_2 < colontmp_)) goto LA19;
					i = i_2;
					t = (*(*(*params)._kind_6.sons->data[i])._kind_4.sym).typ;
					{
						NIM_BOOL T22_;
						tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T24_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
						NI T28_;
						T22_ = (NIM_BOOL)0;
						T22_ = isSinkTypeForParam__types_4145(t);
						if (!(T22_)) goto LA23_;
						T24_ = NIM_NIL;
						T24_ = skipTypes__ast_3723(t, TM__qy9cjzsMcb87orRThTwa4gQ_50);
						T22_ = hasDestructor__injectdestructors_49((&c), T24_);
						LA23_: ;
						if (!T22_) goto LA25_;
						T27_ = NIM_NIL;
						T27_ = genDestroy__injectdestructors_6516((&c), (*params)._kind_6.sons->data[i]);
						scope.final = (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)(scope.final), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_));
						T28_ = scope.final->Sup.len++;
						asgnRef((void**) (&scope.final->data[T28_]), T27_);
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA15_: ;
	T29_ = NIM_NIL;
	T29_ = processScope__injectdestructors_7005((&c), (&scope), body);
	result = optimize__optimizer_390(T29_);
	{
		NIM_BOOL T32_;
		tyArray__Re75IspeoxXy2oCZHwcRrA T35_;
		tyArray__nHXaesL0DJZHyVS07ARPRA T36_;
		T32_ = (NIM_BOOL)0;
		T32_ = nsthasKey((*(*g).config).arcToExpand, (*(*owner).name).s);
		if (!T32_) goto LA33_;
		nimZeroMem((void*)T35_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
		T35_[0] = copyString(((NimStringDesc*) &TM__qy9cjzsMcb87orRThTwa4gQ_51));
		T35_[1] = copyString((*(*owner).name).s);
		echoBinSafe(T35_, 2);
		nimZeroMem((void*)T36_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T36_[0] = renderTree__renderer_46(result, 516);
		echoBinSafe(T36_, 1);
		echoBinSafe(TM__qy9cjzsMcb87orRThTwa4gQ_52, 1);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atminjectdestructorsdotnim_DatInit000)(void) {
static TNimNode* TM__qy9cjzsMcb87orRThTwa4gQ_2_3[3];
static TNimNode* TM__qy9cjzsMcb87orRThTwa4gQ_3_4[4];
static TNimNode* TM__qy9cjzsMcb87orRThTwa4gQ_4_2[2];
static TNimNode* TM__qy9cjzsMcb87orRThTwa4gQ_5_2[2];
static TNimNode* TM__qy9cjzsMcb87orRThTwa4gQ_6_3[3];
static TNimNode TM__qy9cjzsMcb87orRThTwa4gQ_0[19];
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.size = sizeof(tyTuple__eMNaK7LFFWgqXqKPoI0Pag);
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.align = NIM_ALIGNOF(tyTuple__eMNaK7LFFWgqXqKPoI0Pag);
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.kind = 18;
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.base = 0;
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.flags = 2;
TM__qy9cjzsMcb87orRThTwa4gQ_2_3[0] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[1];
TM__qy9cjzsMcb87orRThTwa4gQ_0[1].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[1].offset = offsetof(tyTuple__eMNaK7LFFWgqXqKPoI0Pag, Field0);
TM__qy9cjzsMcb87orRThTwa4gQ_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[1].name = "Field0";
TM__qy9cjzsMcb87orRThTwa4gQ_2_3[1] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[2];
TM__qy9cjzsMcb87orRThTwa4gQ_0[2].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[2].offset = offsetof(tyTuple__eMNaK7LFFWgqXqKPoI0Pag, Field1);
TM__qy9cjzsMcb87orRThTwa4gQ_0[2].typ = (&NTItupleLa58pnode_b58pnodeT__Q066krdfdsSnR5DaFMOk9bQ_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[2].name = "Field1";
TM__qy9cjzsMcb87orRThTwa4gQ_2_3[2] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[3];
TM__qy9cjzsMcb87orRThTwa4gQ_0[3].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[3].offset = offsetof(tyTuple__eMNaK7LFFWgqXqKPoI0Pag, Field2);
TM__qy9cjzsMcb87orRThTwa4gQ_0[3].typ = (&NTIaliaskind__vyyqF5f609aD8pvRKZixr4w_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[3].name = "Field2";
TM__qy9cjzsMcb87orRThTwa4gQ_0[0].len = 3; TM__qy9cjzsMcb87orRThTwa4gQ_0[0].kind = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[0].sons = &TM__qy9cjzsMcb87orRThTwa4gQ_2_3[0];
NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_.node = &TM__qy9cjzsMcb87orRThTwa4gQ_0[0];
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.size = sizeof(tySequence__M6nNbkJL2MtfqXbBdPxKHw*);
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.align = NIM_ALIGNOF(tySequence__M6nNbkJL2MtfqXbBdPxKHw*);
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.kind = 24;
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.base = (&NTIkeyvaluepair__eMNaK7LFFWgqXqKPoI0Pag_);
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.flags = 2;
NTIkeyvaluepairseq__M6nNbkJL2MtfqXbBdPxKHw_.marker = Marker_tySequence__M6nNbkJL2MtfqXbBdPxKHw;
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.size = sizeof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ);
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ);
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.kind = 18;
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.base = 0;
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.flags = 2;
TM__qy9cjzsMcb87orRThTwa4gQ_3_4[0] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[5];
TM__qy9cjzsMcb87orRThTwa4gQ_0[5].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[5].offset = offsetof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ, lastReads);
TM__qy9cjzsMcb87orRThTwa4gQ_0[5].typ = (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[5].name = "lastReads";
TM__qy9cjzsMcb87orRThTwa4gQ_3_4[1] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[6];
TM__qy9cjzsMcb87orRThTwa4gQ_0[6].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[6].offset = offsetof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ, potentialLastReads);
TM__qy9cjzsMcb87orRThTwa4gQ_0[6].typ = (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[6].name = "potentialLastReads";
TM__qy9cjzsMcb87orRThTwa4gQ_3_4[2] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[7];
TM__qy9cjzsMcb87orRThTwa4gQ_0[7].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[7].offset = offsetof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ, notLastReads);
TM__qy9cjzsMcb87orRThTwa4gQ_0[7].typ = (&NTIpackedset__THXDbzJSs2hcC9a33en2pdw_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[7].name = "notLastReads";
TM__qy9cjzsMcb87orRThTwa4gQ_3_4[3] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[8];
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.size = sizeof(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA);
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.align = NIM_ALIGNOF(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA);
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.kind = 18;
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.base = 0;
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.flags = 2;
TM__qy9cjzsMcb87orRThTwa4gQ_4_2[0] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[10];
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.size = sizeof(tyTuple__FMW2STq9c4aUT0G5x9aeTpkw);
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.align = NIM_ALIGNOF(tyTuple__FMW2STq9c4aUT0G5x9aeTpkw);
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.kind = 18;
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.base = 0;
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.flags = 2;
TM__qy9cjzsMcb87orRThTwa4gQ_5_2[0] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[12];
TM__qy9cjzsMcb87orRThTwa4gQ_0[12].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[12].offset = offsetof(tyTuple__FMW2STq9c4aUT0G5x9aeTpkw, Field0);
TM__qy9cjzsMcb87orRThTwa4gQ_0[12].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[12].name = "Field0";
TM__qy9cjzsMcb87orRThTwa4gQ_5_2[1] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[13];
TM__qy9cjzsMcb87orRThTwa4gQ_0[13].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[13].offset = offsetof(tyTuple__FMW2STq9c4aUT0G5x9aeTpkw, Field1);
TM__qy9cjzsMcb87orRThTwa4gQ_0[13].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[13].name = "Field1";
TM__qy9cjzsMcb87orRThTwa4gQ_0[11].len = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[11].kind = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[11].sons = &TM__qy9cjzsMcb87orRThTwa4gQ_5_2[0];
NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_.node = &TM__qy9cjzsMcb87orRThTwa4gQ_0[11];
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.size = sizeof(tySequence__387YteDgSUbs69cJAUWxHOA*);
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.align = NIM_ALIGNOF(tySequence__387YteDgSUbs69cJAUWxHOA*);
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.kind = 24;
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.base = (&NTIkeyvaluepair__FMW2STq9c4aUT0G5x9aeTpkw_);
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.flags = 2;
NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_.marker = Marker_tySequence__387YteDgSUbs69cJAUWxHOA;
TM__qy9cjzsMcb87orRThTwa4gQ_0[10].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[10].offset = offsetof(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA, data);
TM__qy9cjzsMcb87orRThTwa4gQ_0[10].typ = (&NTIkeyvaluepairseq__387YteDgSUbs69cJAUWxHOA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[10].name = "data";
TM__qy9cjzsMcb87orRThTwa4gQ_4_2[1] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[14];
TM__qy9cjzsMcb87orRThTwa4gQ_0[14].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[14].offset = offsetof(tyObject_HashSet__4M9cdYsKLFZugenKrKIlmiA, counter);
TM__qy9cjzsMcb87orRThTwa4gQ_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[14].name = "counter";
TM__qy9cjzsMcb87orRThTwa4gQ_0[9].len = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[9].kind = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[9].sons = &TM__qy9cjzsMcb87orRThTwa4gQ_4_2[0];
NTIhashset__4M9cdYsKLFZugenKrKIlmiA_.node = &TM__qy9cjzsMcb87orRThTwa4gQ_0[9];
TM__qy9cjzsMcb87orRThTwa4gQ_0[8].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[8].offset = offsetof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ, alreadySeen);
TM__qy9cjzsMcb87orRThTwa4gQ_0[8].typ = (&NTIhashset__4M9cdYsKLFZugenKrKIlmiA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[8].name = "alreadySeen";
TM__qy9cjzsMcb87orRThTwa4gQ_0[4].len = 4; TM__qy9cjzsMcb87orRThTwa4gQ_0[4].kind = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[4].sons = &TM__qy9cjzsMcb87orRThTwa4gQ_3_4[0];
NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_.node = &TM__qy9cjzsMcb87orRThTwa4gQ_0[4];
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.size = sizeof(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*);
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___MvwO3SzLZcY1W1Xx9a3DPIQ*);
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.kind = 22;
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.base = (&NTIstate58objecttype__MvwO3SzLZcY1W1Xx9a3DPIQ_);
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.flags = 2;
NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_.marker = Marker_tyRef__ALTfJJmp9b2ty9bmQcML9b2kA;
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.size = sizeof(tySequence__s4MJIltFooh7znZAPDHauw*);
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.align = NIM_ALIGNOF(tySequence__s4MJIltFooh7znZAPDHauw*);
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.kind = 24;
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.base = (&NTIstate__ALTfJJmp9b2ty9bmQcML9b2kA_);
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.flags = 2;
NTIseqLstateT__s4MJIltFooh7znZAPDHauw_.marker = Marker_tySequence__s4MJIltFooh7znZAPDHauw;
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.size = sizeof(tyTuple__dPapXWg9c4XSU1oh4xRoUfQ);
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.align = NIM_ALIGNOF(tyTuple__dPapXWg9c4XSU1oh4xRoUfQ);
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.kind = 18;
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.base = 0;
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.flags = 2;
TM__qy9cjzsMcb87orRThTwa4gQ_6_3[0] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[16];
TM__qy9cjzsMcb87orRThTwa4gQ_0[16].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[16].offset = offsetof(tyTuple__dPapXWg9c4XSU1oh4xRoUfQ, Field0);
TM__qy9cjzsMcb87orRThTwa4gQ_0[16].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[16].name = "Field0";
TM__qy9cjzsMcb87orRThTwa4gQ_6_3[1] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[17];
TM__qy9cjzsMcb87orRThTwa4gQ_0[17].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[17].offset = offsetof(tyTuple__dPapXWg9c4XSU1oh4xRoUfQ, Field1);
TM__qy9cjzsMcb87orRThTwa4gQ_0[17].typ = (&NTIpnode__PzkjRjFZybhcKJ9c8COQy5g_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[17].name = "Field1";
TM__qy9cjzsMcb87orRThTwa4gQ_6_3[2] = &TM__qy9cjzsMcb87orRThTwa4gQ_0[18];
TM__qy9cjzsMcb87orRThTwa4gQ_0[18].kind = 1;
TM__qy9cjzsMcb87orRThTwa4gQ_0[18].offset = offsetof(tyTuple__dPapXWg9c4XSU1oh4xRoUfQ, Field2);
TM__qy9cjzsMcb87orRThTwa4gQ_0[18].typ = (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_);
TM__qy9cjzsMcb87orRThTwa4gQ_0[18].name = "Field2";
TM__qy9cjzsMcb87orRThTwa4gQ_0[15].len = 3; TM__qy9cjzsMcb87orRThTwa4gQ_0[15].kind = 2; TM__qy9cjzsMcb87orRThTwa4gQ_0[15].sons = &TM__qy9cjzsMcb87orRThTwa4gQ_6_3[0];
NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_.node = &TM__qy9cjzsMcb87orRThTwa4gQ_0[15];
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.size = sizeof(tySequence__VB6DBx8qy4TStAbCEq1dzg*);
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.align = NIM_ALIGNOF(tySequence__VB6DBx8qy4TStAbCEq1dzg*);
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.kind = 24;
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.base = (&NTIkeyvaluepair__dPapXWg9c4XSU1oh4xRoUfQ_);
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.flags = 2;
NTIkeyvaluepairseq__VB6DBx8qy4TStAbCEq1dzg_.marker = Marker_tySequence__VB6DBx8qy4TStAbCEq1dzg;
}

