/* Generated by Nim Compiler v1.6.0 */
#define NIM_INTBITS 32

#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__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Con__mVYRtnERc9advo79cBQUudxg tyObject_Con__mVYRtnERc9advo79cBQUudxg;
typedef struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
typedef struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg;
typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
typedef struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
typedef struct tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g;
typedef struct tySequence__sh9b9afdJBB3bJbViXY7yNAg tySequence__sh9b9afdJBB3bJbViXY7yNAg;
typedef struct tyTuple__YXXBMUJBtW9corlxevWVfYQ tyTuple__YXXBMUJBtW9corlxevWVfYQ;
typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
typedef struct tySequence__mFtVDW3p7w6wfPPNodKzsA tySequence__mFtVDW3p7w6wfPPNodKzsA;
typedef struct tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw;
typedef struct tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ;
typedef struct tySequence__Y6pVop4P8VSwSorRqc2aQA tySequence__Y6pVop4P8VSwSorRqc2aQA;
typedef struct tyTuple__TeyVVRby9bj1JQeNMm9aeI2w tyTuple__TeyVVRby9bj1JQeNMm9aeI2w;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ;
typedef struct tySequence__JGK6WZYU2JHWLoPdKRO4AQ tySequence__JGK6WZYU2JHWLoPdKRO4AQ;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ tyTuple__jCPpzNasrXtz9cFJFxT1NHQ;
typedef struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
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__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_1;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Con__mVYRtnERc9advo79cBQUudxg {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* g;
tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
NI inLoop;
NI inSpawn;
NI inLoopCond;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA uninit;
NIM_BOOL uninitComputed;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
};
typedef NU8 tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ;
struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ kind;
union{
NI dest;
};
};
struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
NI counter;
};
struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
tySequence__mWRMiYLthG9coLjkbElCxkw* data;
NI counter;
};
struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
tySequence__bTDCDwD2P7TodzbAefLcSw* data;
NI counter;
};
typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
tySequence__3MPVXAHA08SszBrU4ffqEg* data;
NI counter;
};
struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
NI counter;
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
};
struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
NI counter;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
};
struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
NI counter;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
NI counter;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
tySequence__MAQKEADohlpnXTModtugbQ* passes;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
};
typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
NI intSize;
NI floatSize;
NI ptrSize;
NimStringDesc* tnl;
};
typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
NIM_BOOL trackPosAttached;
tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
NI32 systemFileIdx;
};
typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
NI counter;
};
typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
void* ClE_0;
} tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
void* ClE_0;
} tyProc__k2HFjxisIgDALbEUFojxaQ;
typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
void* ClE_0;
} tyProc__oL9coyIA2VDTGdUcur9aL9bew;
struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
NI linesCompiled;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
NimStringDesc* unitSep;
NI evalTemplateCounter;
NI evalMacroCounter;
NI8 exitcode;
tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
NimStringDesc* cmdInput;
NIM_BOOL projectIsCmd;
NIM_BOOL implicitCmd;
tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
NIM_BOOL hintProcessingDots;
NI verbosity;
NI numberOfProcessors;
NF lastCmdTime;
tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
NI spellSuggestMax;
tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
NimStringDesc* headerFile;
tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
NimStringDesc* arguments;
tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
NIM_BOOL oldNewlines;
tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
NI mainPackageId;
NI errorCounter;
NI hintCounter;
NI warnCounter;
NI errorMax;
NI maxLoopIterationsVM;
NIM_BOOL isVmTrace;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* 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__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
NimStringDesc* projectName;
NimStringDesc* projectPath;
NimStringDesc* projectFull;
NIM_BOOL projectIsStdin;
tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug 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__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
NI suggestVersion;
NI suggestMaxResults;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
NimStringDesc* cppCustomNamespace;
tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
};
typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
struct tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g {
tySequence__sh9b9afdJBB3bJbViXY7yNAg* data;
NI counter;
};
struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
typedef NU8 tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg;
struct tyTuple__YXXBMUJBtW9corlxevWVfYQ {
NI Field0;
tyTuple__EFqgCXJ4d8PgqOdFJmldsQ Field1;
tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg Field2;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ {
tySequence__Y6pVop4P8VSwSorRqc2aQA* data;
NI counter;
};
struct tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw {
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA lastReads;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReads;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA notLastReads;
tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ alreadySeen;
};
struct tyTuple__TeyVVRby9bj1JQeNMm9aeI2w {
NI Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
  Exception Sup;
};
struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
  tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
};
struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
  tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
};
typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA {
tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next;
NI key;
tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
};
typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
struct tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ {
tySequence__JGK6WZYU2JHWLoPdKRO4AQ* data;
NI counter;
};
struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ {
NI Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* vars;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* wasMoved;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* final;
NIM_BOOL needsTry;
tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent;
};
typedef NU8 tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef NimStringDesc* tyArray__JXkBzVsE9bvmcpuZvrueLVg[5];
typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
typedef NU16 tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw;
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__cypz0nHJsd9cnKgpO7fP5hQ[1];
struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
};
struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
NI counter;
};
struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
};
struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
};
struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
NI module;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
};
struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
};
struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
};
struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
NI module;
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
};
struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
};
struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
};
struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
NI Field0;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
};
struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
};
struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__rplX06U9bjhu9asm5pWdgqsA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
NIM_BOOL Field3;
};
struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
NimStringDesc* Field1;
};
struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
NimStringDesc* fullPath;
NimStringDesc* projPath;
NimStringDesc* shortName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
NimStringDesc* dirtyFile;
NimStringDesc* hash;
NIM_BOOL dirty;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
NI Field0;
NimStringDesc* Field1;
};
typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
NimStringDesc* nimname;
NimStringDesc* cname;
NimStringDesc* obj;
tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
NimStringDesc* customArgs;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
NI32 operand;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
NU32 Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
};
struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
};
struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
};
struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
NI Field1;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
};
typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
NU32 name;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
NI32 ast;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
NI32 constraint;
};
struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
NI32 n;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
NI Field0;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ {
  TGenericSeq Sup;
  tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg data[SEQ_DECL_SIZE];
};
struct tySequence__sh9b9afdJBB3bJbViXY7yNAg {
  TGenericSeq Sup;
  tyTuple__YXXBMUJBtW9corlxevWVfYQ data[SEQ_DECL_SIZE];
};
struct tySequence__mFtVDW3p7w6wfPPNodKzsA {
  TGenericSeq Sup;
  tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* data[SEQ_DECL_SIZE];
};
struct tySequence__Y6pVop4P8VSwSorRqc2aQA {
  TGenericSeq Sup;
  tyTuple__TeyVVRby9bj1JQeNMm9aeI2w data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__JGK6WZYU2JHWLoPdKRO4AQ {
  TGenericSeq Sup;
  tyTuple__jCPpzNasrXtz9cFJFxT1NHQ data[SEQ_DECL_SIZE];
};
struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
  TGenericSeq Sup;
  tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
};
struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
  TGenericSeq Sup;
  tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
};
struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
  TGenericSeq Sup;
  tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
};
struct tySequence__XMM60DtBsc6xYsIpNANkrA {
  TGenericSeq Sup;
  tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
};
struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
  TGenericSeq Sup;
  tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
};
struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
  TGenericSeq Sup;
  tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
};
struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
};
struct tySequence__mWRMiYLthG9coLjkbElCxkw {
  TGenericSeq Sup;
  tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
};
struct tySequence__bTDCDwD2P7TodzbAefLcSw {
  TGenericSeq Sup;
  tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
};
struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
  TGenericSeq Sup;
  tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
};
struct tySequence__3MPVXAHA08SszBrU4ffqEg {
  TGenericSeq Sup;
  tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
};
struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
  TGenericSeq Sup;
  tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__61s9cbAniKuBrdHwBhMDfQg {
  TGenericSeq Sup;
  tyTuple__rplX06U9bjhu9asm5pWdgqsA 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__s9byh6WFJ16lPMcmqdaMTHA {
  TGenericSeq Sup;
  tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
};
struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
  TGenericSeq Sup;
  tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__MAQKEADohlpnXTModtugbQ {
  TGenericSeq Sup;
  tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
};
struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
  TGenericSeq Sup;
  tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
};
struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
  TGenericSeq Sup;
  tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw 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__pK3qSsBZwdXd6qyUMkd5Jw {
  TGenericSeq Sup;
  tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
  TGenericSeq Sup;
  tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA 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__29bS0n2QNyO1R7e0qMMOvLA {
  TGenericSeq Sup;
  tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
  TGenericSeq Sup;
  tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
};
struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
  TGenericSeq Sup;
  tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
};
struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
  TGenericSeq Sup;
  tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
};
struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
};
struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
  TGenericSeq Sup;
  tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
};
struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
  TGenericSeq Sup;
  tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
};
struct tySequence__DfmUmNgVGnYaiV1I6227tw {
  TGenericSeq Sup;
  tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
};
struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
  TGenericSeq Sup;
  tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
  TGenericSeq Sup;
  tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
};
struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
  TGenericSeq Sup;
  tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
  TGenericSeq Sup;
  tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
};
static N_INLINE(NIM_BOOL, isInlineIterator_ast_4988)(tyObject_TType__facALICuu8zUj0hjvbTLFg* 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__hj4BvueOlKB8Z1Qw2ZU4nQ*, constructCfg_dfa_1135)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
N_LIB_PRIVATE N_NIMCALL(void, computeCursors_varpartitions_1790)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g);
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites_injectdestructors_3780)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg);
N_LIB_PRIVATE N_NIMCALL(void, initTable_injectdestructors_3782)(NI initialSize, tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* Result);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, slotsNeeded_pureZcollectionsZtables_42)(NI count);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo_pureZmath_177)(NI x);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg)(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__hj4BvueOlKB8Z1Qw2ZU4nQ** cfg);
N_LIB_PRIVATE N_NIMCALL(tySequence__mFtVDW3p7w6wfPPNodKzsA*, newSeq_injectdestructors_3802)(NI len);
static N_NIMCALL(void, Marker_tySequence__Y6pVop4P8VSwSorRqc2aQA)(void* p, NI op);
static N_NIMCALL(void, Marker_tyRef__xMu9aauGSW9bIwiWptXaXX0Q)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__mFtVDW3p7w6wfPPNodKzsA)(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_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent__system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_system_5270)(void* usr);
static N_INLINE(NI, minuspercent__system_716)(NI x, NI y);
static N_INLINE(void, decRef_system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent__system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT_system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliasesCached_injectdestructors_121)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_injectdestructors_174)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key);
static N_INLINE(NI, rawGet_injectdestructors_181)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash_injectdestructors_188)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x);
static N_INLINE(NI, emarkamp__pureZhashes_3)(NI h, NI val);
N_LIB_PRIVATE N_NIMCALL(NI, hash_injectdestructors_118)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, hash_pureZhashes_124)(void* x);
static N_INLINE(NI, hash_pureZhashes_128)(NI x);
static N_INLINE(NI, hashWangYi1_pureZhashes_136)(NU64 x);
static N_INLINE(NU64, hiXorLo_pureZhashes_79)(NU64 a, NU64 b);
static N_INLINE(NU64, hiXorLoFallback64_pureZhashes_35)(NU64 a, NU64 b);
static N_INLINE(NI, emarkdollar__pureZhashes_18)(NI h);
static N_INLINE(NIM_BOOL, isFilled_pureZcollectionsZtables_31)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__injectdestructors_430)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ y);
static N_INLINE(NI, nextTry_pureZcollectionsZtables_34)(NI h, NI maxHash);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__injectdestructors_509)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val);
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_708)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_894)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_1229)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tySequence__sh9b9afdJBB3bJbViXY7yNAg** data, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_injectdestructors_1410)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI hc);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliases_dfa_792)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field);
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*, X5BX5D__injectdestructors_1731)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError_injectdestructors_1802)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) __attribute__((noreturn));
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_system_1727)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__injectdestructors_1854)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, addQuoted_injectdestructors_1880)(NimStringDesc** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__renderer_2107)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(void, incl_pureZcollectionsZintsets_55)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, excl_reorder_264)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(void, commenteq__ast_1360)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* a);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NI, len_injectdestructors_2169)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ s);
static N_INLINE(NIM_BOOL, isFilled_pureZcollectionsZsets_38)(NI hcode);
N_LIB_PRIVATE N_NIMCALL(void, incl_injectdestructors_2395)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key);
static N_INLINE(NI, slotsNeeded_pureZcollectionsZsets_49)(NI count);
static N_INLINE(NI, rawGet_injectdestructors_2482)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc);
static N_INLINE(NI, nextTry_pureZcollectionsZsets_41)(NI h, NI maxHash);
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_2730)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_2922)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s);
static N_INLINE(NI, rawGetKnownHC_injectdestructors_3173)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_3539)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tySequence__Y6pVop4P8VSwSorRqc2aQA** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(void, mergeStates_injectdestructors_1944)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** a, tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* b);
N_LIB_PRIVATE N_NIMCALL(void, incl_importer_1492)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* other);
N_LIB_PRIVATE N_NIMCALL(void, excl_injectdestructors_2012)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* other);
N_LIB_PRIVATE N_NIMCALL(void, incl_injectdestructors_2107)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ other);
static N_INLINE(void, minus__sem_4040)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, difference_sem_4045)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(void, plus__injectdestructors_4122)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, union_injectdestructors_4127)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result);
N_LIB_PRIVATE N_NIMCALL(void, assign_types_3917)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* src);
static N_INLINE(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**, X5BX5D__injectdestructors_4096)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut_injectdestructors_4249)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val);
static N_NIMCALL(void, Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ)(void* p, NI op);
static N_INLINE(NI, rawGet_injectdestructors_4322)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_4652)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_4838)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_5169)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tySequence__JGK6WZYU2JHWLoPdKRO4AQ** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC_injectdestructors_5350)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(NI, len_injectdestructors_5743)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains_astalgo_3496)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p_injectdestructors_105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode);
static N_INLINE(NI, len_ast_3197)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode_ast_4335)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, add_ast_4796)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
static N_INLINE(NIM_BOOL, isEmptyType_ast_4778)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, shallowCopy_ast_4412)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree_ast_4430)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
N_LIB_PRIVATE N_NIMCALL(void, nestedScope_injectdestructors_72)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, processScope_injectdestructors_7016)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI_ast_3355)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree_ast_3391)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode_ast_3715)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTryFinally_lowerings_202)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* final);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp_injectdestructors_61)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym_ast_3444)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent_idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId_ast_3131)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
static N_INLINE(NIM_BOOL, hasDestructor_injectdestructors_49)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy_injectdestructors_6527)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes_ast_3734)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp_injectdestructors_6430)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getAttachedOp_modulegraphs_4011)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
static N_INLINE(NIM_BOOL, isGenericRoutine_ast_4626)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isGenericParams_ast_4615)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, hashType_sighashes_462)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault_liftdestructors_976)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NOINLINE(void, liMessage_msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString_types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma_injectdestructors_6380)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_system_1735)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderTree_renderer_46)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TRenderFlag__wrPgUo1ExBlHvFnXN2nSHw 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_992)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__msgs_624)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s);
static N_INLINE(NimStringDesc*, X5BX5D__pureZunicode_3215)(NimStringDesc* s, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
static N_INLINE(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA, dotdot__stdZenumutils_80)(NI a, NI b);
static N_INLINE(NIM_BOOL, isSinkType_ast_5044)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp_injectdestructors_6420)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT_ast_3377)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType_injectdestructors_6416)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType_ast_3895)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId_ast_3150)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
N_LIB_PRIVATE N_NIMCALL(void, addSonSkipIntLit_magicsys_136)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* id);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy_injectdestructors_110)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameLocation_injectdestructors_8432)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_injectdestructors_8436)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCursor_injectdestructors_6369)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink_injectdestructors_6564)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess_dfa_903)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite_injectdestructors_6120)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvDfa_dfa_780)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, isNoInit_injectdestructors_6553)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead_injectdestructors_6103)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved_injectdestructors_6739)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, createMagic_modulegraphs_9008)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar_injectdestructors_6760)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI_ast_3359)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConv_types_3585)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic_injectdestructors_6612)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicType_liftdestructors_1366)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, callCodegenProc_lowerings_635)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg1, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg2, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg3, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* optionalArgs);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin_liftdestructors_113)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType_magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy_injectdestructors_6647)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck_injectdestructors_6634)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
N_LIB_PRIVATE N_NIMCALL(void, finishCopy_injectdestructors_6598)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, NIM_BOOL isFromSink);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, boolLit_liftdestructors_427)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL value);
static N_INLINE(NIM_BOOL, isCriticalLink_injectdestructors_6591)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
static N_INLINE(NIM_BOOL, isDangerousSeq_injectdestructors_6847)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
static N_INLINE(NIM_BOOL, isSinkParam_ast_5029)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
static N_INLINE(NIM_BOOL, canBeMoved_injectdestructors_6532)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt_injectdestructors_7126)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon_ast_4831)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq_injectdestructors_6860)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen_ast_3190)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink_injectdestructors_6805)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLValue_parampatterns_497)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCapturedVar_injectdestructors_6797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getRoot_trees_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, lookupFieldAgain_types_4050)(tyObject_TType__facALICuu8zUj0hjvbTLFg* ty, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction_injectdestructors_6885)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s);
static N_INLINE(NI, len_ast_4001)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
static N_INLINE(NIM_BOOL, isCompileTimeOnly_types_3516)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isSinkTypeForParam_types_4043)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise_ast_5087)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerTupleUnpacking_lowerings_116)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel_injectdestructors_6967)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall_injectdestructors_6751)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, cycleCheck_injectdestructors_6908)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent_trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_4335)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn_injectdestructors_6668)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceDestructorForDiscriminator_liftdestructors_1981)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getMagicEqSymForType_magicsys_171)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl_msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, optimize_optimizer_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsthasKey)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE TNimType NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_;
extern TNimType NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_;
extern TNimType NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_;
N_LIB_PRIVATE TNimType NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_;
extern TNimType NTIpackedset__IhxwDBRi51nGrosBGFKcsA_;
N_LIB_PRIVATE TNimType NTIhashset__YByQS2i9cOlUupxNMscAMwQ_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_;
extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_;
N_LIB_PRIVATE TNimType NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_;
N_LIB_PRIVATE TNimType NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_;
extern TNimType NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_;
extern TNimType NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6, "key not found: ", 15);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7, "(", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8, ", ", 2);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9, "nil", 3);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10, ",", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11, ")", 1);
N_LIB_PRIVATE TNimType NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0xb0, 0x03, 0x04, 0x09, 0xc0,
0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14, ":tmpD", 5);
extern TNimType NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15 = {
0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16, "internal error: \'", 17);
extern NIM_CONST tyArray__JXkBzVsE9bvmcpuZvrueLVg AttachedOpToStr_ast_3847;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17, "\' operator not found for type ", 30);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19, "/home/runner/work/nightlies/nightlies/nim/compiler/injectdestructors.nim", 72);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 284),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20, "\' operator is generic", 21);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 287),
((NI) 15)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22, "\'", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23, "\' is not available for type <", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24, ">", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25, "=", 1);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26, "=copy", 5);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27, "; requires a copy because it\'s not the last read of \'", 53);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28, "; another read is done here: ", 29);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29, "; try to make ", 14);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_30, " a \'sink\' parameter", 19);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31, "; routine: ", 11);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 263),
((NI) 12)}
;
extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33, "wasMoved", 8);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34, "blitTmp", 7);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35 = {
0x10, 0x28, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36, "nimMarkCyclic", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37, "accessEnv", 9);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39, "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__dJ4qrEWDmqGA8FWJ0TYKJQ_40 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 462),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_41, "cannot create an implicit openArray copy to be passed to a sink parameter", 73);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_42 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 469),
((NI) 16)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_44, "default", 7);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_45, "\'$#\' creates an uncollectable ref cycle; annotate \'$#\' with .cursor", 67);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_46, "\'$#\' creates an uncollectable ref cycle", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_47 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 535),
((NI) 13)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_48, "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__dJ4qrEWDmqGA8FWJ0TYKJQ_49 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 393),
((NI) 16)}
;
extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo_lineinfos_280;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_50, "not", 3);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_51, "nkWhileStmt should have been handled earlier", 44);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_52 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 906),
((NI) 19)}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_53, "cannot inject destructors to node kind: ", 40);
extern TNimType NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__dJ4qrEWDmqGA8FWJ0TYKJQ_54 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_19),
((NI) 993),
((NI) 19)}
;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__dJ4qrEWDmqGA8FWJ0TYKJQ_55 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x00}
;
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_56, "--expandArc: ", 13);
STRING_LITERAL(TM__dJ4qrEWDmqGA8FWJ0TYKJQ_58, "-- end of expandArc ------------------------", 44);
static NIM_CONST tyArray__nHXaesL0DJZHyVS07ARPRA TM__dJ4qrEWDmqGA8FWJ0TYKJQ_57 = {((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_58)}
;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch_system_5217;
static N_INLINE(NIM_BOOL, isInlineIterator_ast_4988)(tyObject_TType__facALICuu8zUj0hjvbTLFg* 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__9a3YiReNVD0IJHWFKgXRe9ag) 25));
	if (!(T2_)) goto LA3_;
	T2_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 15))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = !(((*typ).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 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_INLINE(NI, slotsNeeded_pureZcollectionsZtables_42)(NI count) {
	NI result;
	result = (NI)0;
	result = nextPowerOfTwo_pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
	return result;
}
static N_NIMCALL(void, Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg)(void* p, NI op) {
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* a;
	NI T1_;
	a = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*)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, initTable_injectdestructors_3782)(NI initialSize, tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* Result) {
	NI correctSizeX60gensym33_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym33_ = slotsNeeded_pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym33_))));
}
N_LIB_PRIVATE N_NIMCALL(void, preprocessCfg_injectdestructors_1924)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ** 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__Y6pVop4P8VSwSorRqc2aQA)(void* p, NI op) {
	tySequence__Y6pVop4P8VSwSorRqc2aQA* a;
	NI T1_;
	a = (tySequence__Y6pVop4P8VSwSorRqc2aQA*)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__xMu9aauGSW9bIwiWptXaXX0Q)(void* p, NI op) {
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* a;
	NI T1_;
	NI T2_;
	NI T3_;
	a = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)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__mFtVDW3p7w6wfPPNodKzsA)(void* p, NI op) {
	tySequence__mFtVDW3p7w6wfPPNodKzsA* a;
	NI T1_;
	a = (tySequence__mFtVDW3p7w6wfPPNodKzsA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_], op);
	}
}
N_LIB_PRIVATE N_NIMCALL(tySequence__mFtVDW3p7w6wfPPNodKzsA*, newSeq_injectdestructors_3802)(NI len) {
	tySequence__mFtVDW3p7w6wfPPNodKzsA* result;
	result = (tySequence__mFtVDW3p7w6wfPPNodKzsA*)0;
	result = (tySequence__mFtVDW3p7w6wfPPNodKzsA*) newSeq((&NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_), len);
	return result;
}
static N_INLINE(NI, pluspercent__system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef_system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_system_5270)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent__system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent__system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT_system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_system_5264((&gch_system_5217.zct), c);
}
static N_INLINE(void, decRef_system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* 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_5313(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell_system_5270(src);
		incRef_system_5308(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_system_5270((*dest));
		decRef_system_5315(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NI, emarkamp__pureZhashes_3)(NI h, NI val) {
	NI result;
	NU h_2;
	NU val_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	val_2 = ((NU) (val));
	res = (NU)((NU32)(h_2) + (NU32)(val_2));
	res = (NU)((NU32)(res) + (NU32)((NU)((NU32)(res) << (NU32)(((NI) 10)))));
	res = (NU)(res ^ (NU)((NU32)(res) >> (NU32)(((NI) 6))));
	result = ((NI) (res));
	return result;
}
static N_INLINE(NU64, hiXorLoFallback64_pureZhashes_35)(NU64 a, NU64 b) {
	NU64 result;
	NU64 aH;
	NU64 aL;
	NU64 bH;
	NU64 bL;
	NU64 rHH;
	NU64 rHL;
	NU64 rLH;
	NU64 rLL;
	NU64 t;
	NU64 c;
	NU64 lo;
	NU64 T6_;
	NU64 hi;
{	result = (NU64)0;
	aH = (NU64)((NU64)(a) >> (NU64)(((NI) 32)));
	aL = (NU64)(a & 4294967295ULL);
	bH = (NU64)((NU64)(b) >> (NU64)(((NI) 32)));
	bL = (NU64)(b & 4294967295ULL);
	rHH = (NU64)((NU64)(aH) * (NU64)(bH));
	rHL = (NU64)((NU64)(aH) * (NU64)(bL));
	rLH = (NU64)((NU64)(aL) * (NU64)(bH));
	rLL = (NU64)((NU64)(aL) * (NU64)(bL));
	t = (NU64)((NU64)(rLL) + (NU64)((NU64)((NU64)(rHL) << (NU64)(((NI) 32)))));
	{
		if (!((NU64)(t) < (NU64)(rLL))) goto LA3_;
		c = 1ULL;
	}
	goto LA1_;
	LA3_: ;
	{
		c = 0ULL;
	}
	LA1_: ;
	lo = (NU64)((NU64)(t) + (NU64)((NU64)((NU64)(rLH) << (NU64)(((NI) 32)))));
	T6_ = (NU64)0;
	{
		if (!((NU64)(lo) < (NU64)(t))) goto LA9_;
		T6_ = 1ULL;
	}
	goto LA7_;
	LA9_: ;
	{
		T6_ = 0ULL;
	}
	LA7_: ;
	c += T6_;
	hi = (NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(rHH) + (NU64)((NU64)((NU64)(rHL) >> (NU64)(((NI) 32)))))) + (NU64)((NU64)((NU64)(rLH) >> (NU64)(((NI) 32)))))) + (NU64)(c));
	result = (NU64)(hi ^ lo);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, hiXorLo_pureZhashes_79)(NU64 a, NU64 b) {
	NU64 result;
	result = (NU64)0;
	result = hiXorLoFallback64_pureZhashes_35(a, b);
	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__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	result = hash_pureZhashes_124(((void*) (n)));
	return result;
}
static N_INLINE(NI, emarkdollar__pureZhashes_18)(NI h) {
	NI result;
	NU h_2;
	NU res;
	result = (NI)0;
	h_2 = ((NU) (h));
	res = (NU)((NU32)(h_2) + (NU32)((NU)((NU32)(h_2) << (NU32)(((NI) 3)))));
	res = (NU)(res ^ (NU)((NU32)(res) >> (NU32)(((NI) 11))));
	res = (NU)((NU32)(res) + (NU32)((NU)((NU32)(res) << (NU32)(((NI) 15)))));
	result = ((NI) (res));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash_injectdestructors_188)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x) {
	NI result;
	NI T1_;
	NI T2_;
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash_injectdestructors_118(x.Field0);
	result = emarkamp__pureZhashes_3(result, T1_);
	T2_ = (NI)0;
	T2_ = hash_injectdestructors_118(x.Field1);
	result = emarkamp__pureZhashes_3(result, T2_);
	result = emarkdollar__pureZhashes_18(result);
	return result;
}
static N_INLINE(NIM_BOOL, isFilled_pureZcollectionsZtables_31)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq__injectdestructors_430)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((x.Field0 == y.Field0))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((x.Field1 == y.Field1))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, nextTry_pureZcollectionsZtables_34)(NI h, NI maxHash) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
	return result;
}
static N_INLINE(NI, rawGet_injectdestructors_181)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash_injectdestructors_188(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq__injectdestructors_430(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey_injectdestructors_174)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet_injectdestructors_181(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_708)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_1229)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tySequence__sh9b9afdJBB3bJbViXY7yNAg** data, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1.Field0), key.Field0);
	asgnRef((void**) (&(*data)->data[h].Field1.Field1), key.Field1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_894)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t) {
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* n;
	NI T1_;
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* T2_;
	n = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T17_;
					tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimZeroMem((void*)(&T17_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
					T17_.Field0 = n->data[i].Field1.Field0;
					T17_.Field1 = n->data[i].Field1.Field1;
					unsureAsgnRef((void**)&n->data[i].Field1.Field0, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.Field1, NIM_NIL);
					T18_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert_injectdestructors_1229(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC_injectdestructors_1410)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq__injectdestructors_430(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq__injectdestructors_509)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym7_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym7_ = slotsNeeded_pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym7_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_injectdestructors_181((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym10_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym10_ = slotsNeeded_pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym10_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash_injectdestructors_708((*t));
			if (!T18_) goto LA19_;
			enlarge_injectdestructors_894(t);
			index = rawGetKnownHC_injectdestructors_1410((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert_injectdestructors_1229(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
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_1727)(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_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addQuoted_injectdestructors_1880)(NimStringDesc** s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
	NimStringDesc* T1_;
	T1_ = (NimStringDesc*)0;
	T1_ = dollar__renderer_2107(x);
	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (T1_ ? T1_->Sup.len : 0) + 0));
appendString((*s), T1_);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar__injectdestructors_1854)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x) {
	NimStringDesc* result;
	NI count;
	result = (NimStringDesc*)0;
	result = copyString(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_7));
	count = ((NI) 0);
	{
		if (!(((NI) 0) < count)) goto LA3_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8));
	}
	LA3_: ;
	count += ((NI) 1);
	{
		if (!(x.Field0 == 0)) goto LA7_;
		result = resizeString(result, 3);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9));
	}
	goto LA5_;
	LA7_: ;
	{
		addQuoted_injectdestructors_1880((&result), x.Field0);
	}
	LA5_: ;
	{
		if (!(((NI) 0) < count)) goto LA12_;
		result = resizeString(result, 2);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_8));
	}
	LA12_: ;
	count += ((NI) 1);
	{
		if (!(x.Field1 == 0)) goto LA16_;
		result = resizeString(result, 3);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_9));
	}
	goto LA14_;
	LA16_: ;
	{
		addQuoted_injectdestructors_1880((&result), x.Field1);
	}
	LA14_: ;
	{
		if (!(count == ((NI) 1))) goto LA21_;
		result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_10));
	}
	LA21_: ;
	result = resizeString(result, 1);
appendString(result, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_11));
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError_injectdestructors_1802)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = (NimStringDesc*)0;
	T3_ = (NimStringDesc*)0;
	T3_ = dollar__injectdestructors_1854(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_6));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*, X5BX5D__injectdestructors_1731)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet_injectdestructors_181((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError_injectdestructors_1802(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliasesCached_injectdestructors_121)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* cache, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field) {
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg result;
	tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key;
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg* T7_;
	result = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
	nimZeroMem((void*)(&key), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
	key.Field0 = obj;
	key.Field1 = field;
	{
		NIM_BOOL T3_;
		tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T6_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasKey_injectdestructors_174((*cache), key);
		if (!!(T3_)) goto LA4_;
		T6_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
		T6_ = aliases_dfa_792(obj, field);
		X5BX5Deq__injectdestructors_509(cache, key, T6_);
	}
	LA4_: ;
	T7_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*)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);
}
N_LIB_PRIVATE N_NIMCALL(NI, len_injectdestructors_2169)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ s) {
	NI result;
	result = (NI)0;
	result = s.counter;
	return result;
}
static N_INLINE(NIM_BOOL, isFilled_pureZcollectionsZsets_38)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
static N_INLINE(NI, slotsNeeded_pureZcollectionsZsets_49)(NI count) {
	NI result;
	result = (NI)0;
	result = nextPowerOfTwo_pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
	return result;
}
static N_INLINE(NI, nextTry_pureZcollectionsZsets_41)(NI h, NI maxHash) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
	return result;
}
static N_INLINE(NI, rawGet_injectdestructors_2482)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash_injectdestructors_118(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_pureZcollectionsZsets_38(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZsets_41(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_2730)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC_injectdestructors_3173)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_pureZcollectionsZsets_38(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZsets_41(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_3539)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tySequence__Y6pVop4P8VSwSorRqc2aQA** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc, NI h) {
	{
		NI T3_;
		NI correctSizeX60gensym32_;
		T3_ = ((*data) ? (*data)->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym32_ = slotsNeeded_pureZcollectionsZsets_49(((NI) 64));
		(*s).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*s).data), (tySequence__Y6pVop4P8VSwSorRqc2aQA*) newSeq((&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_), ((NI) (correctSizeX60gensym32_))));
	}
	LA4_: ;
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_2922)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s) {
	tySequence__Y6pVop4P8VSwSorRqc2aQA* n;
	NI T1_;
	tySequence__Y6pVop4P8VSwSorRqc2aQA* T2_;
	n = (tySequence__Y6pVop4P8VSwSorRqc2aQA*)0;
	T1_ = ((*s).data ? (*s).data->Sup.len : 0);
	n = (tySequence__Y6pVop4P8VSwSorRqc2aQA*) newSeq((&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = (tySequence__Y6pVop4P8VSwSorRqc2aQA*)0;
	T2_ = (*s).data;
	unsureAsgnRef((void**) (&(*s).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_pureZcollectionsZsets_38(n->data[i].Field0);
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC_injectdestructors_3173((*s), n->data[i].Field1, n->data[i].Field0);
					j = (NI)(((NI) -1) - T12_);
					rawInsert_injectdestructors_3539(s, (&(*s).data), n->data[i].Field1, n->data[i].Field0, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, incl_injectdestructors_2395)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym23_;
		T3_ = ((*s).data ? (*s).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym23_ = slotsNeeded_pureZcollectionsZsets_49(((NI) 64));
		(*s).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*s).data), (tySequence__Y6pVop4P8VSwSorRqc2aQA*) newSeq((&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_), ((NI) (correctSizeX60gensym23_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_injectdestructors_2482((*s), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash_injectdestructors_2730((*s));
			if (!T12_) goto LA13_;
			enlarge_injectdestructors_2922(s);
			index = rawGetKnownHC_injectdestructors_3173((*s), key, hc);
		}
		LA13_: ;
		rawInsert_injectdestructors_3539(s, (&(*s).data), key, hc, (NI)(((NI) -1) - index));
		(*s).counter += ((NI) 1);
	}
	LA8_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, excl_injectdestructors_2012)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* other) {
	{
		NI item;
		item = (NI)0;
		{
			if (!((*other).elems <= ((NI) 34))) goto LA4_;
			{
				NI i;
				NI i_2;
				i = (NI)0;
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < (*other).elems)) goto LA8;
						i = i_2;
						item = (*other).a[(i)- 0];
						excl_reorder_264(s, item);
						i_2 += ((NI) 1);
					} LA8: ;
				}
			}
		}
		goto LA2_;
		LA4_: ;
		{
			tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r;
			r = (*other).head;
			{
				while (1) {
					NI i_3;
					if (!!((r == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA11;
					i_3 = ((NI) 0);
					{
						while (1) {
							NU w;
							NI j;
							if (!(i_3 <= ((NI) 15))) goto LA13;
							w = (*r).bits[(i_3)- 0];
							j = ((NI) 0);
							{
								while (1) {
									if (!!((w == ((NU) 0)))) goto LA15;
									{
										NI T20_;
										if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA18_;
										T20_ = (NI)0;
										T20_ = pluspercent__system_696((NI)((NU32)(i_3) << (NU32)(((NI) 5))), j);
										item = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T20_);
										excl_reorder_264(s, item);
									}
									LA18_: ;
									j += ((NI) 1);
									w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
								} LA15: ;
							}
							i_3 += ((NI) 1);
						} LA13: ;
					}
					r = (*r).next;
				} LA11: ;
			}
		}
		LA2_: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, incl_injectdestructors_2107)(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ* s, tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ other) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* item;
		NI length;
		item = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		length = len_injectdestructors_2169(other);
		{
			NI h;
			NI colontmp_;
			NI T3_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T3_ = ((other.data ? other.data->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					h = res;
					{
						NIM_BOOL T8_;
						T8_ = (NIM_BOOL)0;
						T8_ = isFilled_pureZcollectionsZsets_38(other.data->data[h].Field0);
						if (!T8_) goto LA9_;
						item = other.data->data[h].Field1;
						incl_injectdestructors_2395(s, item);
					}
					LA9_: ;
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, mergeStates_injectdestructors_1944)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** a, tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* b) {
	{
		if (!((*a) == ((tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) 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_4040)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	difference_sem_4045(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
}
N_LIB_PRIVATE N_NIMCALL(void, union_injectdestructors_4127)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	NI T1_;
	(*Result).elems = 0;
	(*Result).counter = 0;
	(*Result).max = 0;
	unsureAsgnRef((void**)&(*Result).head, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < 34; T1_++) {
	(*Result).a[T1_] = 0;
	}
	assign_types_3917(Result, s1);
	incl_importer_1492(Result, s2);
}
static N_INLINE(void, plus__injectdestructors_4122)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s1, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s2, tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) {
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T1_;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	union_injectdestructors_4127(s1, s2, (&T1_));
	genericShallowAssign((void*)Result, (void*)(&T1_), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
}
static N_INLINE(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**, X5BX5D__injectdestructors_4096)(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** s, NI sLen_0, NI i) {
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** result;
	result = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	result = &s[(NI)(sLen_0 - i)];
	return result;
}
static N_NIMCALL(void, Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ)(void* p, NI op) {
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* a;
	NI T1_;
	a = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*)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(NI, rawGet_injectdestructors_4322)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash_injectdestructors_118(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled_pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash_injectdestructors_4652)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert_injectdestructors_5169)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tySequence__JGK6WZYU2JHWLoPdKRO4AQ** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge_injectdestructors_4838)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t) {
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* n;
	NI T1_;
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* T2_;
	n = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled_pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled_pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry_pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert_injectdestructors_5169(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC_injectdestructors_5350)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled_pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry_pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut_injectdestructors_4249)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g** result;
	NI hc;
	NI index;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym66_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym66_ = slotsNeeded_pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) (correctSizeX60gensym66_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet_injectdestructors_4322((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym71_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym71_ = slotsNeeded_pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) (correctSizeX60gensym71_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash_injectdestructors_4652((*t));
			if (!T17_) goto LA18_;
			enlarge_injectdestructors_4838(t);
			index = rawGetKnownHC_injectdestructors_5350((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert_injectdestructors_5169(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len_injectdestructors_5743)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, computeLastReadsAndFirstWrites_injectdestructors_3780)(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg) {
	tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g cache;
	tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* cfg_2;
	tySequence__mFtVDW3p7w6wfPPNodKzsA* states;
	NI T1_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T2_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA lastReads;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T125_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T126_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T127_;
	tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw** T128_;
	tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA T129_;
	tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ lastReadTable;
	nimZeroMem((void*)(&cache), sizeof(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g));
	initTable_injectdestructors_3782(((NI) 32), (&cache));
	genericSeqAssign((&cfg_2), cfg, (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_));
	preprocessCfg_injectdestructors_1924((&cfg_2));
	T1_ = (cfg_2 ? cfg_2->Sup.len : 0);
	states = newSeq_injectdestructors_3802(((NI) ((NI)(T1_ + ((NI) 1)))));
	T2_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
	T2_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) newObj((&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_), sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw));
	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___G9bbCRpuemWPWC66CPVRKyw*) NIM_NIL)))) goto LA9_;
					switch (cfg_2->data[pc].kind) {
					case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2):
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReadsCopy;
						NIM_BOOL alreadySeenThisNode;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T77_;
						nimZeroMem((void*)(&potentialLastReadsCopy), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						genericAssign((void*)(&potentialLastReadsCopy), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						{
							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__mOZtJx9b3QXuy9bfWq9cuUNCg T22_;
												T22_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T22_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
												if (!(T22_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 0))) goto LA23_;
												incl_pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
												excl_reorder_264((&(*states->data[pc]).potentialLastReads), r);
											}
											goto LA20_;
											LA23_: ;
											{
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T26_;
												NimStringDesc* T29_;
												NimStringDesc* T30_;
												T26_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T26_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
												if (!!((T26_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)))) goto LA27_;
												T29_ = (NimStringDesc*)0;
												T30_ = (NimStringDesc*)0;
												T30_ = dollar__systemZdollars_3(pc);
												T29_ = rawNewString((T30_ ? T30_->Sup.len : 0) + 1);
appendChar(T29_, 10);
appendString(T29_, T30_);
												commenteq__ast_1360(cfg_2->data[r].n, T29_);
												excl_reorder_264((&(*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___POcWT53G7t0BSUjc31o0iA* r_2;
								r_2 = potentialLastReadsCopy.head;
								{
									while (1) {
										NI i_4;
										if (!!((r_2 == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA33;
										i_4 = ((NI) 0);
										{
											while (1) {
												NU w;
												NI j;
												if (!(i_4 <= ((NI) 15))) 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)((NU32)(i_4) << (NU32)(((NI) 5))), j);
															r = (NI)((NI)((NU32)((*r_2).key) << (NU32)(((NI) 9))) | T42_);
															{
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T45_;
																T45_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T45_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r].n);
																if (!(T45_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 0))) goto LA46_;
																incl_pureZcollectionsZintsets_55((&(*states->data[pc]).lastReads), r);
																excl_reorder_264((&(*states->data[pc]).potentialLastReads), r);
															}
															goto LA43_;
															LA46_: ;
															{
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T49_;
																NimStringDesc* T52_;
																NimStringDesc* T53_;
																T49_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T49_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[r].n, cfg_2->data[pc].n);
																if (!!((T49_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)))) goto LA50_;
																T52_ = (NimStringDesc*)0;
																T53_ = (NimStringDesc*)0;
																T53_ = dollar__systemZdollars_3(pc);
																T52_ = rawNewString((T53_ ? T53_->Sup.len : 0) + 1);
appendChar(T52_, 10);
appendString(T52_, T53_);
																commenteq__ast_1360(cfg_2->data[r].n, T52_);
																excl_reorder_264((&(*states->data[pc]).potentialLastReads), r);
																incl_pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r);
															}
															goto LA43_;
															LA50_: ;
															LA43_: ;
														}
														LA40_: ;
														j += ((NI) 1);
														w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
													} LA37: ;
												}
												i_4 += ((NI) 1);
											} LA35: ;
										}
										r_2 = (*r_2).next;
									} LA33: ;
								}
							}
							LA13_: ;
						}
						alreadySeenThisNode = NIM_FALSE;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
							tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ colontmp__2;
							NI length;
							s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							nimZeroMem((void*)(&colontmp__2), sizeof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ));
							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__mOZtJx9b3QXuy9bfWq9cuUNCg T67_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T69_;
												T66_ = (NIM_BOOL)0;
												T67_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T67_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[pc].n, s);
												T66_ = !((T67_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												if (T66_) goto LA68_;
												T69_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T69_ = aliasesCached_injectdestructors_121((&cache), s, cfg_2->data[pc].n);
												T66_ = !((T69_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 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__jyh9acXHkhZANSSvPIY7ZLg) 22)) & 31));
						}
						goto LA72_;
						LA74_: ;
						{
							(*cfg_2->data[pc].n).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 22)) & 31);
						}
						LA72_: ;
						incl_injectdestructors_2395((&(*states->data[pc]).alreadySeen), cfg_2->data[pc].n);
						T77_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
						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__kmjEwko0gQNypI4MTa9chwQ) 3):
					{
						tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA potentialLastReadsCopy_2;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T119_;
						nimZeroMem((void*)(&potentialLastReadsCopy_2), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
						genericAssign((void*)(&potentialLastReadsCopy_2), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						{
							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__mOZtJx9b3QXuy9bfWq9cuUNCg T90_;
												tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T92_;
												NimStringDesc* T95_;
												NimStringDesc* T96_;
												T89_ = (NIM_BOOL)0;
												T90_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T90_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
												T89_ = !((T90_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												if (T89_) goto LA91_;
												T92_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
												T92_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
												T89_ = !((T92_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
												LA91_: ;
												if (!T89_) goto LA93_;
												T95_ = (NimStringDesc*)0;
												T96_ = (NimStringDesc*)0;
												T96_ = dollar__systemZdollars_3(pc);
												T95_ = rawNewString((T96_ ? T96_->Sup.len : 0) + 1);
appendChar(T95_, 10);
appendString(T95_, T96_);
												commenteq__ast_1360(cfg_2->data[r_3].n, T95_);
												excl_reorder_264((&(*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___POcWT53G7t0BSUjc31o0iA* r_4;
								r_4 = potentialLastReadsCopy_2.head;
								{
									while (1) {
										NI i_7;
										if (!!((r_4 == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA99;
										i_7 = ((NI) 0);
										{
											while (1) {
												NU w_2;
												NI j_2;
												if (!(i_7 <= ((NI) 15))) 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)((NU32)(i_7) << (NU32)(((NI) 5))), j_2);
															r_3 = (NI)((NI)((NU32)((*r_4).key) << (NU32)(((NI) 9))) | T108_);
															{
																NIM_BOOL T111_;
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T112_;
																tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T114_;
																NimStringDesc* T117_;
																NimStringDesc* T118_;
																T111_ = (NIM_BOOL)0;
																T112_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T112_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[pc].n, cfg_2->data[r_3].n);
																T111_ = !((T112_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
																if (T111_) goto LA113_;
																T114_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
																T114_ = aliasesCached_injectdestructors_121((&cache), cfg_2->data[r_3].n, cfg_2->data[pc].n);
																T111_ = !((T114_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1)));
																LA113_: ;
																if (!T111_) goto LA115_;
																T117_ = (NimStringDesc*)0;
																T118_ = (NimStringDesc*)0;
																T118_ = dollar__systemZdollars_3(pc);
																T117_ = rawNewString((T118_ ? T118_->Sup.len : 0) + 1);
appendChar(T117_, 10);
appendString(T117_, T118_);
																commenteq__ast_1360(cfg_2->data[r_3].n, T117_);
																excl_reorder_264((&(*states->data[pc]).potentialLastReads), r_3);
																incl_pureZcollectionsZintsets_55((&(*states->data[pc]).notLastReads), r_3);
															}
															LA115_: ;
														}
														LA106_: ;
														j_2 += ((NI) 1);
														w_2 = (NU)((NU32)(w_2) >> (NU32)(((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_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
						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__kmjEwko0gQNypI4MTa9chwQ) 0):
					{
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T121_;
						T121_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
						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__kmjEwko0gQNypI4MTa9chwQ) 1):
					{
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* copy;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T123_;
						tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw* T124_;
						T123_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
						T123_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*) newObj((&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_), sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw));
						copy = T123_;
						genericAssign((void*)(&(*copy).lastReads), (void*)(&(*states->data[pc]).lastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericAssign((void*)(&(*copy).potentialLastReads), (void*)(&(*states->data[pc]).potentialLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericAssign((void*)(&(*copy).notLastReads), (void*)(&(*states->data[pc]).notLastReads), (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_));
						genericSeqAssign((&(*copy).alreadySeen.data), (*states->data[pc]).alreadySeen.data, (&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_));
						(*copy).alreadySeen.counter = (*states->data[pc]).alreadySeen.counter;
						mergeStates_injectdestructors_1944(&states->data[(NI)(pc + cfg_2->data[pc].dest)], copy);
						T124_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*)0;
						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__IhxwDBRi51nGrosBGFKcsA));
	T125_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T125_ = X5BX5D__injectdestructors_4096(states->data, (states ? states->Sup.len : 0), ((NI) 1));
	T126_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T126_ = X5BX5D__injectdestructors_4096(states->data, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T127_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	plus__injectdestructors_4122((&(*(*T125_)).lastReads), (&(*(*T126_)).potentialLastReads), (&T127_));
	T128_ = (tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw**)0;
	T128_ = X5BX5D__injectdestructors_4096(states->data, (states ? states->Sup.len : 0), ((NI) 1));
	nimZeroMem((void*)(&T129_), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA));
	minus__sem_4040((&T127_), (&(*(*T128_)).notLastReads), (&T129_));
	nimCopyMem((void*)(&lastReads), (NIM_CONST void*)(&T129_), sizeof(lastReads));
	nimZeroMem((void*)(&lastReadTable), sizeof(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ));
	{
		NI position;
		tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg node;
		NI i_8;
		NI L;
		NI T131_;
		position = (NI)0;
		nimZeroMem((void*)(&node), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		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__kmjEwko0gQNypI4MTa9chwQ) 3))) goto LA136_;
					T138_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
					T138_ = NIM_NIL;
					T139_ = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
					T139_ = mgetOrPut_injectdestructors_4249((&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__bROa11lyF5vxEN9aYNbHmhw* node_2;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* positions;
		NI L_2;
		node_2 = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		positions = (tySequence__qwqHTkRvwhrRyENtudHQ7g*)0;
		L_2 = len_injectdestructors_5743(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_3496((&lastReads), (*p));
											if (!!(T158_)) goto LA159_;
											goto LA151;
										}
										LA159_: ;
										i_9 += ((NI) 1);
									} LA155: ;
								}
							}
							(*node_2).flags |= ((NU32)1)<<((((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 21)) & 31);
						} LA151: ;
					}
					LA149_: ;
					res_2 += ((NI) 1);
				} LA145: ;
			}
		}
	}
}
static N_INLINE(NI, len_ast_3197)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_4778)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nestedScope_injectdestructors_72)(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* parent, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* 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__bROa11lyF5vxEN9aYNbHmhw*, processScope_injectdestructors_7016)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ret) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
	{
		NI T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSection;
		T3_ = ((*s).vars ? (*s).vars->Sup.len : 0);
		if (!(((NI) 0) < T3_)) goto LA4_;
		varSection = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*ret).info);
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmp;
			NI i;
			NI L;
			NI T7_;
			tmp = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
			i = ((NI) 0);
			T7_ = ((*s).vars ? (*s).vars->Sup.len : 0);
			L = T7_;
			{
				while (1) {
					tyArray__T6RKPw8xfAeNaoei9aZGzXg T10_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
					if (!(i < L)) goto LA9;
					tmp = &(*s).vars->data[i];
					nimZeroMem((void*)T10_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
					T10_[0] = newSymNode_ast_3715((*tmp));
					T10_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T10_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*ret).info);
					T11_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T11_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T10_, 3);
					add_ast_4796(varSection, T11_);
					i += ((NI) 1);
				} LA9: ;
			}
		}
		add_ast_4796(result, varSection);
	}
	LA4_: ;
	{
		NIM_BOOL T14_;
		NI T15_;
		NI T17_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*ret).info);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** m;
			NI i_2;
			NI L_2;
			NI T21_;
			m = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)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_4796(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_4796(finSection, (*s).final->data[i_3]);
					res -= ((NI) 1);
				} LA27: ;
			}
		}
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!(*s).needsTry) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = newTryFinally_lowerings_202(ret, finSection);
			add_ast_4796(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			add_ast_4796(result, ret);
			add_ast_4796(result, finSection);
		}
		LA28_: ;
	}
	goto LA12_;
	LA18_: ;
	{
		add_ast_4796(result, ret);
	}
	LA12_: ;
	{
		NIM_BOOL T39_;
		if (!!(((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) 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__ozxAxZLHTQ9c3akTzYvt67g, nextSymId_ast_3131)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getTemp_injectdestructors_61)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
	NI T3_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*)0;
	T1_ = getIdent_idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_14));
	T2_ = nextSymId_ast_3131((*c).idgen);
	sym = newSym_ast_3444(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, T2_, (*c).owner, info, 0);
	asgnRef((void**) (&(*sym).typ), typ);
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	T3_ = (*s).vars->Sup.len++;
	asgnRef((void**) (&(*s).vars->data[T3_]), sym);
	result = newSymNode_ast_3715(sym);
	return result;
}
static N_INLINE(NIM_BOOL, hasDestructor_injectdestructors_49)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((IL64(2147483664) & (*t).flags) == 0));
	return result;
}
static N_INLINE(NIM_BOOL, isGenericParams_ast_4615)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T1_)) goto LA2_;
	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isGenericRoutine_ast_4626)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
	if (!(T2_)) goto LA3_;
	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
	LA3_: ;
	T1_ = T2_;
	if (!(T1_)) goto LA4_;
	T1_ = isGenericParams_ast_4615((*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_1735)(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_1735(((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__EE5dzjqoOrHT6HJhIPXAvA x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = (NimStringDesc*)0;
	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__EE5dzjqoOrHT6HJhIPXAvA, dotdot__stdZenumutils_80)(NI a, NI b) {
	tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkType_ast_5044)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T1_) goto LA2_;
	T1_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, checkForErrorPragma_injectdestructors_6380)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NimStringDesc* opname) {
	NimStringDesc* m;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = typeToString_types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
	T1_ = rawNewString((opname ? opname->Sup.len : 0) + (T2_ ? T2_->Sup.len : 0) + 31);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_22));
appendString(T1_, opname);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_23));
appendString(T1_, T2_);
appendString(T1_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_24));
	m = T1_;
	{
		NIM_BOOL T5_;
		NIM_BOOL T6_;
		NimStringDesc* T11_;
		T5_ = (NIM_BOOL)0;
		T6_ = (NIM_BOOL)0;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_25));
		if (T6_) goto LA7_;
		T6_ = eqStrings(opname, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26));
		LA7_: ;
		T5_ = T6_;
		if (!(T5_)) goto LA8_;
		T5_ = !((ri == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
		LA8_: ;
		if (!T5_) goto LA9_;
		m = resizeString(m, 53);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_27));
		T11_ = (NimStringDesc*)0;
		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__EE5dzjqoOrHT6HJhIPXAvA T19_;
			NimStringDesc* T20_;
			NI T21_;
			NimStringDesc* T22_;
			T14_ = (NimStringDesc*)0;
			T14_ = comment_ast_992(ri);
			T15_ = (NIM_BOOL)0;
			T15_ = startsWith_pureZstrutils_1246(T14_, 10);
			if (!T15_) goto LA16_;
			m = resizeString(m, 29);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_28));
			T18_ = (NimStringDesc*)0;
			T18_ = comment_ast_992(ri);
			T19_ = dotdot__stdZenumutils_80(((NI) 1), ((NI) 1));
			T20_ = (NimStringDesc*)0;
			T20_ = X5BX5D__pureZunicode_3215(T18_, T19_);
			T21_ = (NI)0;
			T21_ = nsuParseInt(T20_);
			T22_ = (NimStringDesc*)0;
			T22_ = dollar__msgs_624((*(*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__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T25_)) goto LA26_;
			T25_ = ((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
			LA26_: ;
			T24_ = T25_;
			if (!(T24_)) goto LA27_;
			T28_ = (NIM_BOOL)0;
			T28_ = isSinkType_ast_5044((*(*ri)._kind_4.sym).typ);
			T24_ = !(T28_);
			LA27_: ;
			if (!T24_) goto LA29_;
			m = resizeString(m, 14);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_29));
			T31_ = (NimStringDesc*)0;
			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__dJ4qrEWDmqGA8FWJ0TYKJQ_30));
		}
		goto LA12_;
		LA29_: ;
		LA12_: ;
	}
	LA9_: ;
	m = resizeString(m, 11);
appendString(m, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_31));
	m = resizeString(m, ((*(*(*c).owner).name).s ? (*(*(*c).owner).name).s->Sup.len : 0) + 0);
appendString(m, (*(*(*c).owner).name).s);
	liMessage_msgs_1118((*(*c).graph).config, (*ri).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), m, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_32, NIM_FALSE);
}
static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId_ast_3150)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType_injectdestructors_6416)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
	result = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
	T1_ = nextTypeId_ast_3150((*c).idgen);
	result = newType_ast_3895(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21), T1_, (*c).owner);
	addSonSkipIntLit_magicsys_136(result, baseType, (*c).idgen);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp_injectdestructors_6420)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* addrExp;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T1_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
	T1_ = makePtrType_injectdestructors_6416(c, (*dest).typ);
	addrExp = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*dest).info, T1_);
	add_ast_4796(addrExp, dest);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = newSymNode_ast_3715(op);
	T2_[1] = addrExp;
	result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T2_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genOp_injectdestructors_6430)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	op = getAttachedOp_modulegraphs_4011((*c).graph, t, kind);
	{
		NIM_BOOL T3_;
		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* canon;
		T3_ = (NIM_BOOL)0;
		T3_ = (op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
		if (T3_) goto LA4_;
		T3_ = isGenericRoutine_ast_4626((*op).ast);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
		hashType_sighashes_462(t, 50, h);
		canon = getOrDefault_liftdestructors_976((*(*c).graph).canonTypes, h);
		{
			if (!!((canon == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA9_;
			op = getAttachedOp_modulegraphs_4011((*c).graph, canon, kind);
		}
		LA9_: ;
	}
	LA5_: ;
	{
		NimStringDesc* T15_;
		NimStringDesc* T16_;
		if (!(op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA13_;
		T15_ = (NimStringDesc*)0;
		T16_ = (NimStringDesc*)0;
		T16_ = typeToString_types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
		T15_ = rawNewString((AttachedOpToStr_ast_3847[(kind)- 0] ? AttachedOpToStr_ast_3847[(kind)- 0]->Sup.len : 0) + (T16_ ? T16_->Sup.len : 0) + 47);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16));
appendString(T15_, AttachedOpToStr_ast_3847[(kind)- 0]);
appendString(T15_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_17));
appendString(T15_, T16_);
		liMessage_msgs_1118((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T15_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_18, NIM_FALSE);
	}
	goto LA11_;
	LA13_: ;
	{
		NIM_BOOL T18_;
		NimStringDesc* T21_;
		T18_ = (NIM_BOOL)0;
		T18_ = isGenericRoutine_ast_4626((*op).ast);
		if (!T18_) goto LA19_;
		T21_ = (NimStringDesc*)0;
		T21_ = rawNewString((AttachedOpToStr_ast_3847[(kind)- 0] ? AttachedOpToStr_ast_3847[(kind)- 0]->Sup.len : 0) + 38);
appendString(T21_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_16));
appendString(T21_, AttachedOpToStr_ast_3847[(kind)- 0]);
appendString(T21_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_20));
		liMessage_msgs_1118((*(*c).graph).config, (*dest).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 2), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_21, NIM_FALSE);
	}
	goto LA11_;
	LA19_: ;
	LA11_: ;
	{
		if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA24_;
		checkForErrorPragma_injectdestructors_6380((&(*c)), t, ri, AttachedOpToStr_ast_3847[(kind)- 0]);
	}
	LA24_: ;
	result = genOp_injectdestructors_6420(c, op, dest);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDestroy_injectdestructors_6527)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes_ast_3734((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15);
	result = genOp_injectdestructors_6430(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), dest, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameConstant_injectdestructors_8436)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*a).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*a).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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_8432)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		if (!(T3_)) goto LA4_;
		T3_ = ((*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*b).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			if (!((*a).kind == (*b).kind)) goto LA9_;
			switch ((*a).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = sameLocation_injectdestructors_8432((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T13_)) goto LA14_;
				T13_ = sameLocation_injectdestructors_8432((*a)._kind_6.sons->data[((NI) 1)], (*b)._kind_6.sons->data[((NI) 1)]);
				LA14_: ;
				result = T13_;
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = sameLocation_injectdestructors_8432((*a)._kind_6.sons->data[((NI) 0)], (*b)._kind_6.sons->data[((NI) 0)]);
				if (!(T16_)) goto LA17_;
				T16_ = sameConstant_injectdestructors_8436((*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__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			result = sameLocation_injectdestructors_8432(b, a);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = sameLocation_injectdestructors_8432((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = sameLocation_injectdestructors_8432((*a)._kind_6.sons->data[((NI) 0)], b);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		{
			result = sameLocation_injectdestructors_8432((*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_6369)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		result = (((*(*n)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
	{
		result = isCursor_injectdestructors_6369((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
	{
		result = isCursor_injectdestructors_6369((*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	default:
	{
		result = NIM_FALSE;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFirstWrite_injectdestructors_6120)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	result = (NIM_BOOL)0;
	m = skipConvDfa_dfa_780(n);
	result = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 22))&31U)))!=0);
	return result;
}
static N_INLINE(NIM_BOOL, isNoInit_injectdestructors_6553)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T1_)) goto LA2_;
	T1_ = (((*(*dest)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 14))&63U)))!=0);
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genSink_injectdestructors_6564)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NIM_BOOL T6_;
		NIM_BOOL T7_;
		NIM_BOOL T8_;
		NIM_BOOL T9_;
		NIM_BOOL T14_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw 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__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T9_)) goto LA10_;
		T9_ = ((*(*dest)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA10_: ;
		T8_ = T9_;
		if (!(T8_)) goto LA11_;
		T8_ = ((*(*(*dest)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA11_: ;
		T7_ = T8_;
		if (T7_) goto LA12_;
		T7_ = isDecl;
		LA12_: ;
		T6_ = T7_;
		if (T6_) goto LA13_;
		T14_ = (NIM_BOOL)0;
		T14_ = isAnalysableFieldAccess_dfa_903(dest, (*c).owner);
		if (!(T14_)) goto LA15_;
		T14_ = isFirstWrite_injectdestructors_6120(dest, c);
		LA15_: ;
		T6_ = T14_;
		LA13_: ;
		T4_ = T6_;
		LA5_: ;
		T3_ = T4_;
		if (T3_) goto LA16_;
		T3_ = isNoInit_injectdestructors_6553(dest);
		LA16_: ;
		if (!T3_) goto LA17_;
		nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T19_[0] = dest;
		T19_[1] = ri;
		result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T19_, 2);
	}
	goto LA1_;
	LA17_: ;
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		t = skipTypes_ast_3734((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15);
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T23_;
			T23_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
			T23_ = getAttachedOp_modulegraphs_4011((*c).graph, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
			if (!!((T23_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA24_;
			result = genOp_injectdestructors_6430(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2), dest, ri);
			add_ast_4796(result, ri);
		}
		goto LA21_;
		LA24_: ;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T27_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T28_;
			nimZeroMem((void*)T27_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T27_[0] = genDestroy_injectdestructors_6527(c, dest);
			nimZeroMem((void*)T28_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T28_[0] = dest;
			T28_[1] = ri;
			T27_[1] = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T28_, 2);
			result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T27_, 2);
		}
		LA21_: ;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLastRead_injectdestructors_6103)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	result = (NIM_BOOL)0;
	m = skipConvDfa_dfa_780(n);
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T2_ = ((*m).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T2_)) goto LA3_;
	T2_ = (((*(*m)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45))&63U)))!=0);
	LA3_: ;
	T1_ = T2_;
	if (T1_) goto LA4_;
	T1_ = (((*m).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 21))&31U)))!=0);
	LA4_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWasMoved_injectdestructors_6739)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*n).info);
	T1_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
	T1_ = createMagic_modulegraphs_9008((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_33), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode_ast_3715(T1_);
	add_ast_4796(result, T2_);
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = copyTree_ast_4430(n);
	add_ast_4796(result, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genMarkCyclic_injectdestructors_6612)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		t = skipTypes_ast_3734((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35);
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType_liftdestructors_1366(t);
			if (!T7_) goto LA8_;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22))) goto LA12_;
				T14_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T14_ = callCodegenProc_lowerings_635((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36), (*dest).info, dest, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				add_ast_4796(result, T14_);
			}
			goto LA10_;
			LA12_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xenv;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
				xenv = genBuiltin_liftdestructors_113((*c).graph, (*c).idgen, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_37), dest);
				asgnRef((void**) (&(*xenv).typ), getSysType_magicsys_60((*c).graph, (*dest).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
				T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T16_ = callCodegenProc_lowerings_635((*c).graph, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_36), (*dest).info, xenv, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
				add_ast_4796(result, T16_);
			}
			LA10_: ;
		}
		LA8_: ;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructiveMoveVar_injectdestructors_6760)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor_injectdestructors_49((&(*c)), (*n).typ);
		if (!!(T3_)) goto LA4_;
		result = copyTree_ast_4430(n);
	}
	goto LA1_;
	LA4_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T7_;
		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T8_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempAsNode;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* vpart;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nn;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* wasMovedCall;
		result = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
		T7_ = (tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*)0;
		T7_ = getIdent_idents_143((*(*c).graph).cache, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_34));
		T8_ = nextSymId_ast_3131((*c).idgen);
		temp = newSym_ast_3444(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 9), T7_, T8_, (*c).owner, (*n).info, 0);
		asgnRef((void**) (&(*temp).typ), (*n).typ);
		v = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100), (*n).info);
		tempAsNode = newSymNode_ast_3715(temp);
		vpart = newNodeI_ast_3359(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*tempAsNode).info));
		asgnRef((void**) (&(*vpart)._kind_6.sons->data[((NI) 2)]), n);
		add_ast_4796(v, vpart);
		add_ast_4796(result, v);
		nn = skipConv_types_3585(n);
		genMarkCyclic_injectdestructors_6612(c, result, nn);
		wasMovedCall = genWasMoved_injectdestructors_6739(c, nn);
		add_ast_4796(result, wasMovedCall);
		add_ast_4796(result, tempAsNode);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopyNoCheck_injectdestructors_6634)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = skipTypes_ast_3734((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15);
	result = genOp_injectdestructors_6430(c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1), dest, ri);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genCopy_injectdestructors_6647)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	t = (*dest).typ;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)));
		LA4_: ;
		if (!T3_) goto LA5_;
		checkForErrorPragma_injectdestructors_6380((&(*c)), t, ri, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_26));
	}
	LA5_: ;
	result = genCopyNoCheck_injectdestructors_6634(c, dest, ri);
	return result;
}
static N_INLINE(NIM_BOOL, isCriticalLink_injectdestructors_6591)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !(((*dest).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, finishCopy_injectdestructors_6598)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, NIM_BOOL isFromSink) {
	{
		tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
		if (!((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5))) goto LA3_;
		t = skipTypes_ast_3734((*dest).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_35);
		{
			NIM_BOOL T7_;
			NIM_BOOL T10_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			T7_ = (NIM_BOOL)0;
			T7_ = cyclicType_liftdestructors_1366(t);
			if (!T7_) goto LA8_;
			T10_ = (NIM_BOOL)0;
			T10_ = isFromSink;
			if (T10_) goto LA11_;
			T10_ = isCriticalLink_injectdestructors_6591(dest);
			LA11_: ;
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = boolLit_liftdestructors_427((*c).graph, (*result).info, T10_);
			add_ast_4796(result, T12_);
		}
		LA8_: ;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, isDangerousSeq_injectdestructors_6847)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	t_2 = skipTypes_ast_3734(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
	T1_ = (NIM_BOOL)0;
	T1_ = ((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
	if (!(T1_)) goto LA2_;
	T1_ = !((((*(*t_2).sons->data[((NI) 0)]).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0));
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam_ast_5029)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, canBeMoved_injectdestructors_6532)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
	result = (NIM_BOOL)0;
	t_2 = skipTypes_ast_3734(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_15);
	{
		NIM_BOOL T5_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T7_;
		if (!(((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA3_;
		T5_ = (NIM_BOOL)0;
		T5_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T5_)) goto LA6_;
		T7_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
		T7_ = getAttachedOp_modulegraphs_4011((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
		T5_ = !((T7_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
		LA6_: ;
		result = T5_;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T9_;
		T9_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
		T9_ = getAttachedOp_modulegraphs_4011((*c).graph, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
		result = !((T9_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pRaiseStmt_injectdestructors_7126)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*(*(*c).graph).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
		if (!(T3_)) goto LA4_;
		T3_ = !(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
		LA4_: ;
		if (!T3_) goto LA5_;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA9_;
			call = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = copyNode_ast_4335(n);
			add_ast_4796(result, call);
		}
		goto LA7_;
		LA9_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toDisarm;
			tyArray__jlWPjgtbdjE069arIWHC9c9bg T25_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
			tmp = getTemp_injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 0)]).typ, (*n).info);
			m = genCopyNoCheck_injectdestructors_6634(c, tmp, (*n)._kind_6.sons->data[((NI) 0)]);
			T12_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T12_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add_ast_4796(m, T12_);
			finishCopy_injectdestructors_6598(c, m, (*n)._kind_6.sons->data[((NI) 0)], NIM_FALSE);
			nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T13_[0] = genWasMoved_injectdestructors_6739(c, tmp);
			T13_[1] = m;
			result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T13_, 2);
			toDisarm = (*n)._kind_6.sons->data[((NI) 0)];
			{
				if (!((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA16_;
				toDisarm = lastSon_ast_4831(toDisarm);
			}
			LA16_: ;
			{
				NIM_BOOL T20_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
				T20_ = (NIM_BOOL)0;
				T20_ = ((*toDisarm).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T20_)) goto LA21_;
				T20_ = ((*(*toDisarm)._kind_4.sym).owner == (*c).owner);
				LA21_: ;
				if (!T20_) goto LA22_;
				T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T24_ = genWasMoved_injectdestructors_6739(c, toDisarm);
				add_ast_4796(result, T24_);
			}
			LA22_: ;
			nimZeroMem((void*)T25_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
			T25_[0] = tmp;
			T26_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T26_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T25_, 1);
			add_ast_4796(result, T26_);
		}
		LA7_: ;
	}
	goto LA1_;
	LA5_: ;
	{
		result = copyNode_ast_4335(n);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA30_;
			T32_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T32_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			add_ast_4796(result, T32_);
		}
		goto LA28_;
		LA30_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T34_;
			T34_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T34_ = copyNode_ast_4335((*n)._kind_6.sons->data[((NI) 0)]);
			add_ast_4796(result, T34_);
		}
		LA28_: ;
	}
	LA1_: ;
	(*s).needsTry = NIM_TRUE;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, moveOrCopy_injectdestructors_110)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, NIM_BOOL isDecl) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameLocation_injectdestructors_8432(dest, ri);
		if (!T3_) goto LA4_;
		result = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*dest).info);
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = isCursor_injectdestructors_6369(dest);
		if (!T7_) goto LA8_;
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
				{
					NI T14_;
					T14_ = (NI)0;
					T14_ = len_ast_3197(ri);
					if (!(T14_ == ((NI) 0))) goto LA15_;
					result = ri;
					goto BeforeRet_;
				}
				LA15_: ;
				result = copyNode_ast_4335(ri);
				{
					NI iX60gensym501_;
					NI colontmp_;
					NI T18_;
					NI i;
					iX60gensym501_ = (NI)0;
					colontmp_ = (NI)0;
					T18_ = (NI)0;
					T18_ = len_ast_3197(ri);
					colontmp_ = (NI)(T18_ - ((NI) 1));
					i = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
							if (!(i < colontmp_)) goto LA20;
							iX60gensym501_ = i;
							T21_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T21_ = p_injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym501_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							add_ast_4796(result, T21_);
							i += ((NI) 1);
						} LA20: ;
					}
				}
				T22_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI T25_;
					NIM_BOOL T26_;
					NI T29_;
					T25_ = (NI)0;
					T25_ = len_ast_3197(ri);
					T26_ = (NIM_BOOL)0;
					T26_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))]).typ);
					if (!T26_) goto LA27_;
					T29_ = (NI)0;
					T29_ = len_ast_3197(ri);
					T22_ = p_injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T29_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA23_;
				LA27_: ;
				{
					NI T31_;
					T31_ = (NI)0;
					T31_ = len_ast_3197(ri);
					T22_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T31_ - ((NI) 1))], c, s, isDecl);
				}
				LA23_: ;
				add_ast_4796(result, T22_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
				result = copyNode_ast_4335(ri);
				T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T33_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add_ast_4796(result, T33_);
				{
					NI iX60gensym501__2;
					NI colontmp__2;
					NI i_2;
					iX60gensym501__2 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = len_ast_3197(ri);
					i_2 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym501_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym501_;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym501_;
							NI T41_;
							if (!(i_2 < colontmp__2)) goto LA36;
							iX60gensym501__2 = i_2;
							itX60gensym501_ = (*ri)._kind_6.sons->data[iX60gensym501__2];
							branchX60gensym501_ = shallowCopy_ast_4412(itX60gensym501_);
							{
								NI jX60gensym501_;
								NI colontmp__3;
								NI T38_;
								NI i_3;
								jX60gensym501_ = (NI)0;
								colontmp__3 = (NI)0;
								T38_ = (NI)0;
								T38_ = len_ast_3197(itX60gensym501_);
								colontmp__3 = (NI)(T38_ - ((NI) 1));
								i_3 = ((NI) 0);
								{
									while (1) {
										if (!(i_3 < colontmp__3)) goto LA40;
										jX60gensym501_ = i_3;
										asgnRef((void**) (&(*branchX60gensym501_)._kind_6.sons->data[jX60gensym501_]), copyTree_ast_4430((*itX60gensym501_)._kind_6.sons->data[jX60gensym501_]));
										i_3 += ((NI) 1);
									} LA40: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym501_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&ofScopeX60gensym501_));
							T41_ = (NI)0;
							T41_ = len_ast_3197(branchX60gensym501_);
							{
								NIM_BOOL T44_;
								NI T45_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
								T44_ = (NIM_BOOL)0;
								T45_ = (NI)0;
								T45_ = len_ast_3197(itX60gensym501_);
								T44_ = isEmptyType_ast_4778((*(*itX60gensym501_)._kind_6.sons->data[(NI)(T45_ - ((NI) 1))]).typ);
								if (T44_) goto LA46_;
								T44_ = NIM_TRUE;
								LA46_: ;
								if (!T44_) goto LA47_;
								T49_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T52_;
									NIM_BOOL T53_;
									NI T56_;
									T52_ = (NI)0;
									T52_ = len_ast_3197(itX60gensym501_);
									T53_ = (NIM_BOOL)0;
									T53_ = isEmptyType_ast_4778((*(*itX60gensym501_)._kind_6.sons->data[(NI)(T52_ - ((NI) 1))]).typ);
									if (!T53_) goto LA54_;
									T56_ = (NI)0;
									T56_ = len_ast_3197(itX60gensym501_);
									T49_ = p_injectdestructors_105((*itX60gensym501_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))], c, (&ofScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA50_;
								LA54_: ;
								{
									NI T58_;
									T58_ = (NI)0;
									T58_ = len_ast_3197(itX60gensym501_);
									T49_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym501_)._kind_6.sons->data[(NI)(T58_ - ((NI) 1))], c, (&ofScopeX60gensym501_), isDecl);
								}
								LA50_: ;
								asgnRef((void**) (&(*branchX60gensym501_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&ofScopeX60gensym501_), T49_));
							}
							goto LA42_;
							LA47_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym539_;
								NI T60_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym539_;
								NI T61_;
								NI T62_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym539_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym539_;
								NI T89_;
								T60_ = (NI)0;
								T60_ = len_ast_3197(itX60gensym501_);
								resultX60gensym539_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T60_ - ((NI) 1))]).info);
								T61_ = (NI)0;
								T61_ = len_ast_3197(itX60gensym501_);
								T62_ = (NI)0;
								T62_ = len_ast_3197(itX60gensym501_);
								tmpX60gensym539_ = getTemp_injectdestructors_61(c, ofScopeX60gensym501_.parent, (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T61_ - ((NI) 1))]).typ, (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T62_ - ((NI) 1))]).info);
								(*(*tmpX60gensym539_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T65_;
									NIM_BOOL T66_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T69_;
									NI T70_;
									NI T71_;
									T65_ = (NI)0;
									T65_ = len_ast_3197(itX60gensym501_);
									T66_ = (NIM_BOOL)0;
									T66_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T65_ - ((NI) 1))]).typ);
									if (!T66_) goto LA67_;
									T69_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T69_ = genDestroy_injectdestructors_6527(c, tmpX60gensym539_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym501_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym501_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T70_ = (*ofScopeX60gensym501_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym501_.parent).final->data[T70_]), T69_);
									T71_ = (NI)0;
									T71_ = len_ast_3197(itX60gensym501_);
									cpyX60gensym539_ = moveOrCopy_injectdestructors_110(tmpX60gensym539_, (*itX60gensym501_)._kind_6.sons->data[(NI)(T71_ - ((NI) 1))], c, (&ofScopeX60gensym501_), NIM_TRUE);
								}
								goto LA63_;
								LA67_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T73_;
									NI T74_;
									nimZeroMem((void*)T73_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T73_[0] = tmpX60gensym539_;
									T74_ = (NI)0;
									T74_ = len_ast_3197(itX60gensym501_);
									T73_[1] = p_injectdestructors_105((*itX60gensym501_)._kind_6.sons->data[(NI)(T74_ - ((NI) 1))], c, (&ofScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym539_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T73_, 2);
								}
								LA63_: ;
								{
									NI T77_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym539_;
									NI T80_;
									T77_ = (ofScopeX60gensym501_.vars ? ofScopeX60gensym501_.vars->Sup.len : 0);
									if (!(((NI) 0) < T77_)) goto LA78_;
									T80_ = (NI)0;
									T80_ = len_ast_3197(itX60gensym501_);
									varSectionX60gensym539_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T80_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym539__2;
										NI i_4;
										NI L;
										NI T82_;
										tmpX60gensym539__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_4 = ((NI) 0);
										T82_ = (ofScopeX60gensym501_.vars ? ofScopeX60gensym501_.vars->Sup.len : 0);
										L = T82_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T85_;
												NI T86_;
												NI T87_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T88_;
												if (!(i_4 < L)) goto LA84;
												tmpX60gensym539__2 = &ofScopeX60gensym501_.vars->data[i_4];
												nimZeroMem((void*)T85_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T85_[0] = newSymNode_ast_3715((*tmpX60gensym539__2));
												T86_ = (NI)0;
												T86_ = len_ast_3197(itX60gensym501_);
												T85_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T86_ - ((NI) 1))]).info);
												T87_ = (NI)0;
												T87_ = len_ast_3197(itX60gensym501_);
												T85_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T87_ - ((NI) 1))]).info);
												T88_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T88_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T85_, 3);
												add_ast_4796(varSectionX60gensym539_, T88_);
												i_4 += ((NI) 1);
											} LA84: ;
										}
									}
									add_ast_4796(resultX60gensym539_, varSectionX60gensym539_);
								}
								LA78_: ;
								T89_ = (NI)0;
								T89_ = len_ast_3197(itX60gensym501_);
								finSectionX60gensym539_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym501_)._kind_6.sons->data[(NI)(T89_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym539_;
									NI i_5;
									NI L_2;
									NI T91_;
									mX60gensym539_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_5 = ((NI) 0);
									T91_ = (ofScopeX60gensym501_.wasMoved ? ofScopeX60gensym501_.wasMoved->Sup.len : 0);
									L_2 = T91_;
									{
										while (1) {
											if (!(i_5 < L_2)) goto LA93;
											mX60gensym539_ = &ofScopeX60gensym501_.wasMoved->data[i_5];
											add_ast_4796(finSectionX60gensym539_, (*mX60gensym539_));
											i_5 += ((NI) 1);
										} LA93: ;
									}
								}
								{
									NI iX60gensym539_;
									NI colontmp__4;
									NI T95_;
									NI res;
									iX60gensym539_ = (NI)0;
									colontmp__4 = (NI)0;
									T95_ = ((ofScopeX60gensym501_.final ? ofScopeX60gensym501_.final->Sup.len : 0)-1);
									colontmp__4 = T95_;
									res = colontmp__4;
									{
										while (1) {
											if (!(((NI) 0) <= res)) goto LA97;
											iX60gensym539_ = res;
											add_ast_4796(finSectionX60gensym539_, ofScopeX60gensym501_.final->data[iX60gensym539_]);
											res -= ((NI) 1);
										} LA97: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T102_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T103_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T104_;
									if (!ofScopeX60gensym501_.needsTry) goto LA100_;
									nimZeroMem((void*)T102_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T102_[0] = cpyX60gensym539_;
									T102_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym539_, c, ofScopeX60gensym501_.parent, isDecl);
									T103_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T103_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T102_, 2);
									T104_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T104_ = newTryFinally_lowerings_202(T103_, finSectionX60gensym539_);
									add_ast_4796(resultX60gensym539_, T104_);
								}
								goto LA98_;
								LA100_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T106_;
									add_ast_4796(resultX60gensym539_, cpyX60gensym539_);
									add_ast_4796(resultX60gensym539_, finSectionX60gensym539_);
									T106_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T106_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym539_, c, ofScopeX60gensym501_.parent, isDecl);
									add_ast_4796(resultX60gensym539_, T106_);
								}
								LA98_: ;
								{
									NIM_BOOL T111_;
									if (!!((ofScopeX60gensym501_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA109_;
									T111_ = (NIM_BOOL)0;
									T111_ = (*ofScopeX60gensym501_.parent).needsTry;
									if (T111_) goto LA112_;
									T111_ = ofScopeX60gensym501_.needsTry;
									LA112_: ;
									(*ofScopeX60gensym501_.parent).needsTry = T111_;
								}
								LA109_: ;
								asgnRef((void**) (&(*branchX60gensym501_)._kind_6.sons->data[(NI)(T41_ - ((NI) 1))]), resultX60gensym539_);
							}
							LA42_: ;
							add_ast_4796(result, branchX60gensym501_);
							i_2 += ((NI) 1);
						} LA36: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T114_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym501_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym501_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T115_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode_ast_4335(ri);
				T114_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T114_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add_ast_4796(result, T114_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym501_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym501_));
				bodyResultX60gensym501_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				T115_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T115_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym501_), bodyResultX60gensym501_);
				add_ast_4796(result, T115_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
			{
				NI lastX60gensym501_;
				NI T117_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym501__2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym501__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy_ast_4412(ri);
				T117_ = (NI)0;
				T117_ = len_ast_3197(ri);
				lastX60gensym501_ = (NI)(T117_ - ((NI) 1));
				{
					NI iX60gensym501__3;
					NI colontmp__5;
					NI i_6;
					iX60gensym501__3 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = (NI)(lastX60gensym501_ - ((NI) 1));
					i_6 = ((NI) 0);
					{
						while (1) {
							if (!(i_6 < colontmp__5)) goto LA120;
							iX60gensym501__3 = i_6;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym501__3]), (*ri)._kind_6.sons->data[iX60gensym501__3]);
							i_6 += ((NI) 1);
						} LA120: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym501_ - ((NI) 1))]), p_injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym501_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym501__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym501__2));
				bodyResultX60gensym501__2 = p_injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym501_], c, (&bodyScopeX60gensym501__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym501_]), processScope_injectdestructors_7016(c, (&bodyScopeX60gensym501__2), bodyResultX60gensym501__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym501__3;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T122_;
				result = copyNode_ast_4335(ri);
				add_ast_4796(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym501__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym501__3));
				T122_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T125_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T129_;
					T125_ = (NIM_BOOL)0;
					T125_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T125_) goto LA126_;
					T125_ = NIM_TRUE;
					LA126_: ;
					if (!T125_) goto LA127_;
					T129_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T129_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym501__3), isDecl);
					T122_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym501__3), T129_);
				}
				goto LA123_;
				LA127_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym561_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym561_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym561_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym561_;
					resultX60gensym561_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					tmpX60gensym561_ = getTemp_injectdestructors_61(c, bodyScopeX60gensym501__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym561_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T133_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T136_;
						NI T137_;
						T133_ = (NIM_BOOL)0;
						T133_ = hasDestructor_injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T133_) goto LA134_;
						T136_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T136_ = genDestroy_injectdestructors_6527(c, tmpX60gensym561_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym501__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym501__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T137_ = (*bodyScopeX60gensym501__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym501__3.parent).final->data[T137_]), T136_);
						cpyX60gensym561_ = moveOrCopy_injectdestructors_110(tmpX60gensym561_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym501__3), NIM_TRUE);
					}
					goto LA131_;
					LA134_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T139_;
						nimZeroMem((void*)T139_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T139_[0] = tmpX60gensym561_;
						T139_[1] = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym501__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym561_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T139_, 2);
					}
					LA131_: ;
					{
						NI T142_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym561_;
						T142_ = (bodyScopeX60gensym501__3.vars ? bodyScopeX60gensym501__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T142_)) goto LA143_;
						varSectionX60gensym561_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym561__2;
							NI i_7;
							NI L_3;
							NI T146_;
							tmpX60gensym561__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_7 = ((NI) 0);
							T146_ = (bodyScopeX60gensym501__3.vars ? bodyScopeX60gensym501__3.vars->Sup.len : 0);
							L_3 = T146_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T149_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T150_;
									if (!(i_7 < L_3)) goto LA148;
									tmpX60gensym561__2 = &bodyScopeX60gensym501__3.vars->data[i_7];
									nimZeroMem((void*)T149_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T149_[0] = newSymNode_ast_3715((*tmpX60gensym561__2));
									T149_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T149_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T150_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T150_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T149_, 3);
									add_ast_4796(varSectionX60gensym561_, T150_);
									i_7 += ((NI) 1);
								} LA148: ;
							}
						}
						add_ast_4796(resultX60gensym561_, varSectionX60gensym561_);
					}
					LA143_: ;
					finSectionX60gensym561_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym561_;
						NI i_8;
						NI L_4;
						NI T152_;
						mX60gensym561_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_8 = ((NI) 0);
						T152_ = (bodyScopeX60gensym501__3.wasMoved ? bodyScopeX60gensym501__3.wasMoved->Sup.len : 0);
						L_4 = T152_;
						{
							while (1) {
								if (!(i_8 < L_4)) goto LA154;
								mX60gensym561_ = &bodyScopeX60gensym501__3.wasMoved->data[i_8];
								add_ast_4796(finSectionX60gensym561_, (*mX60gensym561_));
								i_8 += ((NI) 1);
							} LA154: ;
						}
					}
					{
						NI iX60gensym561_;
						NI colontmp__6;
						NI T156_;
						NI res_2;
						iX60gensym561_ = (NI)0;
						colontmp__6 = (NI)0;
						T156_ = ((bodyScopeX60gensym501__3.final ? bodyScopeX60gensym501__3.final->Sup.len : 0)-1);
						colontmp__6 = T156_;
						res_2 = colontmp__6;
						{
							while (1) {
								if (!(((NI) 0) <= res_2)) goto LA158;
								iX60gensym561_ = res_2;
								add_ast_4796(finSectionX60gensym561_, bodyScopeX60gensym501__3.final->data[iX60gensym561_]);
								res_2 -= ((NI) 1);
							} LA158: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T163_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T164_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T165_;
						if (!bodyScopeX60gensym501__3.needsTry) goto LA161_;
						nimZeroMem((void*)T163_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T163_[0] = cpyX60gensym561_;
						T163_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym561_, c, bodyScopeX60gensym501__3.parent, isDecl);
						T164_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T164_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T163_, 2);
						T165_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T165_ = newTryFinally_lowerings_202(T164_, finSectionX60gensym561_);
						add_ast_4796(resultX60gensym561_, T165_);
					}
					goto LA159_;
					LA161_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T167_;
						add_ast_4796(resultX60gensym561_, cpyX60gensym561_);
						add_ast_4796(resultX60gensym561_, finSectionX60gensym561_);
						T167_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T167_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym561_, c, bodyScopeX60gensym501__3.parent, isDecl);
						add_ast_4796(resultX60gensym561_, T167_);
					}
					LA159_: ;
					{
						NIM_BOOL T172_;
						if (!!((bodyScopeX60gensym501__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA170_;
						T172_ = (NIM_BOOL)0;
						T172_ = (*bodyScopeX60gensym501__3.parent).needsTry;
						if (T172_) goto LA173_;
						T172_ = bodyScopeX60gensym501__3.needsTry;
						LA173_: ;
						(*bodyScopeX60gensym501__3.parent).needsTry = T172_;
					}
					LA170_: ;
					T122_ = resultX60gensym561_;
				}
				LA123_: ;
				add_ast_4796(result, T122_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
			{
				result = copyNode_ast_4335(ri);
				{
					NI iX60gensym501__4;
					NI colontmp__7;
					NI i_9;
					iX60gensym501__4 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len_ast_3197(ri);
					i_9 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym501__2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym501__2;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym501_;
							NI T182_;
							if (!(i_9 < colontmp__7)) goto LA177;
							iX60gensym501__4 = i_9;
							itX60gensym501__2 = (*ri)._kind_6.sons->data[iX60gensym501__4];
							branchX60gensym501__2 = shallowCopy_ast_4412(itX60gensym501__2);
							nimZeroMem((void*)(&branchScopeX60gensym501_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&branchScopeX60gensym501_));
							{
								if (!((*itX60gensym501__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym501__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA180_;
								asgnRef((void**) (&(*branchX60gensym501__2)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*itX60gensym501__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							LA180_: ;
							T182_ = (NI)0;
							T182_ = len_ast_3197(branchX60gensym501__2);
							{
								NIM_BOOL T185_;
								NI T186_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T190_;
								T185_ = (NIM_BOOL)0;
								T186_ = (NI)0;
								T186_ = len_ast_3197(itX60gensym501__2);
								T185_ = isEmptyType_ast_4778((*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T186_ - ((NI) 1))]).typ);
								if (T185_) goto LA187_;
								T185_ = NIM_TRUE;
								LA187_: ;
								if (!T185_) goto LA188_;
								T190_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T193_;
									NIM_BOOL T194_;
									NI T197_;
									T193_ = (NI)0;
									T193_ = len_ast_3197(itX60gensym501__2);
									T194_ = (NIM_BOOL)0;
									T194_ = isEmptyType_ast_4778((*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T193_ - ((NI) 1))]).typ);
									if (!T194_) goto LA195_;
									T197_ = (NI)0;
									T197_ = len_ast_3197(itX60gensym501__2);
									T190_ = p_injectdestructors_105((*itX60gensym501__2)._kind_6.sons->data[(NI)(T197_ - ((NI) 1))], c, (&branchScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA191_;
								LA195_: ;
								{
									NI T199_;
									T199_ = (NI)0;
									T199_ = len_ast_3197(itX60gensym501__2);
									T190_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym501__2)._kind_6.sons->data[(NI)(T199_ - ((NI) 1))], c, (&branchScopeX60gensym501_), isDecl);
								}
								LA191_: ;
								asgnRef((void**) (&(*branchX60gensym501__2)._kind_6.sons->data[(NI)(T182_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym501_), T190_));
							}
							goto LA183_;
							LA188_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym590_;
								NI T201_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym590_;
								NI T202_;
								NI T203_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym590_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym590_;
								NI T230_;
								T201_ = (NI)0;
								T201_ = len_ast_3197(itX60gensym501__2);
								resultX60gensym590_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T201_ - ((NI) 1))]).info);
								T202_ = (NI)0;
								T202_ = len_ast_3197(itX60gensym501__2);
								T203_ = (NI)0;
								T203_ = len_ast_3197(itX60gensym501__2);
								tmpX60gensym590_ = getTemp_injectdestructors_61(c, branchScopeX60gensym501_.parent, (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T202_ - ((NI) 1))]).typ, (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T203_ - ((NI) 1))]).info);
								(*(*tmpX60gensym590_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T206_;
									NIM_BOOL T207_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T210_;
									NI T211_;
									NI T212_;
									T206_ = (NI)0;
									T206_ = len_ast_3197(itX60gensym501__2);
									T207_ = (NIM_BOOL)0;
									T207_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T206_ - ((NI) 1))]).typ);
									if (!T207_) goto LA208_;
									T210_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T210_ = genDestroy_injectdestructors_6527(c, tmpX60gensym590_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym501_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym501_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T211_ = (*branchScopeX60gensym501_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym501_.parent).final->data[T211_]), T210_);
									T212_ = (NI)0;
									T212_ = len_ast_3197(itX60gensym501__2);
									cpyX60gensym590_ = moveOrCopy_injectdestructors_110(tmpX60gensym590_, (*itX60gensym501__2)._kind_6.sons->data[(NI)(T212_ - ((NI) 1))], c, (&branchScopeX60gensym501_), NIM_TRUE);
								}
								goto LA204_;
								LA208_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T214_;
									NI T215_;
									nimZeroMem((void*)T214_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T214_[0] = tmpX60gensym590_;
									T215_ = (NI)0;
									T215_ = len_ast_3197(itX60gensym501__2);
									T214_[1] = p_injectdestructors_105((*itX60gensym501__2)._kind_6.sons->data[(NI)(T215_ - ((NI) 1))], c, (&branchScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym590_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T214_, 2);
								}
								LA204_: ;
								{
									NI T218_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym590_;
									NI T221_;
									T218_ = (branchScopeX60gensym501_.vars ? branchScopeX60gensym501_.vars->Sup.len : 0);
									if (!(((NI) 0) < T218_)) goto LA219_;
									T221_ = (NI)0;
									T221_ = len_ast_3197(itX60gensym501__2);
									varSectionX60gensym590_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T221_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym590__2;
										NI i_10;
										NI L_5;
										NI T223_;
										tmpX60gensym590__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_10 = ((NI) 0);
										T223_ = (branchScopeX60gensym501_.vars ? branchScopeX60gensym501_.vars->Sup.len : 0);
										L_5 = T223_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T226_;
												NI T227_;
												NI T228_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T229_;
												if (!(i_10 < L_5)) goto LA225;
												tmpX60gensym590__2 = &branchScopeX60gensym501_.vars->data[i_10];
												nimZeroMem((void*)T226_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T226_[0] = newSymNode_ast_3715((*tmpX60gensym590__2));
												T227_ = (NI)0;
												T227_ = len_ast_3197(itX60gensym501__2);
												T226_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T227_ - ((NI) 1))]).info);
												T228_ = (NI)0;
												T228_ = len_ast_3197(itX60gensym501__2);
												T226_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T228_ - ((NI) 1))]).info);
												T229_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T229_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T226_, 3);
												add_ast_4796(varSectionX60gensym590_, T229_);
												i_10 += ((NI) 1);
											} LA225: ;
										}
									}
									add_ast_4796(resultX60gensym590_, varSectionX60gensym590_);
								}
								LA219_: ;
								T230_ = (NI)0;
								T230_ = len_ast_3197(itX60gensym501__2);
								finSectionX60gensym590_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym501__2)._kind_6.sons->data[(NI)(T230_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym590_;
									NI i_11;
									NI L_6;
									NI T232_;
									mX60gensym590_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_11 = ((NI) 0);
									T232_ = (branchScopeX60gensym501_.wasMoved ? branchScopeX60gensym501_.wasMoved->Sup.len : 0);
									L_6 = T232_;
									{
										while (1) {
											if (!(i_11 < L_6)) goto LA234;
											mX60gensym590_ = &branchScopeX60gensym501_.wasMoved->data[i_11];
											add_ast_4796(finSectionX60gensym590_, (*mX60gensym590_));
											i_11 += ((NI) 1);
										} LA234: ;
									}
								}
								{
									NI iX60gensym590_;
									NI colontmp__8;
									NI T236_;
									NI res_3;
									iX60gensym590_ = (NI)0;
									colontmp__8 = (NI)0;
									T236_ = ((branchScopeX60gensym501_.final ? branchScopeX60gensym501_.final->Sup.len : 0)-1);
									colontmp__8 = T236_;
									res_3 = colontmp__8;
									{
										while (1) {
											if (!(((NI) 0) <= res_3)) goto LA238;
											iX60gensym590_ = res_3;
											add_ast_4796(finSectionX60gensym590_, branchScopeX60gensym501_.final->data[iX60gensym590_]);
											res_3 -= ((NI) 1);
										} LA238: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T243_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T244_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T245_;
									if (!branchScopeX60gensym501_.needsTry) goto LA241_;
									nimZeroMem((void*)T243_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T243_[0] = cpyX60gensym590_;
									T243_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym590_, c, branchScopeX60gensym501_.parent, isDecl);
									T244_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T244_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T243_, 2);
									T245_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T245_ = newTryFinally_lowerings_202(T244_, finSectionX60gensym590_);
									add_ast_4796(resultX60gensym590_, T245_);
								}
								goto LA239_;
								LA241_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T247_;
									add_ast_4796(resultX60gensym590_, cpyX60gensym590_);
									add_ast_4796(resultX60gensym590_, finSectionX60gensym590_);
									T247_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T247_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym590_, c, branchScopeX60gensym501_.parent, isDecl);
									add_ast_4796(resultX60gensym590_, T247_);
								}
								LA239_: ;
								{
									NIM_BOOL T252_;
									if (!!((branchScopeX60gensym501_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA250_;
									T252_ = (NIM_BOOL)0;
									T252_ = (*branchScopeX60gensym501_.parent).needsTry;
									if (T252_) goto LA253_;
									T252_ = branchScopeX60gensym501_.needsTry;
									LA253_: ;
									(*branchScopeX60gensym501_.parent).needsTry = T252_;
								}
								LA250_: ;
								asgnRef((void**) (&(*branchX60gensym501__2)._kind_6.sons->data[(NI)(T182_ - ((NI) 1))]), resultX60gensym590_);
							}
							LA183_: ;
							add_ast_4796(result, branchX60gensym501__2);
							i_9 += ((NI) 1);
						} LA177: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym501_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T255_;
				result = copyNode_ast_4335(ri);
				nimZeroMem((void*)(&tryScopeX60gensym501_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&tryScopeX60gensym501_));
				T255_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T258_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T262_;
					T258_ = (NIM_BOOL)0;
					T258_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T258_) goto LA259_;
					T258_ = NIM_TRUE;
					LA259_: ;
					if (!T258_) goto LA260_;
					T262_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T265_;
						T265_ = (NIM_BOOL)0;
						T265_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T265_) goto LA266_;
						T262_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA263_;
					LA266_: ;
					{
						T262_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym501_), isDecl);
					}
					LA263_: ;
					T255_ = processScope_injectdestructors_7016(c, (&tryScopeX60gensym501_), T262_);
				}
				goto LA256_;
				LA260_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym606_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym606_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym606_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym606_;
					resultX60gensym606_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					tmpX60gensym606_ = getTemp_injectdestructors_61(c, tryScopeX60gensym501_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym606_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T272_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T275_;
						NI T276_;
						T272_ = (NIM_BOOL)0;
						T272_ = hasDestructor_injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T272_) goto LA273_;
						T275_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T275_ = genDestroy_injectdestructors_6527(c, tmpX60gensym606_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym501_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym501_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T276_ = (*tryScopeX60gensym501_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym501_.parent).final->data[T276_]), T275_);
						cpyX60gensym606_ = moveOrCopy_injectdestructors_110(tmpX60gensym606_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym501_), NIM_TRUE);
					}
					goto LA270_;
					LA273_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T278_;
						nimZeroMem((void*)T278_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T278_[0] = tmpX60gensym606_;
						T278_[1] = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym501_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym606_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T278_, 2);
					}
					LA270_: ;
					{
						NI T281_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym606_;
						T281_ = (tryScopeX60gensym501_.vars ? tryScopeX60gensym501_.vars->Sup.len : 0);
						if (!(((NI) 0) < T281_)) goto LA282_;
						varSectionX60gensym606_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym606__2;
							NI i_12;
							NI L_7;
							NI T285_;
							tmpX60gensym606__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_12 = ((NI) 0);
							T285_ = (tryScopeX60gensym501_.vars ? tryScopeX60gensym501_.vars->Sup.len : 0);
							L_7 = T285_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T288_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T289_;
									if (!(i_12 < L_7)) goto LA287;
									tmpX60gensym606__2 = &tryScopeX60gensym501_.vars->data[i_12];
									nimZeroMem((void*)T288_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T288_[0] = newSymNode_ast_3715((*tmpX60gensym606__2));
									T288_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T288_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T289_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T289_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T288_, 3);
									add_ast_4796(varSectionX60gensym606_, T289_);
									i_12 += ((NI) 1);
								} LA287: ;
							}
						}
						add_ast_4796(resultX60gensym606_, varSectionX60gensym606_);
					}
					LA282_: ;
					finSectionX60gensym606_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym606_;
						NI i_13;
						NI L_8;
						NI T291_;
						mX60gensym606_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_13 = ((NI) 0);
						T291_ = (tryScopeX60gensym501_.wasMoved ? tryScopeX60gensym501_.wasMoved->Sup.len : 0);
						L_8 = T291_;
						{
							while (1) {
								if (!(i_13 < L_8)) goto LA293;
								mX60gensym606_ = &tryScopeX60gensym501_.wasMoved->data[i_13];
								add_ast_4796(finSectionX60gensym606_, (*mX60gensym606_));
								i_13 += ((NI) 1);
							} LA293: ;
						}
					}
					{
						NI iX60gensym606_;
						NI colontmp__9;
						NI T295_;
						NI res_4;
						iX60gensym606_ = (NI)0;
						colontmp__9 = (NI)0;
						T295_ = ((tryScopeX60gensym501_.final ? tryScopeX60gensym501_.final->Sup.len : 0)-1);
						colontmp__9 = T295_;
						res_4 = colontmp__9;
						{
							while (1) {
								if (!(((NI) 0) <= res_4)) goto LA297;
								iX60gensym606_ = res_4;
								add_ast_4796(finSectionX60gensym606_, tryScopeX60gensym501_.final->data[iX60gensym606_]);
								res_4 -= ((NI) 1);
							} LA297: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T302_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T309_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T310_;
						if (!tryScopeX60gensym501_.needsTry) goto LA300_;
						nimZeroMem((void*)T302_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T302_[0] = cpyX60gensym606_;
						{
							NIM_BOOL T305_;
							T305_ = (NIM_BOOL)0;
							T305_ = isEmptyType_ast_4778((*tmpX60gensym606_).typ);
							if (!T305_) goto LA306_;
							T302_[1] = p_injectdestructors_105(tmpX60gensym606_, c, tryScopeX60gensym501_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA303_;
						LA306_: ;
						{
							T302_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym606_, c, tryScopeX60gensym501_.parent, isDecl);
						}
						LA303_: ;
						T309_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T309_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T302_, 2);
						T310_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T310_ = newTryFinally_lowerings_202(T309_, finSectionX60gensym606_);
						add_ast_4796(resultX60gensym606_, T310_);
					}
					goto LA298_;
					LA300_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T312_;
						add_ast_4796(resultX60gensym606_, cpyX60gensym606_);
						add_ast_4796(resultX60gensym606_, finSectionX60gensym606_);
						T312_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						{
							NIM_BOOL T315_;
							T315_ = (NIM_BOOL)0;
							T315_ = isEmptyType_ast_4778((*tmpX60gensym606_).typ);
							if (!T315_) goto LA316_;
							T312_ = p_injectdestructors_105(tmpX60gensym606_, c, tryScopeX60gensym501_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA313_;
						LA316_: ;
						{
							T312_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym606_, c, tryScopeX60gensym501_.parent, isDecl);
						}
						LA313_: ;
						add_ast_4796(resultX60gensym606_, T312_);
					}
					LA298_: ;
					{
						NIM_BOOL T323_;
						if (!!((tryScopeX60gensym501_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA321_;
						T323_ = (NIM_BOOL)0;
						T323_ = (*tryScopeX60gensym501_.parent).needsTry;
						if (T323_) goto LA324_;
						T323_ = tryScopeX60gensym501_.needsTry;
						LA324_: ;
						(*tryScopeX60gensym501_.parent).needsTry = T323_;
					}
					LA321_: ;
					T255_ = resultX60gensym606_;
				}
				LA256_: ;
				add_ast_4796(result, T255_);
				{
					NI iX60gensym501__5;
					NI colontmp__10;
					NI i_14;
					iX60gensym501__5 = (NI)0;
					colontmp__10 = (NI)0;
					colontmp__10 = len_ast_3197(ri);
					i_14 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym501__3;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym501__3;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym501__2;
							NI T328_;
							if (!(i_14 < colontmp__10)) goto LA327;
							iX60gensym501__5 = i_14;
							itX60gensym501__3 = (*ri)._kind_6.sons->data[iX60gensym501__5];
							branchX60gensym501__3 = copyTree_ast_4430(itX60gensym501__3);
							nimZeroMem((void*)(&branchScopeX60gensym501__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&branchScopeX60gensym501__2));
							T328_ = (NI)0;
							T328_ = len_ast_3197(branchX60gensym501__3);
							{
								NIM_BOOL T331_;
								NIM_BOOL T332_;
								NI T333_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T338_;
								T331_ = (NIM_BOOL)0;
								T332_ = (NIM_BOOL)0;
								T333_ = (NI)0;
								T333_ = len_ast_3197(itX60gensym501__3);
								T332_ = isEmptyType_ast_4778((*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T333_ - ((NI) 1))]).typ);
								if (T332_) goto LA334_;
								T332_ = NIM_TRUE;
								LA334_: ;
								T331_ = T332_;
								if (T331_) goto LA335_;
								T331_ = ((*itX60gensym501__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
								LA335_: ;
								if (!T331_) goto LA336_;
								T338_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T343_;
									if (!((*itX60gensym501__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA341_;
									T343_ = (NI)0;
									T343_ = len_ast_3197(itX60gensym501__3);
									T338_ = p_injectdestructors_105((*itX60gensym501__3)._kind_6.sons->data[(NI)(T343_ - ((NI) 1))], c, (&branchScopeX60gensym501__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA339_;
								LA341_: ;
								{
									{
										NI T347_;
										NIM_BOOL T348_;
										NI T351_;
										T347_ = (NI)0;
										T347_ = len_ast_3197(itX60gensym501__3);
										T348_ = (NIM_BOOL)0;
										T348_ = isEmptyType_ast_4778((*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T347_ - ((NI) 1))]).typ);
										if (!T348_) goto LA349_;
										T351_ = (NI)0;
										T351_ = len_ast_3197(itX60gensym501__3);
										T338_ = p_injectdestructors_105((*itX60gensym501__3)._kind_6.sons->data[(NI)(T351_ - ((NI) 1))], c, (&branchScopeX60gensym501__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									}
									goto LA345_;
									LA349_: ;
									{
										NI T353_;
										T353_ = (NI)0;
										T353_ = len_ast_3197(itX60gensym501__3);
										T338_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym501__3)._kind_6.sons->data[(NI)(T353_ - ((NI) 1))], c, (&branchScopeX60gensym501__2), isDecl);
									}
									LA345_: ;
								}
								LA339_: ;
								asgnRef((void**) (&(*branchX60gensym501__3)._kind_6.sons->data[(NI)(T328_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym501__2), T338_));
							}
							goto LA329_;
							LA336_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym637_;
								NI T355_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym637_;
								NI T356_;
								NI T357_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym637_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym637_;
								NI T384_;
								T355_ = (NI)0;
								T355_ = len_ast_3197(itX60gensym501__3);
								resultX60gensym637_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T355_ - ((NI) 1))]).info);
								T356_ = (NI)0;
								T356_ = len_ast_3197(itX60gensym501__3);
								T357_ = (NI)0;
								T357_ = len_ast_3197(itX60gensym501__3);
								tmpX60gensym637_ = getTemp_injectdestructors_61(c, branchScopeX60gensym501__2.parent, (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T356_ - ((NI) 1))]).typ, (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T357_ - ((NI) 1))]).info);
								(*(*tmpX60gensym637_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T360_;
									NIM_BOOL T361_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T364_;
									NI T365_;
									NI T366_;
									T360_ = (NI)0;
									T360_ = len_ast_3197(itX60gensym501__3);
									T361_ = (NIM_BOOL)0;
									T361_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T360_ - ((NI) 1))]).typ);
									if (!T361_) goto LA362_;
									T364_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T364_ = genDestroy_injectdestructors_6527(c, tmpX60gensym637_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym501__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym501__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T365_ = (*branchScopeX60gensym501__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym501__2.parent).final->data[T365_]), T364_);
									T366_ = (NI)0;
									T366_ = len_ast_3197(itX60gensym501__3);
									cpyX60gensym637_ = moveOrCopy_injectdestructors_110(tmpX60gensym637_, (*itX60gensym501__3)._kind_6.sons->data[(NI)(T366_ - ((NI) 1))], c, (&branchScopeX60gensym501__2), NIM_TRUE);
								}
								goto LA358_;
								LA362_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T368_;
									NI T369_;
									nimZeroMem((void*)T368_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T368_[0] = tmpX60gensym637_;
									T369_ = (NI)0;
									T369_ = len_ast_3197(itX60gensym501__3);
									T368_[1] = p_injectdestructors_105((*itX60gensym501__3)._kind_6.sons->data[(NI)(T369_ - ((NI) 1))], c, (&branchScopeX60gensym501__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym637_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T368_, 2);
								}
								LA358_: ;
								{
									NI T372_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym637_;
									NI T375_;
									T372_ = (branchScopeX60gensym501__2.vars ? branchScopeX60gensym501__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T372_)) goto LA373_;
									T375_ = (NI)0;
									T375_ = len_ast_3197(itX60gensym501__3);
									varSectionX60gensym637_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T375_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym637__2;
										NI i_15;
										NI L_9;
										NI T377_;
										tmpX60gensym637__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_15 = ((NI) 0);
										T377_ = (branchScopeX60gensym501__2.vars ? branchScopeX60gensym501__2.vars->Sup.len : 0);
										L_9 = T377_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T380_;
												NI T381_;
												NI T382_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T383_;
												if (!(i_15 < L_9)) goto LA379;
												tmpX60gensym637__2 = &branchScopeX60gensym501__2.vars->data[i_15];
												nimZeroMem((void*)T380_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T380_[0] = newSymNode_ast_3715((*tmpX60gensym637__2));
												T381_ = (NI)0;
												T381_ = len_ast_3197(itX60gensym501__3);
												T380_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T381_ - ((NI) 1))]).info);
												T382_ = (NI)0;
												T382_ = len_ast_3197(itX60gensym501__3);
												T380_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T382_ - ((NI) 1))]).info);
												T383_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T383_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T380_, 3);
												add_ast_4796(varSectionX60gensym637_, T383_);
												i_15 += ((NI) 1);
											} LA379: ;
										}
									}
									add_ast_4796(resultX60gensym637_, varSectionX60gensym637_);
								}
								LA373_: ;
								T384_ = (NI)0;
								T384_ = len_ast_3197(itX60gensym501__3);
								finSectionX60gensym637_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym501__3)._kind_6.sons->data[(NI)(T384_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym637_;
									NI i_16;
									NI L_10;
									NI T386_;
									mX60gensym637_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_16 = ((NI) 0);
									T386_ = (branchScopeX60gensym501__2.wasMoved ? branchScopeX60gensym501__2.wasMoved->Sup.len : 0);
									L_10 = T386_;
									{
										while (1) {
											if (!(i_16 < L_10)) goto LA388;
											mX60gensym637_ = &branchScopeX60gensym501__2.wasMoved->data[i_16];
											add_ast_4796(finSectionX60gensym637_, (*mX60gensym637_));
											i_16 += ((NI) 1);
										} LA388: ;
									}
								}
								{
									NI iX60gensym637_;
									NI colontmp__11;
									NI T390_;
									NI res_5;
									iX60gensym637_ = (NI)0;
									colontmp__11 = (NI)0;
									T390_ = ((branchScopeX60gensym501__2.final ? branchScopeX60gensym501__2.final->Sup.len : 0)-1);
									colontmp__11 = T390_;
									res_5 = colontmp__11;
									{
										while (1) {
											if (!(((NI) 0) <= res_5)) goto LA392;
											iX60gensym637_ = res_5;
											add_ast_4796(finSectionX60gensym637_, branchScopeX60gensym501__2.final->data[iX60gensym637_]);
											res_5 -= ((NI) 1);
										} LA392: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T397_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T398_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T399_;
									if (!branchScopeX60gensym501__2.needsTry) goto LA395_;
									nimZeroMem((void*)T397_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T397_[0] = cpyX60gensym637_;
									T397_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym637_, c, branchScopeX60gensym501__2.parent, isDecl);
									T398_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T398_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T397_, 2);
									T399_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T399_ = newTryFinally_lowerings_202(T398_, finSectionX60gensym637_);
									add_ast_4796(resultX60gensym637_, T399_);
								}
								goto LA393_;
								LA395_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T401_;
									add_ast_4796(resultX60gensym637_, cpyX60gensym637_);
									add_ast_4796(resultX60gensym637_, finSectionX60gensym637_);
									T401_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T401_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym637_, c, branchScopeX60gensym501__2.parent, isDecl);
									add_ast_4796(resultX60gensym637_, T401_);
								}
								LA393_: ;
								{
									NIM_BOOL T406_;
									if (!!((branchScopeX60gensym501__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA404_;
									T406_ = (NIM_BOOL)0;
									T406_ = (*branchScopeX60gensym501__2.parent).needsTry;
									if (T406_) goto LA407_;
									T406_ = branchScopeX60gensym501__2.needsTry;
									LA407_: ;
									(*branchScopeX60gensym501__2.parent).needsTry = T406_;
								}
								LA404_: ;
								asgnRef((void**) (&(*branchX60gensym501__3)._kind_6.sons->data[(NI)(T328_ - ((NI) 1))]), resultX60gensym637_);
							}
							LA329_: ;
							add_ast_4796(result, branchX60gensym501__3);
							i_14 += ((NI) 1);
						} LA327: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
			{
				result = copyTree_ast_4430(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__AB6yfoUgfWM2NtGe9bzkCmw T411_;
			nimZeroMem((void*)T411_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T411_[0] = dest;
			T411_[1] = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T411_, 2);
		}
		break;
		}
	}
	goto LA1_;
	LA8_: ;
	{
		switch ((*ri).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T414_;
			T414_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T414_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink_injectdestructors_6564(c, dest, T414_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		{
			{
				NIM_BOOL T418_;
				NIM_BOOL T419_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T424_;
				T418_ = (NIM_BOOL)0;
				T419_ = (NIM_BOOL)0;
				T419_ = ((*(*ri)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T419_)) goto LA420_;
				T419_ = ((*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
				LA420_: ;
				T418_ = T419_;
				if (!(T418_)) goto LA421_;
				T418_ = ((*(*(*(*ri)._kind_6.sons->data[((NI) 0)])._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
				LA421_: ;
				if (!T418_) goto LA422_;
				T424_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T424_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				result = genSink_injectdestructors_6564(c, dest, T424_, isDecl);
			}
			goto LA416_;
			LA422_: ;
			{
				NIM_BOOL T426_;
				T426_ = (NIM_BOOL)0;
				T426_ = isAnalysableFieldAccess_dfa_903(ri, (*c).owner);
				if (!(T426_)) goto LA427_;
				T426_ = isLastRead_injectdestructors_6103(ri, c);
				LA427_: ;
				if (!T426_) goto LA428_;
				{
					tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T432_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk;
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T435_;
					T432_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
					T432_ = aliases_dfa_792(dest, ri);
					if (!(T432_ == ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1))) goto LA433_;
					snk = genSink_injectdestructors_6564(c, dest, ri, isDecl);
					nimZeroMem((void*)T435_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T435_[0] = snk;
					T435_[1] = genWasMoved_injectdestructors_6739(c, ri);
					result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T435_, 2);
				}
				goto LA430_;
				LA433_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T437_;
					T437_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T437_ = destructiveMoveVar_injectdestructors_6760(ri, c, s);
					result = genSink_injectdestructors_6564(c, dest, T437_, isDecl);
				}
				LA430_: ;
			}
			goto LA416_;
			LA428_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T439_;
				result = genCopy_injectdestructors_6647(c, dest, ri);
				T439_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T439_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add_ast_4796(result, T439_);
				finishCopy_injectdestructors_6598(c, result, dest, NIM_FALSE);
			}
			LA416_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		{
			{
				NIM_BOOL T443_;
				NI T444_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T448_;
				T443_ = (NIM_BOOL)0;
				T444_ = (NI)0;
				T444_ = len_ast_3197(ri);
				T443_ = (((NI) 0) < T444_);
				if (!(T443_)) goto LA445_;
				T443_ = isDangerousSeq_injectdestructors_6847((*ri).typ);
				LA445_: ;
				if (!T443_) goto LA446_;
				result = genCopy_injectdestructors_6647(c, dest, ri);
				T448_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T448_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add_ast_4796(result, T448_);
				finishCopy_injectdestructors_6598(c, result, dest, NIM_FALSE);
			}
			goto LA441_;
			LA446_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T450_;
				T450_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T450_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				result = genSink_injectdestructors_6564(c, dest, T450_, isDecl);
			}
			LA441_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T452_;
			T452_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T452_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
			result = genSink_injectdestructors_6564(c, dest, T452_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
		{
			{
				NIM_BOOL T456_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_2;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T460_;
				T456_ = (NIM_BOOL)0;
				T456_ = isSinkParam_ast_5029((*ri)._kind_4.sym);
				if (!(T456_)) goto LA457_;
				T456_ = isLastRead_injectdestructors_6103(ri, c);
				LA457_: ;
				if (!T456_) goto LA458_;
				snk_2 = genSink_injectdestructors_6564(c, dest, ri, isDecl);
				nimZeroMem((void*)T460_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T460_[0] = snk_2;
				T460_[1] = genWasMoved_injectdestructors_6739(c, ri);
				result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T460_, 2);
			}
			goto LA454_;
			LA458_: ;
			{
				NIM_BOOL T462_;
				NIM_BOOL T463_;
				NIM_BOOL T464_;
				NIM_BOOL T465_;
				NIM_BOOL T470_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_3;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T473_;
				T462_ = (NIM_BOOL)0;
				T463_ = (NIM_BOOL)0;
				T464_ = (NIM_BOOL)0;
				T465_ = (NIM_BOOL)0;
				T465_ = !(((*(*ri)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
				if (!(T465_)) goto LA466_;
				T465_ = ((*(*ri)._kind_4.sym).owner == (*c).owner);
				LA466_: ;
				T464_ = T465_;
				if (!(T464_)) goto LA467_;
				T464_ = isLastRead_injectdestructors_6103(ri, c);
				LA467_: ;
				T463_ = T464_;
				if (!(T463_)) goto LA468_;
				T463_ = canBeMoved_injectdestructors_6532((&(*c)), (*dest).typ);
				LA468_: ;
				T462_ = T463_;
				if (!(T462_)) goto LA469_;
				T470_ = (NIM_BOOL)0;
				T470_ = isCursor_injectdestructors_6369(ri);
				T462_ = !(T470_);
				LA469_: ;
				if (!T462_) goto LA471_;
				snk_3 = genSink_injectdestructors_6564(c, dest, ri, isDecl);
				nimZeroMem((void*)T473_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T473_[0] = snk_3;
				T473_[1] = genWasMoved_injectdestructors_6739(c, ri);
				result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T473_, 2);
			}
			goto LA454_;
			LA471_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T475_;
				result = genCopy_injectdestructors_6647(c, dest, ri);
				T475_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T475_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add_ast_4796(result, T475_);
				finishCopy_injectdestructors_6598(c, result, dest, NIM_FALSE);
			}
			LA454_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T477_;
			T477_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T477_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
			result = genSink_injectdestructors_6564(c, dest, T477_, isDecl);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			switch ((*ri).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T490_;
				{
					NI T482_;
					T482_ = (NI)0;
					T482_ = len_ast_3197(ri);
					if (!(T482_ == ((NI) 0))) goto LA483_;
					result = ri;
					goto BeforeRet_;
				}
				LA483_: ;
				result = copyNode_ast_4335(ri);
				{
					NI iX60gensym657_;
					NI colontmp__12;
					NI T486_;
					NI i_17;
					iX60gensym657_ = (NI)0;
					colontmp__12 = (NI)0;
					T486_ = (NI)0;
					T486_ = len_ast_3197(ri);
					colontmp__12 = (NI)(T486_ - ((NI) 1));
					i_17 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T489_;
							if (!(i_17 < colontmp__12)) goto LA488;
							iX60gensym657_ = i_17;
							T489_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							T489_ = p_injectdestructors_105((*ri)._kind_6.sons->data[iX60gensym657_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							add_ast_4796(result, T489_);
							i_17 += ((NI) 1);
						} LA488: ;
					}
				}
				T490_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI T493_;
					NIM_BOOL T494_;
					NI T497_;
					T493_ = (NI)0;
					T493_ = len_ast_3197(ri);
					T494_ = (NIM_BOOL)0;
					T494_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[(NI)(T493_ - ((NI) 1))]).typ);
					if (!T494_) goto LA495_;
					T497_ = (NI)0;
					T497_ = len_ast_3197(ri);
					T490_ = p_injectdestructors_105((*ri)._kind_6.sons->data[(NI)(T497_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA491_;
				LA495_: ;
				{
					NI T499_;
					T499_ = (NI)0;
					T499_ = len_ast_3197(ri);
					T490_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[(NI)(T499_ - ((NI) 1))], c, s, isDecl);
				}
				LA491_: ;
				add_ast_4796(result, T490_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T501_;
				result = copyNode_ast_4335(ri);
				T501_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T501_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add_ast_4796(result, T501_);
				{
					NI iX60gensym657__2;
					NI colontmp__13;
					NI i_18;
					iX60gensym657__2 = (NI)0;
					colontmp__13 = (NI)0;
					colontmp__13 = len_ast_3197(ri);
					i_18 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym657_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym657_;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ ofScopeX60gensym657_;
							NI T509_;
							if (!(i_18 < colontmp__13)) goto LA504;
							iX60gensym657__2 = i_18;
							itX60gensym657_ = (*ri)._kind_6.sons->data[iX60gensym657__2];
							branchX60gensym657_ = shallowCopy_ast_4412(itX60gensym657_);
							{
								NI jX60gensym657_;
								NI colontmp__14;
								NI T506_;
								NI i_19;
								jX60gensym657_ = (NI)0;
								colontmp__14 = (NI)0;
								T506_ = (NI)0;
								T506_ = len_ast_3197(itX60gensym657_);
								colontmp__14 = (NI)(T506_ - ((NI) 1));
								i_19 = ((NI) 0);
								{
									while (1) {
										if (!(i_19 < colontmp__14)) goto LA508;
										jX60gensym657_ = i_19;
										asgnRef((void**) (&(*branchX60gensym657_)._kind_6.sons->data[jX60gensym657_]), copyTree_ast_4430((*itX60gensym657_)._kind_6.sons->data[jX60gensym657_]));
										i_19 += ((NI) 1);
									} LA508: ;
								}
							}
							nimZeroMem((void*)(&ofScopeX60gensym657_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&ofScopeX60gensym657_));
							T509_ = (NI)0;
							T509_ = len_ast_3197(branchX60gensym657_);
							{
								NIM_BOOL T512_;
								NI T513_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T517_;
								T512_ = (NIM_BOOL)0;
								T513_ = (NI)0;
								T513_ = len_ast_3197(itX60gensym657_);
								T512_ = isEmptyType_ast_4778((*(*itX60gensym657_)._kind_6.sons->data[(NI)(T513_ - ((NI) 1))]).typ);
								if (T512_) goto LA514_;
								T512_ = NIM_TRUE;
								LA514_: ;
								if (!T512_) goto LA515_;
								T517_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T520_;
									NIM_BOOL T521_;
									NI T524_;
									T520_ = (NI)0;
									T520_ = len_ast_3197(itX60gensym657_);
									T521_ = (NIM_BOOL)0;
									T521_ = isEmptyType_ast_4778((*(*itX60gensym657_)._kind_6.sons->data[(NI)(T520_ - ((NI) 1))]).typ);
									if (!T521_) goto LA522_;
									T524_ = (NI)0;
									T524_ = len_ast_3197(itX60gensym657_);
									T517_ = p_injectdestructors_105((*itX60gensym657_)._kind_6.sons->data[(NI)(T524_ - ((NI) 1))], c, (&ofScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA518_;
								LA522_: ;
								{
									NI T526_;
									T526_ = (NI)0;
									T526_ = len_ast_3197(itX60gensym657_);
									T517_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym657_)._kind_6.sons->data[(NI)(T526_ - ((NI) 1))], c, (&ofScopeX60gensym657_), isDecl);
								}
								LA518_: ;
								asgnRef((void**) (&(*branchX60gensym657_)._kind_6.sons->data[(NI)(T509_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&ofScopeX60gensym657_), T517_));
							}
							goto LA510_;
							LA515_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym695_;
								NI T528_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym695_;
								NI T529_;
								NI T530_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym695_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym695_;
								NI T557_;
								T528_ = (NI)0;
								T528_ = len_ast_3197(itX60gensym657_);
								resultX60gensym695_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T528_ - ((NI) 1))]).info);
								T529_ = (NI)0;
								T529_ = len_ast_3197(itX60gensym657_);
								T530_ = (NI)0;
								T530_ = len_ast_3197(itX60gensym657_);
								tmpX60gensym695_ = getTemp_injectdestructors_61(c, ofScopeX60gensym657_.parent, (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T529_ - ((NI) 1))]).typ, (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T530_ - ((NI) 1))]).info);
								(*(*tmpX60gensym695_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T533_;
									NIM_BOOL T534_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T537_;
									NI T538_;
									NI T539_;
									T533_ = (NI)0;
									T533_ = len_ast_3197(itX60gensym657_);
									T534_ = (NIM_BOOL)0;
									T534_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T533_ - ((NI) 1))]).typ);
									if (!T534_) goto LA535_;
									T537_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T537_ = genDestroy_injectdestructors_6527(c, tmpX60gensym695_);
									unsureAsgnRef((void**) (&(*ofScopeX60gensym657_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym657_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T538_ = (*ofScopeX60gensym657_.parent).final->Sup.len++;
									asgnRef((void**) (&(*ofScopeX60gensym657_.parent).final->data[T538_]), T537_);
									T539_ = (NI)0;
									T539_ = len_ast_3197(itX60gensym657_);
									cpyX60gensym695_ = moveOrCopy_injectdestructors_110(tmpX60gensym695_, (*itX60gensym657_)._kind_6.sons->data[(NI)(T539_ - ((NI) 1))], c, (&ofScopeX60gensym657_), NIM_TRUE);
								}
								goto LA531_;
								LA535_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T541_;
									NI T542_;
									nimZeroMem((void*)T541_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T541_[0] = tmpX60gensym695_;
									T542_ = (NI)0;
									T542_ = len_ast_3197(itX60gensym657_);
									T541_[1] = p_injectdestructors_105((*itX60gensym657_)._kind_6.sons->data[(NI)(T542_ - ((NI) 1))], c, (&ofScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym695_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T541_, 2);
								}
								LA531_: ;
								{
									NI T545_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym695_;
									NI T548_;
									T545_ = (ofScopeX60gensym657_.vars ? ofScopeX60gensym657_.vars->Sup.len : 0);
									if (!(((NI) 0) < T545_)) goto LA546_;
									T548_ = (NI)0;
									T548_ = len_ast_3197(itX60gensym657_);
									varSectionX60gensym695_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T548_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym695__2;
										NI i_20;
										NI L_11;
										NI T550_;
										tmpX60gensym695__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_20 = ((NI) 0);
										T550_ = (ofScopeX60gensym657_.vars ? ofScopeX60gensym657_.vars->Sup.len : 0);
										L_11 = T550_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T553_;
												NI T554_;
												NI T555_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T556_;
												if (!(i_20 < L_11)) goto LA552;
												tmpX60gensym695__2 = &ofScopeX60gensym657_.vars->data[i_20];
												nimZeroMem((void*)T553_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T553_[0] = newSymNode_ast_3715((*tmpX60gensym695__2));
												T554_ = (NI)0;
												T554_ = len_ast_3197(itX60gensym657_);
												T553_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T554_ - ((NI) 1))]).info);
												T555_ = (NI)0;
												T555_ = len_ast_3197(itX60gensym657_);
												T553_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T555_ - ((NI) 1))]).info);
												T556_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T556_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T553_, 3);
												add_ast_4796(varSectionX60gensym695_, T556_);
												i_20 += ((NI) 1);
											} LA552: ;
										}
									}
									add_ast_4796(resultX60gensym695_, varSectionX60gensym695_);
								}
								LA546_: ;
								T557_ = (NI)0;
								T557_ = len_ast_3197(itX60gensym657_);
								finSectionX60gensym695_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym657_)._kind_6.sons->data[(NI)(T557_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym695_;
									NI i_21;
									NI L_12;
									NI T559_;
									mX60gensym695_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_21 = ((NI) 0);
									T559_ = (ofScopeX60gensym657_.wasMoved ? ofScopeX60gensym657_.wasMoved->Sup.len : 0);
									L_12 = T559_;
									{
										while (1) {
											if (!(i_21 < L_12)) goto LA561;
											mX60gensym695_ = &ofScopeX60gensym657_.wasMoved->data[i_21];
											add_ast_4796(finSectionX60gensym695_, (*mX60gensym695_));
											i_21 += ((NI) 1);
										} LA561: ;
									}
								}
								{
									NI iX60gensym695_;
									NI colontmp__15;
									NI T563_;
									NI res_6;
									iX60gensym695_ = (NI)0;
									colontmp__15 = (NI)0;
									T563_ = ((ofScopeX60gensym657_.final ? ofScopeX60gensym657_.final->Sup.len : 0)-1);
									colontmp__15 = T563_;
									res_6 = colontmp__15;
									{
										while (1) {
											if (!(((NI) 0) <= res_6)) goto LA565;
											iX60gensym695_ = res_6;
											add_ast_4796(finSectionX60gensym695_, ofScopeX60gensym657_.final->data[iX60gensym695_]);
											res_6 -= ((NI) 1);
										} LA565: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T570_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T571_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T572_;
									if (!ofScopeX60gensym657_.needsTry) goto LA568_;
									nimZeroMem((void*)T570_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T570_[0] = cpyX60gensym695_;
									T570_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym695_, c, ofScopeX60gensym657_.parent, isDecl);
									T571_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T571_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T570_, 2);
									T572_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T572_ = newTryFinally_lowerings_202(T571_, finSectionX60gensym695_);
									add_ast_4796(resultX60gensym695_, T572_);
								}
								goto LA566_;
								LA568_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T574_;
									add_ast_4796(resultX60gensym695_, cpyX60gensym695_);
									add_ast_4796(resultX60gensym695_, finSectionX60gensym695_);
									T574_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T574_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym695_, c, ofScopeX60gensym657_.parent, isDecl);
									add_ast_4796(resultX60gensym695_, T574_);
								}
								LA566_: ;
								{
									NIM_BOOL T579_;
									if (!!((ofScopeX60gensym657_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA577_;
									T579_ = (NIM_BOOL)0;
									T579_ = (*ofScopeX60gensym657_.parent).needsTry;
									if (T579_) goto LA580_;
									T579_ = ofScopeX60gensym657_.needsTry;
									LA580_: ;
									(*ofScopeX60gensym657_.parent).needsTry = T579_;
								}
								LA577_: ;
								asgnRef((void**) (&(*branchX60gensym657_)._kind_6.sons->data[(NI)(T509_ - ((NI) 1))]), resultX60gensym695_);
							}
							LA510_: ;
							add_ast_4796(result, branchX60gensym657_);
							i_18 += ((NI) 1);
						} LA504: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T582_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym657_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym657_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T583_;
				(*c).inLoop += ((NI) 1);
				(*c).inLoopCond += ((NI) 1);
				result = copyNode_ast_4335(ri);
				T582_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T582_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				add_ast_4796(result, T582_);
				(*c).inLoopCond -= ((NI) 1);
				nimZeroMem((void*)(&bodyScopeX60gensym657_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym657_));
				bodyResultX60gensym657_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				T583_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T583_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym657_), bodyResultX60gensym657_);
				add_ast_4796(result, T583_);
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
			{
				NI lastX60gensym657_;
				NI T585_;
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym657__2;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym657__2;
				(*c).inLoop += ((NI) 1);
				result = shallowCopy_ast_4412(ri);
				T585_ = (NI)0;
				T585_ = len_ast_3197(ri);
				lastX60gensym657_ = (NI)(T585_ - ((NI) 1));
				{
					NI iX60gensym657__3;
					NI colontmp__16;
					NI i_22;
					iX60gensym657__3 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = (NI)(lastX60gensym657_ - ((NI) 1));
					i_22 = ((NI) 0);
					{
						while (1) {
							if (!(i_22 < colontmp__16)) goto LA588;
							iX60gensym657__3 = i_22;
							asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym657__3]), (*ri)._kind_6.sons->data[iX60gensym657__3]);
							i_22 += ((NI) 1);
						} LA588: ;
					}
				}
				asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(lastX60gensym657_ - ((NI) 1))]), p_injectdestructors_105((*ri)._kind_6.sons->data[(NI)(lastX60gensym657_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
				nimZeroMem((void*)(&bodyScopeX60gensym657__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym657__2));
				bodyResultX60gensym657__2 = p_injectdestructors_105((*ri)._kind_6.sons->data[lastX60gensym657_], c, (&bodyScopeX60gensym657__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym657_]), processScope_injectdestructors_7016(c, (&bodyScopeX60gensym657__2), bodyResultX60gensym657__2));
				(*c).inLoop -= ((NI) 1);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym657__3;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T590_;
				result = copyNode_ast_4335(ri);
				add_ast_4796(result, (*ri)._kind_6.sons->data[((NI) 0)]);
				nimZeroMem((void*)(&bodyScopeX60gensym657__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym657__3));
				T590_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T593_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T597_;
					T593_ = (NIM_BOOL)0;
					T593_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
					if (T593_) goto LA594_;
					T593_ = NIM_TRUE;
					LA594_: ;
					if (!T593_) goto LA595_;
					T597_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T597_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym657__3), isDecl);
					T590_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym657__3), T597_);
				}
				goto LA591_;
				LA595_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym717_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym717_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym717_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym717_;
					resultX60gensym717_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					tmpX60gensym717_ = getTemp_injectdestructors_61(c, bodyScopeX60gensym657__3.parent, (*(*ri)._kind_6.sons->data[((NI) 1)]).typ, (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					(*(*tmpX60gensym717_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T601_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T604_;
						NI T605_;
						T601_ = (NIM_BOOL)0;
						T601_ = hasDestructor_injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 1)]).typ);
						if (!T601_) goto LA602_;
						T604_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T604_ = genDestroy_injectdestructors_6527(c, tmpX60gensym717_);
						unsureAsgnRef((void**) (&(*bodyScopeX60gensym657__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym657__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T605_ = (*bodyScopeX60gensym657__3.parent).final->Sup.len++;
						asgnRef((void**) (&(*bodyScopeX60gensym657__3.parent).final->data[T605_]), T604_);
						cpyX60gensym717_ = moveOrCopy_injectdestructors_110(tmpX60gensym717_, (*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym657__3), NIM_TRUE);
					}
					goto LA599_;
					LA602_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T607_;
						nimZeroMem((void*)T607_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T607_[0] = tmpX60gensym717_;
						T607_[1] = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym657__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym717_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T607_, 2);
					}
					LA599_: ;
					{
						NI T610_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym717_;
						T610_ = (bodyScopeX60gensym657__3.vars ? bodyScopeX60gensym657__3.vars->Sup.len : 0);
						if (!(((NI) 0) < T610_)) goto LA611_;
						varSectionX60gensym717_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym717__2;
							NI i_23;
							NI L_13;
							NI T614_;
							tmpX60gensym717__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_23 = ((NI) 0);
							T614_ = (bodyScopeX60gensym657__3.vars ? bodyScopeX60gensym657__3.vars->Sup.len : 0);
							L_13 = T614_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T617_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T618_;
									if (!(i_23 < L_13)) goto LA616;
									tmpX60gensym717__2 = &bodyScopeX60gensym657__3.vars->data[i_23];
									nimZeroMem((void*)T617_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T617_[0] = newSymNode_ast_3715((*tmpX60gensym717__2));
									T617_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T617_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
									T618_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T618_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T617_, 3);
									add_ast_4796(varSectionX60gensym717_, T618_);
									i_23 += ((NI) 1);
								} LA616: ;
							}
						}
						add_ast_4796(resultX60gensym717_, varSectionX60gensym717_);
					}
					LA611_: ;
					finSectionX60gensym717_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym717_;
						NI i_24;
						NI L_14;
						NI T620_;
						mX60gensym717_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_24 = ((NI) 0);
						T620_ = (bodyScopeX60gensym657__3.wasMoved ? bodyScopeX60gensym657__3.wasMoved->Sup.len : 0);
						L_14 = T620_;
						{
							while (1) {
								if (!(i_24 < L_14)) goto LA622;
								mX60gensym717_ = &bodyScopeX60gensym657__3.wasMoved->data[i_24];
								add_ast_4796(finSectionX60gensym717_, (*mX60gensym717_));
								i_24 += ((NI) 1);
							} LA622: ;
						}
					}
					{
						NI iX60gensym717_;
						NI colontmp__17;
						NI T624_;
						NI res_7;
						iX60gensym717_ = (NI)0;
						colontmp__17 = (NI)0;
						T624_ = ((bodyScopeX60gensym657__3.final ? bodyScopeX60gensym657__3.final->Sup.len : 0)-1);
						colontmp__17 = T624_;
						res_7 = colontmp__17;
						{
							while (1) {
								if (!(((NI) 0) <= res_7)) goto LA626;
								iX60gensym717_ = res_7;
								add_ast_4796(finSectionX60gensym717_, bodyScopeX60gensym657__3.final->data[iX60gensym717_]);
								res_7 -= ((NI) 1);
							} LA626: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T631_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T632_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T633_;
						if (!bodyScopeX60gensym657__3.needsTry) goto LA629_;
						nimZeroMem((void*)T631_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T631_[0] = cpyX60gensym717_;
						T631_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym717_, c, bodyScopeX60gensym657__3.parent, isDecl);
						T632_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T632_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T631_, 2);
						T633_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T633_ = newTryFinally_lowerings_202(T632_, finSectionX60gensym717_);
						add_ast_4796(resultX60gensym717_, T633_);
					}
					goto LA627_;
					LA629_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T635_;
						add_ast_4796(resultX60gensym717_, cpyX60gensym717_);
						add_ast_4796(resultX60gensym717_, finSectionX60gensym717_);
						T635_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T635_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym717_, c, bodyScopeX60gensym657__3.parent, isDecl);
						add_ast_4796(resultX60gensym717_, T635_);
					}
					LA627_: ;
					{
						NIM_BOOL T640_;
						if (!!((bodyScopeX60gensym657__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA638_;
						T640_ = (NIM_BOOL)0;
						T640_ = (*bodyScopeX60gensym657__3.parent).needsTry;
						if (T640_) goto LA641_;
						T640_ = bodyScopeX60gensym657__3.needsTry;
						LA641_: ;
						(*bodyScopeX60gensym657__3.parent).needsTry = T640_;
					}
					LA638_: ;
					T590_ = resultX60gensym717_;
				}
				LA591_: ;
				add_ast_4796(result, T590_);
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
			{
				result = copyNode_ast_4335(ri);
				{
					NI iX60gensym657__4;
					NI colontmp__18;
					NI i_25;
					iX60gensym657__4 = (NI)0;
					colontmp__18 = (NI)0;
					colontmp__18 = len_ast_3197(ri);
					i_25 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym657__2;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym657__2;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym657_;
							NI T650_;
							if (!(i_25 < colontmp__18)) goto LA645;
							iX60gensym657__4 = i_25;
							itX60gensym657__2 = (*ri)._kind_6.sons->data[iX60gensym657__4];
							branchX60gensym657__2 = shallowCopy_ast_4412(itX60gensym657__2);
							nimZeroMem((void*)(&branchScopeX60gensym657_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&branchScopeX60gensym657_));
							{
								if (!((*itX60gensym657__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym657__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA648_;
								asgnRef((void**) (&(*branchX60gensym657__2)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*itX60gensym657__2)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							LA648_: ;
							T650_ = (NI)0;
							T650_ = len_ast_3197(branchX60gensym657__2);
							{
								NIM_BOOL T653_;
								NI T654_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T658_;
								T653_ = (NIM_BOOL)0;
								T654_ = (NI)0;
								T654_ = len_ast_3197(itX60gensym657__2);
								T653_ = isEmptyType_ast_4778((*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T654_ - ((NI) 1))]).typ);
								if (T653_) goto LA655_;
								T653_ = NIM_TRUE;
								LA655_: ;
								if (!T653_) goto LA656_;
								T658_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T661_;
									NIM_BOOL T662_;
									NI T665_;
									T661_ = (NI)0;
									T661_ = len_ast_3197(itX60gensym657__2);
									T662_ = (NIM_BOOL)0;
									T662_ = isEmptyType_ast_4778((*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T661_ - ((NI) 1))]).typ);
									if (!T662_) goto LA663_;
									T665_ = (NI)0;
									T665_ = len_ast_3197(itX60gensym657__2);
									T658_ = p_injectdestructors_105((*itX60gensym657__2)._kind_6.sons->data[(NI)(T665_ - ((NI) 1))], c, (&branchScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA659_;
								LA663_: ;
								{
									NI T667_;
									T667_ = (NI)0;
									T667_ = len_ast_3197(itX60gensym657__2);
									T658_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym657__2)._kind_6.sons->data[(NI)(T667_ - ((NI) 1))], c, (&branchScopeX60gensym657_), isDecl);
								}
								LA659_: ;
								asgnRef((void**) (&(*branchX60gensym657__2)._kind_6.sons->data[(NI)(T650_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym657_), T658_));
							}
							goto LA651_;
							LA656_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym746_;
								NI T669_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym746_;
								NI T670_;
								NI T671_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym746_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym746_;
								NI T698_;
								T669_ = (NI)0;
								T669_ = len_ast_3197(itX60gensym657__2);
								resultX60gensym746_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T669_ - ((NI) 1))]).info);
								T670_ = (NI)0;
								T670_ = len_ast_3197(itX60gensym657__2);
								T671_ = (NI)0;
								T671_ = len_ast_3197(itX60gensym657__2);
								tmpX60gensym746_ = getTemp_injectdestructors_61(c, branchScopeX60gensym657_.parent, (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T670_ - ((NI) 1))]).typ, (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T671_ - ((NI) 1))]).info);
								(*(*tmpX60gensym746_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T674_;
									NIM_BOOL T675_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T678_;
									NI T679_;
									NI T680_;
									T674_ = (NI)0;
									T674_ = len_ast_3197(itX60gensym657__2);
									T675_ = (NIM_BOOL)0;
									T675_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T674_ - ((NI) 1))]).typ);
									if (!T675_) goto LA676_;
									T678_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T678_ = genDestroy_injectdestructors_6527(c, tmpX60gensym746_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym657_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym657_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T679_ = (*branchScopeX60gensym657_.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym657_.parent).final->data[T679_]), T678_);
									T680_ = (NI)0;
									T680_ = len_ast_3197(itX60gensym657__2);
									cpyX60gensym746_ = moveOrCopy_injectdestructors_110(tmpX60gensym746_, (*itX60gensym657__2)._kind_6.sons->data[(NI)(T680_ - ((NI) 1))], c, (&branchScopeX60gensym657_), NIM_TRUE);
								}
								goto LA672_;
								LA676_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T682_;
									NI T683_;
									nimZeroMem((void*)T682_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T682_[0] = tmpX60gensym746_;
									T683_ = (NI)0;
									T683_ = len_ast_3197(itX60gensym657__2);
									T682_[1] = p_injectdestructors_105((*itX60gensym657__2)._kind_6.sons->data[(NI)(T683_ - ((NI) 1))], c, (&branchScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym746_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T682_, 2);
								}
								LA672_: ;
								{
									NI T686_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym746_;
									NI T689_;
									T686_ = (branchScopeX60gensym657_.vars ? branchScopeX60gensym657_.vars->Sup.len : 0);
									if (!(((NI) 0) < T686_)) goto LA687_;
									T689_ = (NI)0;
									T689_ = len_ast_3197(itX60gensym657__2);
									varSectionX60gensym746_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T689_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym746__2;
										NI i_26;
										NI L_15;
										NI T691_;
										tmpX60gensym746__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_26 = ((NI) 0);
										T691_ = (branchScopeX60gensym657_.vars ? branchScopeX60gensym657_.vars->Sup.len : 0);
										L_15 = T691_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T694_;
												NI T695_;
												NI T696_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T697_;
												if (!(i_26 < L_15)) goto LA693;
												tmpX60gensym746__2 = &branchScopeX60gensym657_.vars->data[i_26];
												nimZeroMem((void*)T694_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T694_[0] = newSymNode_ast_3715((*tmpX60gensym746__2));
												T695_ = (NI)0;
												T695_ = len_ast_3197(itX60gensym657__2);
												T694_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T695_ - ((NI) 1))]).info);
												T696_ = (NI)0;
												T696_ = len_ast_3197(itX60gensym657__2);
												T694_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T696_ - ((NI) 1))]).info);
												T697_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T697_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T694_, 3);
												add_ast_4796(varSectionX60gensym746_, T697_);
												i_26 += ((NI) 1);
											} LA693: ;
										}
									}
									add_ast_4796(resultX60gensym746_, varSectionX60gensym746_);
								}
								LA687_: ;
								T698_ = (NI)0;
								T698_ = len_ast_3197(itX60gensym657__2);
								finSectionX60gensym746_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym657__2)._kind_6.sons->data[(NI)(T698_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym746_;
									NI i_27;
									NI L_16;
									NI T700_;
									mX60gensym746_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_27 = ((NI) 0);
									T700_ = (branchScopeX60gensym657_.wasMoved ? branchScopeX60gensym657_.wasMoved->Sup.len : 0);
									L_16 = T700_;
									{
										while (1) {
											if (!(i_27 < L_16)) goto LA702;
											mX60gensym746_ = &branchScopeX60gensym657_.wasMoved->data[i_27];
											add_ast_4796(finSectionX60gensym746_, (*mX60gensym746_));
											i_27 += ((NI) 1);
										} LA702: ;
									}
								}
								{
									NI iX60gensym746_;
									NI colontmp__19;
									NI T704_;
									NI res_8;
									iX60gensym746_ = (NI)0;
									colontmp__19 = (NI)0;
									T704_ = ((branchScopeX60gensym657_.final ? branchScopeX60gensym657_.final->Sup.len : 0)-1);
									colontmp__19 = T704_;
									res_8 = colontmp__19;
									{
										while (1) {
											if (!(((NI) 0) <= res_8)) goto LA706;
											iX60gensym746_ = res_8;
											add_ast_4796(finSectionX60gensym746_, branchScopeX60gensym657_.final->data[iX60gensym746_]);
											res_8 -= ((NI) 1);
										} LA706: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T711_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T712_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T713_;
									if (!branchScopeX60gensym657_.needsTry) goto LA709_;
									nimZeroMem((void*)T711_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T711_[0] = cpyX60gensym746_;
									T711_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym746_, c, branchScopeX60gensym657_.parent, isDecl);
									T712_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T712_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T711_, 2);
									T713_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T713_ = newTryFinally_lowerings_202(T712_, finSectionX60gensym746_);
									add_ast_4796(resultX60gensym746_, T713_);
								}
								goto LA707_;
								LA709_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T715_;
									add_ast_4796(resultX60gensym746_, cpyX60gensym746_);
									add_ast_4796(resultX60gensym746_, finSectionX60gensym746_);
									T715_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T715_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym746_, c, branchScopeX60gensym657_.parent, isDecl);
									add_ast_4796(resultX60gensym746_, T715_);
								}
								LA707_: ;
								{
									NIM_BOOL T720_;
									if (!!((branchScopeX60gensym657_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA718_;
									T720_ = (NIM_BOOL)0;
									T720_ = (*branchScopeX60gensym657_.parent).needsTry;
									if (T720_) goto LA721_;
									T720_ = branchScopeX60gensym657_.needsTry;
									LA721_: ;
									(*branchScopeX60gensym657_.parent).needsTry = T720_;
								}
								LA718_: ;
								asgnRef((void**) (&(*branchX60gensym657__2)._kind_6.sons->data[(NI)(T650_ - ((NI) 1))]), resultX60gensym746_);
							}
							LA651_: ;
							add_ast_4796(result, branchX60gensym657__2);
							i_25 += ((NI) 1);
						} LA645: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
			{
				tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym657_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T723_;
				result = copyNode_ast_4335(ri);
				nimZeroMem((void*)(&tryScopeX60gensym657_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
				nestedScope_injectdestructors_72(s, (&tryScopeX60gensym657_));
				T723_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T726_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T730_;
					T726_ = (NIM_BOOL)0;
					T726_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
					if (T726_) goto LA727_;
					T726_ = NIM_TRUE;
					LA727_: ;
					if (!T726_) goto LA728_;
					T730_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T733_;
						T733_ = (NIM_BOOL)0;
						T733_ = isEmptyType_ast_4778((*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T733_) goto LA734_;
						T730_ = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA731_;
					LA734_: ;
					{
						T730_ = moveOrCopy_injectdestructors_110(dest, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym657_), isDecl);
					}
					LA731_: ;
					T723_ = processScope_injectdestructors_7016(c, (&tryScopeX60gensym657_), T730_);
				}
				goto LA724_;
				LA728_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym762_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym762_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym762_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym762_;
					resultX60gensym762_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					tmpX60gensym762_ = getTemp_injectdestructors_61(c, tryScopeX60gensym657_.parent, (*(*ri)._kind_6.sons->data[((NI) 0)]).typ, (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					(*(*tmpX60gensym762_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
					{
						NIM_BOOL T740_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T743_;
						NI T744_;
						T740_ = (NIM_BOOL)0;
						T740_ = hasDestructor_injectdestructors_49((&(*c)), (*(*ri)._kind_6.sons->data[((NI) 0)]).typ);
						if (!T740_) goto LA741_;
						T743_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T743_ = genDestroy_injectdestructors_6527(c, tmpX60gensym762_);
						unsureAsgnRef((void**) (&(*tryScopeX60gensym657_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym657_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
						T744_ = (*tryScopeX60gensym657_.parent).final->Sup.len++;
						asgnRef((void**) (&(*tryScopeX60gensym657_.parent).final->data[T744_]), T743_);
						cpyX60gensym762_ = moveOrCopy_injectdestructors_110(tmpX60gensym762_, (*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym657_), NIM_TRUE);
					}
					goto LA738_;
					LA741_: ;
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T746_;
						nimZeroMem((void*)T746_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T746_[0] = tmpX60gensym762_;
						T746_[1] = p_injectdestructors_105((*ri)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym657_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						cpyX60gensym762_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T746_, 2);
					}
					LA738_: ;
					{
						NI T749_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym762_;
						T749_ = (tryScopeX60gensym657_.vars ? tryScopeX60gensym657_.vars->Sup.len : 0);
						if (!(((NI) 0) < T749_)) goto LA750_;
						varSectionX60gensym762_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym762__2;
							NI i_28;
							NI L_17;
							NI T753_;
							tmpX60gensym762__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
							i_28 = ((NI) 0);
							T753_ = (tryScopeX60gensym657_.vars ? tryScopeX60gensym657_.vars->Sup.len : 0);
							L_17 = T753_;
							{
								while (1) {
									tyArray__T6RKPw8xfAeNaoei9aZGzXg T756_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T757_;
									if (!(i_28 < L_17)) goto LA755;
									tmpX60gensym762__2 = &tryScopeX60gensym657_.vars->data[i_28];
									nimZeroMem((void*)T756_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
									T756_[0] = newSymNode_ast_3715((*tmpX60gensym762__2));
									T756_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T756_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
									T757_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T757_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T756_, 3);
									add_ast_4796(varSectionX60gensym762_, T757_);
									i_28 += ((NI) 1);
								} LA755: ;
							}
						}
						add_ast_4796(resultX60gensym762_, varSectionX60gensym762_);
					}
					LA750_: ;
					finSectionX60gensym762_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*ri)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym762_;
						NI i_29;
						NI L_18;
						NI T759_;
						mX60gensym762_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
						i_29 = ((NI) 0);
						T759_ = (tryScopeX60gensym657_.wasMoved ? tryScopeX60gensym657_.wasMoved->Sup.len : 0);
						L_18 = T759_;
						{
							while (1) {
								if (!(i_29 < L_18)) goto LA761;
								mX60gensym762_ = &tryScopeX60gensym657_.wasMoved->data[i_29];
								add_ast_4796(finSectionX60gensym762_, (*mX60gensym762_));
								i_29 += ((NI) 1);
							} LA761: ;
						}
					}
					{
						NI iX60gensym762_;
						NI colontmp__20;
						NI T763_;
						NI res_9;
						iX60gensym762_ = (NI)0;
						colontmp__20 = (NI)0;
						T763_ = ((tryScopeX60gensym657_.final ? tryScopeX60gensym657_.final->Sup.len : 0)-1);
						colontmp__20 = T763_;
						res_9 = colontmp__20;
						{
							while (1) {
								if (!(((NI) 0) <= res_9)) goto LA765;
								iX60gensym762_ = res_9;
								add_ast_4796(finSectionX60gensym762_, tryScopeX60gensym657_.final->data[iX60gensym762_]);
								res_9 -= ((NI) 1);
							} LA765: ;
						}
					}
					{
						tyArray__AB6yfoUgfWM2NtGe9bzkCmw T770_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T777_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T778_;
						if (!tryScopeX60gensym657_.needsTry) goto LA768_;
						nimZeroMem((void*)T770_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
						T770_[0] = cpyX60gensym762_;
						{
							NIM_BOOL T773_;
							T773_ = (NIM_BOOL)0;
							T773_ = isEmptyType_ast_4778((*tmpX60gensym762_).typ);
							if (!T773_) goto LA774_;
							T770_[1] = p_injectdestructors_105(tmpX60gensym762_, c, tryScopeX60gensym657_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA771_;
						LA774_: ;
						{
							T770_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym762_, c, tryScopeX60gensym657_.parent, isDecl);
						}
						LA771_: ;
						T777_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T777_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T770_, 2);
						T778_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T778_ = newTryFinally_lowerings_202(T777_, finSectionX60gensym762_);
						add_ast_4796(resultX60gensym762_, T778_);
					}
					goto LA766_;
					LA768_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T780_;
						add_ast_4796(resultX60gensym762_, cpyX60gensym762_);
						add_ast_4796(resultX60gensym762_, finSectionX60gensym762_);
						T780_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						{
							NIM_BOOL T783_;
							T783_ = (NIM_BOOL)0;
							T783_ = isEmptyType_ast_4778((*tmpX60gensym762_).typ);
							if (!T783_) goto LA784_;
							T780_ = p_injectdestructors_105(tmpX60gensym762_, c, tryScopeX60gensym657_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						}
						goto LA781_;
						LA784_: ;
						{
							T780_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym762_, c, tryScopeX60gensym657_.parent, isDecl);
						}
						LA781_: ;
						add_ast_4796(resultX60gensym762_, T780_);
					}
					LA766_: ;
					{
						NIM_BOOL T791_;
						if (!!((tryScopeX60gensym657_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA789_;
						T791_ = (NIM_BOOL)0;
						T791_ = (*tryScopeX60gensym657_.parent).needsTry;
						if (T791_) goto LA792_;
						T791_ = tryScopeX60gensym657_.needsTry;
						LA792_: ;
						(*tryScopeX60gensym657_.parent).needsTry = T791_;
					}
					LA789_: ;
					T723_ = resultX60gensym762_;
				}
				LA724_: ;
				add_ast_4796(result, T723_);
				{
					NI iX60gensym657__5;
					NI colontmp__21;
					NI i_30;
					iX60gensym657__5 = (NI)0;
					colontmp__21 = (NI)0;
					colontmp__21 = len_ast_3197(ri);
					i_30 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym657__3;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym657__3;
							tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym657__2;
							NI T796_;
							if (!(i_30 < colontmp__21)) goto LA795;
							iX60gensym657__5 = i_30;
							itX60gensym657__3 = (*ri)._kind_6.sons->data[iX60gensym657__5];
							branchX60gensym657__3 = copyTree_ast_4430(itX60gensym657__3);
							nimZeroMem((void*)(&branchScopeX60gensym657__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
							nestedScope_injectdestructors_72(s, (&branchScopeX60gensym657__2));
							T796_ = (NI)0;
							T796_ = len_ast_3197(branchX60gensym657__3);
							{
								NIM_BOOL T799_;
								NIM_BOOL T800_;
								NI T801_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T806_;
								T799_ = (NIM_BOOL)0;
								T800_ = (NIM_BOOL)0;
								T801_ = (NI)0;
								T801_ = len_ast_3197(itX60gensym657__3);
								T800_ = isEmptyType_ast_4778((*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T801_ - ((NI) 1))]).typ);
								if (T800_) goto LA802_;
								T800_ = NIM_TRUE;
								LA802_: ;
								T799_ = T800_;
								if (T799_) goto LA803_;
								T799_ = ((*itX60gensym657__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
								LA803_: ;
								if (!T799_) goto LA804_;
								T806_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								{
									NI T811_;
									if (!((*itX60gensym657__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA809_;
									T811_ = (NI)0;
									T811_ = len_ast_3197(itX60gensym657__3);
									T806_ = p_injectdestructors_105((*itX60gensym657__3)._kind_6.sons->data[(NI)(T811_ - ((NI) 1))], c, (&branchScopeX60gensym657__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA807_;
								LA809_: ;
								{
									{
										NI T815_;
										NIM_BOOL T816_;
										NI T819_;
										T815_ = (NI)0;
										T815_ = len_ast_3197(itX60gensym657__3);
										T816_ = (NIM_BOOL)0;
										T816_ = isEmptyType_ast_4778((*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T815_ - ((NI) 1))]).typ);
										if (!T816_) goto LA817_;
										T819_ = (NI)0;
										T819_ = len_ast_3197(itX60gensym657__3);
										T806_ = p_injectdestructors_105((*itX60gensym657__3)._kind_6.sons->data[(NI)(T819_ - ((NI) 1))], c, (&branchScopeX60gensym657__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									}
									goto LA813_;
									LA817_: ;
									{
										NI T821_;
										T821_ = (NI)0;
										T821_ = len_ast_3197(itX60gensym657__3);
										T806_ = moveOrCopy_injectdestructors_110(dest, (*itX60gensym657__3)._kind_6.sons->data[(NI)(T821_ - ((NI) 1))], c, (&branchScopeX60gensym657__2), isDecl);
									}
									LA813_: ;
								}
								LA807_: ;
								asgnRef((void**) (&(*branchX60gensym657__3)._kind_6.sons->data[(NI)(T796_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym657__2), T806_));
							}
							goto LA797_;
							LA804_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym793_;
								NI T823_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym793_;
								NI T824_;
								NI T825_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym793_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym793_;
								NI T852_;
								T823_ = (NI)0;
								T823_ = len_ast_3197(itX60gensym657__3);
								resultX60gensym793_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T823_ - ((NI) 1))]).info);
								T824_ = (NI)0;
								T824_ = len_ast_3197(itX60gensym657__3);
								T825_ = (NI)0;
								T825_ = len_ast_3197(itX60gensym657__3);
								tmpX60gensym793_ = getTemp_injectdestructors_61(c, branchScopeX60gensym657__2.parent, (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T824_ - ((NI) 1))]).typ, (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T825_ - ((NI) 1))]).info);
								(*(*tmpX60gensym793_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
								{
									NI T828_;
									NIM_BOOL T829_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T832_;
									NI T833_;
									NI T834_;
									T828_ = (NI)0;
									T828_ = len_ast_3197(itX60gensym657__3);
									T829_ = (NIM_BOOL)0;
									T829_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T828_ - ((NI) 1))]).typ);
									if (!T829_) goto LA830_;
									T832_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T832_ = genDestroy_injectdestructors_6527(c, tmpX60gensym793_);
									unsureAsgnRef((void**) (&(*branchScopeX60gensym657__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym657__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
									T833_ = (*branchScopeX60gensym657__2.parent).final->Sup.len++;
									asgnRef((void**) (&(*branchScopeX60gensym657__2.parent).final->data[T833_]), T832_);
									T834_ = (NI)0;
									T834_ = len_ast_3197(itX60gensym657__3);
									cpyX60gensym793_ = moveOrCopy_injectdestructors_110(tmpX60gensym793_, (*itX60gensym657__3)._kind_6.sons->data[(NI)(T834_ - ((NI) 1))], c, (&branchScopeX60gensym657__2), NIM_TRUE);
								}
								goto LA826_;
								LA830_: ;
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T836_;
									NI T837_;
									nimZeroMem((void*)T836_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T836_[0] = tmpX60gensym793_;
									T837_ = (NI)0;
									T837_ = len_ast_3197(itX60gensym657__3);
									T836_[1] = p_injectdestructors_105((*itX60gensym657__3)._kind_6.sons->data[(NI)(T837_ - ((NI) 1))], c, (&branchScopeX60gensym657__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
									cpyX60gensym793_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T836_, 2);
								}
								LA826_: ;
								{
									NI T840_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym793_;
									NI T843_;
									T840_ = (branchScopeX60gensym657__2.vars ? branchScopeX60gensym657__2.vars->Sup.len : 0);
									if (!(((NI) 0) < T840_)) goto LA841_;
									T843_ = (NI)0;
									T843_ = len_ast_3197(itX60gensym657__3);
									varSectionX60gensym793_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T843_ - ((NI) 1))]).info);
									{
										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym793__2;
										NI i_31;
										NI L_19;
										NI T845_;
										tmpX60gensym793__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
										i_31 = ((NI) 0);
										T845_ = (branchScopeX60gensym657__2.vars ? branchScopeX60gensym657__2.vars->Sup.len : 0);
										L_19 = T845_;
										{
											while (1) {
												tyArray__T6RKPw8xfAeNaoei9aZGzXg T848_;
												NI T849_;
												NI T850_;
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T851_;
												if (!(i_31 < L_19)) goto LA847;
												tmpX60gensym793__2 = &branchScopeX60gensym657__2.vars->data[i_31];
												nimZeroMem((void*)T848_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
												T848_[0] = newSymNode_ast_3715((*tmpX60gensym793__2));
												T849_ = (NI)0;
												T849_ = len_ast_3197(itX60gensym657__3);
												T848_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T849_ - ((NI) 1))]).info);
												T850_ = (NI)0;
												T850_ = len_ast_3197(itX60gensym657__3);
												T848_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T850_ - ((NI) 1))]).info);
												T851_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
												T851_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T848_, 3);
												add_ast_4796(varSectionX60gensym793_, T851_);
												i_31 += ((NI) 1);
											} LA847: ;
										}
									}
									add_ast_4796(resultX60gensym793_, varSectionX60gensym793_);
								}
								LA841_: ;
								T852_ = (NI)0;
								T852_ = len_ast_3197(itX60gensym657__3);
								finSectionX60gensym793_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym657__3)._kind_6.sons->data[(NI)(T852_ - ((NI) 1))]).info);
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym793_;
									NI i_32;
									NI L_20;
									NI T854_;
									mX60gensym793_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
									i_32 = ((NI) 0);
									T854_ = (branchScopeX60gensym657__2.wasMoved ? branchScopeX60gensym657__2.wasMoved->Sup.len : 0);
									L_20 = T854_;
									{
										while (1) {
											if (!(i_32 < L_20)) goto LA856;
											mX60gensym793_ = &branchScopeX60gensym657__2.wasMoved->data[i_32];
											add_ast_4796(finSectionX60gensym793_, (*mX60gensym793_));
											i_32 += ((NI) 1);
										} LA856: ;
									}
								}
								{
									NI iX60gensym793_;
									NI colontmp__22;
									NI T858_;
									NI res_10;
									iX60gensym793_ = (NI)0;
									colontmp__22 = (NI)0;
									T858_ = ((branchScopeX60gensym657__2.final ? branchScopeX60gensym657__2.final->Sup.len : 0)-1);
									colontmp__22 = T858_;
									res_10 = colontmp__22;
									{
										while (1) {
											if (!(((NI) 0) <= res_10)) goto LA860;
											iX60gensym793_ = res_10;
											add_ast_4796(finSectionX60gensym793_, branchScopeX60gensym657__2.final->data[iX60gensym793_]);
											res_10 -= ((NI) 1);
										} LA860: ;
									}
								}
								{
									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T865_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T866_;
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T867_;
									if (!branchScopeX60gensym657__2.needsTry) goto LA863_;
									nimZeroMem((void*)T865_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
									T865_[0] = cpyX60gensym793_;
									T865_[1] = moveOrCopy_injectdestructors_110(dest, tmpX60gensym793_, c, branchScopeX60gensym657__2.parent, isDecl);
									T866_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T866_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T865_, 2);
									T867_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T867_ = newTryFinally_lowerings_202(T866_, finSectionX60gensym793_);
									add_ast_4796(resultX60gensym793_, T867_);
								}
								goto LA861_;
								LA863_: ;
								{
									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T869_;
									add_ast_4796(resultX60gensym793_, cpyX60gensym793_);
									add_ast_4796(resultX60gensym793_, finSectionX60gensym793_);
									T869_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
									T869_ = moveOrCopy_injectdestructors_110(dest, tmpX60gensym793_, c, branchScopeX60gensym657__2.parent, isDecl);
									add_ast_4796(resultX60gensym793_, T869_);
								}
								LA861_: ;
								{
									NIM_BOOL T874_;
									if (!!((branchScopeX60gensym657__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA872_;
									T874_ = (NIM_BOOL)0;
									T874_ = (*branchScopeX60gensym657__2.parent).needsTry;
									if (T874_) goto LA875_;
									T874_ = branchScopeX60gensym657__2.needsTry;
									LA875_: ;
									(*branchScopeX60gensym657__2.parent).needsTry = T874_;
								}
								LA872_: ;
								asgnRef((void**) (&(*branchX60gensym657__3)._kind_6.sons->data[(NI)(T796_ - ((NI) 1))]), resultX60gensym793_);
							}
							LA797_: ;
							add_ast_4796(result, branchX60gensym657__3);
							i_30 += ((NI) 1);
						} LA795: ;
					}
				}
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
			{
				result = copyTree_ast_4430(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__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt_injectdestructors_7126(ri, c, s);
		}
		break;
		default:
		{
			{
				NIM_BOOL T882_;
				NIM_BOOL T883_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* snk_4;
				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T888_;
				T882_ = (NIM_BOOL)0;
				T883_ = (NIM_BOOL)0;
				T883_ = isAnalysableFieldAccess_dfa_903(ri, (*c).owner);
				if (!(T883_)) goto LA884_;
				T883_ = isLastRead_injectdestructors_6103(ri, c);
				LA884_: ;
				T882_ = T883_;
				if (!(T882_)) goto LA885_;
				T882_ = canBeMoved_injectdestructors_6532((&(*c)), (*dest).typ);
				LA885_: ;
				if (!T882_) goto LA886_;
				snk_4 = genSink_injectdestructors_6564(c, dest, ri, isDecl);
				nimZeroMem((void*)T888_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
				T888_[0] = snk_4;
				T888_[1] = genWasMoved_injectdestructors_6739(c, ri);
				result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T888_, 2);
			}
			goto LA880_;
			LA886_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T890_;
				result = genCopy_injectdestructors_6647(c, dest, ri);
				T890_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T890_ = p_injectdestructors_105(ri, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add_ast_4796(result, T890_);
				finishCopy_injectdestructors_6598(c, result, dest, NIM_FALSE);
			}
			LA880_: ;
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, safeLen_ast_3190)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len_ast_3197(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsConstSeq_injectdestructors_6860)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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__G4E4Gxe7oI2Cm03rkiOzQw) 41));
		if (!(T5_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len_ast_3197(n);
		T5_ = (((NI) 0) < T7_);
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA8_;
		T4_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		LA8_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA9_;
		T3_ = isDangerousSeq_injectdestructors_6847((*n).typ);
		LA9_: ;
		if (!T3_) goto LA10_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
	LA10_: ;
	result = NIM_FALSE;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		result = containsConstSeq_injectdestructors_6860((*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len_ast_3197(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_6860((*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__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
			son = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI i_3;
				NI colontmp__2;
				NI i_4;
				i_3 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = safeLen_ast_3190(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_6860(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_6797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* root;
	result = (NIM_BOOL)0;
	root = getRoot_trees_390(n);
	{
		if (!!((root == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA3_;
		result = ((NU8)((*(*root).name).s->data[((NI) 0)]) == (NU8)(58));
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, passCopyToSink_injectdestructors_6805)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info, (*n).typ);
	tmp = getTemp_injectdestructors_61(c, s, (*n).typ, (*n).info);
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* m;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = hasDestructor_injectdestructors_49((&(*c)), (*n).typ);
		if (!T3_) goto LA4_;
		T6_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T6_ = genWasMoved_injectdestructors_6739(c, tmp);
		add_ast_4796(result, T6_);
		m = genCopy_injectdestructors_6647(c, tmp, n);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = p_injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		add_ast_4796(m, T7_);
		finishCopy_injectdestructors_6598(c, m, n, NIM_TRUE);
		add_ast_4796(result, m);
		{
			NIM_BOOL T10_;
			NIM_BOOL T11_;
			NIM_BOOL T12_;
			NIM_BOOL T14_;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* 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_6797(n);
			T12_ = !(T14_);
			LA13_: ;
			T11_ = T12_;
			if (!(T11_)) goto LA15_;
			T16_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
			T16_ = skipTypes_ast_3734((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
			T11_ = !(((*T16_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
			LA15_: ;
			T10_ = T11_;
			if (!(T10_)) goto LA17_;
			T10_ = ((*c).inSpawn == ((NI) 0));
			LA17_: ;
			if (!T10_) goto LA18_;
			T20_ = (NimStringDesc*)0;
			T20_ = dollar__renderer_2107(n);
			T21_ = (NimStringDesc*)0;
			T21_ = nsuFormatSingleElem(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_39), T20_);
			liMessage_msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 93), T21_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_40, NIM_FALSE);
		}
		LA18_: ;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		{
			if (!((48 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA25_;
		}
		LA25_: ;
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* T29_;
			T29_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
			T29_ = skipTypes_ast_3734((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
			if (!((*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27) || (*T29_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48))) goto LA30_;
			liMessage_msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_41), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_42, NIM_FALSE);
		}
		LA30_: ;
		nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T32_[0] = tmp;
		T32_[1] = p_injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T32_, 2);
		add_ast_4796(result, T33_);
	}
	LA1_: ;
	add_ast_4796(result, tmp);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ensureDestruction_injectdestructors_6885)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
		NI T9_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*arg).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = hasDestructor_injectdestructors_49((&(*c)), (*arg).typ);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*arg).info, (*arg).typ);
		tmp = getTemp_injectdestructors_61(c, s, (*arg).typ, (*arg).info);
		T7_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T7_ = genSink_injectdestructors_6564(c, tmp, arg, NIM_TRUE);
		add_ast_4796(result, T7_);
		add_ast_4796(result, tmp);
		T8_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T8_ = genDestroy_injectdestructors_6527(c, tmp);
		unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
		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_4001)(tyObject_TType__facALICuu8zUj0hjvbTLFg* 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_3516)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDefaultCall_injectdestructors_6751)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	result = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), info);
	T1_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
	T1_ = createMagic_modulegraphs_9008((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_44), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152));
	T2_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T2_ = newSymNode_ast_3715(T1_);
	add_ast_4796(result, T2_);
	asgnRef((void**) (&(*result).typ), t);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pVarTopLevel_injectdestructors_6967)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res) {
	NI T1_;
	unsureAsgnRef((void**) (&(*s).vars), (tySequence__eHqUwlHGGaPw0TDPDeL79cQ*) incrSeqV3((TGenericSeq*)((*s).vars), (&NTIseqLpsymT__eHqUwlHGGaPw0TDPDeL79cQ_)));
	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__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T5_)) goto LA6_;
		T5_ = ((*(*v)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5));
		LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = ((*(*(*v)._kind_4.sym).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18));
		LA7_: ;
		if (!T4_) goto LA8_;
		{
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T14_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
			if (!(((NI) 0) < (*c).inLoop)) goto LA12_;
			nimZeroMem((void*)T14_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T14_[0] = v;
			T14_[1] = genDefaultCall_injectdestructors_6751((*v).typ, (&(*c)), (*v).info);
			T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T15_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T14_, 2);
			add_ast_4796(res, T15_);
		}
		LA12_: ;
	}
	goto LA2_;
	LA8_: ;
	{
		NIM_BOOL T17_;
		T17_ = (NIM_BOOL)0;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 26))&63U)))!=0));
		if (!(T17_)) goto LA18_;
		T17_ = !((((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0));
		LA18_: ;
		if (!T17_) goto LA19_;
		{
			NIM_BOOL T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			NI T28_;
			T23_ = (NIM_BOOL)0;
			T23_ = (((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 3))&63U)))!=0);
			if (!(T23_)) goto LA24_;
			T23_ = ((*s).parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL));
			LA24_: ;
			if (!T23_) goto LA25_;
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = genDestroy_injectdestructors_6527(c, v);
			asgnRef((void**) (&(*(*c).graph).globalDestructors), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*(*c).graph).globalDestructors), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			T28_ = (*(*c).graph).globalDestructors->Sup.len++;
			asgnRef((void**) (&(*(*c).graph).globalDestructors->data[T28_]), T27_);
		}
		goto LA21_;
		LA25_: ;
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
			NI T31_;
			T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T30_ = genDestroy_injectdestructors_6527(c, v);
			unsureAsgnRef((void**) (&(*s).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
			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_6908)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* destTyp;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field;
{	{
		if (!!(((*(*(*c).graph).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 4)))) goto LA3_;
		goto BeforeRet_;
	}
	LA3_: ;
	value = (*n)._kind_6.sons->data[((NI) 1)];
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155))) goto LA7_;
		value = (*value)._kind_6.sons->data[((NI) 1)];
	}
	LA7_: ;
	{
		if (!((*value).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA11_;
		goto BeforeRet_;
	}
	LA11_: ;
	destTyp = skipTypes_ast_3734((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
	{
		NIM_BOOL T15_;
		NIM_BOOL T17_;
		T15_ = (NIM_BOOL)0;
		T15_ = !(((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22)));
		if (!(T15_)) goto LA16_;
		T17_ = (NIM_BOOL)0;
		T17_ = ((*destTyp).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
		if (!(T17_)) goto LA18_;
		T17_ = ((*destTyp).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
		LA18_: ;
		T15_ = !(T17_);
		LA16_: ;
		if (!T15_) goto LA19_;
		goto BeforeRet_;
	}
	LA19_: ;
	x = (*n)._kind_6.sons->data[((NI) 0)];
	field = ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL);
	{
		while (1) {
			{
				if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45))) goto LA25_;
				field = (*x)._kind_6.sons->data[((NI) 1)];
				{
					NIM_BOOL T29_;
					T29_ = (NIM_BOOL)0;
					T29_ = ((*field).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
					if (!(T29_)) goto LA30_;
					T29_ = (((*(*field)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 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__G4E4Gxe7oI2Cm03rkiOzQw) 42) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47) || (*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA44_;
					nimZeroMem((void*)T46_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
					T46_[0] = dollar__renderer_2107(n);
					T46_[1] = dollar__renderer_2107(field);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_45), T46_, 2);
				}
				goto LA42_;
				LA44_: ;
				{
					tyArray__nHXaesL0DJZHyVS07ARPRA T48_;
					nimZeroMem((void*)T48_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
					T48_[0] = dollar__renderer_2107(n);
					msg = nsuFormatOpenArray(((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_46), T48_, 1);
				}
				LA42_: ;
				liMessage_msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 56), msg, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_47, NIM_FALSE);
				goto LA21;
			}
			LA40_: ;
		}
	} LA21: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDiscriminantAsgn_injectdestructors_6668)(tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
	tyArray__cypz0nHJsd9cnKgpO7fP5hQ T1_;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* leDotExpr;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* objType;
	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T34_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	tmp = getTemp_injectdestructors_61(c, s, (*(*n)._kind_6.sons->data[((NI) 1)]).typ, (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__cypz0nHJsd9cnKgpO7fP5hQ));
	result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T1_, 0);
	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T2_[0] = tmp;
	T2_[1] = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
	T3_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T3_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T2_, 2);
	add_ast_4796(result, T3_);
	T4_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T4_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	add_ast_4796(result, T4_);
	le = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		if (!((*le).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 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__nnJKJFyjDGi5mnv8jwfTGQ* branchDestructor;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T26_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* notExpr;
		tyObject_TType__facALICuu8zUj0hjvbTLFg* T28_;
		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T29_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
		tyArray__jlWPjgtbdjE069arIWHC9c9bg T31_;
		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T32_;
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
		T12_ = (NIM_BOOL)0;
		T12_ = hasDestructor_injectdestructors_49((&(*c)), objType);
		if (!T12_) goto LA13_;
		{
			NIM_BOOL T17_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T20_;
			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T23_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
			T17_ = (NIM_BOOL)0;
			T18_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
			T18_ = getAttachedOp_modulegraphs_4011((*c).graph, objType, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
			T17_ = !((T18_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
			if (!(T17_)) goto LA19_;
			T20_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
			T20_ = getAttachedOp_modulegraphs_4011((*c).graph, objType, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
			T17_ = (((*T20_).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
			LA19_: ;
			if (!T17_) goto LA21_;
			liMessage_msgs_1118((*(*c).graph).config, (*n).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_48), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_49, NIM_FALSE);
			nimZeroMem((void*)T23_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
			T23_[0] = le;
			T23_[1] = tmp;
			T24_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T24_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T23_, 2);
			add_ast_4796(result, T24_);
			goto BeforeRet_;
		}
		LA21_: ;
		branchDestructor = produceDestructorForDiscriminator_liftdestructors_1981((*c).graph, objType, (*(*leDotExpr)._kind_6.sons->data[((NI) 1)])._kind_4.sym, (*n).info, (*c).idgen);
		T25_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
		T25_ = getSysType_magicsys_60((*c).graph, unknownLineInfo_lineinfos_280, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		cond = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29), (*n).info, T25_);
		T26_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
		T26_ = getMagicEqSymForType_magicsys_171((*c).graph, (*le).typ, (*n).info);
		T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T27_ = newSymNode_ast_3715(T26_);
		add_ast_4796(cond, T27_);
		add_ast_4796(cond, le);
		add_ast_4796(cond, tmp);
		T28_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
		T28_ = getSysType_magicsys_60((*c).graph, unknownLineInfo_lineinfos_280, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
		notExpr = newNodeIT_ast_3377(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30), (*n).info, T28_);
		T29_ = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*)0;
		T29_ = createMagic_modulegraphs_9008((*c).graph, (*c).idgen, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_50), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
		T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T30_ = newSymNode_ast_3715(T29_);
		add_ast_4796(notExpr, T30_);
		add_ast_4796(notExpr, cond);
		nimZeroMem((void*)T31_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
		nimZeroMem((void*)T32_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
		T32_[0] = notExpr;
		T32_[1] = genOp_injectdestructors_6420(c, branchDestructor, le);
		T31_[0] = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T32_, 2);
		T33_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
		T33_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T31_, 1);
		add_ast_4796(result, T33_);
	}
	LA13_: ;
	nimZeroMem((void*)T34_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
	T34_[0] = le;
	T34_[1] = tmp;
	T35_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T35_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T34_, 2);
	add_ast_4796(result, T35_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, p_injectdestructors_105)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_Con__mVYRtnERc9advo79cBQUudxg* c, tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ* s, tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw mode) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		if (!((TM__dJ4qrEWDmqGA8FWJ0TYKJQ_13[(NU)((*n).kind)>>3] &(1U<<((NU)((*n).kind)&7U)))!=0)) goto LA3_;
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
			{
				NI T8_;
				T8_ = (NI)0;
				T8_ = len_ast_3197(n);
				if (!(T8_ == ((NI) 0))) goto LA9_;
				result = n;
				goto BeforeRet_;
			}
			LA9_: ;
			result = copyNode_ast_4335(n);
			{
				NI iX60gensym198_;
				NI colontmp_;
				NI T12_;
				NI i;
				iX60gensym198_ = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (NI)0;
				T12_ = len_ast_3197(n);
				colontmp_ = (NI)(T12_ - ((NI) 1));
				i = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
						if (!(i < colontmp_)) goto LA14;
						iX60gensym198_ = i;
						T15_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T15_ = p_injectdestructors_105((*n)._kind_6.sons->data[iX60gensym198_], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
						add_ast_4796(result, T15_);
						i += ((NI) 1);
					} LA14: ;
				}
			}
			T16_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NI T19_;
				NIM_BOOL T20_;
				NI T23_;
				T19_ = (NI)0;
				T19_ = len_ast_3197(n);
				T20_ = (NIM_BOOL)0;
				T20_ = isEmptyType_ast_4778((*(*n)._kind_6.sons->data[(NI)(T19_ - ((NI) 1))]).typ);
				if (!T20_) goto LA21_;
				T23_ = (NI)0;
				T23_ = len_ast_3197(n);
				T16_ = p_injectdestructors_105((*n)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			}
			goto LA17_;
			LA21_: ;
			{
				NI T25_;
				T25_ = (NI)0;
				T25_ = len_ast_3197(n);
				T16_ = p_injectdestructors_105((*n)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))], c, s, mode);
			}
			LA17_: ;
			add_ast_4796(result, T16_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
			result = copyNode_ast_4335(n);
			T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T27_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add_ast_4796(result, T27_);
			{
				NI iX60gensym198__2;
				NI colontmp__2;
				NI i_2;
				iX60gensym198__2 = (NI)0;
				colontmp__2 = (NI)0;
				colontmp__2 = len_ast_3197(n);
				i_2 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198_;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ 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_4412(itX60gensym198_);
						{
							NI jX60gensym198_;
							NI colontmp__3;
							NI T32_;
							NI i_3;
							jX60gensym198_ = (NI)0;
							colontmp__3 = (NI)0;
							T32_ = (NI)0;
							T32_ = len_ast_3197(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_4430((*itX60gensym198_)._kind_6.sons->data[jX60gensym198_]));
									i_3 += ((NI) 1);
								} LA34: ;
							}
						}
						nimZeroMem((void*)(&ofScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope_injectdestructors_72(s, (&ofScopeX60gensym198_));
						T35_ = (NI)0;
						T35_ = len_ast_3197(branchX60gensym198_);
						{
							NIM_BOOL T38_;
							NI T39_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
							T38_ = (NIM_BOOL)0;
							T39_ = (NI)0;
							T39_ = len_ast_3197(itX60gensym198_);
							T38_ = isEmptyType_ast_4778((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T39_ - ((NI) 1))]).typ);
							if (T38_) goto LA40_;
							T38_ = NIM_FALSE;
							LA40_: ;
							if (!T38_) goto LA41_;
							T43_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T46_;
								NIM_BOOL T47_;
								NI T50_;
								T46_ = (NI)0;
								T46_ = len_ast_3197(itX60gensym198_);
								T47_ = (NIM_BOOL)0;
								T47_ = isEmptyType_ast_4778((*(*itX60gensym198_)._kind_6.sons->data[(NI)(T46_ - ((NI) 1))]).typ);
								if (!T47_) goto LA48_;
								T50_ = (NI)0;
								T50_ = len_ast_3197(itX60gensym198_);
								T43_ = p_injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T50_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA44_;
							LA48_: ;
							{
								NI T52_;
								T52_ = (NI)0;
								T52_ = len_ast_3197(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_7016(c, (&ofScopeX60gensym198_), T43_));
						}
						goto LA36_;
						LA41_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym236_;
							NI T54_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym236_;
							NI T55_;
							NI T56_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym236_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym236_;
							NI T83_;
							T54_ = (NI)0;
							T54_ = len_ast_3197(itX60gensym198_);
							resultX60gensym236_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T54_ - ((NI) 1))]).info);
							T55_ = (NI)0;
							T55_ = len_ast_3197(itX60gensym198_);
							T56_ = (NI)0;
							T56_ = len_ast_3197(itX60gensym198_);
							tmpX60gensym236_ = getTemp_injectdestructors_61(c, ofScopeX60gensym198_.parent, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T55_ - ((NI) 1))]).typ, (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T56_ - ((NI) 1))]).info);
							(*(*tmpX60gensym236_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T59_;
								NIM_BOOL T60_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
								NI T64_;
								NI T65_;
								T59_ = (NI)0;
								T59_ = len_ast_3197(itX60gensym198_);
								T60_ = (NIM_BOOL)0;
								T60_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T59_ - ((NI) 1))]).typ);
								if (!T60_) goto LA61_;
								T63_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T63_ = genDestroy_injectdestructors_6527(c, tmpX60gensym236_);
								unsureAsgnRef((void**) (&(*ofScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ofScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T64_ = (*ofScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*ofScopeX60gensym198_.parent).final->data[T64_]), T63_);
								T65_ = (NI)0;
								T65_ = len_ast_3197(itX60gensym198_);
								cpyX60gensym236_ = moveOrCopy_injectdestructors_110(tmpX60gensym236_, (*itX60gensym198_)._kind_6.sons->data[(NI)(T65_ - ((NI) 1))], c, (&ofScopeX60gensym198_), NIM_TRUE);
							}
							goto LA57_;
							LA61_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T67_;
								NI T68_;
								nimZeroMem((void*)T67_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T67_[0] = tmpX60gensym236_;
								T68_ = (NI)0;
								T68_ = len_ast_3197(itX60gensym198_);
								T67_[1] = p_injectdestructors_105((*itX60gensym198_)._kind_6.sons->data[(NI)(T68_ - ((NI) 1))], c, (&ofScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym236_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T67_, 2);
							}
							LA57_: ;
							{
								NI T71_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym236_;
								NI T74_;
								T71_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T71_)) goto LA72_;
								T74_ = (NI)0;
								T74_ = len_ast_3197(itX60gensym198_);
								varSectionX60gensym236_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T74_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym236__2;
									NI i_4;
									NI L;
									NI T76_;
									tmpX60gensym236__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_4 = ((NI) 0);
									T76_ = (ofScopeX60gensym198_.vars ? ofScopeX60gensym198_.vars->Sup.len : 0);
									L = T76_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T79_;
											NI T80_;
											NI T81_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T82_;
											if (!(i_4 < L)) goto LA78;
											tmpX60gensym236__2 = &ofScopeX60gensym198_.vars->data[i_4];
											nimZeroMem((void*)T79_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T79_[0] = newSymNode_ast_3715((*tmpX60gensym236__2));
											T80_ = (NI)0;
											T80_ = len_ast_3197(itX60gensym198_);
											T79_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T80_ - ((NI) 1))]).info);
											T81_ = (NI)0;
											T81_ = len_ast_3197(itX60gensym198_);
											T79_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T81_ - ((NI) 1))]).info);
											T82_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T82_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T79_, 3);
											add_ast_4796(varSectionX60gensym236_, T82_);
											i_4 += ((NI) 1);
										} LA78: ;
									}
								}
								add_ast_4796(resultX60gensym236_, varSectionX60gensym236_);
							}
							LA72_: ;
							T83_ = (NI)0;
							T83_ = len_ast_3197(itX60gensym198_);
							finSectionX60gensym236_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198_)._kind_6.sons->data[(NI)(T83_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym236_;
								NI i_5;
								NI L_2;
								NI T85_;
								mX60gensym236_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_5 = ((NI) 0);
								T85_ = (ofScopeX60gensym198_.wasMoved ? ofScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_2 = T85_;
								{
									while (1) {
										if (!(i_5 < L_2)) goto LA87;
										mX60gensym236_ = &ofScopeX60gensym198_.wasMoved->data[i_5];
										add_ast_4796(finSectionX60gensym236_, (*mX60gensym236_));
										i_5 += ((NI) 1);
									} LA87: ;
								}
							}
							{
								NI iX60gensym236_;
								NI colontmp__4;
								NI T89_;
								NI res;
								iX60gensym236_ = (NI)0;
								colontmp__4 = (NI)0;
								T89_ = ((ofScopeX60gensym198_.final ? ofScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__4 = T89_;
								res = colontmp__4;
								{
									while (1) {
										if (!(((NI) 0) <= res)) goto LA91;
										iX60gensym236_ = res;
										add_ast_4796(finSectionX60gensym236_, ofScopeX60gensym198_.final->data[iX60gensym236_]);
										res -= ((NI) 1);
									} LA91: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T96_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T97_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T98_;
								if (!ofScopeX60gensym198_.needsTry) goto LA94_;
								nimZeroMem((void*)T96_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T96_[0] = cpyX60gensym236_;
								T96_[1] = p_injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								T97_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T97_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T96_, 2);
								T98_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T98_ = newTryFinally_lowerings_202(T97_, finSectionX60gensym236_);
								add_ast_4796(resultX60gensym236_, T98_);
							}
							goto LA92_;
							LA94_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T100_;
								add_ast_4796(resultX60gensym236_, cpyX60gensym236_);
								add_ast_4796(resultX60gensym236_, finSectionX60gensym236_);
								T100_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T100_ = p_injectdestructors_105(tmpX60gensym236_, c, ofScopeX60gensym198_.parent, mode);
								add_ast_4796(resultX60gensym236_, T100_);
							}
							LA92_: ;
							{
								NIM_BOOL T105_;
								if (!!((ofScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA103_;
								T105_ = (NIM_BOOL)0;
								T105_ = (*ofScopeX60gensym198_.parent).needsTry;
								if (T105_) goto LA106_;
								T105_ = ofScopeX60gensym198_.needsTry;
								LA106_: ;
								(*ofScopeX60gensym198_.parent).needsTry = T105_;
							}
							LA103_: ;
							asgnRef((void**) (&(*branchX60gensym198_)._kind_6.sons->data[(NI)(T35_ - ((NI) 1))]), resultX60gensym236_);
						}
						LA36_: ;
						add_ast_4796(result, branchX60gensym198_);
						i_2 += ((NI) 1);
					} LA30: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T108_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T109_;
			(*c).inLoop += ((NI) 1);
			(*c).inLoopCond += ((NI) 1);
			result = copyNode_ast_4335(n);
			T108_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T108_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			add_ast_4796(result, T108_);
			(*c).inLoopCond -= ((NI) 1);
			nimZeroMem((void*)(&bodyScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym198_));
			bodyResultX60gensym198_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			T109_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			T109_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym198_), bodyResultX60gensym198_);
			add_ast_4796(result, T109_);
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 95):
		{
			NI lastX60gensym198_;
			NI T111_;
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198__2;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* bodyResultX60gensym198__2;
			(*c).inLoop += ((NI) 1);
			result = shallowCopy_ast_4412(n);
			T111_ = (NI)0;
			T111_ = len_ast_3197(n);
			lastX60gensym198_ = (NI)(T111_ - ((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 LA114;
						iX60gensym198__3 = i_6;
						asgnRef((void**) (&(*result)._kind_6.sons->data[iX60gensym198__3]), (*n)._kind_6.sons->data[iX60gensym198__3]);
						i_6 += ((NI) 1);
					} LA114: ;
				}
			}
			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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			nimZeroMem((void*)(&bodyScopeX60gensym198__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym198__2));
			bodyResultX60gensym198__2 = p_injectdestructors_105((*n)._kind_6.sons->data[lastX60gensym198_], c, (&bodyScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
			asgnRef((void**) (&(*result)._kind_6.sons->data[lastX60gensym198_]), processScope_injectdestructors_7016(c, (&bodyScopeX60gensym198__2), bodyResultX60gensym198__2));
			(*c).inLoop -= ((NI) 1);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ bodyScopeX60gensym198__3;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T116_;
			result = copyNode_ast_4335(n);
			add_ast_4796(result, (*n)._kind_6.sons->data[((NI) 0)]);
			nimZeroMem((void*)(&bodyScopeX60gensym198__3), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope_injectdestructors_72(s, (&bodyScopeX60gensym198__3));
			T116_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T119_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T123_;
				T119_ = (NIM_BOOL)0;
				T119_ = isEmptyType_ast_4778((*(*n)._kind_6.sons->data[((NI) 1)]).typ);
				if (T119_) goto LA120_;
				T119_ = NIM_FALSE;
				LA120_: ;
				if (!T119_) goto LA121_;
				T123_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T123_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), mode);
				T116_ = processScope_injectdestructors_7016(c, (&bodyScopeX60gensym198__3), T123_);
			}
			goto LA117_;
			LA121_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym258_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym258_;
				resultX60gensym258_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				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__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
				{
					NIM_BOOL T127_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T130_;
					NI T131_;
					T127_ = (NIM_BOOL)0;
					T127_ = hasDestructor_injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 1)]).typ);
					if (!T127_) goto LA128_;
					T130_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T130_ = genDestroy_injectdestructors_6527(c, tmpX60gensym258_);
					unsureAsgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*bodyScopeX60gensym198__3.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T131_ = (*bodyScopeX60gensym198__3.parent).final->Sup.len++;
					asgnRef((void**) (&(*bodyScopeX60gensym198__3.parent).final->data[T131_]), T130_);
					cpyX60gensym258_ = moveOrCopy_injectdestructors_110(tmpX60gensym258_, (*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), NIM_TRUE);
				}
				goto LA125_;
				LA128_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T133_;
					nimZeroMem((void*)T133_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T133_[0] = tmpX60gensym258_;
					T133_[1] = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, (&bodyScopeX60gensym198__3), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym258_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T133_, 2);
				}
				LA125_: ;
				{
					NI T136_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym258_;
					T136_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
					if (!(((NI) 0) < T136_)) goto LA137_;
					varSectionX60gensym258_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym258__2;
						NI i_7;
						NI L_3;
						NI T140_;
						tmpX60gensym258__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
						i_7 = ((NI) 0);
						T140_ = (bodyScopeX60gensym198__3.vars ? bodyScopeX60gensym198__3.vars->Sup.len : 0);
						L_3 = T140_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T143_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T144_;
								if (!(i_7 < L_3)) goto LA142;
								tmpX60gensym258__2 = &bodyScopeX60gensym198__3.vars->data[i_7];
								nimZeroMem((void*)T143_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T143_[0] = newSymNode_ast_3715((*tmpX60gensym258__2));
								T143_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T143_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
								T144_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T144_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T143_, 3);
								add_ast_4796(varSectionX60gensym258_, T144_);
								i_7 += ((NI) 1);
							} LA142: ;
						}
					}
					add_ast_4796(resultX60gensym258_, varSectionX60gensym258_);
				}
				LA137_: ;
				finSectionX60gensym258_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 1)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym258_;
					NI i_8;
					NI L_4;
					NI T146_;
					mX60gensym258_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_8 = ((NI) 0);
					T146_ = (bodyScopeX60gensym198__3.wasMoved ? bodyScopeX60gensym198__3.wasMoved->Sup.len : 0);
					L_4 = T146_;
					{
						while (1) {
							if (!(i_8 < L_4)) goto LA148;
							mX60gensym258_ = &bodyScopeX60gensym198__3.wasMoved->data[i_8];
							add_ast_4796(finSectionX60gensym258_, (*mX60gensym258_));
							i_8 += ((NI) 1);
						} LA148: ;
					}
				}
				{
					NI iX60gensym258_;
					NI colontmp__6;
					NI T150_;
					NI res_2;
					iX60gensym258_ = (NI)0;
					colontmp__6 = (NI)0;
					T150_ = ((bodyScopeX60gensym198__3.final ? bodyScopeX60gensym198__3.final->Sup.len : 0)-1);
					colontmp__6 = T150_;
					res_2 = colontmp__6;
					{
						while (1) {
							if (!(((NI) 0) <= res_2)) goto LA152;
							iX60gensym258_ = res_2;
							add_ast_4796(finSectionX60gensym258_, bodyScopeX60gensym198__3.final->data[iX60gensym258_]);
							res_2 -= ((NI) 1);
						} LA152: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T157_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T158_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T159_;
					if (!bodyScopeX60gensym198__3.needsTry) goto LA155_;
					nimZeroMem((void*)T157_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T157_[0] = cpyX60gensym258_;
					T157_[1] = p_injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					T158_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T158_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T157_, 2);
					T159_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T159_ = newTryFinally_lowerings_202(T158_, finSectionX60gensym258_);
					add_ast_4796(resultX60gensym258_, T159_);
				}
				goto LA153_;
				LA155_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T161_;
					add_ast_4796(resultX60gensym258_, cpyX60gensym258_);
					add_ast_4796(resultX60gensym258_, finSectionX60gensym258_);
					T161_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T161_ = p_injectdestructors_105(tmpX60gensym258_, c, bodyScopeX60gensym198__3.parent, mode);
					add_ast_4796(resultX60gensym258_, T161_);
				}
				LA153_: ;
				{
					NIM_BOOL T166_;
					if (!!((bodyScopeX60gensym198__3.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA164_;
					T166_ = (NIM_BOOL)0;
					T166_ = (*bodyScopeX60gensym198__3.parent).needsTry;
					if (T166_) goto LA167_;
					T166_ = bodyScopeX60gensym198__3.needsTry;
					LA167_: ;
					(*bodyScopeX60gensym198__3.parent).needsTry = T166_;
				}
				LA164_: ;
				T116_ = resultX60gensym258_;
			}
			LA117_: ;
			add_ast_4796(result, T116_);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
		{
			result = copyNode_ast_4335(n);
			{
				NI iX60gensym198__4;
				NI colontmp__7;
				NI i_9;
				iX60gensym198__4 = (NI)0;
				colontmp__7 = (NI)0;
				colontmp__7 = len_ast_3197(n);
				i_9 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198__2;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198__2;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym198_;
						NI T176_;
						if (!(i_9 < colontmp__7)) goto LA171;
						iX60gensym198__4 = i_9;
						itX60gensym198__2 = (*n)._kind_6.sons->data[iX60gensym198__4];
						branchX60gensym198__2 = shallowCopy_ast_4412(itX60gensym198__2);
						nimZeroMem((void*)(&branchScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope_injectdestructors_72(s, (&branchScopeX60gensym198_));
						{
							if (!((*itX60gensym198__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86) || (*itX60gensym198__2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49))) goto LA174_;
							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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA174_: ;
						T176_ = (NI)0;
						T176_ = len_ast_3197(branchX60gensym198__2);
						{
							NIM_BOOL T179_;
							NI T180_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T184_;
							T179_ = (NIM_BOOL)0;
							T180_ = (NI)0;
							T180_ = len_ast_3197(itX60gensym198__2);
							T179_ = isEmptyType_ast_4778((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T180_ - ((NI) 1))]).typ);
							if (T179_) goto LA181_;
							T179_ = NIM_FALSE;
							LA181_: ;
							if (!T179_) goto LA182_;
							T184_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T187_;
								NIM_BOOL T188_;
								NI T191_;
								T187_ = (NI)0;
								T187_ = len_ast_3197(itX60gensym198__2);
								T188_ = (NIM_BOOL)0;
								T188_ = isEmptyType_ast_4778((*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T187_ - ((NI) 1))]).typ);
								if (!T188_) goto LA189_;
								T191_ = (NI)0;
								T191_ = len_ast_3197(itX60gensym198__2);
								T184_ = p_injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T191_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA185_;
							LA189_: ;
							{
								NI T193_;
								T193_ = (NI)0;
								T193_ = len_ast_3197(itX60gensym198__2);
								T184_ = p_injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T193_ - ((NI) 1))], c, (&branchScopeX60gensym198_), mode);
							}
							LA185_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T176_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym198_), T184_));
						}
						goto LA177_;
						LA182_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym287_;
							NI T195_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym287_;
							NI T196_;
							NI T197_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym287_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym287_;
							NI T224_;
							T195_ = (NI)0;
							T195_ = len_ast_3197(itX60gensym198__2);
							resultX60gensym287_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T195_ - ((NI) 1))]).info);
							T196_ = (NI)0;
							T196_ = len_ast_3197(itX60gensym198__2);
							T197_ = (NI)0;
							T197_ = len_ast_3197(itX60gensym198__2);
							tmpX60gensym287_ = getTemp_injectdestructors_61(c, branchScopeX60gensym198_.parent, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T196_ - ((NI) 1))]).typ, (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T197_ - ((NI) 1))]).info);
							(*(*tmpX60gensym287_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T200_;
								NIM_BOOL T201_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T204_;
								NI T205_;
								NI T206_;
								T200_ = (NI)0;
								T200_ = len_ast_3197(itX60gensym198__2);
								T201_ = (NIM_BOOL)0;
								T201_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T200_ - ((NI) 1))]).typ);
								if (!T201_) goto LA202_;
								T204_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T204_ = genDestroy_injectdestructors_6527(c, tmpX60gensym287_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T205_ = (*branchScopeX60gensym198_.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198_.parent).final->data[T205_]), T204_);
								T206_ = (NI)0;
								T206_ = len_ast_3197(itX60gensym198__2);
								cpyX60gensym287_ = moveOrCopy_injectdestructors_110(tmpX60gensym287_, (*itX60gensym198__2)._kind_6.sons->data[(NI)(T206_ - ((NI) 1))], c, (&branchScopeX60gensym198_), NIM_TRUE);
							}
							goto LA198_;
							LA202_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T208_;
								NI T209_;
								nimZeroMem((void*)T208_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T208_[0] = tmpX60gensym287_;
								T209_ = (NI)0;
								T209_ = len_ast_3197(itX60gensym198__2);
								T208_[1] = p_injectdestructors_105((*itX60gensym198__2)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))], c, (&branchScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym287_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T208_, 2);
							}
							LA198_: ;
							{
								NI T212_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym287_;
								NI T215_;
								T212_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
								if (!(((NI) 0) < T212_)) goto LA213_;
								T215_ = (NI)0;
								T215_ = len_ast_3197(itX60gensym198__2);
								varSectionX60gensym287_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T215_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym287__2;
									NI i_10;
									NI L_5;
									NI T217_;
									tmpX60gensym287__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_10 = ((NI) 0);
									T217_ = (branchScopeX60gensym198_.vars ? branchScopeX60gensym198_.vars->Sup.len : 0);
									L_5 = T217_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T220_;
											NI T221_;
											NI T222_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T223_;
											if (!(i_10 < L_5)) goto LA219;
											tmpX60gensym287__2 = &branchScopeX60gensym198_.vars->data[i_10];
											nimZeroMem((void*)T220_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T220_[0] = newSymNode_ast_3715((*tmpX60gensym287__2));
											T221_ = (NI)0;
											T221_ = len_ast_3197(itX60gensym198__2);
											T220_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T221_ - ((NI) 1))]).info);
											T222_ = (NI)0;
											T222_ = len_ast_3197(itX60gensym198__2);
											T220_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T222_ - ((NI) 1))]).info);
											T223_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T223_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T220_, 3);
											add_ast_4796(varSectionX60gensym287_, T223_);
											i_10 += ((NI) 1);
										} LA219: ;
									}
								}
								add_ast_4796(resultX60gensym287_, varSectionX60gensym287_);
							}
							LA213_: ;
							T224_ = (NI)0;
							T224_ = len_ast_3197(itX60gensym198__2);
							finSectionX60gensym287_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198__2)._kind_6.sons->data[(NI)(T224_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym287_;
								NI i_11;
								NI L_6;
								NI T226_;
								mX60gensym287_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_11 = ((NI) 0);
								T226_ = (branchScopeX60gensym198_.wasMoved ? branchScopeX60gensym198_.wasMoved->Sup.len : 0);
								L_6 = T226_;
								{
									while (1) {
										if (!(i_11 < L_6)) goto LA228;
										mX60gensym287_ = &branchScopeX60gensym198_.wasMoved->data[i_11];
										add_ast_4796(finSectionX60gensym287_, (*mX60gensym287_));
										i_11 += ((NI) 1);
									} LA228: ;
								}
							}
							{
								NI iX60gensym287_;
								NI colontmp__8;
								NI T230_;
								NI res_3;
								iX60gensym287_ = (NI)0;
								colontmp__8 = (NI)0;
								T230_ = ((branchScopeX60gensym198_.final ? branchScopeX60gensym198_.final->Sup.len : 0)-1);
								colontmp__8 = T230_;
								res_3 = colontmp__8;
								{
									while (1) {
										if (!(((NI) 0) <= res_3)) goto LA232;
										iX60gensym287_ = res_3;
										add_ast_4796(finSectionX60gensym287_, branchScopeX60gensym198_.final->data[iX60gensym287_]);
										res_3 -= ((NI) 1);
									} LA232: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T237_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T238_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T239_;
								if (!branchScopeX60gensym198_.needsTry) goto LA235_;
								nimZeroMem((void*)T237_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T237_[0] = cpyX60gensym287_;
								T237_[1] = p_injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								T238_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T238_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T237_, 2);
								T239_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T239_ = newTryFinally_lowerings_202(T238_, finSectionX60gensym287_);
								add_ast_4796(resultX60gensym287_, T239_);
							}
							goto LA233_;
							LA235_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T241_;
								add_ast_4796(resultX60gensym287_, cpyX60gensym287_);
								add_ast_4796(resultX60gensym287_, finSectionX60gensym287_);
								T241_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T241_ = p_injectdestructors_105(tmpX60gensym287_, c, branchScopeX60gensym198_.parent, mode);
								add_ast_4796(resultX60gensym287_, T241_);
							}
							LA233_: ;
							{
								NIM_BOOL T246_;
								if (!!((branchScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA244_;
								T246_ = (NIM_BOOL)0;
								T246_ = (*branchScopeX60gensym198_.parent).needsTry;
								if (T246_) goto LA247_;
								T246_ = branchScopeX60gensym198_.needsTry;
								LA247_: ;
								(*branchScopeX60gensym198_.parent).needsTry = T246_;
							}
							LA244_: ;
							asgnRef((void**) (&(*branchX60gensym198__2)._kind_6.sons->data[(NI)(T176_ - ((NI) 1))]), resultX60gensym287_);
						}
						LA177_: ;
						add_ast_4796(result, branchX60gensym198__2);
						i_9 += ((NI) 1);
					} LA171: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
		{
			tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ tryScopeX60gensym198_;
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T249_;
			result = copyNode_ast_4335(n);
			nimZeroMem((void*)(&tryScopeX60gensym198_), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
			nestedScope_injectdestructors_72(s, (&tryScopeX60gensym198_));
			T249_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
			{
				NIM_BOOL T252_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T256_;
				T252_ = (NIM_BOOL)0;
				T252_ = isEmptyType_ast_4778((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (T252_) goto LA253_;
				T252_ = NIM_FALSE;
				LA253_: ;
				if (!T252_) goto LA254_;
				T256_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NIM_BOOL T259_;
					T259_ = (NIM_BOOL)0;
					T259_ = isEmptyType_ast_4778((*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T259_) goto LA260_;
					T256_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				}
				goto LA257_;
				LA260_: ;
				{
					T256_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), mode);
				}
				LA257_: ;
				T249_ = processScope_injectdestructors_7016(c, (&tryScopeX60gensym198_), T256_);
			}
			goto LA250_;
			LA254_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym303_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym303_;
				resultX60gensym303_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				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__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
				{
					NIM_BOOL T266_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T269_;
					NI T270_;
					T266_ = (NIM_BOOL)0;
					T266_ = hasDestructor_injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
					if (!T266_) goto LA267_;
					T269_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T269_ = genDestroy_injectdestructors_6527(c, tmpX60gensym303_);
					unsureAsgnRef((void**) (&(*tryScopeX60gensym198_.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*tryScopeX60gensym198_.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T270_ = (*tryScopeX60gensym198_.parent).final->Sup.len++;
					asgnRef((void**) (&(*tryScopeX60gensym198_.parent).final->data[T270_]), T269_);
					cpyX60gensym303_ = moveOrCopy_injectdestructors_110(tmpX60gensym303_, (*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), NIM_TRUE);
				}
				goto LA264_;
				LA267_: ;
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T272_;
					nimZeroMem((void*)T272_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T272_[0] = tmpX60gensym303_;
					T272_[1] = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, (&tryScopeX60gensym198_), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					cpyX60gensym303_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T272_, 2);
				}
				LA264_: ;
				{
					NI T275_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym303_;
					T275_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
					if (!(((NI) 0) < T275_)) goto LA276_;
					varSectionX60gensym303_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
					{
						tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym303__2;
						NI i_12;
						NI L_7;
						NI T279_;
						tmpX60gensym303__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
						i_12 = ((NI) 0);
						T279_ = (tryScopeX60gensym198_.vars ? tryScopeX60gensym198_.vars->Sup.len : 0);
						L_7 = T279_;
						{
							while (1) {
								tyArray__T6RKPw8xfAeNaoei9aZGzXg T282_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T283_;
								if (!(i_12 < L_7)) goto LA281;
								tmpX60gensym303__2 = &tryScopeX60gensym198_.vars->data[i_12];
								nimZeroMem((void*)T282_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
								T282_[0] = newSymNode_ast_3715((*tmpX60gensym303__2));
								T282_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T282_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
								T283_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T283_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T282_, 3);
								add_ast_4796(varSectionX60gensym303_, T283_);
								i_12 += ((NI) 1);
							} LA281: ;
						}
					}
					add_ast_4796(resultX60gensym303_, varSectionX60gensym303_);
				}
				LA276_: ;
				finSectionX60gensym303_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[((NI) 0)]).info);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym303_;
					NI i_13;
					NI L_8;
					NI T285_;
					mX60gensym303_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					i_13 = ((NI) 0);
					T285_ = (tryScopeX60gensym198_.wasMoved ? tryScopeX60gensym198_.wasMoved->Sup.len : 0);
					L_8 = T285_;
					{
						while (1) {
							if (!(i_13 < L_8)) goto LA287;
							mX60gensym303_ = &tryScopeX60gensym198_.wasMoved->data[i_13];
							add_ast_4796(finSectionX60gensym303_, (*mX60gensym303_));
							i_13 += ((NI) 1);
						} LA287: ;
					}
				}
				{
					NI iX60gensym303_;
					NI colontmp__9;
					NI T289_;
					NI res_4;
					iX60gensym303_ = (NI)0;
					colontmp__9 = (NI)0;
					T289_ = ((tryScopeX60gensym198_.final ? tryScopeX60gensym198_.final->Sup.len : 0)-1);
					colontmp__9 = T289_;
					res_4 = colontmp__9;
					{
						while (1) {
							if (!(((NI) 0) <= res_4)) goto LA291;
							iX60gensym303_ = res_4;
							add_ast_4796(finSectionX60gensym303_, tryScopeX60gensym198_.final->data[iX60gensym303_]);
							res_4 -= ((NI) 1);
						} LA291: ;
					}
				}
				{
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T296_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T303_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T304_;
					if (!tryScopeX60gensym198_.needsTry) goto LA294_;
					nimZeroMem((void*)T296_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T296_[0] = cpyX60gensym303_;
					{
						NIM_BOOL T299_;
						T299_ = (NIM_BOOL)0;
						T299_ = isEmptyType_ast_4778((*tmpX60gensym303_).typ);
						if (!T299_) goto LA300_;
						T296_[1] = p_injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA297_;
					LA300_: ;
					{
						T296_[1] = p_injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA297_: ;
					T303_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T303_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T296_, 2);
					T304_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T304_ = newTryFinally_lowerings_202(T303_, finSectionX60gensym303_);
					add_ast_4796(resultX60gensym303_, T304_);
				}
				goto LA292_;
				LA294_: ;
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T306_;
					add_ast_4796(resultX60gensym303_, cpyX60gensym303_);
					add_ast_4796(resultX60gensym303_, finSectionX60gensym303_);
					T306_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					{
						NIM_BOOL T309_;
						T309_ = (NIM_BOOL)0;
						T309_ = isEmptyType_ast_4778((*tmpX60gensym303_).typ);
						if (!T309_) goto LA310_;
						T306_ = p_injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
					}
					goto LA307_;
					LA310_: ;
					{
						T306_ = p_injectdestructors_105(tmpX60gensym303_, c, tryScopeX60gensym198_.parent, mode);
					}
					LA307_: ;
					add_ast_4796(resultX60gensym303_, T306_);
				}
				LA292_: ;
				{
					NIM_BOOL T317_;
					if (!!((tryScopeX60gensym198_.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA315_;
					T317_ = (NIM_BOOL)0;
					T317_ = (*tryScopeX60gensym198_.parent).needsTry;
					if (T317_) goto LA318_;
					T317_ = tryScopeX60gensym198_.needsTry;
					LA318_: ;
					(*tryScopeX60gensym198_.parent).needsTry = T317_;
				}
				LA315_: ;
				T249_ = resultX60gensym303_;
			}
			LA250_: ;
			add_ast_4796(result, T249_);
			{
				NI iX60gensym198__5;
				NI colontmp__10;
				NI i_14;
				iX60gensym198__5 = (NI)0;
				colontmp__10 = (NI)0;
				colontmp__10 = len_ast_3197(n);
				i_14 = ((NI) 1);
				{
					while (1) {
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itX60gensym198__3;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchX60gensym198__3;
						tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ branchScopeX60gensym198__2;
						NI T322_;
						if (!(i_14 < colontmp__10)) goto LA321;
						iX60gensym198__5 = i_14;
						itX60gensym198__3 = (*n)._kind_6.sons->data[iX60gensym198__5];
						branchX60gensym198__3 = copyTree_ast_4430(itX60gensym198__3);
						nimZeroMem((void*)(&branchScopeX60gensym198__2), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
						nestedScope_injectdestructors_72(s, (&branchScopeX60gensym198__2));
						T322_ = (NI)0;
						T322_ = len_ast_3197(branchX60gensym198__3);
						{
							NIM_BOOL T325_;
							NIM_BOOL T326_;
							NI T327_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T332_;
							T325_ = (NIM_BOOL)0;
							T326_ = (NIM_BOOL)0;
							T327_ = (NI)0;
							T327_ = len_ast_3197(itX60gensym198__3);
							T326_ = isEmptyType_ast_4778((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T327_ - ((NI) 1))]).typ);
							if (T326_) goto LA328_;
							T326_ = NIM_FALSE;
							LA328_: ;
							T325_ = T326_;
							if (T325_) goto LA329_;
							T325_ = ((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107));
							LA329_: ;
							if (!T325_) goto LA330_;
							T332_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
							{
								NI T337_;
								if (!((*itX60gensym198__3).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA335_;
								T337_ = (NI)0;
								T337_ = len_ast_3197(itX60gensym198__3);
								T332_ = p_injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T337_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
							}
							goto LA333_;
							LA335_: ;
							{
								{
									NI T341_;
									NIM_BOOL T342_;
									NI T345_;
									T341_ = (NI)0;
									T341_ = len_ast_3197(itX60gensym198__3);
									T342_ = (NIM_BOOL)0;
									T342_ = isEmptyType_ast_4778((*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T341_ - ((NI) 1))]).typ);
									if (!T342_) goto LA343_;
									T345_ = (NI)0;
									T345_ = len_ast_3197(itX60gensym198__3);
									T332_ = p_injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T345_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								}
								goto LA339_;
								LA343_: ;
								{
									NI T347_;
									T347_ = (NI)0;
									T347_ = len_ast_3197(itX60gensym198__3);
									T332_ = p_injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T347_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), mode);
								}
								LA339_: ;
							}
							LA333_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T322_ - ((NI) 1))]), processScope_injectdestructors_7016(c, (&branchScopeX60gensym198__2), T332_));
						}
						goto LA323_;
						LA330_: ;
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resultX60gensym334_;
							NI T349_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmpX60gensym334_;
							NI T350_;
							NI T351_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cpyX60gensym334_;
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finSectionX60gensym334_;
							NI T378_;
							T349_ = (NI)0;
							T349_ = len_ast_3197(itX60gensym198__3);
							resultX60gensym334_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T349_ - ((NI) 1))]).info);
							T350_ = (NI)0;
							T350_ = len_ast_3197(itX60gensym198__3);
							T351_ = (NI)0;
							T351_ = len_ast_3197(itX60gensym198__3);
							tmpX60gensym334_ = getTemp_injectdestructors_61(c, branchScopeX60gensym198__2.parent, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T350_ - ((NI) 1))]).typ, (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T351_ - ((NI) 1))]).info);
							(*(*tmpX60gensym334_)._kind_4.sym).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 45)) & 63);
							{
								NI T354_;
								NIM_BOOL T355_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T358_;
								NI T359_;
								NI T360_;
								T354_ = (NI)0;
								T354_ = len_ast_3197(itX60gensym198__3);
								T355_ = (NIM_BOOL)0;
								T355_ = hasDestructor_injectdestructors_49((&(*c)), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T354_ - ((NI) 1))]).typ);
								if (!T355_) goto LA356_;
								T358_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T358_ = genDestroy_injectdestructors_6527(c, tmpX60gensym334_);
								unsureAsgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*branchScopeX60gensym198__2.parent).final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
								T359_ = (*branchScopeX60gensym198__2.parent).final->Sup.len++;
								asgnRef((void**) (&(*branchScopeX60gensym198__2.parent).final->data[T359_]), T358_);
								T360_ = (NI)0;
								T360_ = len_ast_3197(itX60gensym198__3);
								cpyX60gensym334_ = moveOrCopy_injectdestructors_110(tmpX60gensym334_, (*itX60gensym198__3)._kind_6.sons->data[(NI)(T360_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), NIM_TRUE);
							}
							goto LA352_;
							LA356_: ;
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T362_;
								NI T363_;
								nimZeroMem((void*)T362_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T362_[0] = tmpX60gensym334_;
								T363_ = (NI)0;
								T363_ = len_ast_3197(itX60gensym198__3);
								T362_[1] = p_injectdestructors_105((*itX60gensym198__3)._kind_6.sons->data[(NI)(T363_ - ((NI) 1))], c, (&branchScopeX60gensym198__2), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								cpyX60gensym334_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T362_, 2);
							}
							LA352_: ;
							{
								NI T366_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSectionX60gensym334_;
								NI T369_;
								T366_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
								if (!(((NI) 0) < T366_)) goto LA367_;
								T369_ = (NI)0;
								T369_ = len_ast_3197(itX60gensym198__3);
								varSectionX60gensym334_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T369_ - ((NI) 1))]).info);
								{
									tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** tmpX60gensym334__2;
									NI i_15;
									NI L_9;
									NI T371_;
									tmpX60gensym334__2 = (tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ**)0;
									i_15 = ((NI) 0);
									T371_ = (branchScopeX60gensym198__2.vars ? branchScopeX60gensym198__2.vars->Sup.len : 0);
									L_9 = T371_;
									{
										while (1) {
											tyArray__T6RKPw8xfAeNaoei9aZGzXg T374_;
											NI T375_;
											NI T376_;
											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T377_;
											if (!(i_15 < L_9)) goto LA373;
											tmpX60gensym334__2 = &branchScopeX60gensym198__2.vars->data[i_15];
											nimZeroMem((void*)T374_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
											T374_[0] = newSymNode_ast_3715((*tmpX60gensym334__2));
											T375_ = (NI)0;
											T375_ = len_ast_3197(itX60gensym198__3);
											T374_[1] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T375_ - ((NI) 1))]).info);
											T376_ = (NI)0;
											T376_ = len_ast_3197(itX60gensym198__3);
											T374_[2] = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T376_ - ((NI) 1))]).info);
											T377_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
											T377_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35), T374_, 3);
											add_ast_4796(varSectionX60gensym334_, T377_);
											i_15 += ((NI) 1);
										} LA373: ;
									}
								}
								add_ast_4796(resultX60gensym334_, varSectionX60gensym334_);
							}
							LA367_: ;
							T378_ = (NI)0;
							T378_ = len_ast_3197(itX60gensym198__3);
							finSectionX60gensym334_ = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*itX60gensym198__3)._kind_6.sons->data[(NI)(T378_ - ((NI) 1))]).info);
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** mX60gensym334_;
								NI i_16;
								NI L_10;
								NI T380_;
								mX60gensym334_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
								i_16 = ((NI) 0);
								T380_ = (branchScopeX60gensym198__2.wasMoved ? branchScopeX60gensym198__2.wasMoved->Sup.len : 0);
								L_10 = T380_;
								{
									while (1) {
										if (!(i_16 < L_10)) goto LA382;
										mX60gensym334_ = &branchScopeX60gensym198__2.wasMoved->data[i_16];
										add_ast_4796(finSectionX60gensym334_, (*mX60gensym334_));
										i_16 += ((NI) 1);
									} LA382: ;
								}
							}
							{
								NI iX60gensym334_;
								NI colontmp__11;
								NI T384_;
								NI res_5;
								iX60gensym334_ = (NI)0;
								colontmp__11 = (NI)0;
								T384_ = ((branchScopeX60gensym198__2.final ? branchScopeX60gensym198__2.final->Sup.len : 0)-1);
								colontmp__11 = T384_;
								res_5 = colontmp__11;
								{
									while (1) {
										if (!(((NI) 0) <= res_5)) goto LA386;
										iX60gensym334_ = res_5;
										add_ast_4796(finSectionX60gensym334_, branchScopeX60gensym198__2.final->data[iX60gensym334_]);
										res_5 -= ((NI) 1);
									} LA386: ;
								}
							}
							{
								tyArray__AB6yfoUgfWM2NtGe9bzkCmw T391_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T392_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T393_;
								if (!branchScopeX60gensym198__2.needsTry) goto LA389_;
								nimZeroMem((void*)T391_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
								T391_[0] = cpyX60gensym334_;
								T391_[1] = p_injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								T392_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T392_ = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), T391_, 2);
								T393_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T393_ = newTryFinally_lowerings_202(T392_, finSectionX60gensym334_);
								add_ast_4796(resultX60gensym334_, T393_);
							}
							goto LA387_;
							LA389_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T395_;
								add_ast_4796(resultX60gensym334_, cpyX60gensym334_);
								add_ast_4796(resultX60gensym334_, finSectionX60gensym334_);
								T395_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T395_ = p_injectdestructors_105(tmpX60gensym334_, c, branchScopeX60gensym198__2.parent, mode);
								add_ast_4796(resultX60gensym334_, T395_);
							}
							LA387_: ;
							{
								NIM_BOOL T400_;
								if (!!((branchScopeX60gensym198__2.parent == ((tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ*) NIM_NIL)))) goto LA398_;
								T400_ = (NIM_BOOL)0;
								T400_ = (*branchScopeX60gensym198__2.parent).needsTry;
								if (T400_) goto LA401_;
								T400_ = branchScopeX60gensym198__2.needsTry;
								LA401_: ;
								(*branchScopeX60gensym198__2.parent).needsTry = T400_;
							}
							LA398_: ;
							asgnRef((void**) (&(*branchX60gensym198__3)._kind_6.sons->data[(NI)(T322_ - ((NI) 1))]), resultX60gensym334_);
						}
						LA323_: ;
						add_ast_4796(result, branchX60gensym198__3);
						i_14 += ((NI) 1);
					} LA321: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
		{
			result = copyTree_ast_4430(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__pmb6LsSxUZ6qSC8tbiupXw) 2))) goto LA405_;
		{
			NIM_BOOL T409_;
			T409_ = (NIM_BOOL)0;
			T409_ = containsConstSeq_injectdestructors_6860(n);
			if (!T409_) goto LA410_;
			result = passCopyToSink_injectdestructors_6805(n, c, s);
		}
		goto LA407_;
		LA410_: ;
		{
			if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160))) goto LA413_;
			result = p_injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
		}
		goto LA407_;
		LA413_: ;
		{
			NIM_BOOL T416_;
			NIM_BOOL T417_;
			NIM_BOOL T418_;
			NIM_BOOL T419_;
			NIM_BOOL T424_;
			T416_ = (NIM_BOOL)0;
			T417_ = (NIM_BOOL)0;
			T418_ = (NIM_BOOL)0;
			T419_ = (NIM_BOOL)0;
			T419_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T419_)) goto LA420_;
			T419_ = isSinkParam_ast_5029((*n)._kind_4.sym);
			LA420_: ;
			T418_ = T419_;
			if (T418_) goto LA421_;
			T418_ = isAnalysableFieldAccess_dfa_903(n, (*c).owner);
			LA421_: ;
			T417_ = T418_;
			if (!(T417_)) goto LA422_;
			T417_ = isLastRead_injectdestructors_6103(n, c);
			LA422_: ;
			T416_ = T417_;
			if (!(T416_)) goto LA423_;
			T424_ = (NIM_BOOL)0;
			T424_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
			if (!(T424_)) goto LA425_;
			T424_ = isCursor_injectdestructors_6369(n);
			LA425_: ;
			T416_ = !(T424_);
			LA423_: ;
			if (!T416_) goto LA426_;
			result = destructiveMoveVar_injectdestructors_6760(n, c, s);
		}
		goto LA407_;
		LA426_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60))) goto LA429_;
			result = copyTree_ast_4430(n);
			{
				NIM_BOOL T433_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T434_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T436_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* nTyp;
				T433_ = (NIM_BOOL)0;
				T434_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
				T434_ = skipTypes_ast_3734((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43);
				T433_ = !(((*T434_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T433_)) goto LA435_;
				T436_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
				T436_ = skipTypes_ast_3734((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43);
				T433_ = ((*T436_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA435_: ;
				if (!T433_) goto LA437_;
				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__pmb6LsSxUZ6qSC8tbiupXw) 2)));
				asgnRef((void**) (&(*(*result)._kind_6.sons->data[((NI) 1)]).typ), nTyp);
			}
			goto LA431_;
			LA437_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
			}
			LA431_: ;
		}
		goto LA407_;
		LA429_: ;
		{
			if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67))) goto LA441_;
			result = copyTree_ast_4430(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
		}
		goto LA407_;
		LA441_: ;
		{
			if (!((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA444_;
			result = p_injectdestructors_105(n, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
		}
		goto LA407_;
		LA444_: ;
		{
			result = passCopyToSink_injectdestructors_6805(n, c, s);
		}
		LA407_: ;
	}
	goto LA1_;
	LA405_: ;
	{
		switch ((*n).kind) {
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
		{
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA451_;
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA449_;
			LA451_: ;
			{
				m = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA449_: ;
			result = copyTree_ast_4430(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__G4E4Gxe7oI2Cm03rkiOzQw) 155));
				colontmp__13 = len_ast_3197(n);
				i_18 = colontmp__12;
				{
					while (1) {
						if (!(i_18 < colontmp__13)) goto LA456;
						i_17 = i_18;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA459_;
							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 LA457_;
						LA459_: ;
						{
							if (!((*(*n)._kind_6.sons->data[i_17]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44))) goto LA462_;
							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 LA457_;
						LA462_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_17]), p_injectdestructors_105((*n)._kind_6.sons->data[i_17], c, s, m));
						}
						LA457_: ;
						i_18 += ((NI) 1);
					} LA456: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
		{
			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
			NIM_BOOL isRefConstr;
			tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw m_2;
			t = skipTypes_ast_3734((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_38);
			isRefConstr = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22));
			{
				if (!isRefConstr) goto LA468_;
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			goto LA466_;
			LA468_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA471_;
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0);
			}
			goto LA466_;
			LA471_: ;
			{
				m_2 = ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2);
			}
			LA466_: ;
			result = copyTree_ast_4430(n);
			{
				NI i_19;
				NI colontmp__14;
				NI i_20;
				i_19 = (NI)0;
				colontmp__14 = (NI)0;
				colontmp__14 = len_ast_3197(n);
				i_20 = ((NI) 1);
				{
					while (1) {
						if (!(i_20 < colontmp__14)) goto LA476;
						i_19 = i_20;
						{
							tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field;
							if (!((*(*n)._kind_6.sons->data[i_19]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34))) goto LA479_;
							field = lookupFieldAgain_types_4050(t, (*(*(*n)._kind_6.sons->data[i_19])._kind_6.sons->data[((NI) 0)])._kind_4.sym);
							{
								NIM_BOOL T483_;
								T483_ = (NIM_BOOL)0;
								T483_ = !((field == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
								if (!(T483_)) goto LA484_;
								T483_ = (((*field).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
								LA484_: ;
								if (!T483_) goto LA485_;
								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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
							}
							goto LA481_;
							LA485_: ;
							{
								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));
							}
							LA481_: ;
						}
						goto LA477_;
						LA479_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_19]), p_injectdestructors_105((*n)._kind_6.sons->data[i_19], c, s, m_2));
						}
						LA477_: ;
						i_20 += ((NI) 1);
					} LA476: ;
				}
			}
			{
				NIM_BOOL T491_;
				T491_ = (NIM_BOOL)0;
				T491_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
				if (!(T491_)) goto LA492_;
				T491_ = isRefConstr;
				LA492_: ;
				if (!T491_) goto LA493_;
				result = ensureDestruction_injectdestructors_6885(result, n, c, s);
			}
			LA493_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
		{
			NI inSpawn;
			tyObject_TType__facALICuu8zUj0hjvbTLFg* parameters;
			NI L_11;
			inSpawn = (*c).inSpawn;
			{
				NIM_BOOL T498_;
				T498_ = (NIM_BOOL)0;
				T498_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T498_)) goto LA499_;
				T498_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 197));
				LA499_: ;
				if (!T498_) goto LA500_;
				(*c).inSpawn += ((NI) 1);
			}
			goto LA496_;
			LA500_: ;
			{
				if (!(((NI) 0) < (*c).inSpawn)) goto LA503_;
				(*c).inSpawn -= ((NI) 1);
			}
			goto LA496_;
			LA503_: ;
			LA496_: ;
			parameters = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
			{
				if (!!((parameters == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA507_;
				L_11 = len_ast_4001(parameters);
			}
			goto LA505_;
			LA507_: ;
			{
				L_11 = ((NI) 0);
			}
			LA505_: ;
			result = shallowCopy_ast_4412(n);
			{
				NI i_21;
				NI colontmp__15;
				NI i_22;
				i_21 = (NI)0;
				colontmp__15 = (NI)0;
				colontmp__15 = len_ast_3197(n);
				i_22 = ((NI) 1);
				{
					while (1) {
						if (!(i_22 < colontmp__15)) goto LA512;
						i_21 = i_22;
						{
							NIM_BOOL T515_;
							T515_ = (NIM_BOOL)0;
							T515_ = (i_21 < L_11);
							if (!(T515_)) goto LA516_;
							T515_ = isCompileTimeOnly_types_3516((*parameters).sons->data[i_21]);
							LA516_: ;
							if (!T515_) goto LA517_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), (*n)._kind_6.sons->data[i_21]);
						}
						goto LA513_;
						LA517_: ;
						{
							NIM_BOOL T520_;
							NIM_BOOL T522_;
							T520_ = (NIM_BOOL)0;
							T520_ = (i_21 < L_11);
							if (!(T520_)) goto LA521_;
							T522_ = (NIM_BOOL)0;
							T522_ = isSinkTypeForParam_types_4043((*parameters).sons->data[i_21]);
							if (T522_) goto LA523_;
							T522_ = (((NI) 0) < inSpawn);
							LA523_: ;
							T520_ = T522_;
							LA521_: ;
							if (!T520_) goto LA524_;
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p_injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2)));
						}
						goto LA513_;
						LA524_: ;
						{
							asgnRef((void**) (&(*result)._kind_6.sons->data[i_21]), p_injectdestructors_105((*n)._kind_6.sons->data[i_21], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						}
						LA513_: ;
						i_22 += ((NI) 1);
					} LA512: ;
				}
			}
			{
				NIM_BOOL T529_;
				T529_ = (NIM_BOOL)0;
				T529_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T529_)) goto LA530_;
				T529_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33));
				LA530_: ;
				if (!T529_) goto LA531_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyTree_ast_4430((*n)._kind_6.sons->data[((NI) 0)]));
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* destroyOld;
					tyArray__AB6yfoUgfWM2NtGe9bzkCmw T537_;
					if (!((176 &((NU16)1<<((NU)((*(*(*c).graph).config).selectedGC)&15U)))!=0)) goto LA535_;
					destroyOld = genDestroy_injectdestructors_6527(c, (*result)._kind_6.sons->data[((NI) 1)]);
					nimZeroMem((void*)T537_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
					T537_[0] = destroyOld;
					T537_[1] = result;
					result = newTree_ast_3391(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T537_, 2);
				}
				LA535_: ;
			}
			goto LA527_;
			LA531_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			LA527_: ;
			{
				NIM_BOOL T541_;
				T541_ = (NIM_BOOL)0;
				T541_ = canRaise_ast_5087((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T541_) goto LA542_;
				(*s).needsTry = NIM_TRUE;
			}
			LA542_: ;
			{
				if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA546_;
				result = ensureDestruction_injectdestructors_6885(result, n, c, s);
			}
			LA546_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
		{
			result = shallowCopy_ast_4412(n);
			{
				if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA551_;
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			}
			goto LA549_;
			LA551_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), copyNode_ast_4335((*n)._kind_6.sons->data[((NI) 0)]));
			}
			LA549_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
		{
			result = newNodeI_ast_3355(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				it = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				{
					NI i_23;
					NI colontmp__16;
					NI i_24;
					i_23 = (NI)0;
					colontmp__16 = (NI)0;
					colontmp__16 = safeLen_ast_3190(n);
					i_24 = ((NI) 0);
					{
						while (1) {
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri;
							NI T559_;
							if (!(i_24 < colontmp__16)) goto LA558;
							i_23 = i_24;
							it = (*n)._kind_6.sons->data[i_23];
							T559_ = (NI)0;
							T559_ = len_ast_3197(it);
							ri = (*it)._kind_6.sons->data[(NI)(T559_ - ((NI) 1))];
							{
								NIM_BOOL T562_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T566_;
								T562_ = (NIM_BOOL)0;
								T562_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36));
								if (!(T562_)) goto LA563_;
								T562_ = hasDestructor_injectdestructors_49((&(*c)), (*ri).typ);
								LA563_: ;
								if (!T562_) goto LA564_;
								x = lowerTupleUnpacking_lowerings_116((*c).graph, it, (*c).idgen, (*c).owner);
								T566_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T566_ = p_injectdestructors_105(x, c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
								add_ast_4796(result, T566_);
							}
							goto LA560_;
							LA564_: ;
							{
								NIM_BOOL T568_;
								T568_ = (NIM_BOOL)0;
								T568_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35));
								if (!(T568_)) goto LA569_;
								T568_ = hasDestructor_injectdestructors_49((&(*c)), (*(*it)._kind_6.sons->data[((NI) 0)]).typ);
								LA569_: ;
								if (!T568_) goto LA570_;
								{
									NI j;
									NI colontmp__17;
									NI T573_;
									NI i_25;
									j = (NI)0;
									colontmp__17 = (NI)0;
									T573_ = (NI)0;
									T573_ = len_ast_3197(it);
									colontmp__17 = (NI)(T573_ - ((NI) 2));
									i_25 = ((NI) 0);
									{
										while (1) {
											if (!(i_25 < colontmp__17)) goto LA575;
											j = i_25;
											{
												tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
												v = (*it)._kind_6.sons->data[j];
												{
													if (!((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA579_;
													{
														if (!(((*(*v)._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 28))&63U)))!=0)) goto LA583_;
														goto LA576;
													}
													LA583_: ;
													pVarTopLevel_injectdestructors_6967(v, c, s, result);
												}
												LA579_: ;
												{
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T589_;
													if (!!(((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA587_;
													T589_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
													T589_ = moveOrCopy_injectdestructors_110(v, ri, c, s, ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
													add_ast_4796(result, T589_);
												}
												goto LA585_;
												LA587_: ;
												{
													NIM_BOOL T591_;
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T595_;
													tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T596_;
													T591_ = (NIM_BOOL)0;
													T591_ = ((*ri).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
													if (!(T591_)) goto LA592_;
													T591_ = (((NI) 0) < (*c).inLoop);
													LA592_: ;
													if (!T591_) goto LA593_;
													T595_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
													T595_ = genDefaultCall_injectdestructors_6751((*v).typ, (&(*c)), (*v).info);
													T596_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
													T596_ = moveOrCopy_injectdestructors_110(v, T595_, c, s, ((*v).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3)));
													add_ast_4796(result, T596_);
												}
												goto LA585_;
												LA593_: ;
												LA585_: ;
											} LA576: ;
											i_25 += ((NI) 1);
										} LA575: ;
									}
								}
							}
							goto LA560_;
							LA570_: ;
							{
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v_2;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* itCopy;
								NI T602_;
								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T603_;
								v_2 = copyNode_ast_4335(n);
								itCopy = copyNode_ast_4335(it);
								{
									NI j_2;
									NI colontmp__18;
									NI T599_;
									NI i_26;
									j_2 = (NI)0;
									colontmp__18 = (NI)0;
									T599_ = (NI)0;
									T599_ = len_ast_3197(it);
									colontmp__18 = (NI)(T599_ - ((NI) 1));
									i_26 = ((NI) 0);
									{
										while (1) {
											if (!(i_26 < colontmp__18)) goto LA601;
											j_2 = i_26;
											add_ast_4796(itCopy, (*it)._kind_6.sons->data[j_2]);
											i_26 += ((NI) 1);
										} LA601: ;
									}
								}
								T602_ = (NI)0;
								T602_ = len_ast_3197(it);
								T603_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
								T603_ = p_injectdestructors_105((*it)._kind_6.sons->data[(NI)(T602_ - ((NI) 1))], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
								add_ast_4796(itCopy, T603_);
								add_ast_4796(v_2, itCopy);
								add_ast_4796(result, v_2);
							}
							LA560_: ;
							i_24 += ((NI) 1);
						} LA558: ;
					}
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
		{
			{
				NIM_BOOL T607_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T615_;
				T607_ = (NIM_BOOL)0;
				T607_ = hasDestructor_injectdestructors_49((&(*c)), (*(*n)._kind_6.sons->data[((NI) 0)]).typ);
				if (!(T607_)) goto LA608_;
				T607_ = !(((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51)));
				LA608_: ;
				if (!T607_) goto LA609_;
				{
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46))) goto LA613_;
					cycleCheck_injectdestructors_6908(n, c);
				}
				LA613_: ;
				T615_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T615_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				result = moveOrCopy_injectdestructors_110(T615_, (*n)._kind_6.sons->data[((NI) 1)], c, s, NIM_FALSE);
			}
			goto LA605_;
			LA609_: ;
			{
				NIM_BOOL T617_;
				T617_ = (NIM_BOOL)0;
				T617_ = isDiscriminantField_astalgo_4335((*n)._kind_6.sons->data[((NI) 0)]);
				if (!T617_) goto LA618_;
				result = genDiscriminantAsgn_injectdestructors_6668(c, s, n);
			}
			goto LA605_;
			LA618_: ;
			{
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T621_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T622_;
				result = copyNode_ast_4335(n);
				T621_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T621_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, mode);
				add_ast_4796(result, T621_);
				T622_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
				T622_ = p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 1));
				add_ast_4796(result, T622_);
			}
			LA605_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
		{
			result = pRaiseStmt_injectdestructors_7126(n, c, s);
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
		{
			internalErrorImpl_msgs_1431((*(*c).graph).config, (*n).info, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_51), TM__dJ4qrEWDmqGA8FWJ0TYKJQ_52);
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 80):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 82):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 101):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 102):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 121):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 116):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 118):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 158):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 132):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122):
		{
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
		{
			result = shallowCopy_ast_4412(n);
			{
				NI i_27;
				NI colontmp__19;
				NI i_28;
				i_27 = (NI)0;
				colontmp__19 = (NI)0;
				colontmp__19 = len_ast_3197(n);
				i_28 = ((NI) 0);
				{
					while (1) {
						if (!(i_28 < colontmp__19)) goto LA629;
						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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_28 += ((NI) 1);
					} LA629: ;
				}
			}
			{
				NIM_BOOL T632_;
				T632_ = (NIM_BOOL)0;
				T632_ = !(((*n).typ == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
				if (!(T632_)) goto LA633_;
				T632_ = hasDestructor_injectdestructors_49((&(*c)), (*n).typ);
				LA633_: ;
				if (!T632_) goto LA634_;
				{
					if (!(mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0))) goto LA638_;
					result = ensureDestruction_injectdestructors_6885(result, n, c, s);
				}
				LA638_: ;
			}
			LA634_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
		{
			result = copyTree_ast_4430(n);
			{
				NIM_BOOL T643_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T644_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T646_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* nTyp_2;
				T643_ = (NIM_BOOL)0;
				T644_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
				T644_ = skipTypes_ast_3734((*n).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43);
				T643_ = !(((*T644_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45)));
				if (!(T643_)) goto LA645_;
				T646_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
				T646_ = skipTypes_ast_3734((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_43);
				T643_ = ((*T646_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA645_: ;
				if (!T643_) goto LA647_;
				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 LA641_;
			LA647_: ;
			{
				asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 1)], c, s, mode));
			}
			LA641_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
		{
			result = copyTree_ast_4430(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__G4E4Gxe7oI2Cm03rkiOzQw) 45):
		{
			result = shallowCopy_ast_4412(n);
			asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), p_injectdestructors_105((*n)._kind_6.sons->data[((NI) 0)], c, s, ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0)));
			{
				NI i_29;
				NI colontmp__20;
				NI i_30;
				i_29 = (NI)0;
				colontmp__20 = (NI)0;
				colontmp__20 = len_ast_3197(n);
				i_30 = ((NI) 1);
				{
					while (1) {
						if (!(i_30 < colontmp__20)) goto LA654;
						i_29 = i_30;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_29]), (*n)._kind_6.sons->data[i_29]);
						i_30 += ((NI) 1);
					} LA654: ;
				}
			}
			{
				NIM_BOOL T657_;
				T657_ = (NIM_BOOL)0;
				T657_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T657_)) goto LA658_;
				T657_ = hasDestructor_injectdestructors_49((&(*c)), (*n).typ);
				LA658_: ;
				if (!T657_) goto LA659_;
				{
					NIM_BOOL T663_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T667_;
					NI T668_;
					T663_ = (NIM_BOOL)0;
					T663_ = isAnalysableFieldAccess_dfa_903(n, (*c).owner);
					if (!(T663_)) goto LA664_;
					T663_ = isLastRead_injectdestructors_6103(n, c);
					LA664_: ;
					if (!T663_) goto LA665_;
					T667_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T667_ = genWasMoved_injectdestructors_6739(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T668_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T668_]), T667_);
				}
				goto LA661_;
				LA665_: ;
				{
					result = passCopyToSink_injectdestructors_6805(result, c, s);
				}
				LA661_: ;
			}
			LA659_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
		{
			result = shallowCopy_ast_4412(n);
			{
				NI i_31;
				NI colontmp__21;
				NI i_32;
				i_31 = (NI)0;
				colontmp__21 = (NI)0;
				colontmp__21 = len_ast_3197(n);
				i_32 = ((NI) 0);
				{
					while (1) {
						if (!(i_32 < colontmp__21)) goto LA673;
						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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_32 += ((NI) 1);
					} LA673: ;
				}
			}
			{
				NIM_BOOL T676_;
				T676_ = (NIM_BOOL)0;
				T676_ = (mode == ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 2));
				if (!(T676_)) goto LA677_;
				T676_ = hasDestructor_injectdestructors_49((&(*c)), (*n).typ);
				LA677_: ;
				if (!T676_) goto LA678_;
				{
					NIM_BOOL T682_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T686_;
					NI T687_;
					T682_ = (NIM_BOOL)0;
					T682_ = isAnalysableFieldAccess_dfa_903(n, (*c).owner);
					if (!(T682_)) goto LA683_;
					T682_ = isLastRead_injectdestructors_6103(n, c);
					LA683_: ;
					if (!T682_) goto LA684_;
					T686_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T686_ = genWasMoved_injectdestructors_6739(c, n);
					unsureAsgnRef((void**) (&(*s).wasMoved), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*s).wasMoved), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
					T687_ = (*s).wasMoved->Sup.len++;
					asgnRef((void**) (&(*s).wasMoved->data[T687_]), T686_);
				}
				goto LA680_;
				LA684_: ;
				{
					result = passCopyToSink_injectdestructors_6805(result, c, s);
				}
				LA680_: ;
			}
			LA678_: ;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
		{
			result = shallowCopy_ast_4412(n);
			{
				NI i_33;
				NI colontmp__22;
				NI i_34;
				i_33 = (NI)0;
				colontmp__22 = (NI)0;
				colontmp__22 = len_ast_3197(n);
				i_34 = ((NI) 0);
				{
					while (1) {
						if (!(i_34 < colontmp__22)) goto LA692;
						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__pmb6LsSxUZ6qSC8tbiupXw) 0)));
						i_34 += ((NI) 1);
					} LA692: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
		{
			(*s).needsTry = NIM_TRUE;
			result = n;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
		{
			result = shallowCopy_ast_4412(n);
			{
				NI i_35;
				NI colontmp__23;
				NI i_36;
				i_35 = (NI)0;
				colontmp__23 = (NI)0;
				colontmp__23 = len_ast_3197(n);
				i_36 = ((NI) 0);
				{
					while (1) {
						if (!(i_36 < colontmp__23)) goto LA697;
						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);
					} LA697: ;
				}
			}
			(*s).needsTry = NIM_TRUE;
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
		{
			result = shallowCopy_ast_4412(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__G4E4Gxe7oI2Cm03rkiOzQw) 46):
		{
			result = shallowCopy_ast_4412(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_3197(n);
				i_38 = ((NI) 1);
				{
					while (1) {
						if (!(i_38 < colontmp__24)) goto LA702;
						i_37 = i_38;
						asgnRef((void**) (&(*result)._kind_6.sons->data[i_37]), (*n)._kind_6.sons->data[i_37]);
						i_38 += ((NI) 1);
					} LA702: ;
				}
			}
		}
		break;
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157):
		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 89):
		{
			result = n;
		}
		break;
		default:
		{
			NimStringDesc* T705_;
			T705_ = (NimStringDesc*)0;
			T705_ = rawNewString((reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 40);
appendString(T705_, ((NimStringDesc*) &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_53));
appendString(T705_, reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
			internalErrorImpl_msgs_1431((*(*c).graph).config, (*n).info, T705_, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_54);
		}
		break;
		}
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, injectDestructorCalls_injectdestructors_10100)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	tyObject_Con__mVYRtnERc9advo79cBQUudxg c;
	tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ scope;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
{	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	{
		NIM_BOOL T3_;
		NIM_BOOL T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((*owner).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39))&63U)))!=0);
		if (T3_) goto LA4_;
		T5_ = (NIM_BOOL)0;
		T5_ = ((*owner).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 15));
		if (!(T5_)) goto LA6_;
		T5_ = isInlineIterator_ast_4988((*owner).typ);
		LA6_: ;
		T3_ = T5_;
		LA4_: ;
		if (!T3_) goto LA7_;
		result = n;
		goto BeforeRet_;
	}
	LA7_: ;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__mVYRtnERc9advo79cBQUudxg));
	c.owner = owner;
	c.graph = g;
	c.g = constructCfg_dfa_1135(owner, n);
	c.idgen = idgen;
	{
		if (!(((*(*g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 26))&31U)))!=0)) goto LA11_;
		computeCursors_varpartitions_1790(owner, n, g);
	}
	LA11_: ;
	computeLastReadsAndFirstWrites_injectdestructors_3780(c.g);
	nimZeroMem((void*)(&scope), sizeof(tyObject_Scope__LvAmxELeDMx7GsrdWf8RqQ));
	body = p_injectdestructors_105(n, (&c), (&scope), ((tyEnum_ProcessMode__pmb6LsSxUZ6qSC8tbiupXw) 0));
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* 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_3197(params);
			i_2 = ((NI) 1);
			{
				while (1) {
					tyObject_TType__facALICuu8zUj0hjvbTLFg* 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__facALICuu8zUj0hjvbTLFg* T24_;
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
						NI T28_;
						T22_ = (NIM_BOOL)0;
						T22_ = isSinkTypeForParam_types_4043(t);
						if (!(T22_)) goto LA23_;
						T24_ = (tyObject_TType__facALICuu8zUj0hjvbTLFg*)0;
						T24_ = skipTypes_ast_3734(t, TM__dJ4qrEWDmqGA8FWJ0TYKJQ_55);
						T22_ = hasDestructor_injectdestructors_49((&c), T24_);
						LA23_: ;
						if (!T22_) goto LA25_;
						T27_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
						T27_ = genDestroy_injectdestructors_6527((&c), (*params)._kind_6.sons->data[i]);
						scope.final = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(scope.final), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
						T28_ = scope.final->Sup.len++;
						asgnRef((void**) (&scope.final->data[T28_]), T27_);
					}
					LA25_: ;
					i_2 += ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA15_: ;
	T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	T29_ = processScope_injectdestructors_7016((&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__dJ4qrEWDmqGA8FWJ0TYKJQ_56));
		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__dJ4qrEWDmqGA8FWJ0TYKJQ_57, 1);
	}
	LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_injectdestructorsDatInit000)(void) {
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[3];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[4];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[2];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[2];
static TNimNode* TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12_3[3];
static TNimNode TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[19];
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.size = sizeof(tyTuple__YXXBMUJBtW9corlxevWVfYQ);
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.align = NIM_ALIGNOF(tyTuple__YXXBMUJBtW9corlxevWVfYQ);
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.kind = 18;
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[1].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].typ = (&NTItupleLa58pnode_b58pnodeT__EFqgCXJ4d8PgqOdFJmldsQ_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[2].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].offset = offsetof(tyTuple__YXXBMUJBtW9corlxevWVfYQ, Field2);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].typ = (&NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[3].name = "Field2";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].len = 3; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_2_3[0];
NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[0];
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.size = sizeof(tySequence__sh9b9afdJBB3bJbViXY7yNAg*);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.align = NIM_ALIGNOF(tySequence__sh9b9afdJBB3bJbViXY7yNAg*);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.kind = 24;
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.base = (&NTIkeyvaluepair__YXXBMUJBtW9corlxevWVfYQ_);
NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_.marker = Marker_tySequence__sh9b9afdJBB3bJbViXY7yNAg;
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.size = sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw);
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw);
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.kind = 18;
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, lastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[5].name = "lastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, potentialLastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[6].name = "potentialLastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, notLastReads);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].typ = (&NTIpackedset__IhxwDBRi51nGrosBGFKcsA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[7].name = "notLastReads";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[3] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8];
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.size = sizeof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ);
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.align = NIM_ALIGNOF(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ);
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.kind = 18;
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10];
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.size = sizeof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w);
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.align = NIM_ALIGNOF(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w);
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.kind = 18;
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].offset = offsetof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[12].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].offset = offsetof(tyTuple__TeyVVRby9bj1JQeNMm9aeI2w, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[13].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].len = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_5_2[0];
NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[11];
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.size = sizeof(tySequence__Y6pVop4P8VSwSorRqc2aQA*);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.align = NIM_ALIGNOF(tySequence__Y6pVop4P8VSwSorRqc2aQA*);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.kind = 24;
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.base = (&NTIkeyvaluepair__TeyVVRby9bj1JQeNMm9aeI2w_);
NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_.marker = Marker_tySequence__Y6pVop4P8VSwSorRqc2aQA;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].offset = offsetof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ, data);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].typ = (&NTIkeyvaluepairseq__Y6pVop4P8VSwSorRqc2aQA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[10].name = "data";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].offset = offsetof(tyObject_HashSet__YByQS2i9cOlUupxNMscAMwQ, counter);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[14].name = "counter";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].len = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_4_2[0];
NTIhashset__YByQS2i9cOlUupxNMscAMwQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[9];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].offset = offsetof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw, alreadySeen);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].typ = (&NTIhashset__YByQS2i9cOlUupxNMscAMwQ_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[8].name = "alreadySeen";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].len = 4; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_3_4[0];
NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[4];
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.size = sizeof(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.align = NIM_ALIGNOF(tyObject_StatecolonObjectType___G9bbCRpuemWPWC66CPVRKyw*);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.kind = 22;
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.base = (&NTIstate58objecttype__G9bbCRpuemWPWC66CPVRKyw_);
NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_.marker = Marker_tyRef__xMu9aauGSW9bIwiWptXaXX0Q;
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.size = sizeof(tySequence__mFtVDW3p7w6wfPPNodKzsA*);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.align = NIM_ALIGNOF(tySequence__mFtVDW3p7w6wfPPNodKzsA*);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.kind = 24;
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.base = (&NTIstate__xMu9aauGSW9bIwiWptXaXX0Q_);
NTIseqLstateT__mFtVDW3p7w6wfPPNodKzsA_.marker = Marker_tySequence__mFtVDW3p7w6wfPPNodKzsA;
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.size = sizeof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ);
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.align = NIM_ALIGNOF(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ);
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.kind = 18;
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.base = 0;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12_3[0] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field0);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[16].name = "Field0";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12_3[1] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field1);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[17].name = "Field1";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12_3[2] = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18];
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].kind = 1;
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].offset = offsetof(tyTuple__jCPpzNasrXtz9cFJFxT1NHQ, Field2);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].typ = (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_);
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[18].name = "Field2";
TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].len = 3; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].kind = 2; TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15].sons = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_12_3[0];
NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_.node = &TM__dJ4qrEWDmqGA8FWJ0TYKJQ_0[15];
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.size = sizeof(tySequence__JGK6WZYU2JHWLoPdKRO4AQ*);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.align = NIM_ALIGNOF(tySequence__JGK6WZYU2JHWLoPdKRO4AQ*);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.kind = 24;
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.base = (&NTIkeyvaluepair__jCPpzNasrXtz9cFJFxT1NHQ_);
NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_.marker = Marker_tySequence__JGK6WZYU2JHWLoPdKRO4AQ;
}

