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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw;
typedef struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg;
typedef struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg;
typedef struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw tyObject_TSym__3r34mwqcVmg5JFNmiaVncw;
typedef struct tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA;
typedef struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw tySequence__IeU9azYSNIK3V9b36Ir6NZcw;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__RNhZxf20g9beyq5VBOGxhDg tySequence__RNhZxf20g9beyq5VBOGxhDg;
typedef struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ;
typedef struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ tySequence__lFbCtu5P2Kf7YDYtGjkxAQ;
typedef struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA;
typedef struct tySequence__ijtae5OneaLys0hN9alAicA tySequence__ijtae5OneaLys0hN9alAicA;
typedef struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w;
typedef struct tySequence__SerjNoUujW2dUouVBrJiCw tySequence__SerjNoUujW2dUouVBrJiCw;
typedef struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyObject_Table__r0v8BdcBPKhl73K8p2VMUA;
typedef struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g tySequence__K9agbtcb0qPZuSJFXB9cTe6g;
typedef struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg;
typedef struct tySequence__m88qdML9cQOuqGAQn6XWL1A tySequence__m88qdML9cQOuqGAQn6XWL1A;
typedef struct tyObject_Table__1hIWbTQWYT4BmhdESze57A tyObject_Table__1hIWbTQWYT4BmhdESze57A;
typedef struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ tySequence__naEbXEp9b9aiW1zXJorqf9cXQ;
typedef struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw tyObject_Table__9cHFtxtpgztIcDsypRz9byKw;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA;
typedef struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw;
typedef struct tySequence__ed0C0uAUZPhvw3RAc5hfYg tySequence__ed0C0uAUZPhvw3RAc5hfYg;
typedef struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw;
typedef struct tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg;
typedef struct tySequence__q9cq1Li6c1nMjHpacEbCj0g tySequence__q9cq1Li6c1nMjHpacEbCj0g;
typedef struct tyObject_Table__imojfg883tkWsWJwyshGqQ tyObject_Table__imojfg883tkWsWJwyshGqQ;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg tyObject_Table__BCPh85PHtwxox9bv7NLFrlg;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct RootObj RootObj;
typedef struct tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ;
typedef struct tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ;
typedef struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA;
typedef struct tySequence__KgiZ29chkJAD01p9aLRB32qw tySequence__KgiZ29chkJAD01p9aLRB32qw;
typedef struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A tyObject_Table__LM44poVdVEn4Mo4N4L8c3A;
typedef struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw tySequence__rkYRZrbHVYL3nhXlQW3K9bw;
typedef struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ tySequence__IRFEb1e9bxgbJLuB5xrdZsQ;
typedef struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA;
typedef struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ;
typedef struct tySequence__YmPd0eWfcTfrVYrthlXPYA tySequence__YmPd0eWfcTfrVYrthlXPYA;
typedef struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q;
typedef struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg tySequence__Hz5SYwQU29b9aFLt09blvVQPg;
typedef struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg tyObject_Table__R7JnJQEipxxOlJWXQz7jWg;
typedef struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ tySequence__3G9aA9cLXaPxuRxMKm3anacQ;
typedef struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q tySequence__bPFv6ypvvCX2A9a9al8utL2Q;
typedef struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw;
typedef struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg;
typedef struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg;
typedef struct tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg;
typedef struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw;
typedef struct tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ;
typedef struct tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tySequence__vKogasEnJSPhbQmA8r4Y9aA tySequence__vKogasEnJSPhbQmA8r4Y9aA;
typedef struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g;
typedef struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA tyObject_CellSeq__nav876ELHgxScHhs30CKiA;
typedef struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ;
typedef struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ;
typedef struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ;
typedef struct tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw;
typedef struct tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA;
typedef struct tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA;
typedef struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A;
typedef struct tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg;
typedef struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw;
typedef struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw;
typedef struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA;
typedef struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg;
typedef struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA;
typedef struct tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ;
typedef struct tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ;
typedef struct tySequence__cvxuM2UjDv0O3Q6FcDEAnw tySequence__cvxuM2UjDv0O3Q6FcDEAnw;
typedef struct tyTuple__2E9aYKv1U4zUZsR6wkNRkPg tyTuple__2E9aYKv1U4zUZsR6wkNRkPg;
typedef struct tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ;
typedef struct tyObject_Table__yPCZeDXS6qhcVroDuwem9cg tyObject_Table__yPCZeDXS6qhcVroDuwem9cg;
typedef struct tySequence__K9b6FRiPoaNJikAsXAA9c0Jg tySequence__K9b6FRiPoaNJikAsXAA9c0Jg;
typedef struct tyTuple__KhdZ2BpxsMCOVX377s89ayg tyTuple__KhdZ2BpxsMCOVX377s89ayg;
typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
typedef struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ tyTuple__Q066krdfdsSnR5DaFMOk9bQ;
typedef struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ;
typedef struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g tySequence__qeAsXh2i1GAL5Nl0g3OP8g;
typedef struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg;
typedef struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag;
typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
typedef struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg;
typedef struct tySequence__4Murtwnm0Fyc7F9acrytEXw tySequence__4Murtwnm0Fyc7F9acrytEXw;
typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
typedef struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw;
typedef struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg tySequence__QnmOtn1Iv4LvxOXoMn8Rbg;
typedef struct tySequence__oKtVqsc9bQVCNyrijELM4OQ tySequence__oKtVqsc9bQVCNyrijELM4OQ;
typedef struct tySequence__qy6Iwdy00wN560qud54HTg tySequence__qy6Iwdy00wN560qud54HTg;
typedef struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ tySequence__k67v9bwvvQDmS1ynyGGUbeQ;
typedef struct tySequence__cLsClAAfd0MKkoBQVyvdvw tySequence__cLsClAAfd0MKkoBQVyvdvw;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg tySequence__q9bTuOB0JXh1iZ3CSGdRLbg;
typedef struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw;
typedef struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ;
typedef struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw;
typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
typedef struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ;
typedef struct tySequence__C3r8jsj9chA4sIlYfDN5aDw tySequence__C3r8jsj9chA4sIlYfDN5aDw;
typedef struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ;
typedef struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg tyTuple__UluY8x0Nj6cp9b0o88wJ0lg;
typedef struct tySequence__dlD6tEGzYLLpKVq3XwuFlA tySequence__dlD6tEGzYLLpKVq3XwuFlA;
typedef struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ;
typedef struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg;
typedef struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ;
typedef struct tyTuple__rZZA0skon1OsHdiEvT8RZQ tyTuple__rZZA0skon1OsHdiEvT8RZQ;
typedef struct tySequence__6OFCSvqRaxyEgUqWtnZSlw tySequence__6OFCSvqRaxyEgUqWtnZSlw;
typedef struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q;
typedef struct tySequence__UnGSk9aaLosDroi2QDrlOfQ tySequence__UnGSk9aaLosDroi2QDrlOfQ;
typedef struct tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA;
typedef struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA tyTuple__q13Zt16VkCqu6Zg5jWqwHA;
typedef struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA tyTuple__aWN9bNzF9bubXNJV9ciomgpfA;
typedef struct tySequence__m4PVWjcAAjfxlwJxLkKn8A tySequence__m4PVWjcAAjfxlwJxLkKn8A;
typedef struct tyTuple__RWXAsQlFoGYyEQZp1G65sg tyTuple__RWXAsQlFoGYyEQZp1G65sg;
typedef struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg;
typedef struct tyTuple__RmGJuqOgEaHckHndh0LEsw tyTuple__RmGJuqOgEaHckHndh0LEsw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyTuple__J4cxakKjhKxTIJR9bojMmXw tyTuple__J4cxakKjhKxTIJR9bojMmXw;
typedef struct tySequence__i89c5kdtWKzK3OEiI81pkkw tySequence__i89c5kdtWKzK3OEiI81pkkw;
typedef struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A;
typedef struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ;
typedef struct tySequence__GR8qmV1kNRcoQ2g76VFy3A tySequence__GR8qmV1kNRcoQ2g76VFy3A;
typedef struct tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg;
typedef struct tyTuple__a7QginWFapakKbWJBJ2vfA tyTuple__a7QginWFapakKbWJBJ2vfA;
typedef struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyTuple__kbX6x85REySUrk9auORL0vw tyTuple__kbX6x85REySUrk9auORL0vw;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g;
typedef struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q;
typedef struct tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A;
typedef struct tyTuple__nF9cH4hinXgGEUwO4G2bshw tyTuple__nF9cH4hinXgGEUwO4G2bshw;
typedef struct tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw;
typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
typedef struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA;
typedef struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA;
typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
typedef struct tyTuple__PsEhl3dzznmmJiLAuIXZOg tyTuple__PsEhl3dzznmmJiLAuIXZOg;
typedef struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w;
typedef struct tyTuple__Db8CrQifKGIsKc3w71w7Lw tyTuple__Db8CrQifKGIsKc3w71w7Lw;
typedef struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg;
typedef struct tySequence__lo3S1lKyiPLhGGB9cBawd6A tySequence__lo3S1lKyiPLhGGB9cBawd6A;
typedef struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ;
typedef struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw tyTuple__FEYH9alRJhHD0uTKF2vnIqw;
typedef struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA;
typedef struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA;
typedef struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw;
typedef struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg tyTuple__VUJ5Hjm4tKAResBsRHJvYg;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
struct tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA {
tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* stateVarSym;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmpResultSym;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* unrollFinallySym;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* curExcSym;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* states;
NI blockLevel;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* stateLoopLabel;
NI exitStateIdx;
NI tempVarId;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tempVars;
tySequence__qwqHTkRvwhrRyENtudHQ7g* exceptionTable;
NIM_BOOL hasExceptions;
NI curExcHandlingState;
NI nearestFinally;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
struct tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA {
tySequence__ijtae5OneaLys0hN9alAicA* data;
NI counter;
};
struct tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w {
tySequence__SerjNoUujW2dUouVBrJiCw* data;
NI counter;
};
struct tyObject_Table__r0v8BdcBPKhl73K8p2VMUA {
tySequence__K9agbtcb0qPZuSJFXB9cTe6g* data;
NI counter;
};
typedef tyObject_Table__r0v8BdcBPKhl73K8p2VMUA tyArray__46hjIasL27aUz9c7kgtWooQ[5];
struct tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg {
tySequence__m88qdML9cQOuqGAQn6XWL1A* data;
NI counter;
};
struct tyObject_Table__1hIWbTQWYT4BmhdESze57A {
tySequence__naEbXEp9b9aiW1zXJorqf9cXQ* data;
NI counter;
};
struct tyObject_Table__9cHFtxtpgztIcDsypRz9byKw {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
typedef NU8 tyEnum_TBackend__zoooocqvga73vZuhGAAy6A;
typedef NU8 tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w;
typedef NU8 tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ;
typedef NU32 tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ;
typedef NU64 tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg;
struct tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA {
tyEnum_TBackend__zoooocqvga73vZuhGAAy6A backend;
tyEnum_TGCMode__yHeclYqeKaCEfMHNbcWn4w selectedGC;
tyEnum_TSystemCC__DqbWIQj9a2XvtXkztox3VFQ cCompiler;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
tySet_tyEnum_TGlobalOption__WCvlY9b2UxZ4Fz8D59cE3YSg globalOptions;
};
struct tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw {
NI counter;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* data;
};
typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
struct tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw {
NI elems;
NI counter;
NI max;
tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* head;
tySequence__q9cq1Li6c1nMjHpacEbCj0g* data;
tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
};
struct tyObject_Table__imojfg883tkWsWJwyshGqQ {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyObject_Table__BCPh85PHtwxox9bv7NLFrlg {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
void* ClE_0;
} tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
struct tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA {
tySequence__KgiZ29chkJAD01p9aLRB32qw* data;
NI counter;
};
struct tyObject_Table__LM44poVdVEn4Mo4N4L8c3A {
tySequence__rkYRZrbHVYL3nhXlQW3K9bw* data;
NI counter;
};
typedef tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg[65];
struct tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ {
tySequence__YmPd0eWfcTfrVYrthlXPYA* data;
NI counter;
};
struct tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, tyProc__I6rzVhdiYtUh7jwWJQoeyw) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__EQOAUyRkp9c3eeiGlHvCThA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* m, NI32 fileIdx);
struct tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q {
tySequence__Hz5SYwQU29b9aFLt09blvVQPg* data;
NI counter;
};
struct tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyObject_Table__R7JnJQEipxxOlJWXQz7jWg {
tySequence__3G9aA9cLXaPxuRxMKm3anacQ* data;
NI counter;
};
typedef N_NIMCALL_PTR(void, tyProc__1CO5eEh25fBKUWGagpikwg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
typedef N_NIMCALL_PTR(void, tyProc__VcUg5jOhttLagdxUmVN8Tg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__XOkru1xuh2bHzmkw1UYzLA) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* formal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* actual);
struct tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opNot;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opContains;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLe;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLt;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAnd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opOr;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opIsNil;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opEq;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opAdd;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opSub;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opMul;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opDiv;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* opLen;
};
struct tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg {
tySequence__RNhZxf20g9beyq5VBOGxhDg* ifaces;
tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ* packed_0;
tySequence__lFbCtu5P2Kf7YDYtGjkxAQ* encoders;
tyObject_Table__nODIJ5l6JnEl9a6LYuqISLA typeInstCache;
tyObject_Table__s3itmS9cUUFQ19alF7UA0T1w procInstCache;
tyArray__46hjIasL27aUz9c7kgtWooQ attachedOps;
tyObject_Table__KsPP7K7LW9aa3YAq1XN9cDZg methodsPerType;
tyObject_Table__1hIWbTQWYT4BmhdESze57A enumToStringProcs;
tyObject_Table__9cHFtxtpgztIcDsypRz9byKw emittedTypeInfo;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA startupPackedConfig;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw deps;
tyObject_Table__imojfg883tkWsWJwyshGqQ importDeps;
NIM_BOOL suggestMode;
NIM_BOOL invalidTransitiveClosure;
tyObject_Table__BCPh85PHtwxox9bv7NLFrlg inclToMod;
tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
RootObj* backend;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache;
RootObj* vm;
tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* usageSym;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* owners;
tyObject_Table__mLYbj79bHyPPDPv4GGJx9bqA suggestSymbols;
tyObject_Table__LM44poVdVEn4Mo4N4L8c3A suggestErrors;
tySequence__IRFEb1e9bxgbJLuB5xrdZsQ* methods;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* systemModule;
tyArray__9atk2qEPO7ASGmt9cDlOE9b9cg sysTypes;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw compilerprocs;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw exposed;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw packageTypes;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* emptyNode;
tyObject_Table__sEMwnZ9aATDhH19cNIt9bn9cyQ canonTypes;
tyObject_Table__WtPprFMQ6tkKi9bQSH3IVpw symBodyHashes;
tyProc__I6rzVhdiYtUh7jwWJQoeyw importModuleCallback;
tyProc__EQOAUyRkp9c3eeiGlHvCThA includeFileCallback;
tyObject_Table__9cOd7jTOg5Zc4i0IfnGho1Q cacheSeqs;
tyObject_Table__YnoEqrDMrd9cI9bBg8gj5H3g cacheCounters;
tyObject_Table__R7JnJQEipxxOlJWXQz7jWg cacheTables;
tySequence__bPFv6ypvvCX2A9a9al8utL2Q* passes;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinition;
tyProc__1CO5eEh25fBKUWGagpikwg onDefinitionResolveForward;
tyProc__1CO5eEh25fBKUWGagpikwg onUsage;
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* globalDestructors;
tyProc__VcUg5jOhttLagdxUmVN8Tg strongSemCheck;
tyProc__XOkru1xuh2bHzmkw1UYzLA compatibleProps;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
tyObject_Operators__dR4s9bCO53rZjV9a30JJfUOg operators;
};
typedef NU8 tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ;
typedef NU8 tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__pspQAsqJLrw3jEKBD9bxmyQ kind;
tySet_tyEnum_TNimTypeFlag__Yt5hq6z2IoHhKZrzIVrc1w flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA {
  RootObj Sup;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg itemId;
};
typedef NU8 tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw;
typedef NU16 tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag;
struct tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA;
typedef NU8 tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw;
typedef NU8 tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ;
typedef NU16 tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw;
struct tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw {
tyEnum_TLocKind__pD6N6rEUmrrqJbKE02Sezw k;
tyEnum_TStorageLoc__JIS9cieRcL9cZccyO9bM9aBmFQ storage;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* lode;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* r;
};
struct tyObject_TSym__3r34mwqcVmg5JFNmiaVncw {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
union{
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* gcUnsafetyReason;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* transformedBody;
} _kind_1;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ast;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TLib__W49cDqPTe2Tvc1mw7CVZOFg* annex;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* constraint;
};
struct tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg {
NI32 module;
NI32 symId;
NI32 typeId_0;
NIM_BOOL sealed;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg;
typedef NU8 tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg;
typedef NU64 tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw;
struct tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA {
  tyObject_TIdObj__1qw9bcK4rZXhGbJEJhkKQFA Sup;
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* sons;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__CAJV4zTUpZwr0j6Wy8FiFw loc;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typeInst;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg uniqueId;
};
struct tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ {
void* bottom;
};
struct tyObject_CellSeq__nav876ELHgxScHhs30CKiA {
NI len;
NI cap;
tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g** d;
};
typedef tyObject_SmallChunk__eUrTKmsk1Dqt5tm2WUT2Lw* tyArray__1eFxjkcKGHnofywkmCV8oQ[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* tyArray__KxTmKT9a3kTkdwYfqXhEYSw[32];
typedef tyArray__KxTmKT9a3kTkdwYfqXhEYSw tyArray__ATT5LBefmjy9bg8ApRmg3rw[24];
typedef tyObject_Trunk__Ju1AURWHenTn3cJwAjbUhg* tyArray__RxhBwkGQwTHLKhoK685Xfg[256];
struct tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A {
tyArray__RxhBwkGQwTHLKhoK685Xfg data;
};
typedef tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* tyArray__DrxDrI9bg9apB70ydOoNZrWw[2];
struct tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw {
tyArray__DrxDrI9bg9apB70ydOoNZrWw link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA {
tyObject_BigChunk__39bC3HTk2w4NGDjG74oNjmA* Field0;
NI Field1;
};
typedef tyTuple__p2vAp9cQ6YrpDq9cI3XzEDWA tyArray__wsokuoa9bVBSU4gPLKbFaaw[30];
struct tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw {
NI len;
tyArray__wsokuoa9bVBSU4gPLKbFaaw chunks;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw* next;
};
struct tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ {
NI minLargeObj;
NI maxLargeObj;
tyArray__1eFxjkcKGHnofywkmCV8oQ freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__ATT5LBefmjy9bg8ApRmg3rw matrix;
tyObject_LLChunk__Fjkr5Ya6Zl0UoUGxG047hA* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__WrQriiGmHk59cB1lNPtGo6A chunkStarts;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* root;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* deleted;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* last;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__aGkK1t9a0WoXjpugXR6FWpw bottomData;
tyObject_HeapLinks__5IkCDh5QlsYpsfEMJf6zNw heapLinks;
};
struct tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA {
NI counter;
NI max;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ* head;
tyObject_PageDesc__N7tjEodqPVJaQ6oKQW8YfQ** data;
};
struct tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ {
tyObject_GcStack__qFeGMKlnq6c9cTM2vPWycQQ stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA zct;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA decStack;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA tempStack;
NI recGcLock;
tyObject_MemRegion__6QRscFDo4mEwbg9aL76vDGQ region;
tyObject_GcStat__OG9ams3mtFJyICkjTOHbc9bg stat;
tyObject_CellSet__A0mJvGLunfUxGkLUtesjdA marked;
tyObject_CellSeq__nav876ELHgxScHhs30CKiA additionalRoots;
NI gcThreadId;
};
struct tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ {
tySequence__IeU9azYSNIK3V9b36Ir6NZcw* finallys;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tySequence__cvxuM2UjDv0O3Q6FcDEAnw* blocks;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
typedef NU32 tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg;
typedef NU8 tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw;
struct tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw {
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
} _kind_4;
struct {tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* ident;
} _kind_5;
struct {tySequence__IeU9azYSNIK3V9b36Ir6NZcw* sons;
} _kind_6;
};
};
typedef NU8 tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw;
struct TNimNode {
tyEnum_TNimNodeKind__rrp49bl1h9aEkXfXp9bNg0yZw kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyTuple__2E9aYKv1U4zUZsR6wkNRkPg {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
NI Field1;
};
struct tyObject_Table__yPCZeDXS6qhcVroDuwem9cg {
tySequence__K9b6FRiPoaNJikAsXAA9c0Jg* data;
NI counter;
};
struct tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ {
tyObject_Table__yPCZeDXS6qhcVroDuwem9cg tab;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen;
};
struct tyTuple__KhdZ2BpxsMCOVX377s89ayg {
NI Field0;
NI Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
typedef NU8 tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ;
typedef NU8 tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w;
struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
NimStringDesc* Field0;
NI Field1;
NI Field2;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__iegsN9bf6GqRiWprrJjTAoA[1];
struct tyTuple__Q066krdfdsSnR5DaFMOk9bQ {
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field0;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field1;
};
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__Nfk9cOEzg2bRz9c1V8fGzONg[2];
typedef tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tyArray__id9c0PBojP5C2oM2bRQSViA[3];
typedef NU8 tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ;
struct tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* converters;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* patterns;
tySequence__qeAsXh2i1GAL5Nl0g3OP8g* pureEnums;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interf;
tyObject_TStrTable__CJQ42V2zij8fd39a9aMiwtZw interfHidden;
tyObject_RopeObj__vUl1aIPQxBiroOuyvqu9bZQ* uniqueName;
};
typedef NU8 tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg;
struct tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg {
tySequence__4Murtwnm0Fyc7F9acrytEXw* nodes;
};
typedef NU8 tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ;
struct tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ {
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw {
tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
};
struct tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag {
NimStringDesc* definedSymbols;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA moduleFlags;
tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg toReplay;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg topLevel;
tyObject_PackedTree__om9aqqVmbmBPgd8MeBkGtqg bodies;
tySequence__b89aLriiJnVTD186H6zNIgg* exports;
tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw* reexports;
tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
tySequence__48JTohSgTy339bRxHzUD8KA* converters;
tySequence__48JTohSgTy339bRxHzUD8KA* methods;
tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
tySequence__QnmOtn1Iv4LvxOXoMn8Rbg* macroUsages;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* typeInstCache;
tySequence__qy6Iwdy00wN560qud54HTg* procInstCache;
tySequence__k67v9bwvvQDmS1ynyGGUbeQ* attachedOps;
tySequence__cLsClAAfd0MKkoBQVyvdvw* methodsPerType;
tySequence__oKtVqsc9bQVCNyrijELM4OQ* enumToStringProcs;
tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
tySet_tyEnum_ModuleBackendFlag__1OX8mHZmOJcGSH2EQV6eCQ backendFlags;
tySequence__q9bTuOB0JXh1iZ3CSGdRLbg* syms;
tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw* types;
tyObject_BiTable__f1TRECC4Lgx6Suak6pB8oQ strings;
tyObject_BiTable__YFXXoy9ajAIwHK4kQgVvjcw numbers;
tyObject_PackedConfig__aqQhF9bElTH51s7bVamv3vA cfg;
};
struct tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ {
tySequence__C3r8jsj9chA4sIlYfDN5aDw* data;
NI counter;
};
struct tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg {
tyEnum_ModuleStatus__K6X1Kd9cJ9a0hyG1Twv69bMNg status;
NIM_BOOL symsInit;
NIM_BOOL typesInit;
NIM_BOOL loadedButAliveSetChanged;
tyObject_PackedModule__Lx6uQ9baEALysaHmfFGXw9ag fromDisk;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* syms;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* types;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ iface;
tyObject_Table__jSCM9c8LtAedYb1zTNR73sQ ifaceHidden;
};
struct tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ {
NI32 thisModule;
NI32 lastFile;
NU32 lastLit;
tyObject_Table__7OytuYts9c9a3BX9aQNPGI0gQ filenames;
tySequence__vKogasEnJSPhbQmA8r4Y9aA* pendingTypes;
tySequence__ed0C0uAUZPhvw3RAc5hfYg* pendingSyms;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw typeMarker;
tyObject_PackedSet__THXDbzJSs2hcC9a33en2pdw symMarker;
tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* config;
};
struct tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ {
NU32 module;
NI32 item;
};
struct tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg {
NI module;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ packed_0;
};
struct tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ;
};
struct tyTuple__UluY8x0Nj6cp9b0o88wJ0lg {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__dlD6tEGzYLLpKVq3XwuFlA* Field2;
};
struct tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q {
NI module;
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg sym;
tySequence__UnGSk9aaLosDroi2QDrlOfQ* concreteTypes;
tyObject_TInstantiation__ScJwrSJM8Lp9ahM9b3AS1apA* inst;
};
struct tyTuple__rZZA0skon1OsHdiEvT8RZQ {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__6OFCSvqRaxyEgUqWtnZSlw* Field2;
};
struct tyTuple__q13Zt16VkCqu6Zg5jWqwHA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field2;
};
struct tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg {
tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg id;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
};
struct tyTuple__RWXAsQlFoGYyEQZp1G65sg {
NI Field0;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field1;
};
struct tyTuple__aWN9bNzF9bubXNJV9ciomgpfA {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tySequence__m4PVWjcAAjfxlwJxLkKn8A* Field2;
};
struct tyTuple__RmGJuqOgEaHckHndh0LEsw {
NI Field0;
tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg Field1;
tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg Field2;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A {
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym;
tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info;
};
struct tyTuple__J4cxakKjhKxTIJR9bojMmXw {
NI Field0;
NI32 Field1;
tySequence__i89c5kdtWKzK3OEiI81pkkw* Field2;
};
struct tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ {
NI Field0;
NI32 Field1;
tySequence__GR8qmV1kNRcoQ2g76VFy3A* Field2;
};
struct tyTuple__a7QginWFapakKbWJBJ2vfA {
tySequence__ed0C0uAUZPhvw3RAc5hfYg* Field0;
tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* Field1;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* Field2;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyTuple__kbX6x85REySUrk9auORL0vw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* Field2;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q {
tyObject_NodecolonObjectType___NOM0ZpqV9bLtofkCilAnZ8A* root;
NI entries;
};
struct tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__R2EgvhuH9cLMYvSPesdcu5Q Field2;
};
typedef N_NIMCALL_PTR(tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw*, tyProc__kqPx9c4py2HW6KcFMhNvxtg) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* module, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__9c6qRjwy7Es8UkDTIUwAfFA) (tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* topLevelStmt);
typedef N_NIMCALL_PTR(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, tyProc__mv4BsRs5VEnhcxzV6pQU5w) (tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* graph, tyObject_TPassContext__dmp6pRpfXxJk6gIZHkm7dw* p, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
struct tyTuple__nF9cH4hinXgGEUwO4G2bshw {
tyProc__kqPx9c4py2HW6KcFMhNvxtg Field0;
tyProc__9c6qRjwy7Es8UkDTIUwAfFA Field1;
tyProc__mv4BsRs5VEnhcxzV6pQU5w Field2;
NIM_BOOL Field3;
};
struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
NU32 Field0;
NimStringDesc* Field1;
};
struct tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA {
NU16 line;
NI16 col;
NU32 file;
};
struct tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA {
tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind;
tySet_tyEnum_TNodeFlag__0RUKWdbLPY3l0smKVGDLMg flags;
NI32 operand;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeId_0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
};
struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
NU32 Field0;
NI32 Field1;
};
struct tyTuple__PsEhl3dzznmmJiLAuIXZOg {
NU32 Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA Field1;
};
struct tyTuple__Db8CrQifKGIsKc3w71w7Lw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
};
struct tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ key;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* concreteTypes;
};
typedef NU8 tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ;
struct tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ {
tyEnum_TTypeAttachedOp__0IDqFfYT9a3F5i6tmCmdORQ Field0;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
struct tyTuple__FEYH9alRJhHD0uTKF2vnIqw {
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field0;
NI Field1;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ Field2;
};
typedef NU8 tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ;
struct tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA {
tyEnum_TLibKind__tW9cjoYNrpn2JX4q6fqRnxQ kind;
NIM_BOOL generated;
NIM_BOOL isOverriden;
NU32 name;
NI32 path;
};
struct tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA {
tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw kind;
NU32 name;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typ;
tySet_tyEnum_TSymFlag__9be9c6fEXk5NwyPvxxb6toPA flags;
tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag magic;
tyObject_PackedLineInfo__wqhF27DCtLcrB2XHUZKKiA info;
NI32 ast;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ guard;
NI bitsize;
NI alignment;
tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options;
NI position;
NI offset;
NU32 externalName;
tySet_tyEnum_TLocFlag__Ic4ywZl9cdJtKSUkG4WZfHw locFlags;
tyObject_PackedLib__djDv9aFBRsdjnMVLdFGA0nA annex;
NI32 constraint;
};
struct tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw {
tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind;
tyEnum_TCallingConvention__5kpSva5OFmGFHujbio7C9cg callConv;
tySet_tyEnum_TTypeFlag__Vrztsndr9a9bj8bQ3cn49bwWw flags;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* types;
NI32 n;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ sym;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ owner;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ typeInst;
NI32 nonUniqueId;
};
struct tyTuple__VUJ5Hjm4tKAResBsRHJvYg {
NI Field0;
tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* Field1;
tySequence__lo3S1lKyiPLhGGB9cBawd6A* Field2;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
struct tySequence__IeU9azYSNIK3V9b36Ir6NZcw {
  TGenericSeq Sup;
  tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* data[SEQ_DECL_SIZE];
};
struct tySequence__cvxuM2UjDv0O3Q6FcDEAnw {
  TGenericSeq Sup;
  tyTuple__2E9aYKv1U4zUZsR6wkNRkPg data[SEQ_DECL_SIZE];
};
struct tySequence__K9b6FRiPoaNJikAsXAA9c0Jg {
  TGenericSeq Sup;
  tyTuple__KhdZ2BpxsMCOVX377s89ayg data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__RNhZxf20g9beyq5VBOGxhDg {
  TGenericSeq Sup;
  tyObject_Iface__4y9aWdJBxraQYTl5Pa1NMuQ data[SEQ_DECL_SIZE];
};
struct tySequence__JbK5aK9aVhc9cJZzQYg1wQlQ {
  TGenericSeq Sup;
  tyObject_LoadedModule__fihS6xbKhtLC0fhM28Cpeg data[SEQ_DECL_SIZE];
};
struct tySequence__lFbCtu5P2Kf7YDYtGjkxAQ {
  TGenericSeq Sup;
  tyObject_PackedEncoder__ftUl9bxYRlbT5ToKkxHdbfQ data[SEQ_DECL_SIZE];
};
struct tySequence__dlD6tEGzYLLpKVq3XwuFlA {
  TGenericSeq Sup;
  tyObject_LazyType__wgv9a1JCOBXm9azerxcvz5gQ data[SEQ_DECL_SIZE];
};
struct tySequence__ijtae5OneaLys0hN9alAicA {
  TGenericSeq Sup;
  tyTuple__UluY8x0Nj6cp9b0o88wJ0lg data[SEQ_DECL_SIZE];
};
struct tySequence__6OFCSvqRaxyEgUqWtnZSlw {
  TGenericSeq Sup;
  tyObject_LazyInstantiation__0l1i6PfjQKnMEvpGMAoN8Q data[SEQ_DECL_SIZE];
};
struct tySequence__SerjNoUujW2dUouVBrJiCw {
  TGenericSeq Sup;
  tyTuple__rZZA0skon1OsHdiEvT8RZQ data[SEQ_DECL_SIZE];
};
struct tySequence__K9agbtcb0qPZuSJFXB9cTe6g {
  TGenericSeq Sup;
  tyTuple__q13Zt16VkCqu6Zg5jWqwHA data[SEQ_DECL_SIZE];
};
struct tySequence__m4PVWjcAAjfxlwJxLkKn8A {
  TGenericSeq Sup;
  tyTuple__RWXAsQlFoGYyEQZp1G65sg data[SEQ_DECL_SIZE];
};
struct tySequence__m88qdML9cQOuqGAQn6XWL1A {
  TGenericSeq Sup;
  tyTuple__aWN9bNzF9bubXNJV9ciomgpfA data[SEQ_DECL_SIZE];
};
struct tySequence__naEbXEp9b9aiW1zXJorqf9cXQ {
  TGenericSeq Sup;
  tyTuple__RmGJuqOgEaHckHndh0LEsw data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__ed0C0uAUZPhvw3RAc5hfYg {
  TGenericSeq Sup;
  tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* data[SEQ_DECL_SIZE];
};
struct tySequence__q9cq1Li6c1nMjHpacEbCj0g {
  TGenericSeq Sup;
  tyObject_TrunkcolonObjectType___2fEZuM4UuXkgO9bDnaMLLWg* data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__i89c5kdtWKzK3OEiI81pkkw {
  TGenericSeq Sup;
  tyObject_SymInfoPair__SjZT5Rln3r9befMWWSryQ0A data[SEQ_DECL_SIZE];
};
struct tySequence__KgiZ29chkJAD01p9aLRB32qw {
  TGenericSeq Sup;
  tyTuple__J4cxakKjhKxTIJR9bojMmXw data[SEQ_DECL_SIZE];
};
struct tySequence__GR8qmV1kNRcoQ2g76VFy3A {
  TGenericSeq Sup;
  tyObject_SuggestcolonObjectType___VUPO9alfTq2Ar9a7ZtY9cSPDg* data[SEQ_DECL_SIZE];
};
struct tySequence__rkYRZrbHVYL3nhXlQW3K9bw {
  TGenericSeq Sup;
  tyTuple__VwWg1orPZ9b5Rg9aZAI6SIaQ data[SEQ_DECL_SIZE];
};
struct tySequence__IRFEb1e9bxgbJLuB5xrdZsQ {
  TGenericSeq Sup;
  tyTuple__a7QginWFapakKbWJBJ2vfA data[SEQ_DECL_SIZE];
};
struct tySequence__YmPd0eWfcTfrVYrthlXPYA {
  TGenericSeq Sup;
  tyTuple__mPT6B9cVWqwVnWb1Fxx9bgyA data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__Hz5SYwQU29b9aFLt09blvVQPg {
  TGenericSeq Sup;
  tyTuple__kbX6x85REySUrk9auORL0vw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__3G9aA9cLXaPxuRxMKm3anacQ {
  TGenericSeq Sup;
  tyTuple__Ah6ua9a8WyUOs9aO9afW59cy0g data[SEQ_DECL_SIZE];
};
struct tySequence__bPFv6ypvvCX2A9a9al8utL2Q {
  TGenericSeq Sup;
  tyTuple__nF9cH4hinXgGEUwO4G2bshw data[SEQ_DECL_SIZE];
};
struct tySequence__vKogasEnJSPhbQmA8r4Y9aA {
  TGenericSeq Sup;
  tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* data[SEQ_DECL_SIZE];
};
struct tySequence__qeAsXh2i1GAL5Nl0g3OP8g {
  TGenericSeq Sup;
  tyObject_LazySym__Xts9a2Mw4b4jtq73p6MrfJg data[SEQ_DECL_SIZE];
};
struct tySequence__PXIzfWocnrafGz5p3CP5LA {
  TGenericSeq Sup;
  tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
};
struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
  TGenericSeq Sup;
  NU32 data[SEQ_DECL_SIZE];
};
struct tySequence__4Murtwnm0Fyc7F9acrytEXw {
  TGenericSeq Sup;
  tyObject_PackedNode__9aA1ZskrZ0b0RCXxY4Hw8YA data[SEQ_DECL_SIZE];
};
struct tySequence__b89aLriiJnVTD186H6zNIgg {
  TGenericSeq Sup;
  tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
};
struct tySequence__wE9cZkGC9cv7Iz9ckZOIyaW9aw {
  TGenericSeq Sup;
  tyTuple__PsEhl3dzznmmJiLAuIXZOg data[SEQ_DECL_SIZE];
};
struct tySequence__QnmOtn1Iv4LvxOXoMn8Rbg {
  TGenericSeq Sup;
  tyTuple__Dg3ILQdzHFjrYRx6Xwbq3w data[SEQ_DECL_SIZE];
};
struct tySequence__oKtVqsc9bQVCNyrijELM4OQ {
  TGenericSeq Sup;
  tyTuple__Db8CrQifKGIsKc3w71w7Lw data[SEQ_DECL_SIZE];
};
struct tySequence__qy6Iwdy00wN560qud54HTg {
  TGenericSeq Sup;
  tyObject_PackedInstantiation__wt9ao6lqcInu9aOmUoxgkWcg data[SEQ_DECL_SIZE];
};
struct tySequence__k67v9bwvvQDmS1ynyGGUbeQ {
  TGenericSeq Sup;
  tyTuple__Q9cwWJO3ddVfos2xI7N9cHHQ data[SEQ_DECL_SIZE];
};
struct tySequence__cLsClAAfd0MKkoBQVyvdvw {
  TGenericSeq Sup;
  tyTuple__FEYH9alRJhHD0uTKF2vnIqw data[SEQ_DECL_SIZE];
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct tySequence__q9bTuOB0JXh1iZ3CSGdRLbg {
  TGenericSeq Sup;
  tyObject_PackedSym__fAjcBcJ2JPtzDDxyIN8WmA data[SEQ_DECL_SIZE];
};
struct tySequence__DPZr9aMyRppVlNZ9ajSyOZ9bw {
  TGenericSeq Sup;
  tyObject_PackedType__MvipqCfEd9b9bJbbBPwsUOiw data[SEQ_DECL_SIZE];
};
struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
  TGenericSeq Sup;
  NI64 data[SEQ_DECL_SIZE];
};
struct tySequence__lo3S1lKyiPLhGGB9cBawd6A {
  TGenericSeq Sup;
  tyObject_PackedItemId__QkYBSICiQaMI6SmH4FJVoQ data[SEQ_DECL_SIZE];
};
struct tySequence__C3r8jsj9chA4sIlYfDN5aDw {
  TGenericSeq Sup;
  tyTuple__VUJ5Hjm4tKAResBsRHJvYg data[SEQ_DECL_SIZE];
};
struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
  TGenericSeq Sup;
  tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
};
struct tySequence__UnGSk9aaLosDroi2QDrlOfQ {
  TGenericSeq Sup;
  tyObject_FullId__L64puUgQnoQ6OMvT9c6V9cPg data[SEQ_DECL_SIZE];
};
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getEnvParam__lambdalifting_131)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* routine);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newSym__ast_3409)(tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw symKind, tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* name, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tySet_tyEnum_TOption__HPX9bEWraE8wyYLoP9bHbKYQ options);
N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg*, getIdent__idents_152)(tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* ic, NimStringDesc* identifier);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, createClosureIterStateType__lambdalifting_33)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* iter, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5267)(tyObject_CellSeq__nav876ELHgxScHhs30CKiA* s, tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, preprocess__closureiters_3376)(tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lastSon__ast_4833)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pop__trees_32)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__closureiters_175)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(void, pop__closureiters_3426)(tySequence__cvxuM2UjDv0O3Q6FcDEAnw** s, tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* Result);
static N_INLINE(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg*, X5BX5D___closureiters_3448)(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNodeI__ast_3320)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(void, initTable__closureiters_3495)(NI initialSize, tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* Result);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__K9b6FRiPoaNJikAsXAA9c0Jg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_4798)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* son);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, freshVars__closureiters_1818)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getOrDefault__closureiters_1917)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg t, NI key);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3707)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyNode__ast_4324)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, copySym__ast_4042)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___closureiters_2304)(tyObject_Table__yPCZeDXS6qhcVroDuwem9cg* t, NI key, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* val);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newSymNode__ast_3704)(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1128)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ msg, NimStringDesc* arg, tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, copyTree__ast_4432)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, toStmtList__closureiters_136)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, newState__closureiters_97)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntLit__lowerings_701)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NI64 value);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTree__ast_3356)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** children, NI childrenLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowerStmtListExprs__closureiters_478)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL* needsSplit);
N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__closureiters_385)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyTuple__Q066krdfdsSnR5DaFMOk9bQ* Result);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, add__closureiters_406)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** y, NI yLen_0);
N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1441)(tyObject_ConfigRefcolonObjectType___XoIrMAjHi4NOQu4oAkNfVQ* conf, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newTempVar__closureiters_167)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newEnvVar__closureiters_49)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NimStringDesc* name, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(void, addVar__lowerings_63)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* father, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, addUniqueField__lowerings_449)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* obj, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_IdentCachecolonObjectType___ssh0vzVb9aCQuB6ShpimfIQ* cache, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, lastSon__ast_3731)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* n);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__closureiters_446)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* output, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* input, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEnvVarAsgn__closureiters_441)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEnvVarAccess__closureiters_70)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, rawIndirectAccess__lowerings_331)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* field, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, convertExprBodyToAsgn__closureiters_469)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exprBody, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* res);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNotCall__closureiters_474)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getSysMagic__magicsys_29)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name, tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag m);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getSysSym__magicsys_16)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4347)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ kind);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__closureiters_371)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformClosureIteratorBody__closureiters_1187)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, addGotoOut__closureiters_147)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformBreaksAndContinuesInWhile__closureiters_179)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* before, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* after);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformBreaksInBlock__closureiters_205)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* label, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* after);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, collectExceptState__closureiters_256)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, callCodegenProc__lowerings_641)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NimStringDesc* name, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg1, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg2, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* arg3, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* optionalArgs);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newOr__closureiters_251)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNullifyCurExc__closureiters_245)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCurExcAccess__closureiters_91)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNode__ast_3289)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getFinallyNode__closureiters_357)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformReturnsInTry__closureiters_1111)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newUnrollFinallyAccess__closureiters_84)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntTypeNode__ast_3771)(NI64 intVal, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTmpResultAccess__closureiters_77)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEndFinallyNode__closureiters_1092)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getClosureIterResult__lambdalifting_62)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* iter, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getCompilerProc__magicsys_145)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NimStringDesc* name);
N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__closureiters_316)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__closureiters_1673)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipStmtList__closureiters_1505)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipThroughEmptyStates__closureiters_1543)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__closureiters_1517)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NI stateIdx);
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1723)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1760)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI i);
N_LIB_PRIVATE N_NIMCALL(void, del__closureiters_3582)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** x, NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformStateAssignments__closureiters_1400)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAssgn__closureiters_45)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NI stateNo);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAssgn__closureiters_41)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* toValue);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAccess__closureiters_35)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, getStateField__lambdalifting_4664)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__closureiters_1389)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, wrapIntoStateLoop__closureiters_1626)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, wrapIntoTryExcept__closureiters_1619)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCatchBody__closureiters_1582)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info);
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, createExceptionTable__closureiters_1567)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newArrayType__closureiters_1559)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newType__ast_3884)(tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg kind, tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg id, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner);
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x);
N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_4276)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* father, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* son, NIM_BOOL propagateHasAsgn);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newIntNode__ast_3711)(tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw kind, NI64 intVal);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_2, ":state", 6);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_3, ":stateLoop", 10);
extern TNimType NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_;
extern TNimType NTIseqLtupleLn58pnode_idx58intTT__cvxuM2UjDv0O3Q6FcDEAnw_;
N_LIB_PRIVATE TNimType NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTIpsym__u9bhQvrOYyAS9bCQ6gt41GOQ_;
N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_5, "unsupported control flow: \'finally: ... raise\' duplicated because of \'break\'", 76);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_7, "/home/runner/work/nightlies/nightlies/nim/compiler/closureiters.nim", 67);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_6 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1359),
((NI) 14)}
;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
extern NIM_CONST tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw unknownLineInfo__lineinfos_284;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_8, "lowerStmtListExprs: constr typ.isNil", 36);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_9 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 471),
((NI) 35)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_10, ":tmpSlLower", 11);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_11, "lowerStmtListExpr(nkIf): ", 25);
extern TNimType NTItnodekind__clSgDh22o9au33BrVH9bDQZw_;
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_12 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 549),
((NI) 23)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_13, "lowerStmtListExpr(nkTryStmt): ", 30);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_14 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 579),
((NI) 25)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_15, "lowerStmtListExpr(nkCaseStmt): ", 31);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_16 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 611),
((NI) 25)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_17, "not", 3);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_18, "true", 4);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_19, "yield in expr not lowered", 25);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_20 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1446),
((NI) 17)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_21, "transformClosureIteratorBody != s", 33);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_22 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 910),
((NI) 23)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_23, "of", 2);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_24, "getCurrentException", 19);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_25, "or", 2);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_26, ":curExc", 7);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_27, ":unrollFinally", 14);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_28, ":tmpResult", 10);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_29, "==", 2);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_30, "closureIterSetupExc", 19);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_31, "transformReturnsInTry != tryBody", 32);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_32 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1019),
((NI) 21)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_33, "transformClosureIteratorBody != tryBody", 39);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_34 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1021),
((NI) 21)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_35, "transformReturnsInTry != exceptBody", 35);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_36 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1026),
((NI) 21)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_37, "transformClosureIteratorBody != exceptBody", 42);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_38 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1028),
((NI) 21)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_39, "transformClosureIteratorBody != finallyBody", 43);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_40 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1033),
((NI) 21)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_41, "closure iter ", 13);
static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__V8P104kFw4tUofP7Txw6Sw_42 = {((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_7),
((NI) 1036),
((NI) 17)}
;
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_43, "<", 1);
STRING_LITERAL(TM__V8P104kFw4tUofP7Txw6Sw_44, "-", 1);
extern tyObject_GcHeap__ZRn9bWCksoiGwT2drZZzyWQ gch__system_5220;
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(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextSymId__ast_3103)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).symId += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).symId;
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5311)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*, usrToCell__system_5273)(void* usr) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* result;
	NI T1_;
	result = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
	result = ((tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5316)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	addZCT__system_5267((&gch__system_5220.zct), c);
}
static N_INLINE(void, decRef__system_5318)(tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5316(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T5_ = usrToCell__system_5273(src);
		incRef__system_5311(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
		T10_ = usrToCell__system_5273((*dest));
		decRef__system_5318(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
static N_INLINE(NI, len__ast_3155)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, pop__trees_32)(tySequence__IeU9azYSNIK3V9b36Ir6NZcw** s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI L;
	NI T1_;
	result = NIM_NIL;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	result = (*s)->data[L];
	unsureAsgnRef((void**) (&(*s)), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*s))?&((*s))->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) (L))));
	return result;
}
static N_INLINE(NI, safeLen__ast_3148)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 0) && (*n).kind <= ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3155(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__closureiters_175)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104):
	{
		result = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	default:
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c;
			c = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA7;
						i = i_2;
						c = (*n)._kind_6.sons->data[i];
						{
							NIM_BOOL T10_;
							T10_ = (NIM_BOOL)0;
							T10_ = hasYields__closureiters_175(c);
							if (!T10_) goto LA11_;
							result = NIM_TRUE;
							goto LA4;
						}
						LA11_: ;
						i_2 += ((NI) 1);
					} LA7: ;
				}
			}
		} LA4: ;
	}
	break;
	}
	return result;
}
static N_INLINE(void, pop__closureiters_3426)(tySequence__cvxuM2UjDv0O3Q6FcDEAnw** s, tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* Result) {
	NI L;
	NI T1_;
	T1_ = ((*s) ? (*s)->Sup.len : 0);
	L = (NI)(T1_ - ((NI) 1));
	unsureAsgnRef((void**) (&(*Result).Field0), (*s)->data[L].Field0);
	(*Result).Field1 = (*s)->data[L].Field1;
	unsureAsgnRef((void**) (&(*s)), (tySequence__cvxuM2UjDv0O3Q6FcDEAnw*) setLengthSeqV2(((*s))?&((*s))->Sup:NIM_NIL, (&NTIseqLtupleLn58pnode_idx58intTT__cvxuM2UjDv0O3Q6FcDEAnw_), ((NI) (L))));
}
static N_INLINE(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg*, X5BX5D___closureiters_3448)(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* s, NI sLen_0, NI i) {
	tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* result;
	result = (tyTuple__2E9aYKv1U4zUZsR6wkNRkPg*)0;
	result = (&s[(NI)(sLen_0 - i)]);
	return result;
}
static N_NIMCALL(void, Marker_tySequence__K9b6FRiPoaNJikAsXAA9c0Jg)(void* p, NI op) {
	tySequence__K9b6FRiPoaNJikAsXAA9c0Jg* a;
	NI T1_;
	a = (tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, freshVars__closureiters_1818)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ* c) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3):
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* x;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym310_;
		xX60gensym310_ = (*n)._kind_4.sym;
		x = getOrDefault__closureiters_1917((*c).tab, (NI)((NI)((NU64)(((NI) ((*xX60gensym310_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym310_).Sup.itemId.item))));
		{
			if (!(x == ((tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*) NIM_NIL))) goto LA4_;
			result = n;
		}
		goto LA2_;
		LA4_: ;
		{
			result = newSymNode__ast_3707(x, (*n).info);
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 2):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
		result = n;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	{
		result = copyNode__ast_4324(n);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* it;
			it = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3148(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA12;
						i = i_2;
						it = (*n)._kind_6.sons->data[i];
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* idefs;
							if (!((*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 35) || (*it).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 36))) goto LA15_;
							idefs = copyNode__ast_4324(it);
							{
								NI v;
								NI colontmp__2;
								NI T18_;
								NI res;
								v = (NI)0;
								colontmp__2 = (NI)0;
								T18_ = (NI)0;
								T18_ = len__ast_3155(it);
								colontmp__2 = (NI)(T18_ - ((NI) 3));
								res = ((NI) 0);
								{
									while (1) {
										if (!(res <= colontmp__2)) goto LA20;
										v = res;
										{
											tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* x_2;
											tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T25_;
											tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* xX60gensym319_;
											tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T26_;
											if (!((*(*it)._kind_6.sons->data[v]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA23_;
											T25_ = nextSymId__ast_3103((*c).idgen);
											x_2 = copySym__ast_4042((*(*it)._kind_6.sons->data[v])._kind_4.sym, T25_);
											xX60gensym319_ = (*(*it)._kind_6.sons->data[v])._kind_4.sym;
											X5BX5Deq___closureiters_2304((&(*c).tab), (NI)((NI)((NU64)(((NI) ((*xX60gensym319_).Sup.itemId.module))) << (NU64)(((NI) 24))) + ((NI) ((*xX60gensym319_).Sup.itemId.item))), x_2);
											T26_ = NIM_NIL;
											T26_ = newSymNode__ast_3704(x_2);
											add__ast_4798(idefs, T26_);
										}
										goto LA21_;
										LA23_: ;
										{
											add__ast_4798(idefs, (*it)._kind_6.sons->data[v]);
										}
										LA21_: ;
										res += ((NI) 1);
									} LA20: ;
								}
							}
							{
								NI rest;
								NI colontmp__3;
								NI colontmp__4;
								NI T29_;
								NI i_3;
								rest = (NI)0;
								colontmp__3 = (NI)0;
								colontmp__4 = (NI)0;
								T29_ = (NI)0;
								T29_ = len__ast_3155(it);
								colontmp__3 = (NI)(T29_ - ((NI) 2));
								colontmp__4 = len__ast_3155(it);
								i_3 = colontmp__3;
								{
									while (1) {
										if (!(i_3 < colontmp__4)) goto LA31;
										rest = i_3;
										add__ast_4798(idefs, (*it)._kind_6.sons->data[rest]);
										i_3 += ((NI) 1);
									} LA31: ;
								}
							}
							add__ast_4798(result, idefs);
						}
						goto LA13_;
						LA15_: ;
						{
							add__ast_4798(result, it);
						}
						LA13_: ;
						i_2 += ((NI) 1);
					} LA12: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
	{
		liMessage__msgs_1128((*c).config, (*c).info, ((tyEnum_TMsgKind__J0cVyqzpFKvufCivtQUgHQ) 15), ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_5), ((tyEnum_TErrorHandling__sOC1wCv9bUYRquMih1VRi3w) 0), TM__V8P104kFw4tUofP7Txw6Sw_6, NIM_FALSE);
	}
	break;
	default:
	{
		result = n;
		{
			NI i_4;
			NI colontmp__5;
			NI i_5;
			i_4 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = safeLen__ast_3148(n);
			i_5 = ((NI) 0);
			{
				while (1) {
					if (!(i_5 < colontmp__5)) goto LA37;
					i_4 = i_5;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_4]), freshVars__closureiters_1818((*n)._kind_6.sons->data[i_4], c));
					i_5 += ((NI) 1);
				} LA37: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, preprocess__closureiters_3376)(tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ* c, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* f;
		NIM_BOOL didAddSomething;
		f = lastSon__ast_4833(n);
		didAddSomething = NIM_FALSE;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
			NI T7_;
			if (!((*f).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA4_;
			T6_ = NIM_NIL;
			T6_ = lastSon__ast_4833(f);
			unsureAsgnRef((void**) (&(*c).finallys), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*c).finallys), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
			T7_ = (*c).finallys->Sup.len++;
			asgnRef((void**) (&(*c).finallys->data[T7_]), T6_);
			didAddSomething = NIM_TRUE;
		}
		LA4_: ;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA10;
					i = i_2;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), preprocess__closureiters_3376(c, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA10: ;
			}
		}
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
			if (!didAddSomething) goto LA13_;
			T15_ = NIM_NIL;
			T15_ = pop__trees_32((&(*c).finallys));
			(void)(T15_);
		}
		LA13_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	{
		tyTuple__2E9aYKv1U4zUZsR6wkNRkPg T22_;
		NI T23_;
		NI T24_;
		tyTuple__2E9aYKv1U4zUZsR6wkNRkPg T28_;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = hasYields__closureiters_175(n);
			if (!(T19_ == NIM_FALSE)) goto LA20_;
			result = n;
			goto BeforeRet_;
		}
		LA20_: ;
		nimZeroMem((void*)(&T22_), sizeof(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg));
		T22_.Field0 = n;
		T23_ = ((*c).finallys ? (*c).finallys->Sup.len : 0);
		T22_.Field1 = T23_;
		unsureAsgnRef((void**) (&(*c).blocks), (tySequence__cvxuM2UjDv0O3Q6FcDEAnw*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtupleLn58pnode_idx58intTT__cvxuM2UjDv0O3Q6FcDEAnw_)));
		T24_ = (*c).blocks->Sup.len++;
		asgnRef((void**) (&(*c).blocks->data[T24_].Field0), T22_.Field0);
		(*c).blocks->data[T24_].Field1 = T22_.Field1;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA27;
					i_3 = i_4;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), preprocess__closureiters_3376(c, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA27: ;
			}
		}
		nimZeroMem((void*)(&T28_), sizeof(tyTuple__2E9aYKv1U4zUZsR6wkNRkPg));
		pop__closureiters_3426((&(*c).blocks), (&T28_));
		(void)(T28_);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
	{
		{
			NI T32_;
			T32_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
			if (!(T32_ == ((NI) 0))) goto LA33_;
		}
		goto LA30_;
		LA33_: ;
		{
			NI fin;
			fin = ((NI) -1);
			{
				tyTuple__2E9aYKv1U4zUZsR6wkNRkPg* T40_;
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA38_;
				T40_ = (tyTuple__2E9aYKv1U4zUZsR6wkNRkPg*)0;
				T40_ = X5BX5D___closureiters_3448(((*c).blocks) ? ((*c).blocks->data) : NIM_NIL, ((*c).blocks ? (*c).blocks->Sup.len : 0), ((NI) 1));
				fin = (*T40_).Field1;
			}
			goto LA36_;
			LA38_: ;
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3))) goto LA42_;
				{
					NI i_5;
					NI colontmp__3;
					NI T45_;
					NI res;
					i_5 = (NI)0;
					colontmp__3 = (NI)0;
					T45_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
					colontmp__3 = T45_;
					res = colontmp__3;
					{
						while (1) {
							if (!(((NI) 0) <= res)) goto LA47;
							i_5 = res;
							{
								NIM_BOOL T50_;
								NIM_BOOL T51_;
								T50_ = (NIM_BOOL)0;
								T51_ = (NIM_BOOL)0;
								T51_ = ((*(*c).blocks->data[i_5].Field0).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112));
								if (!(T51_)) goto LA52_;
								T51_ = ((*(*(*c).blocks->data[i_5].Field0)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
								LA52_: ;
								T50_ = T51_;
								if (!(T50_)) goto LA53_;
								T50_ = ((*(*(*c).blocks->data[i_5].Field0)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
								LA53_: ;
								if (!T50_) goto LA54_;
								fin = (*c).blocks->data[i_5].Field1;
								goto LA44;
							}
							LA54_: ;
							res -= ((NI) 1);
						} LA47: ;
					}
				} LA44: ;
			}
			goto LA36_;
			LA42_: ;
			LA36_: ;
			{
				if (!(((NI) 0) <= fin)) goto LA58_;
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
				{
					NI i_6;
					NI colontmp__4;
					NI T61_;
					NI res_2;
					i_6 = (NI)0;
					colontmp__4 = (NI)0;
					T61_ = (((*c).finallys ? (*c).finallys->Sup.len : 0)-1);
					colontmp__4 = T61_;
					res_2 = colontmp__4;
					{
						while (1) {
							tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ vars;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T64_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T65_;
							if (!(fin <= res_2)) goto LA63;
							i_6 = res_2;
							nimZeroMem((void*)(&vars), sizeof(tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ));
							nimZeroMem((void*)(&vars), sizeof(tyObject_FreshVarsContext__AR9a5V8pAKiewEfRFjtWeJQ));
							initTable__closureiters_3495(((NI) 32), (&vars.tab));
							vars.config = (*c).config;
							vars.info = (*n).info;
							vars.idgen = (*c).idgen;
							T64_ = NIM_NIL;
							T64_ = copyTree__ast_4432((*c).finallys->data[i_6]);
							T65_ = NIM_NIL;
							T65_ = freshVars__closureiters_1818(T64_, (&vars));
							add__ast_4798(result, T65_);
							unsureAsgnRef((void**) (&(*c).idgen), vars.idgen);
							res_2 -= ((NI) 1);
						} LA63: ;
					}
				}
				add__ast_4798(result, n);
			}
			LA58_: ;
		}
		LA30_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	default:
	{
		{
			NI i_7;
			NI colontmp__5;
			NI i_8;
			i_7 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__ast_3155(n);
			i_8 = ((NI) 0);
			{
				while (1) {
					if (!(i_8 < colontmp__5)) goto LA70;
					i_7 = i_8;
					asgnRef((void**) (&(*result)._kind_6.sons->data[i_7]), preprocess__closureiters_3376(c, (*n)._kind_6.sons->data[i_7]));
					i_8 += ((NI) 1);
				} LA70: ;
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, toStmtList__closureiters_136)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	{
		if (!!(((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115) || (*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126)))) goto LA3_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		add__ast_4798(result, n);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, newState__closureiters_97)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut) {
	NI result;
	NI T1_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* resLit;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
	NI T2_;
	NI T3_;
	result = (NI)0;
	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	result = T1_;
	resLit = newIntLit__lowerings_701((*ctx).g, (*n).info, ((NI64) (result)));
	s = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 157), (*n).info);
	add__ast_4798(s, resLit);
	add__ast_4798(s, n);
	unsureAsgnRef((void**) (&(*ctx).states), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) incrSeqV3((TGenericSeq*)((*ctx).states), (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_)));
	T2_ = (*ctx).states->Sup.len++;
	asgnRef((void**) (&(*ctx).states->data[T2_]), s);
	unsureAsgnRef((void**) (&(*ctx).exceptionTable), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*ctx).exceptionTable), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
	T3_ = (*ctx).exceptionTable->Sup.len++;
	(*ctx).exceptionTable->data[T3_] = (*ctx).curExcHandlingState;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		if (!!((gotoOut == 0))) goto LA6_;
		T8_ = NIM_NIL;
		T8_ = newIntLit__lowerings_701((*ctx).g, (*gotoOut).info, ((NI64) (result)));
		add__ast_4798(gotoOut, T8_);
	}
	LA6_: ;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g* T1_;
	T1_ = (tyObject_Cell__nhn83Yf9cX7rcmG5W9b4oa6g*)0;
	T1_ = usrToCell__system_5273(p);
	decRef__system_5318(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__closureiters_385)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyTuple__Q066krdfdsSnR5DaFMOk9bQ* Result) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	unsureAsgnRef((void**) (&(*Result).Field0), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info));
	if ((*(*Result).Field0)._kind_6.sons) { nimGCunrefNoCycle((*(*Result).Field0)._kind_6.sons); (*(*Result).Field0)._kind_6.sons = NIM_NIL; }
	n_2 = n;
	{
		while (1) {
			NI T3_;
			NI T4_;
			if (!((*n_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA2;
			add__closureiters_406((&(*(*Result).Field0)._kind_6.sons), ((*n_2)._kind_6.sons) ? ((*n_2)._kind_6.sons->data) : NIM_NIL, ((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0));
			T3_ = (NI)0;
			T3_ = len__ast_3155((*Result).Field0);
			asgnRef((void**) (&(*(*Result).Field0)._kind_6.sons), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*(*Result).Field0)._kind_6.sons)?&((*(*Result).Field0)._kind_6.sons)->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) ((NI)(T3_ - ((NI) 1))))));
			T4_ = (NI)0;
			T4_ = len__ast_3155(n_2);
			n_2 = (*n_2)._kind_6.sons->data[(NI)(T4_ - ((NI) 1))];
		} LA2: ;
	}
	unsureAsgnRef((void**) (&(*Result).Field1), n_2);
}
static N_INLINE(NIM_BOOL, isEmptyType__ast_4780)(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (t == ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
	if (T1_) goto LA2_;
	T1_ = ((*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 63) || (*t).kind == ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 7));
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newEnvVar__closureiters_49)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NimStringDesc* name, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T1_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = getIdent__idents_152((*(*ctx).g).cache, name);
	T2_ = nextSymId__ast_3103((*ctx).idgen);
	result = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8), T1_, T2_, (*ctx).fn, (*(*ctx).fn).info, 0);
	asgnRef((void**) (&(*result).typ), typ);
	{
		if (!!(((*ctx).stateVarSym == 0))) goto LA5_;
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T11_;
			if (!((*ctx).tempVars == 0)) goto LA9_;
			unsureAsgnRef((void**) (&(*ctx).tempVars), newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*(*ctx).fn).info));
			T11_ = NIM_NIL;
			T11_ = newSymNode__ast_3704(result);
			addVar__lowerings_63((*ctx).tempVars, T11_);
		}
		LA9_: ;
	}
	goto LA3_;
	LA5_: ;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* envParam;
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T13_;
		envParam = getEnvParam__lambdalifting_131((*ctx).fn);
		T13_ = NIM_NIL;
		T13_ = lastSon__ast_3731((*envParam).typ);
		result = addUniqueField__lowerings_449(T13_, result, (*(*ctx).g).cache, (*ctx).idgen);
	}
	LA3_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1733)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1733(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__3r34mwqcVmg5JFNmiaVncw*, newTempVar__closureiters_167)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* typ) {
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* result;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T2_ = NIM_NIL;
	T2_ = dollar___systemZdollars_3((*ctx).tempVarId);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 11);
appendString(T1_, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_10));
appendString(T1_, T2_);
	result = newEnvVar__closureiters_49(ctx, T1_, typ);
	(*ctx).tempVarId += ((NI) 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEnvVarAccess__closureiters_70)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!((*ctx).stateVarSym == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getEnvParam__lambdalifting_131((*ctx).fn);
		T6_ = NIM_NIL;
		T6_ = newSymNode__ast_3704(T5_);
		result = rawIndirectAccess__lowerings_331(T6_, s, (*(*ctx).fn).info);
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymNode__ast_3704(s);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEnvVarAsgn__closureiters_441)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* s, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* v) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isEmptyType__ast_4780((*v).typ);
		if (!T3_) goto LA4_;
		result = v;
	}
	goto LA1_;
	LA4_: ;
	{
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T7_;
		nimZeroMem((void*)T7_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T7_[0] = newEnvVarAccess__closureiters_70(ctx, s);
		T7_[1] = v;
		result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T7_, 2);
		(*result).info = (*v).info;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__closureiters_446)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* output, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* input, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* sym) {
	{
		tyTuple__Q066krdfdsSnR5DaFMOk9bQ T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		if (!((*input).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
		exprToStmtList__closureiters_385(input, (&T5_));
		st = NIM_NIL;
		st = T5_.Field0;
		res = NIM_NIL;
		res = T5_.Field1;
		add__ast_4798(output, st);
		T6_ = NIM_NIL;
		T6_ = newEnvVarAsgn__closureiters_441(ctx, sym, res);
		add__ast_4798(output, T6_);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T8_;
		T8_ = NIM_NIL;
		T8_ = newEnvVarAsgn__closureiters_441(ctx, sym, input);
		add__ast_4798(output, T8_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, convertExprBodyToAsgn__closureiters_469)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exprBody, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* res) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*exprBody).info);
	addExprAssgn__closureiters_446(ctx, result, exprBody, res);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNotCall__closureiters_474)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* e) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	result = NIM_NIL;
	nimZeroMem((void*)T1_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T2_ = NIM_NIL;
	T2_ = getSysMagic__magicsys_29(g, (*e).info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_17), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 96));
	T1_[0] = newSymNode__ast_3707(T2_, (*e).info);
	T1_[1] = e;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T1_, 2);
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60(g, (*e).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, lowerStmtListExprs__closureiters_478)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, NIM_BOOL* needsSplit) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104):
	{
		NIM_BOOL ns;
		ns = NIM_FALSE;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i], (&ns)));
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
		{
			tyTuple__Q066krdfdsSnR5DaFMOk9bQ T10_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex;
			if (!ns) goto LA8_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			nimZeroMem((void*)(&T10_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T10_));
			st = NIM_NIL;
			st = T10_.Field0;
			ex = NIM_NIL;
			ex = T10_.Field1;
			add__ast_4798(result, st);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex);
			add__ast_4798(result, n);
		}
		LA8_: ;
		(*needsSplit) = NIM_TRUE;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 37):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 38):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 160):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41):
	{
		NIM_BOOL ns_2;
		ns_2 = NIM_FALSE;
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA14;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_3], (&ns_2)));
					i_4 += ((NI) 1);
				} LA14: ;
			}
		}
		{
			if (!ns_2) goto LA17_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
			{
				if (!((*n).typ == 0)) goto LA21_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_8), TM__V8P104kFw4tUofP7Txw6Sw_9);
			}
			LA21_: ;
			asgnRef((void**) (&(*result).typ), (*n).typ);
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = len__ast_3155(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA25;
						i_5 = i_6;
						switch ((*(*n)._kind_6.sons->data[i_5]).kind) {
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 34):
						{
							{
								tyTuple__Q066krdfdsSnR5DaFMOk9bQ T31_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_2;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_2;
								if (!((*(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA29_;
								nimZeroMem((void*)(&T31_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
								exprToStmtList__closureiters_385((*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)], (&T31_));
								st_2 = NIM_NIL;
								st_2 = T31_.Field0;
								ex_2 = NIM_NIL;
								ex_2 = T31_.Field1;
								add__ast_4798(result, st_2);
								asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]), ex_2);
							}
							LA29_: ;
						}
						break;
						case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
						{
							tyTuple__Q066krdfdsSnR5DaFMOk9bQ T33_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_3;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_3;
							nimZeroMem((void*)(&T33_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
							exprToStmtList__closureiters_385((*n)._kind_6.sons->data[i_5], (&T33_));
							st_3 = NIM_NIL;
							st_3 = T33_.Field0;
							ex_3 = NIM_NIL;
							ex_3 = T33_.Field1;
							add__ast_4798(result, st_3);
							asgnRef((void**) (&(*n)._kind_6.sons->data[i_5]), ex_3);
						}
						break;
						default:
						{
						}
						break;
						}
						i_6 += ((NI) 1);
					} LA25: ;
				}
			}
			add__ast_4798(result, n);
		}
		LA17_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 48):
	{
		NIM_BOOL ns_3;
		ns_3 = NIM_FALSE;
		{
			NI i_7;
			NI colontmp__4;
			NI i_8;
			i_7 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__ast_3155(n);
			i_8 = ((NI) 0);
			{
				while (1) {
					if (!(i_8 < colontmp__4)) goto LA38;
					i_7 = i_8;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_7]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_7], (&ns_3)));
					i_8 += ((NI) 1);
				} LA38: ;
			}
		}
		{
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmp;
			NIM_BOOL isExpr;
			NIM_BOOL T43_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* curS;
			if (!ns_3) goto LA41_;
			(*needsSplit) = NIM_TRUE;
			tmp = NIM_NIL;
			T43_ = (NIM_BOOL)0;
			T43_ = isEmptyType__ast_4780((*n).typ);
			isExpr = !(T43_);
			{
				if (!isExpr) goto LA46_;
				tmp = newTempVar__closureiters_167(ctx, (*n).typ);
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
				asgnRef((void**) (&(*result).typ), (*n).typ);
			}
			goto LA44_;
			LA46_: ;
			{
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			}
			LA44_: ;
			curS = result;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
				branch = NIM_NIL;
				{
					NI i_9;
					NI colontmp__5;
					NI i_10;
					i_9 = (NI)0;
					colontmp__5 = (NI)0;
					colontmp__5 = safeLen__ast_3148(n);
					i_10 = ((NI) 0);
					{
						while (1) {
							if (!(i_10 < colontmp__5)) goto LA52;
							i_9 = i_10;
							branch = (*n)._kind_6.sons->data[i_9];
							switch ((*branch).kind) {
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 50):
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
							{
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchBody;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newBranch;
									tyArray__iegsN9bf6GqRiWprrJjTAoA T58_;
									if (!isExpr) goto LA56_;
									branchBody = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*branch).info);
									addExprAssgn__closureiters_446((&(*ctx)), branchBody, (*branch)._kind_6.sons->data[((NI) 0)], tmp);
									nimZeroMem((void*)T58_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
									T58_[0] = branchBody;
									newBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T58_, 1);
									add__ast_4798(curS, newBranch);
								}
								goto LA54_;
								LA56_: ;
								{
									add__ast_4798(curS, branch);
								}
								LA54_: ;
							}
							break;
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49):
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
							{
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newBranch_2;
								newBranch_2 = NIM_NIL;
								{
									tyTuple__Q066krdfdsSnR5DaFMOk9bQ T65_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_4;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* res;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elseBody;
									tyArray__iegsN9bf6GqRiWprrJjTAoA T66_;
									tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T67_;
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newIf;
									tyArray__iegsN9bf6GqRiWprrJjTAoA T68_;
									if (!((*(*branch)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA63_;
									nimZeroMem((void*)(&T65_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
									exprToStmtList__closureiters_385((*branch)._kind_6.sons->data[((NI) 0)], (&T65_));
									st_4 = NIM_NIL;
									st_4 = T65_.Field0;
									res = NIM_NIL;
									res = T65_.Field1;
									nimZeroMem((void*)T66_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
									T66_[0] = st_4;
									elseBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T66_, 1);
									nimZeroMem((void*)T67_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
									T67_[0] = res;
									T67_[1] = (*branch)._kind_6.sons->data[((NI) 1)];
									newBranch_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T67_, 2);
									nimZeroMem((void*)T68_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
									T68_[0] = newBranch_2;
									newIf = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T68_, 1);
									add__ast_4798(elseBody, newIf);
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newElse;
										if (!((*curS).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92))) goto LA71_;
										newElse = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (*branch).info);
										add__ast_4798(newElse, elseBody);
										add__ast_4798(curS, newElse);
									}
									goto LA69_;
									LA71_: ;
									{
										add__ast_4798(curS, elseBody);
									}
									LA69_: ;
									curS = newIf;
								}
								goto LA61_;
								LA63_: ;
								{
									newBranch_2 = branch;
									{
										if (!((*curS).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92))) goto LA77_;
										add__ast_4798(curS, newBranch_2);
									}
									goto LA75_;
									LA77_: ;
									{
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newIf_2;
										tyArray__iegsN9bf6GqRiWprrJjTAoA T80_;
										nimZeroMem((void*)T80_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
										T80_[0] = newBranch_2;
										newIf_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T80_, 1);
										add__ast_4798(curS, newIf_2);
										curS = newIf_2;
									}
									LA75_: ;
								}
								LA61_: ;
								{
									tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchBody_2;
									if (!isExpr) goto LA83_;
									branchBody_2 = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*branch)._kind_6.sons->data[((NI) 1)]).info);
									addExprAssgn__closureiters_446((&(*ctx)), branchBody_2, (*branch)._kind_6.sons->data[((NI) 1)], tmp);
									asgnRef((void**) (&(*newBranch_2)._kind_6.sons->data[((NI) 1)]), branchBody_2);
								}
								LA83_: ;
							}
							break;
							default:
							{
								NimStringDesc* T86_;
								T86_ = NIM_NIL;
								T86_ = rawNewString((reprEnum((NI)(*branch).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)(*branch).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 25);
appendString(T86_, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_11));
appendString(T86_, reprEnum((NI)(*branch).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
								internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, T86_, TM__V8P104kFw4tUofP7Txw6Sw_12);
							}
							break;
							}
							i_10 += ((NI) 1);
						} LA52: ;
					}
				}
			}
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T91_;
				if (!isExpr) goto LA89_;
				T91_ = NIM_NIL;
				T91_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp);
				add__ast_4798(result, T91_);
			}
			LA89_: ;
		}
		LA41_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		NIM_BOOL ns_4;
		ns_4 = NIM_FALSE;
		{
			NI i_11;
			NI colontmp__6;
			NI i_12;
			i_11 = (NI)0;
			colontmp__6 = (NI)0;
			colontmp__6 = len__ast_3155(n);
			i_12 = ((NI) 0);
			{
				while (1) {
					if (!(i_12 < colontmp__6)) goto LA95;
					i_11 = i_12;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_11]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_11], (&ns_4)));
					i_12 += ((NI) 1);
				} LA95: ;
			}
		}
		{
			NIM_BOOL isExpr_2;
			NIM_BOOL T100_;
			if (!ns_4) goto LA98_;
			(*needsSplit) = NIM_TRUE;
			T100_ = (NIM_BOOL)0;
			T100_ = isEmptyType__ast_4780((*n).typ);
			isExpr_2 = !(T100_);
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmp_2;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T117_;
				if (!isExpr_2) goto LA103_;
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
				asgnRef((void**) (&(*result).typ), (*n).typ);
				tmp_2 = newTempVar__closureiters_167(ctx, (*n).typ);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*n)._kind_6.sons->data[((NI) 0)], tmp_2));
				{
					NI i_13;
					NI colontmp__7;
					NI i_14;
					i_13 = (NI)0;
					colontmp__7 = (NI)0;
					colontmp__7 = len__ast_3155(n);
					i_14 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_2;
							if (!(i_14 < colontmp__7)) goto LA107;
							i_13 = i_14;
							branch_2 = (*n)._kind_6.sons->data[i_13];
							switch ((*branch_2).kind) {
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87):
							{
								{
									if (!((*(*branch_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 4))) goto LA111_;
									asgnRef((void**) (&(*branch_2)._kind_6.sons->data[((NI) 1)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 1)], tmp_2));
								}
								goto LA109_;
								LA111_: ;
								{
									asgnRef((void**) (&(*branch_2)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 0)], tmp_2));
								}
								LA109_: ;
							}
							break;
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107):
							{
							}
							break;
							default:
							{
								NimStringDesc* T116_;
								T116_ = NIM_NIL;
								T116_ = rawNewString((reprEnum((NI)(*branch_2).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)(*branch_2).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 30);
appendString(T116_, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_13));
appendString(T116_, reprEnum((NI)(*branch_2).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
								internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, T116_, TM__V8P104kFw4tUofP7Txw6Sw_14);
							}
							break;
							}
							i_14 += ((NI) 1);
						} LA107: ;
					}
				}
				add__ast_4798(result, n);
				T117_ = NIM_NIL;
				T117_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_2);
				add__ast_4798(result, T117_);
			}
			LA103_: ;
		}
		LA98_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		NIM_BOOL ns_5;
		ns_5 = NIM_FALSE;
		{
			NI i_15;
			NI colontmp__8;
			NI i_16;
			i_15 = (NI)0;
			colontmp__8 = (NI)0;
			colontmp__8 = len__ast_3155(n);
			i_16 = ((NI) 0);
			{
				while (1) {
					if (!(i_16 < colontmp__8)) goto LA121;
					i_15 = i_16;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_15]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_15], (&ns_5)));
					i_16 += ((NI) 1);
				} LA121: ;
			}
		}
		{
			NIM_BOOL isExpr_3;
			NIM_BOOL T126_;
			if (!ns_5) goto LA124_;
			(*needsSplit) = NIM_TRUE;
			T126_ = (NIM_BOOL)0;
			T126_ = isEmptyType__ast_4780((*n).typ);
			isExpr_3 = !(T126_);
			{
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmp_3;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T145_;
				if (!isExpr_3) goto LA129_;
				tmp_3 = newTempVar__closureiters_167(ctx, (*n).typ);
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
				asgnRef((void**) (&(*result).typ), (*n).typ);
				{
					tyTuple__Q066krdfdsSnR5DaFMOk9bQ T135_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_5;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_4;
					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA133_;
					nimZeroMem((void*)(&T135_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
					exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T135_));
					st_5 = NIM_NIL;
					st_5 = T135_.Field0;
					ex_4 = NIM_NIL;
					ex_4 = T135_.Field1;
					add__ast_4798(result, st_5);
					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_4);
				}
				LA133_: ;
				{
					NI i_17;
					NI colontmp__9;
					NI i_18;
					i_17 = (NI)0;
					colontmp__9 = (NI)0;
					colontmp__9 = len__ast_3155(n);
					i_18 = ((NI) 1);
					{
						while (1) {
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_3;
							if (!(i_18 < colontmp__9)) goto LA138;
							i_17 = i_18;
							branch_3 = (*n)._kind_6.sons->data[i_17];
							switch ((*branch_3).kind) {
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85):
							{
								NI T140_;
								NI T141_;
								T140_ = (NI)0;
								T140_ = len__ast_3155(branch_3);
								T141_ = (NI)0;
								T141_ = len__ast_3155(branch_3);
								asgnRef((void**) (&(*branch_3)._kind_6.sons->data[(NI)(T140_ - ((NI) 1))]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_3)._kind_6.sons->data[(NI)(T141_ - ((NI) 1))], tmp_3));
							}
							break;
							case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
							{
								asgnRef((void**) (&(*branch_3)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_3)._kind_6.sons->data[((NI) 0)], tmp_3));
							}
							break;
							default:
							{
								NimStringDesc* T144_;
								T144_ = NIM_NIL;
								T144_ = rawNewString((reprEnum((NI)(*branch_3).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)(*branch_3).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 31);
appendString(T144_, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_15));
appendString(T144_, reprEnum((NI)(*branch_3).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
								internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, T144_, TM__V8P104kFw4tUofP7Txw6Sw_16);
							}
							break;
							}
							i_18 += ((NI) 1);
						} LA138: ;
					}
				}
				add__ast_4798(result, n);
				T145_ = NIM_NIL;
				T145_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_3);
				add__ast_4798(result, T145_);
			}
			goto LA127_;
			LA129_: ;
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T149_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_6;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_5;
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA147_;
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
				nimZeroMem((void*)(&T149_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T149_));
				st_6 = NIM_NIL;
				st_6 = T149_.Field0;
				ex_5 = NIM_NIL;
				ex_5 = T149_.Field1;
				add__ast_4798(result, st_6);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_5);
				add__ast_4798(result, n);
			}
			goto LA127_;
			LA147_: ;
			LA127_: ;
		}
		LA124_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 70):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 68):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 69):
	{
		NIM_BOOL ns_6;
		ns_6 = NIM_FALSE;
		{
			NI i_19;
			NI colontmp__10;
			NI i_20;
			i_19 = (NI)0;
			colontmp__10 = (NI)0;
			colontmp__10 = len__ast_3155(n);
			i_20 = ((NI) 0);
			{
				while (1) {
					if (!(i_20 < colontmp__10)) goto LA153;
					i_19 = i_20;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_19]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_19], (&ns_6)));
					i_20 += ((NI) 1);
				} LA153: ;
			}
		}
		{
			NIM_BOOL isExpr_4;
			NIM_BOOL T158_;
			if (!ns_6) goto LA156_;
			(*needsSplit) = NIM_TRUE;
			T158_ = (NIM_BOOL)0;
			T158_ = isEmptyType__ast_4780((*n).typ);
			isExpr_4 = !(T158_);
			{
				if (!isExpr_4) goto LA161_;
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
				asgnRef((void**) (&(*result).typ), (*n).typ);
			}
			goto LA159_;
			LA161_: ;
			{
				result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			}
			LA159_: ;
			{
				NIM_BOOL T166_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmp_4;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T175_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBody;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T185_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBranch;
				tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T186_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifNode;
				tyArray__iegsN9bf6GqRiWprrJjTAoA T187_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T188_;
				T166_ = (NIM_BOOL)0;
				T166_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T166_)) goto LA167_;
				T166_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 109) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110));
				LA167_: ;
				if (!T166_) goto LA168_;
				cond = (*n)._kind_6.sons->data[((NI) 1)];
				{
					tyTuple__Q066krdfdsSnR5DaFMOk9bQ T174_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_7;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_6;
					if (!((*cond).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA172_;
					nimZeroMem((void*)(&T174_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
					exprToStmtList__closureiters_385(cond, (&T174_));
					st_7 = NIM_NIL;
					st_7 = T174_.Field0;
					ex_6 = NIM_NIL;
					ex_6 = T174_.Field1;
					add__ast_4798(result, st_7);
					cond = ex_6;
				}
				LA172_: ;
				tmp_4 = newTempVar__closureiters_167(ctx, (*cond).typ);
				T175_ = NIM_NIL;
				T175_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_4, cond);
				add__ast_4798(result, T175_);
				check = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_4);
				{
					if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110))) goto LA178_;
					check = newNotCall__closureiters_474((*ctx).g, check);
				}
				LA178_: ;
				cond = (*n)._kind_6.sons->data[((NI) 2)];
				ifBody = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*cond).info);
				{
					tyTuple__Q066krdfdsSnR5DaFMOk9bQ T184_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_8;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_7;
					if (!((*cond).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA182_;
					nimZeroMem((void*)(&T184_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
					exprToStmtList__closureiters_385(cond, (&T184_));
					st_8 = NIM_NIL;
					st_8 = T184_.Field0;
					ex_7 = NIM_NIL;
					ex_7 = T184_.Field1;
					add__ast_4798(ifBody, st_8);
					cond = ex_7;
				}
				LA182_: ;
				T185_ = NIM_NIL;
				T185_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_4, cond);
				add__ast_4798(ifBody, T185_);
				nimZeroMem((void*)T186_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
				T186_[0] = check;
				T186_[1] = ifBody;
				ifBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T186_, 2);
				nimZeroMem((void*)T187_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
				T187_[0] = ifBranch;
				ifNode = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T187_, 1);
				add__ast_4798(result, ifNode);
				T188_ = NIM_NIL;
				T188_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_4);
				add__ast_4798(result, T188_);
			}
			goto LA164_;
			LA168_: ;
			{
				{
					NI i_21;
					NI colontmp__11;
					NI i_22;
					i_21 = (NI)0;
					colontmp__11 = (NI)0;
					colontmp__11 = len__ast_3155(n);
					i_22 = ((NI) 0);
					{
						while (1) {
							if (!(i_22 < colontmp__11)) goto LA192;
							i_21 = i_22;
							{
								tyTuple__Q066krdfdsSnR5DaFMOk9bQ T197_;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_9;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_8;
								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA195_;
								nimZeroMem((void*)(&T197_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
								exprToStmtList__closureiters_385((*n)._kind_6.sons->data[i_21], (&T197_));
								st_9 = NIM_NIL;
								st_9 = T197_.Field0;
								ex_8 = NIM_NIL;
								ex_8 = T197_.Field1;
								add__ast_4798(result, st_9);
								asgnRef((void**) (&(*n)._kind_6.sons->data[i_21]), ex_8);
							}
							LA195_: ;
							{
								tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* tmp_5;
								tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T202_;
								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 29) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 30) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 31) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 26) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 28) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 32))) goto LA200_;
								tmp_5 = newTempVar__closureiters_167(ctx, (*(*n)._kind_6.sons->data[i_21]).typ);
								T202_ = NIM_NIL;
								T202_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_5, (*n)._kind_6.sons->data[i_21]);
								add__ast_4798(result, T202_);
								asgnRef((void**) (&(*n)._kind_6.sons->data[i_21]), newEnvVarAccess__closureiters_70((&(*ctx)), tmp_5));
							}
							LA200_: ;
							i_22 += ((NI) 1);
						} LA192: ;
					}
				}
				add__ast_4798(result, n);
			}
			LA164_: ;
		}
		LA156_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 100):
	{
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c;
			c = NIM_NIL;
			{
				NI i_23;
				NI colontmp__12;
				NI i_24;
				i_23 = (NI)0;
				colontmp__12 = (NI)0;
				colontmp__12 = safeLen__ast_3148(n);
				i_24 = ((NI) 0);
				{
					while (1) {
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSect;
						NIM_BOOL ns_7;
						NI T208_;
						NI T209_;
						if (!(i_24 < colontmp__12)) goto LA207;
						i_23 = i_24;
						c = (*n)._kind_6.sons->data[i_23];
						varSect = newNodeI__ast_3320((*n).kind, (*n).info);
						add__ast_4798(varSect, c);
						ns_7 = NIM_FALSE;
						T208_ = (NI)0;
						T208_ = len__ast_3155(c);
						T209_ = (NI)0;
						T209_ = len__ast_3155(c);
						asgnRef((void**) (&(*c)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))]), lowerStmtListExprs__closureiters_478(ctx, (*c)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))], (&ns_7)));
						{
							NI T214_;
							tyTuple__Q066krdfdsSnR5DaFMOk9bQ T215_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_10;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_9;
							NI T216_;
							if (!ns_7) goto LA212_;
							(*needsSplit) = NIM_TRUE;
							T214_ = (NI)0;
							T214_ = len__ast_3155(c);
							nimZeroMem((void*)(&T215_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
							exprToStmtList__closureiters_385((*c)._kind_6.sons->data[(NI)(T214_ - ((NI) 1))], (&T215_));
							st_10 = NIM_NIL;
							st_10 = T215_.Field0;
							ex_9 = NIM_NIL;
							ex_9 = T215_.Field1;
							add__ast_4798(result, st_10);
							T216_ = (NI)0;
							T216_ = len__ast_3155(c);
							asgnRef((void**) (&(*c)._kind_6.sons->data[(NI)(T216_ - ((NI) 1))]), ex_9);
						}
						LA212_: ;
						add__ast_4798(result, varSect);
						i_24 += ((NI) 1);
					} LA207: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 114):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108):
	{
		NIM_BOOL ns_8;
		ns_8 = NIM_FALSE;
		{
			NI i_25;
			NI colontmp__13;
			NI i_26;
			i_25 = (NI)0;
			colontmp__13 = (NI)0;
			colontmp__13 = len__ast_3155(n);
			i_26 = ((NI) 0);
			{
				while (1) {
					if (!(i_26 < colontmp__13)) goto LA220;
					i_25 = i_26;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_25]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_25], (&ns_8)));
					i_26 += ((NI) 1);
				} LA220: ;
			}
		}
		{
			tyTuple__Q066krdfdsSnR5DaFMOk9bQ T225_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_11;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_10;
			if (!ns_8) goto LA223_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			nimZeroMem((void*)(&T225_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T225_));
			st_11 = NIM_NIL;
			st_11 = T225_.Field0;
			ex_10 = NIM_NIL;
			ex_10 = T225_.Field1;
			add__ast_4798(result, st_11);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_10);
			add__ast_4798(result, n);
		}
		LA223_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 58):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 59):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 60):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 66):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 47):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 65):
	{
		NIM_BOOL ns_9;
		ns_9 = NIM_FALSE;
		{
			NI i_27;
			NI colontmp__14;
			NI colontmp__15;
			NI i_28;
			i_27 = (NI)0;
			colontmp__14 = (NI)0;
			colontmp__15 = (NI)0;
			colontmp__14 = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61));
			colontmp__15 = len__ast_3155(n);
			i_28 = colontmp__14;
			{
				while (1) {
					if (!(i_28 < colontmp__15)) goto LA229;
					i_27 = i_28;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_27]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_27], (&ns_9)));
					i_28 += ((NI) 1);
				} LA229: ;
			}
		}
		{
			NI T234_;
			tyTuple__Q066krdfdsSnR5DaFMOk9bQ T235_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_12;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_11;
			NI T236_;
			if (!ns_9) goto LA232_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
			asgnRef((void**) (&(*result).typ), (*n).typ);
			T234_ = (NI)0;
			T234_ = len__ast_3155(n);
			nimZeroMem((void*)(&T235_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[(NI)(T234_ - ((NI) 1))], (&T235_));
			st_12 = NIM_NIL;
			st_12 = T235_.Field0;
			ex_11 = NIM_NIL;
			ex_11 = T235_.Field1;
			add__ast_4798(result, st_12);
			T236_ = (NI)0;
			T236_ = len__ast_3155(n);
			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T236_ - ((NI) 1))]), ex_11);
			add__ast_4798(result, n);
		}
		LA232_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74):
	{
		NIM_BOOL ns_10;
		ns_10 = NIM_FALSE;
		{
			NI i_29;
			NI colontmp__16;
			NI i_30;
			i_29 = (NI)0;
			colontmp__16 = (NI)0;
			colontmp__16 = len__ast_3155(n);
			i_30 = ((NI) 0);
			{
				while (1) {
					if (!(i_30 < colontmp__16)) goto LA240;
					i_29 = i_30;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_29]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_29], (&ns_10)));
					i_30 += ((NI) 1);
				} LA240: ;
			}
		}
		{
			if (!ns_10) goto LA243_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T249_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_13;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_12;
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA247_;
				nimZeroMem((void*)(&T249_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T249_));
				st_13 = NIM_NIL;
				st_13 = T249_.Field0;
				ex_12 = NIM_NIL;
				ex_12 = T249_.Field1;
				add__ast_4798(result, st_13);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_12);
			}
			LA247_: ;
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T254_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_14;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_13;
				if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126))) goto LA252_;
				nimZeroMem((void*)(&T254_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T254_));
				st_14 = NIM_NIL;
				st_14 = T254_.Field0;
				ex_13 = NIM_NIL;
				ex_13 = T254_.Field1;
				add__ast_4798(result, st_14);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), ex_13);
			}
			LA252_: ;
			add__ast_4798(result, n);
		}
		LA243_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42):
	{
		NIM_BOOL lhsNeedsSplit;
		NIM_BOOL rhsNeedsSplit;
		lhsNeedsSplit = NIM_FALSE;
		rhsNeedsSplit = NIM_FALSE;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&lhsNeedsSplit)));
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&rhsNeedsSplit)));
		{
			NIM_BOOL T258_;
			T258_ = (NIM_BOOL)0;
			T258_ = lhsNeedsSplit;
			if (T258_) goto LA259_;
			T258_ = rhsNeedsSplit;
			LA259_: ;
			if (!T258_) goto LA260_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T266_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_15;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_14;
				if (!lhsNeedsSplit) goto LA264_;
				nimZeroMem((void*)(&T266_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T266_));
				st_15 = NIM_NIL;
				st_15 = T266_.Field0;
				ex_14 = NIM_NIL;
				ex_14 = T266_.Field1;
				add__ast_4798(result, st_15);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_14);
			}
			LA264_: ;
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T271_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_16;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_15;
				if (!rhsNeedsSplit) goto LA269_;
				nimZeroMem((void*)(&T271_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T271_));
				st_16 = NIM_NIL;
				st_16 = T271_.Field0;
				ex_15 = NIM_NIL;
				ex_15 = T271_.Field1;
				add__ast_4798(result, st_16);
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), ex_15);
			}
			LA269_: ;
			add__ast_4798(result, n);
		}
		LA260_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		NIM_BOOL condNeedsSplit;
		NIM_BOOL bodyNeedsSplit;
		condNeedsSplit = NIM_FALSE;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&condNeedsSplit)));
		bodyNeedsSplit = NIM_FALSE;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&bodyNeedsSplit)));
		{
			NIM_BOOL T275_;
			T275_ = (NIM_BOOL)0;
			T275_ = condNeedsSplit;
			if (T275_) goto LA276_;
			T275_ = bodyNeedsSplit;
			LA276_: ;
			if (!T275_) goto LA277_;
			(*needsSplit) = NIM_TRUE;
			{
				tyTuple__Q066krdfdsSnR5DaFMOk9bQ T283_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_17;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_16;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* brk;
				tyArray__iegsN9bf6GqRiWprrJjTAoA T284_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch_4;
				tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T285_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* check_2;
				tyArray__iegsN9bf6GqRiWprrJjTAoA T286_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* newBody;
				tyArray__id9c0PBojP5C2oM2bRQSViA T287_;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T288_;
				if (!condNeedsSplit) goto LA281_;
				nimZeroMem((void*)(&T283_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T283_));
				st_17 = NIM_NIL;
				st_17 = T283_.Field0;
				ex_16 = NIM_NIL;
				ex_16 = T283_.Field1;
				nimZeroMem((void*)T284_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
				T284_[0] = (*(*ctx).g).emptyNode;
				brk = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110), T284_, 1);
				nimZeroMem((void*)T285_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
				T285_[0] = newNotCall__closureiters_474((*ctx).g, ex_16);
				T285_[1] = brk;
				branch_4 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T285_, 2);
				nimZeroMem((void*)T286_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
				T286_[0] = branch_4;
				check_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T286_, 1);
				nimZeroMem((void*)T287_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
				T287_[0] = st_17;
				T287_[1] = check_2;
				T287_[2] = (*n)._kind_6.sons->data[((NI) 1)];
				newBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T287_, 3);
				T288_ = NIM_NIL;
				T288_ = getSysSym__magicsys_16((*ctx).g, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_18));
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3704(T288_));
				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newBody);
			}
			LA281_: ;
		}
		LA277_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 45):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 46):
	{
		NIM_BOOL ns_11;
		ns_11 = NIM_FALSE;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&ns_11)));
		{
			tyTuple__Q066krdfdsSnR5DaFMOk9bQ T294_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_18;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_17;
			if (!ns_11) goto LA292_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
			asgnRef((void**) (&(*result).typ), (*n).typ);
			nimZeroMem((void*)(&T294_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T294_));
			st_18 = NIM_NIL;
			st_18 = T294_.Field0;
			ex_17 = NIM_NIL;
			ex_17 = T294_.Field1;
			add__ast_4798(result, st_18);
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_17);
			add__ast_4798(result, n);
		}
		LA292_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 127):
	{
		NIM_BOOL ns_12;
		ns_12 = NIM_FALSE;
		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&ns_12)));
		{
			tyTuple__Q066krdfdsSnR5DaFMOk9bQ T300_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* st_19;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ex_18;
			if (!ns_12) goto LA298_;
			(*needsSplit) = NIM_TRUE;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126), (*n).info);
			asgnRef((void**) (&(*result).typ), (*n).typ);
			nimZeroMem((void*)(&T300_), sizeof(tyTuple__Q066krdfdsSnR5DaFMOk9bQ));
			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T300_));
			st_19 = NIM_NIL;
			st_19 = T300_.Field0;
			ex_18 = NIM_NIL;
			ex_18 = T300_.Field1;
			transitionSonsKind__ast_4347(n, ((tyEnum_TNodeKind__jsmc0lvQl44MLrOvpRmgJQ) 112));
			asgnRef((void**) (&(*n).typ), ((tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*) NIM_NIL));
			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), st_19);
			add__ast_4798(result, n);
			add__ast_4798(result, ex_18);
		}
		LA298_: ;
	}
	break;
	default:
	{
		{
			NI i_31;
			NI colontmp__17;
			NI i_32;
			i_31 = (NI)0;
			colontmp__17 = (NI)0;
			colontmp__17 = len__ast_3155(n);
			i_32 = ((NI) 0);
			{
				while (1) {
					if (!(i_32 < colontmp__17)) goto LA304;
					i_31 = i_32;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_31]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_31], needsSplit));
					i_32 += ((NI) 1);
				} LA304: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__closureiters_371)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		{
			NIM_BOOL T5_;
			T5_ = (NIM_BOOL)0;
			T5_ = isEmptyType__ast_4780((*n).typ);
			if (!T5_) goto LA6_;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c;
				c = NIM_NIL;
				{
					NI i;
					NI colontmp_;
					NI i_2;
					i = (NI)0;
					colontmp_ = (NI)0;
					colontmp_ = safeLen__ast_3148(n);
					i_2 = ((NI) 0);
					{
						while (1) {
							if (!(i_2 < colontmp_)) goto LA11;
							i = i_2;
							c = (*n)._kind_6.sons->data[i];
							{
								NIM_BOOL T14_;
								T14_ = (NIM_BOOL)0;
								T14_ = hasYieldsInExpressions__closureiters_371(c);
								if (!T14_) goto LA15_;
								result = NIM_TRUE;
								goto BeforeRet_;
							}
							LA15_: ;
							i_2 += ((NI) 1);
						} LA11: ;
					}
				}
			}
		}
		goto LA3_;
		LA6_: ;
		{
			result = hasYields__closureiters_175(n);
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 61):
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 1);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA21;
					i_3 = i_4;
					{
						NIM_BOOL T24_;
						T24_ = (NIM_BOOL)0;
						T24_ = hasYieldsInExpressions__closureiters_371((*n)._kind_6.sons->data[i_3]);
						if (!T24_) goto LA25_;
						result = NIM_TRUE;
						goto BeforeRet_;
					}
					LA25_: ;
					i_4 += ((NI) 1);
				} LA21: ;
			}
		}
	}
	break;
	default:
	{
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c_2;
			c_2 = NIM_NIL;
			{
				NI i_5;
				NI colontmp__3;
				NI i_6;
				i_5 = (NI)0;
				colontmp__3 = (NI)0;
				colontmp__3 = safeLen__ast_3148(n);
				i_6 = ((NI) 0);
				{
					while (1) {
						if (!(i_6 < colontmp__3)) goto LA31;
						i_5 = i_6;
						c_2 = (*n)._kind_6.sons->data[i_5];
						{
							NIM_BOOL T34_;
							T34_ = (NIM_BOOL)0;
							T34_ = hasYieldsInExpressions__closureiters_371(c_2);
							if (!T34_) goto LA35_;
							result = NIM_TRUE;
							goto BeforeRet_;
						}
						LA35_: ;
						i_6 += ((NI) 1);
					} LA31: ;
				}
			}
		}
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, addGotoOut__closureiters_147)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = toStmtList__closureiters_136(n);
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NI)0;
		T4_ = len__ast_3155(result);
		T3_ = (T4_ == ((NI) 0));
		if (T3_) goto LA5_;
		T6_ = (NI)0;
		T6_ = len__ast_3155(result);
		T3_ = !(((*(*result)._kind_6.sons->data[(NI)(T6_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156)));
		LA5_: ;
		if (!T3_) goto LA7_;
		add__ast_4798(result, gotoOut);
	}
	LA7_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformBreaksAndContinuesInWhile__closureiters_179)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* before, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* after) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 111):
	{
		result = before;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	{
		(*ctx).blockLevel += ((NI) 1);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksAndContinuesInWhile__closureiters_179(ctx, (*result)._kind_6.sons->data[((NI) 1)], before, after));
		(*ctx).blockLevel -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
	{
		{
			if (!((*ctx).blockLevel == ((NI) 0))) goto LA8_;
			result = after;
		}
		LA8_: ;
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA13;
					i = i_2;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformBreaksAndContinuesInWhile__closureiters_179(ctx, (*n)._kind_6.sons->data[i], before, after));
					i_2 += ((NI) 1);
				} LA13: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformBreaksInBlock__closureiters_205)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* label, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* after) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		(*ctx).blockLevel += ((NI) 1);
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksInBlock__closureiters_205(ctx, (*result)._kind_6.sons->data[((NI) 1)], label, after));
		(*ctx).blockLevel -= ((NI) 1);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110):
	{
		{
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1))) goto LA6_;
			{
				if (!((*ctx).blockLevel == ((NI) 0))) goto LA10_;
				result = after;
			}
			LA10_: ;
		}
		goto LA4_;
		LA6_: ;
		{
			{
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = ((*label).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 3));
				if (!(T15_)) goto LA16_;
				T15_ = ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*label)._kind_4.sym);
				LA16_: ;
				if (!T15_) goto LA17_;
				result = after;
			}
			LA17_: ;
		}
		LA4_: ;
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA22;
					i = i_2;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformBreaksInBlock__closureiters_205(ctx, (*n)._kind_6.sons->data[i], label, after));
					i_2 += ((NI) 1);
				} LA22: ;
			}
		}
	}
	break;
	}
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newOr__closureiters_251)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* b) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyArray__id9c0PBojP5C2oM2bRQSViA T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	result = NIM_NIL;
	nimZeroMem((void*)T1_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T2_ = NIM_NIL;
	T2_ = getSysMagic__magicsys_29(g, (*a).info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_25), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 110));
	T1_[0] = newSymNode__ast_3704(T2_);
	T1_[1] = a;
	T1_[2] = b;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T1_, 3);
	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60(g, (*a).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	(*result).info = (*a).info;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCurExcAccess__closureiters_91)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
		if (!((*ctx).curExcSym == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = callCodegenProc__lowerings_641((*ctx).g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_24), unknownLineInfo__lineinfos_284, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		unsureAsgnRef((void**) (&(*ctx).curExcSym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_26), (*T5_).typ));
	}
	LA3_: ;
	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).curExcSym);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newNullifyCurExc__closureiters_245)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* curExc;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nilnode;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T1_;
	result = NIM_NIL;
	curExc = newCurExcAccess__closureiters_91(ctx);
	(*curExc).info = info;
	nilnode = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
	asgnRef((void**) (&(*nilnode).typ), (*curExc).typ);
	nimZeroMem((void*)T1_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T1_[0] = curExc;
	T1_[1] = nilnode;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T1_, 2);
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, collectExceptState__closureiters_256)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifStmt;
	tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g;
	result = NIM_NIL;
	ifStmt = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), (*n).info);
	g = (*ctx).g;
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* c;
		c = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3148(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					c = (*n)._kind_6.sons->data[i];
					{
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBranch;
						NI T32_;
						if (!((*c).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87))) goto LA7_;
						ifBranch = NIM_NIL;
						{
							NI T11_;
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond;
							T11_ = (NI)0;
							T11_ = len__ast_3155(c);
							if (!(((NI) 1) < T11_)) goto LA12_;
							cond = NIM_NIL;
							{
								NI i_3;
								NI colontmp__2;
								NI T15_;
								NI i_4;
								i_3 = (NI)0;
								colontmp__2 = (NI)0;
								T15_ = (NI)0;
								T15_ = len__ast_3155(c);
								colontmp__2 = (NI)(T15_ - ((NI) 1));
								i_4 = ((NI) 0);
								{
									while (1) {
										tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nextCond;
										tyArray__id9c0PBojP5C2oM2bRQSViA T18_;
										tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T19_;
										if (!(i_4 < colontmp__2)) goto LA17;
										i_3 = i_4;
										nimZeroMem((void*)T18_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
										T19_ = NIM_NIL;
										T19_ = getSysMagic__magicsys_29(g, (*c).info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_23), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 15));
										T18_[0] = newSymNode__ast_3704(T19_);
										T18_[1] = callCodegenProc__lowerings_641(g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_24), unknownLineInfo__lineinfos_284, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
										T18_[2] = (*c)._kind_6.sons->data[i_3];
										nextCond = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T18_, 3);
										asgnRef((void**) (&(*nextCond).typ), getSysType__magicsys_60((*ctx).g, (*c).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
										(*nextCond).info = (*c).info;
										{
											if (!(cond == 0)) goto LA22_;
											cond = nextCond;
										}
										goto LA20_;
										LA22_: ;
										{
											cond = newOr__closureiters_251(g, cond, nextCond);
										}
										LA20_: ;
										i_4 += ((NI) 1);
									} LA17: ;
								}
							}
							ifBranch = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (*c).info);
							add__ast_4798(ifBranch, cond);
						}
						goto LA9_;
						LA12_: ;
						{
							{
								NI T28_;
								T28_ = (NI)0;
								T28_ = len__ast_3155(ifStmt);
								if (!(T28_ == ((NI) 0))) goto LA29_;
								ifStmt = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*c).info);
								ifBranch = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*c).info);
							}
							goto LA26_;
							LA29_: ;
							{
								ifBranch = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), (*c).info);
							}
							LA26_: ;
						}
						LA9_: ;
						T32_ = (NI)0;
						T32_ = len__ast_3155(c);
						add__ast_4798(ifBranch, (*c)._kind_6.sons->data[(NI)(T32_ - ((NI) 1))]);
						add__ast_4798(ifStmt, ifBranch);
					}
					LA7_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
	{
		NI T35_;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T38_;
		T35_ = (NI)0;
		T35_ = len__ast_3155(ifStmt);
		if (!!((T35_ == ((NI) 0)))) goto LA36_;
		nimZeroMem((void*)T38_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T38_[0] = newNullifyCurExc__closureiters_245(ctx, (*n).info);
		T38_[1] = ifStmt;
		result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T38_, 2);
	}
	goto LA33_;
	LA36_: ;
	{
		result = (*(*ctx).g).emptyNode;
	}
	LA33_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, getFinallyNode__closureiters_357)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI T1_;
	result = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__ast_3155(n);
	result = (*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
	{
		if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 107))) goto LA4_;
		result = (*result)._kind_6.sons->data[((NI) 0)];
	}
	goto LA2_;
	LA4_: ;
	{
		result = (*(*ctx).g).emptyNode;
	}
	LA2_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newUnrollFinallyAccess__closureiters_84)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T5_;
		if (!((*ctx).unrollFinallySym == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
		unsureAsgnRef((void**) (&(*ctx).unrollFinallySym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_27), T5_));
	}
	LA3_: ;
	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).unrollFinallySym);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newTmpResultAccess__closureiters_77)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		if (!((*ctx).tmpResultSym == 0)) goto LA3_;
		unsureAsgnRef((void**) (&(*ctx).tmpResultSym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_28), (*(*(*ctx).fn).typ).sons->data[((NI) 0)]));
	}
	LA3_: ;
	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).tmpResultSym);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformReturnsInTry__closureiters_1111)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* goto_1;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T17_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* asgn;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T4_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T5_;
			asgn = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (*n).info);
			T3_ = NIM_NIL;
			T3_ = newUnrollFinallyAccess__closureiters_84(ctx, (*n).info);
			add__ast_4798(asgn, T3_);
			T4_ = NIM_NIL;
			T4_ = getSysType__magicsys_60((*ctx).g, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
			T5_ = NIM_NIL;
			T5_ = newIntTypeNode__ast_3771(IL64(1), T4_);
			add__ast_4798(asgn, T5_);
			add__ast_4798(result, asgn);
		}
		{
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* asgnTmpResult;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* x;
			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA8_;
			asgnTmpResult = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (*n).info);
			T10_ = NIM_NIL;
			T10_ = newTmpResultAccess__closureiters_77(ctx);
			add__ast_4798(asgnTmpResult, T10_);
			{
				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74))) goto LA13_;
				x = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
			}
			goto LA11_;
			LA13_: ;
			{
				x = (*n)._kind_6.sons->data[((NI) 0)];
			}
			LA11_: ;
			add__ast_4798(asgnTmpResult, x);
			add__ast_4798(result, asgnTmpResult);
		}
		LA8_: ;
		T16_ = NIM_NIL;
		T16_ = newNullifyCurExc__closureiters_245(ctx, (*n).info);
		add__ast_4798(result, T16_);
		nimZeroMem((void*)T17_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T17_[0] = newIntLit__lowerings_701((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
		goto_1 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), T17_, 1);
		add__ast_4798(result, goto_1);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	{
		{
			NIM_BOOL T22_;
			T22_ = (NIM_BOOL)0;
			T22_ = hasYields__closureiters_175(n);
			if (!T22_) goto LA23_;
		}
		goto LA20_;
		LA23_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA28;
						i = i_2;
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformReturnsInTry__closureiters_1111(ctx, (*n)._kind_6.sons->data[i]));
						i_2 += ((NI) 1);
					} LA28: ;
				}
			}
		}
		LA20_: ;
	}
	break;
	default:
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA32;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), transformReturnsInTry__closureiters_1111(ctx, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA32: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newEndFinallyNode__closureiters_1092)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* curExc;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nilnode;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cmp;
	tyArray__id9c0PBojP5C2oM2bRQSViA T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* retStmt;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branch;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T17_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* nullifyExc;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T18_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T19_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* raiseStmt;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T20_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elseBranch;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T21_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T22_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBody;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T23_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elifBranch;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T24_;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T25_;
	result = NIM_NIL;
	curExc = newCurExcAccess__closureiters_91(ctx);
	nilnode = newNode__ast_3289(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23));
	asgnRef((void**) (&(*nilnode).typ), (*curExc).typ);
	nimZeroMem((void*)T1_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T2_ = NIM_NIL;
	T2_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_29), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 87));
	T1_[0] = newSymNode__ast_3707(T2_, info);
	T1_[1] = curExc;
	T1_[2] = nilnode;
	cmp = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T1_, 3);
	asgnRef((void**) (&(*cmp).typ), getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1)));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* retValue;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T14_;
		if (!((*ctx).nearestFinally == ((NI) 0))) goto LA5_;
		{
			if (!((*(*(*ctx).fn).typ).sons->data[((NI) 0)] == 0)) goto LA9_;
			retValue = (*(*ctx).g).emptyNode;
		}
		goto LA7_;
		LA9_: ;
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T12_;
			tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T13_;
			nimZeroMem((void*)T12_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T13_ = NIM_NIL;
			T13_ = getClosureIterResult__lambdalifting_62((*ctx).g, (*ctx).fn, (*ctx).idgen);
			T12_[0] = newSymNode__ast_3707(T13_, info);
			T12_[1] = newTmpResultAccess__closureiters_77(ctx);
			retValue = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 74), T12_, 2);
		}
		LA7_: ;
		nimZeroMem((void*)T14_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T14_[0] = retValue;
		retStmt = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109), T14_, 1);
	}
	goto LA3_;
	LA5_: ;
	{
		tyArray__iegsN9bf6GqRiWprrJjTAoA T16_;
		nimZeroMem((void*)T16_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T16_[0] = newIntLit__lowerings_701((*ctx).g, info, ((NI64) ((*ctx).nearestFinally)));
		retStmt = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), T16_, 1);
	}
	LA3_: ;
	nimZeroMem((void*)T17_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T17_[0] = cmp;
	T17_[1] = retStmt;
	branch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T17_, 2);
	nimZeroMem((void*)T18_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T19_ = NIM_NIL;
	T19_ = getCompilerProc__magicsys_145((*ctx).g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_30));
	T18_[0] = newSymNode__ast_3704(T19_);
	T18_[1] = nilnode;
	nullifyExc = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T18_, 2);
	(*nullifyExc).info = info;
	nimZeroMem((void*)T20_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	T20_[0] = curExc;
	raiseStmt = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108), T20_, 1);
	(*raiseStmt).info = info;
	nimZeroMem((void*)T21_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	nimZeroMem((void*)T22_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T22_[0] = nullifyExc;
	T22_[1] = raiseStmt;
	T21_[0] = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T22_, 2);
	elseBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T21_, 1);
	nimZeroMem((void*)T23_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T23_[0] = branch;
	T23_[1] = elseBranch;
	ifBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T23_, 2);
	nimZeroMem((void*)T24_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T24_[0] = newUnrollFinallyAccess__closureiters_84(ctx, info);
	T24_[1] = ifBody;
	elifBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T24_, 2);
	(*elifBranch).info = info;
	nimZeroMem((void*)T25_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	T25_[0] = elifBranch;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T25_, 1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__closureiters_316)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	{
		NIM_BOOL T3_;
		NIM_BOOL T4_;
		NI T7_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* branchBody;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elseBranch;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T20_;
		T3_ = (NIM_BOOL)0;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92));
		LA5_: ;
		T3_ = T4_;
		if (!(T3_)) goto LA6_;
		T7_ = (NI)0;
		T7_ = len__ast_3155((*n)._kind_6.sons->data[((NI) 1)]);
		T3_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88)));
		LA6_: ;
		if (!T3_) goto LA8_;
		branchBody = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T11_;
			tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T12_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
			nimZeroMem((void*)T11_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T11_[0] = newUnrollFinallyAccess__closureiters_84(ctx, (*n).info);
			T12_ = NIM_NIL;
			T12_ = getSysType__magicsys_60((*ctx).g, (*n).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
			T11_[1] = newIntTypeNode__ast_3771(IL64(1), T12_);
			T13_ = NIM_NIL;
			T13_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T11_, 2);
			add__ast_4798(branchBody, T13_);
		}
		{
			tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T15_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
			nimZeroMem((void*)T15_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
			T15_[0] = newCurExcAccess__closureiters_91(ctx);
			T15_[1] = callCodegenProc__lowerings_641((*ctx).g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_24), unknownLineInfo__lineinfos_284, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			T16_ = NIM_NIL;
			T16_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T15_, 2);
			add__ast_4798(branchBody, T16_);
		}
		{
			tyArray__iegsN9bf6GqRiWprrJjTAoA T18_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T19_;
			nimZeroMem((void*)T18_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
			T18_[0] = newIntLit__lowerings_701((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
			T19_ = NIM_NIL;
			T19_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), T18_, 1);
			add__ast_4798(branchBody, T19_);
		}
		nimZeroMem((void*)T20_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T20_[0] = branchBody;
		elseBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T20_, 1);
		add__ast_4798((*n)._kind_6.sons->data[((NI) 1)], elseBranch);
	}
	LA8_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformClosureIteratorBody__closureiters_1187)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		result = addGotoOut__closureiters_147(result, gotoOut);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					{
						NIM_BOOL T8_;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* go;
						tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
						NI T14_;
						T8_ = (NIM_BOOL)0;
						T8_ = hasYields__closureiters_175((*n)._kind_6.sons->data[i]);
						if (!T8_) goto LA9_;
						go = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), (*(*n)._kind_6.sons->data[i]).info);
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformClosureIteratorBody__closureiters_1187(ctx, (*n)._kind_6.sons->data[i], go));
						s = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*(*n)._kind_6.sons->data[(NI)(i + ((NI) 1))]).info);
						{
							NI j;
							NI colontmp__2;
							NI colontmp__3;
							NI i_3;
							j = (NI)0;
							colontmp__2 = (NI)0;
							colontmp__3 = (NI)0;
							colontmp__2 = (NI)(i + ((NI) 1));
							colontmp__3 = len__ast_3155(n);
							i_3 = colontmp__2;
							{
								while (1) {
									if (!(i_3 < colontmp__3)) goto LA13;
									j = i_3;
									add__ast_4798(s, (*n)._kind_6.sons->data[j]);
									i_3 += ((NI) 1);
								} LA13: ;
							}
						}
						asgnRef((void**) (&(*n)._kind_6.sons), (tySequence__IeU9azYSNIK3V9b36Ir6NZcw*) setLengthSeqV2(((*n)._kind_6.sons)?&((*n)._kind_6.sons)->Sup:NIM_NIL, (&NTItnodeseq__IeU9azYSNIK3V9b36Ir6NZcw_), ((NI) ((NI)(i + ((NI) 1))))));
						T14_ = (NI)0;
						T14_ = newState__closureiters_97(ctx, s, go);
						(void)(T14_);
						{
							tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T17_;
							T17_ = NIM_NIL;
							T17_ = transformClosureIteratorBody__closureiters_1187(ctx, s, gotoOut);
							if (!!((T17_ == s))) goto LA18_;
							internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_21), TM__V8P104kFw4tUofP7Txw6Sw_22);
						}
						LA18_: ;
						goto LA3;
					}
					LA9_: ;
					i_2 += ((NI) 1);
				} LA5: ;
			}
		} LA3: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104):
	{
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		add__ast_4798(result, n);
		add__ast_4798(result, gotoOut);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 50):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[((NI) 0)], gotoOut));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), transformClosureIteratorBody__closureiters_1187(ctx, (*result)._kind_6.sons->data[((NI) 0)], gotoOut));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 49):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 85):
	{
		NI T23_;
		NI T24_;
		NI T25_;
		NI T26_;
		T23_ = (NI)0;
		T23_ = len__ast_3155(result);
		T24_ = (NI)0;
		T24_ = len__ast_3155(result);
		asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[(NI)(T24_ - ((NI) 1))], gotoOut));
		T25_ = (NI)0;
		T25_ = len__ast_3155(result);
		T26_ = (NI)0;
		T26_ = len__ast_3155(result);
		asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))]), transformClosureIteratorBody__closureiters_1187(ctx, (*result)._kind_6.sons->data[(NI)(T26_ - ((NI) 1))], gotoOut));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 97):
	{
		{
			NI i_4;
			NI colontmp__4;
			NI i_5;
			i_4 = (NI)0;
			colontmp__4 = (NI)0;
			colontmp__4 = len__ast_3155(n);
			i_5 = ((NI) 0);
			{
				while (1) {
					if (!(i_5 < colontmp__4)) goto LA30;
					i_4 = i_5;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_4]), transformClosureIteratorBody__closureiters_1187(ctx, (*n)._kind_6.sons->data[i_4], gotoOut));
					i_5 += ((NI) 1);
				} LA30: ;
			}
		}
		{
			NI T33_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elseBranch;
			tyArray__iegsN9bf6GqRiWprrJjTAoA T36_;
			T33_ = (NI)0;
			T33_ = len__ast_3155(n);
			if (!!(((*(*n)._kind_6.sons->data[(NI)(T33_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88)))) goto LA34_;
			nimZeroMem((void*)T36_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
			T36_[0] = gotoOut;
			elseBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T36_, 1);
			add__ast_4798(n, elseBranch);
		}
		LA34_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s_2;
		NI T38_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifNode;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elifBranch;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elseBranch_2;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T39_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), (*n).info);
		s_2 = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		T38_ = (NI)0;
		T38_ = newState__closureiters_97(ctx, s_2, result);
		(void)(T38_);
		ifNode = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), (*n).info);
		elifBranch = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), (*n).info);
		add__ast_4798(elifBranch, (*n)._kind_6.sons->data[((NI) 0)]);
		body = addGotoOut__closureiters_147((*n)._kind_6.sons->data[((NI) 1)], result);
		body = transformBreaksAndContinuesInWhile__closureiters_179(ctx, body, result, gotoOut);
		body = transformClosureIteratorBody__closureiters_1187(ctx, body, result);
		add__ast_4798(elifBranch, body);
		add__ast_4798(ifNode, elifBranch);
		nimZeroMem((void*)T39_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T39_[0] = gotoOut;
		elseBranch_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 88), T39_, 1);
		add__ast_4798(ifNode, elseBranch_2);
		add__ast_4798(s_2, ifNode);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112):
	{
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[((NI) 1)], gotoOut));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksInBlock__closureiters_205(ctx, (*result)._kind_6.sons->data[((NI) 1)], (*result)._kind_6.sons->data[((NI) 0)], gotoOut));
		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformClosureIteratorBody__closureiters_1187(ctx, (*result)._kind_6.sons->data[((NI) 1)], gotoOut));
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 154):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tryBody;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exceptBody;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* finallyBody;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T42_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T43_;
		NI tryIdx;
		NI T44_;
		NI exceptIdx;
		NI finallyIdx;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* outToFinally;
		(*ctx).hasExceptions = NIM_TRUE;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), (*n).info);
		tryBody = toStmtList__closureiters_136((*n)._kind_6.sons->data[((NI) 0)]);
		exceptBody = collectExceptState__closureiters_256(ctx, n);
		nimZeroMem((void*)T42_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T42_[0] = getFinallyNode__closureiters_357(ctx, n);
		finallyBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T42_, 1);
		finallyBody = transformReturnsInTry__closureiters_1111(ctx, finallyBody);
		T43_ = NIM_NIL;
		T43_ = newEndFinallyNode__closureiters_1092(ctx, (*finallyBody).info);
		add__ast_4798(finallyBody, T43_);
		T44_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		tryIdx = T44_;
		exceptIdx = (NI)0;
		finallyIdx = (NI)0;
		{
			if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA47_;
			exceptIdx = ((NI64)-((NI)(tryIdx + ((NI) 1))));
			finallyIdx = (NI)(tryIdx + ((NI) 2));
		}
		goto LA45_;
		LA47_: ;
		{
			exceptIdx = (NI)(tryIdx + ((NI) 1));
			finallyIdx = (NI)(tryIdx + ((NI) 1));
		}
		LA45_: ;
		outToFinally = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), (*finallyBody).info);
		{
			NI oldExcHandlingState;
			NI realTryIdx;
			NI realFinallyIdx;
			oldExcHandlingState = (*ctx).curExcHandlingState;
			(*ctx).curExcHandlingState = exceptIdx;
			realTryIdx = newState__closureiters_97(ctx, tryBody, result);
			{
				NI realExceptIdx;
				if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA53_;
				(*ctx).curExcHandlingState = finallyIdx;
				realExceptIdx = newState__closureiters_97(ctx, exceptBody, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
			}
			LA53_: ;
			(*ctx).curExcHandlingState = oldExcHandlingState;
			realFinallyIdx = newState__closureiters_97(ctx, finallyBody, outToFinally);
		}
		{
			NI oldNearestFinally;
			NI oldExcHandlingState_2;
			oldNearestFinally = (*ctx).nearestFinally;
			(*ctx).nearestFinally = finallyIdx;
			oldExcHandlingState_2 = (*ctx).curExcHandlingState;
			(*ctx).curExcHandlingState = exceptIdx;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T58_;
				T58_ = NIM_NIL;
				T58_ = transformReturnsInTry__closureiters_1111(ctx, tryBody);
				if (!!((T58_ == tryBody))) goto LA59_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_31), TM__V8P104kFw4tUofP7Txw6Sw_32);
			}
			LA59_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T63_;
				T63_ = NIM_NIL;
				T63_ = transformClosureIteratorBody__closureiters_1187(ctx, tryBody, outToFinally);
				if (!!((T63_ == tryBody))) goto LA64_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_33), TM__V8P104kFw4tUofP7Txw6Sw_34);
			}
			LA64_: ;
			(*ctx).curExcHandlingState = finallyIdx;
			addElseToExcept__closureiters_316(ctx, exceptBody);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T68_;
				T68_ = NIM_NIL;
				T68_ = transformReturnsInTry__closureiters_1111(ctx, exceptBody);
				if (!!((T68_ == exceptBody))) goto LA69_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_35), TM__V8P104kFw4tUofP7Txw6Sw_36);
			}
			LA69_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T73_;
				T73_ = NIM_NIL;
				T73_ = transformClosureIteratorBody__closureiters_1187(ctx, exceptBody, outToFinally);
				if (!!((T73_ == exceptBody))) goto LA74_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_37), TM__V8P104kFw4tUofP7Txw6Sw_38);
			}
			LA74_: ;
			(*ctx).curExcHandlingState = oldExcHandlingState_2;
			(*ctx).nearestFinally = oldNearestFinally;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T78_;
				T78_ = NIM_NIL;
				T78_ = transformClosureIteratorBody__closureiters_1187(ctx, finallyBody, gotoOut);
				if (!!((T78_ == finallyBody))) goto LA79_;
				internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_39), TM__V8P104kFw4tUofP7Txw6Sw_40);
			}
			LA79_: ;
		}
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 94):
	{
		NimStringDesc* T82_;
		T82_ = NIM_NIL;
		T82_ = rawNewString((reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)) ? reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_))->Sup.len : 0) + 13);
appendString(T82_, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_41));
appendString(T82_, reprEnum((NI)(*n).kind, (&NTItnodekind__clSgDh22o9au33BrVH9bDQZw_)));
		internalErrorImpl__msgs_1441((*(*ctx).g).config, unknownLineInfo__lineinfos_284, T82_, TM__V8P104kFw4tUofP7Txw6Sw_42);
	}
	break;
	default:
	{
		{
			NI i_6;
			NI colontmp__5;
			NI i_7;
			i_6 = (NI)0;
			colontmp__5 = (NI)0;
			colontmp__5 = len__ast_3155(n);
			i_7 = ((NI) 0);
			{
				while (1) {
					if (!(i_7 < colontmp__5)) goto LA86;
					i_6 = i_7;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_6]), transformClosureIteratorBody__closureiters_1187(ctx, (*n)._kind_6.sons->data[i_6], gotoOut));
					i_7 += ((NI) 1);
				} LA86: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipStmtList__closureiters_1505)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
{	result = NIM_NIL;
	result = n;
	{
		while (1) {
			if (!((*result).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115))) goto LA2;
			{
				NI T5_;
				T5_ = (NI)0;
				T5_ = len__ast_3155(result);
				if (!(T5_ == ((NI) 0))) goto LA6_;
				result = (*(*ctx).g).emptyNode;
				goto BeforeRet_;
			}
			LA6_: ;
			result = (*result)._kind_6.sons->data[((NI) 0)];
		} LA2: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__closureiters_1517)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NI stateIdx) {
	NI result;
	NI maxJumps;
	NI T1_;
	NI stateIdx_2;
	result = (NI)0;
	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	maxJumps = T1_;
	stateIdx_2 = stateIdx;
	{
		while (1) {
			NI label;
			NI newLabel;
			label = stateIdx_2;
			{
				if (!(label == (*ctx).exitStateIdx)) goto LA6_;
				goto LA2;
			}
			LA6_: ;
			newLabel = label;
			{
				if (!(label == ((NI) -1))) goto LA10_;
				newLabel = (*ctx).exitStateIdx;
			}
			goto LA8_;
			LA10_: ;
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fs;
				fs = skipStmtList__closureiters_1505(ctx, (*(*ctx).states->data[label])._kind_6.sons->data[((NI) 1)]);
				{
					if (!((*fs).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156))) goto LA15_;
					newLabel = ((NI) ((*(*fs)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
				}
				LA15_: ;
			}
			LA8_: ;
			{
				if (!(label == newLabel)) goto LA19_;
				goto LA2;
			}
			LA19_: ;
			stateIdx_2 = newLabel;
			maxJumps -= ((NI) 1);
			{
				if (!(maxJumps == ((NI) 0))) goto LA23_;
			}
			LA23_: ;
		}
	} LA2: ;
	result = ((NI) ((*(*(*ctx).states->data[stateIdx_2])._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, skipThroughEmptyStates__closureiters_1543)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156):
	{
		NI T3_;
		result = copyTree__ast_4432(n);
		T3_ = (NI)0;
		T3_ = skipEmptyStates__closureiters_1517((&(*ctx)), ((NI) ((*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal)));
		(*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (T3_));
	}
	break;
	default:
	{
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3155(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA7;
					i = i_2;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), skipThroughEmptyStates__closureiters_1543(ctx, (*n)._kind_6.sons->data[i]));
					i_2 += ((NI) 1);
				} LA7: ;
			}
		}
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__closureiters_1673)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* goOut;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T1_;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T2_;
	NI iValid;
	NI i_5;
	nimZeroMem((void*)T1_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	T1_[0] = newIntLit__lowerings_701((*ctx).g, T2_, IL64(-1));
	goOut = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), T1_, 1);
	(*ctx).exitStateIdx = newState__closureiters_97(ctx, goOut, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	iValid = ((NI) 0);
	{
		NI i;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s;
		NI i_2;
		NI L;
		NI T4_;
		i = (NI)0;
		s = NIM_NIL;
		i_2 = ((NI) 0);
		T4_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		L = T4_;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
				if (!(i_2 < L)) goto LA6;
				i = i_2;
				s = (*ctx).states->data[i_2];
				body = skipStmtList__closureiters_1505((&(*ctx)), (*s)._kind_6.sons->data[((NI) 1)]);
				{
					NIM_BOOL T9_;
					NIM_BOOL T10_;
					NI T12_;
					T9_ = (NIM_BOOL)0;
					T10_ = (NIM_BOOL)0;
					T10_ = ((*body).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156));
					if (!(T10_)) goto LA11_;
					T12_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
					T10_ = !((i == (NI)(T12_ - ((NI) 1))));
					LA11_: ;
					T9_ = T10_;
					if (!(T9_)) goto LA13_;
					T9_ = !((i == ((NI) 0)));
					LA13_: ;
					if (!T9_) goto LA14_;
					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = IL64(-1);
				}
				goto LA7_;
				LA14_: ;
				{
					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (iValid));
					iValid += ((NI) 1);
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA6: ;
		}
	}
	{
		NI i_3;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* s_2;
		NI i_4;
		NI L_2;
		NI T18_;
		i_3 = (NI)0;
		s_2 = NIM_NIL;
		i_4 = ((NI) 0);
		T18_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
		L_2 = T18_;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body_2;
				if (!(i_4 < L_2)) goto LA20;
				i_3 = i_4;
				s_2 = (*ctx).states->data[i_4];
				body_2 = skipStmtList__closureiters_1505((&(*ctx)), (*s_2)._kind_6.sons->data[((NI) 1)]);
				{
					NIM_BOOL T23_;
					tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
					NI excHandlState;
					T23_ = (NIM_BOOL)0;
					T23_ = !(((*body_2).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156)));
					if (T23_) goto LA24_;
					T23_ = (i_3 == ((NI) 0));
					LA24_: ;
					if (!T23_) goto LA25_;
					T27_ = NIM_NIL;
					T27_ = skipThroughEmptyStates__closureiters_1543(ctx, s_2);
					(void)(T27_);
					excHandlState = (*ctx).exceptionTable->data[i_3];
					{
						NI T32_;
						if (!(excHandlState < ((NI) 0))) goto LA30_;
						T32_ = (NI)0;
						T32_ = skipEmptyStates__closureiters_1517((&(*ctx)), ((NI64)-(excHandlState)));
						(*ctx).exceptionTable->data[i_3] = ((NI64)-(T32_));
					}
					goto LA28_;
					LA30_: ;
					{
						if (!!((excHandlState == ((NI) 0)))) goto LA34_;
						(*ctx).exceptionTable->data[i_3] = skipEmptyStates__closureiters_1517((&(*ctx)), excHandlState);
					}
					goto LA28_;
					LA34_: ;
					LA28_: ;
				}
				LA25_: ;
				i_4 += ((NI) 1);
			} LA20: ;
		}
	}
	i_5 = ((NI) 0);
	{
		while (1) {
			NI T38_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* fs;
			T38_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
			if (!(i_5 < (NI)(T38_ - ((NI) 1)))) goto LA37;
			fs = skipStmtList__closureiters_1505((&(*ctx)), (*(*ctx).states->data[i_5])._kind_6.sons->data[((NI) 1)]);
			{
				NIM_BOOL T41_;
				T41_ = (NIM_BOOL)0;
				T41_ = ((*fs).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156));
				if (!(T41_)) goto LA42_;
				T41_ = !((i_5 == ((NI) 0)));
				LA42_: ;
				if (!T41_) goto LA43_;
				delete__closureiters_1723((&(*ctx).states), ((NI) (i_5)));
				delete__closureiters_1760((&(*ctx).exceptionTable), ((NI) (i_5)));
			}
			goto LA39_;
			LA43_: ;
			{
				i_5 += ((NI) 1);
			}
			LA39_: ;
		} LA37: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAccess__closureiters_35)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T5_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T6_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T7_;
		if (!((*ctx).stateVarSym == 0)) goto LA3_;
		T5_ = NIM_NIL;
		T5_ = getEnvParam__lambdalifting_131((*ctx).fn);
		T6_ = NIM_NIL;
		T6_ = newSymNode__ast_3704(T5_);
		T7_ = NIM_NIL;
		T7_ = getStateField__lambdalifting_4664((*ctx).g, (*ctx).fn);
		result = rawIndirectAccess__lowerings_331(T6_, T7_, (*(*ctx).fn).info);
	}
	goto LA1_;
	LA3_: ;
	{
		result = newSymNode__ast_3704((*ctx).stateVarSym);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAssgn__closureiters_41)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* toValue) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T1_;
	result = NIM_NIL;
	nimZeroMem((void*)T1_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T1_[0] = newStateAccess__closureiters_35(ctx);
	T1_[1] = toValue;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T1_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newStateAssgn__closureiters_45)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, NI stateNo) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
	result = NIM_NIL;
	nimZeroMem((void*)(&T1_), sizeof(tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw));
	T2_ = NIM_NIL;
	T2_ = getSysType__magicsys_60((*ctx).g, T1_, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	T3_ = NIM_NIL;
	T3_ = newIntTypeNode__ast_3771(((NI64) (stateNo)), T2_);
	result = newStateAssgn__closureiters_41(ctx, T3_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__closureiters_1389)(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	NI result;
	result = (NI)0;
	result = ((NI) ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformStateAssignments__closureiters_1400)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	result = NIM_NIL;
	result = n;
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 126):
	{
		{
			NIM_BOOL T4_;
			NI T5_;
			NI T9_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
			tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* retStmt;
			T4_ = (NIM_BOOL)0;
			T5_ = (NI)0;
			T5_ = len__ast_3155(n);
			T4_ = !((T5_ == ((NI) 0)));
			if (!(T4_)) goto LA6_;
			T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 104));
			LA6_: ;
			if (!T4_) goto LA7_;
			result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
			T9_ = (NI)0;
			T9_ = stateFromGotoState__closureiters_1389((*n)._kind_6.sons->data[((NI) 1)]);
			T10_ = NIM_NIL;
			T10_ = newStateAssgn__closureiters_45(ctx, T9_);
			add__ast_4798(result, T10_);
			retStmt = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109), (*n).info);
			{
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* a;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* retVal;
				tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T15_;
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T16_;
				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1)))) goto LA13_;
				a = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).info);
				retVal = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
				T15_ = NIM_NIL;
				T15_ = getClosureIterResult__lambdalifting_62((*ctx).g, (*ctx).fn, (*ctx).idgen);
				T16_ = NIM_NIL;
				T16_ = newSymNode__ast_3704(T15_);
				add__ast_4798(a, T16_);
				add__ast_4798(a, retVal);
				add__ast_4798(retStmt, a);
			}
			goto LA11_;
			LA13_: ;
			{
				add__ast_4798(retStmt, (*(*ctx).g).emptyNode);
			}
			LA11_: ;
			add__ast_4798(result, retStmt);
		}
		goto LA2_;
		LA7_: ;
		{
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = len__ast_3155(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA21;
						i = i_2;
						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformStateAssignments__closureiters_1400(ctx, (*n)._kind_6.sons->data[i]));
						i_2 += ((NI) 1);
					} LA21: ;
				}
			}
		}
		LA2_: ;
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 1) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 23):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 51) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 52):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 79) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 81):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 83) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 84):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 98):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 113):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 122) ... ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 123):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 125):
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 159):
	{
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 109):
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T24_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		T24_ = NIM_NIL;
		T24_ = newStateAssgn__closureiters_45(ctx, ((NI) -1));
		add__ast_4798(result, T24_);
		add__ast_4798(result, n);
	}
	break;
	case ((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156):
	{
		NI T26_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T27_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* breakState;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T28_;
		result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
		T26_ = (NI)0;
		T26_ = stateFromGotoState__closureiters_1389(n);
		T27_ = NIM_NIL;
		T27_ = newStateAssgn__closureiters_45(ctx, T26_);
		add__ast_4798(result, T27_);
		breakState = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 110), (*n).info);
		T28_ = NIM_NIL;
		T28_ = newSymNode__ast_3704((*ctx).stateLoopLabel);
		add__ast_4798(breakState, T28_);
		add__ast_4798(result, breakState);
	}
	break;
	default:
	{
		{
			NI i_3;
			NI colontmp__2;
			NI i_4;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = len__ast_3155(n);
			i_4 = ((NI) 0);
			{
				while (1) {
					if (!(i_4 < colontmp__2)) goto LA32;
					i_3 = i_4;
					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), transformStateAssignments__closureiters_1400(ctx, (*n)._kind_6.sons->data[i_3]));
					i_4 += ((NI) 1);
				} LA32: ;
			}
		}
	}
	break;
	}
	return result;
}
static N_INLINE(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg, nextTypeId__ast_3122)(tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* x) {
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	(*x).typeId_0 += ((NI) 1);
	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg));
	result.module = (*x).module;
	result.item = (*x).typeId_0;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA*, newArrayType__closureiters_1559)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, NI n, tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* t, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* owner) {
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* result;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* rng;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T2_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T3_;
	result = NIM_NIL;
	T1_ = nextTypeId__ast_3122(idgen);
	result = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 16), T1_, owner);
	T2_ = nextTypeId__ast_3122(idgen);
	rng = newType__ast_3884(((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 20), T2_, owner);
	nimZeroMem((void*)T3_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T3_[0] = newIntLit__lowerings_701(g, (*owner).info, IL64(0));
	T3_[1] = newIntLit__lowerings_701(g, (*owner).info, ((NI64) ((NI)(n - ((NI) 1)))));
	asgnRef((void**) (&(*rng).n), newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 44), T3_, 2));
	rawAddSon__ast_4276(rng, t, NIM_TRUE);
	rawAddSon__ast_4276(result, rng, NIM_TRUE);
	rawAddSon__ast_4276(result, t, NIM_TRUE);
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, createExceptionTable__closureiters_1567)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	NI T1_;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* T2_;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 41), (*(*ctx).fn).info);
	T1_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
	T2_ = NIM_NIL;
	T2_ = getSysType__magicsys_60((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33));
	asgnRef((void**) (&(*result).typ), newArrayType__closureiters_1559((*ctx).g, T1_, T2_, (*ctx).idgen, (*ctx).fn));
	{
		NI* i;
		NI i_2;
		NI L;
		NI T4_;
		i = (NI*)0;
		i_2 = ((NI) 0);
		T4_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
		L = T4_;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* elem;
				if (!(i_2 < L)) goto LA6;
				i = (&(*ctx).exceptionTable->data[i_2]);
				elem = newIntNode__ast_3711(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 6), ((NI64) ((*i))));
				asgnRef((void**) (&(*elem).typ), getSysType__magicsys_60((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 33)));
				add__ast_4798(result, elem);
				i_2 += ((NI) 1);
			} LA6: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, newCatchBody__closureiters_1582)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TLineInfo__66OQV9bsmGEfS6hVHBswcPw info) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* intTyp;
	tyObject_TType__kQDDJGUiaUAtO9c9b6LjZYjA* boolTyp;
	result = NIM_NIL;
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), info);
	intTyp = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 31));
	boolTyp = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__b28l2MkhJpnFhatVrsrXpg) 1));
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* getNextState;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T2_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T3_;
		nimZeroMem((void*)T2_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T2_[0] = createExceptionTable__closureiters_1567(ctx);
		T2_[1] = newStateAccess__closureiters_35(ctx);
		getNextState = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 42), T2_, 2);
		asgnRef((void**) (&(*getNextState).typ), intTyp);
		T3_ = NIM_NIL;
		T3_ = newStateAssgn__closureiters_41(ctx, getNextState);
		add__ast_4798(result, T3_);
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond;
		tyArray__id9c0PBojP5C2oM2bRQSViA T5_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T6_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* raiseStmt;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T7_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBranch;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T8_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifStmt;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T9_;
		nimZeroMem((void*)T5_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
		T6_ = NIM_NIL;
		T6_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_29), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 70));
		T5_[0] = newSymNode__ast_3704(T6_);
		T5_[1] = newStateAccess__closureiters_35(ctx);
		T5_[2] = newIntTypeNode__ast_3771(IL64(0), intTyp);
		cond = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T5_, 3);
		asgnRef((void**) (&(*cond).typ), boolTyp);
		nimZeroMem((void*)T7_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T7_[0] = (*(*ctx).g).emptyNode;
		raiseStmt = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 108), T7_, 1);
		nimZeroMem((void*)T8_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T8_[0] = cond;
		T8_[1] = raiseStmt;
		ifBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T8_, 2);
		nimZeroMem((void*)T9_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T9_[0] = ifBranch;
		ifStmt = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T9_, 1);
		add__ast_4798(result, ifStmt);
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond_2;
		tyArray__id9c0PBojP5C2oM2bRQSViA T11_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T12_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* asgn;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T13_;
		nimZeroMem((void*)T11_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
		T12_ = NIM_NIL;
		T12_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_43), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72));
		T11_[0] = newSymNode__ast_3704(T12_);
		T11_[1] = newIntTypeNode__ast_3771(IL64(0), intTyp);
		T11_[2] = newStateAccess__closureiters_35(ctx);
		cond_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T11_, 3);
		asgnRef((void**) (&(*cond_2).typ), boolTyp);
		nimZeroMem((void*)T13_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T13_[0] = newUnrollFinallyAccess__closureiters_84(ctx, info);
		T13_[1] = cond_2;
		asgn = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T13_, 2);
		add__ast_4798(result, asgn);
	}
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* cond_3;
		tyArray__id9c0PBojP5C2oM2bRQSViA T15_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T16_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* negateState;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T17_;
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T18_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifBranch_2;
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T19_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* ifStmt_2;
		tyArray__iegsN9bf6GqRiWprrJjTAoA T20_;
		nimZeroMem((void*)T15_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
		T16_ = NIM_NIL;
		T16_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_43), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 72));
		T15_[0] = newSymNode__ast_3704(T16_);
		T15_[1] = newStateAccess__closureiters_35(ctx);
		T15_[2] = newIntTypeNode__ast_3771(IL64(0), intTyp);
		cond_3 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T15_, 3);
		asgnRef((void**) (&(*cond_3).typ), boolTyp);
		nimZeroMem((void*)T17_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T18_ = NIM_NIL;
		T18_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_44), ((tyEnum_TMagic__3qAy6bDUDlF8Fc2RR6pF9ag) 93));
		T17_[0] = newSymNode__ast_3704(T18_);
		T17_[1] = newStateAccess__closureiters_35(ctx);
		negateState = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T17_, 2);
		asgnRef((void**) (&(*negateState).typ), intTyp);
		nimZeroMem((void*)T19_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T19_[0] = cond_3;
		T19_[1] = newStateAssgn__closureiters_41(ctx, negateState);
		ifBranch_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 86), T19_, 2);
		nimZeroMem((void*)T20_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
		T20_[0] = ifBranch_2;
		ifStmt_2 = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 92), T20_, 1);
		add__ast_4798(result, ifStmt_2);
	}
	{
		tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T22_;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T23_;
		nimZeroMem((void*)T22_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
		T22_[0] = newCurExcAccess__closureiters_91(ctx);
		T22_[1] = callCodegenProc__lowerings_641((*ctx).g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_24), unknownLineInfo__lineinfos_284, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL), ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
		T23_ = NIM_NIL;
		T23_ = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 73), T22_, 2);
		add__ast_4798(result, T23_);
	}
	return result;
}
static N_INLINE(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, wrapIntoTryExcept__closureiters_1619)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* setupExc;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* tryBody;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T3_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* exceptBranch;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T4_;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T5_;
	result = NIM_NIL;
	nimZeroMem((void*)T1_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T2_ = NIM_NIL;
	T2_ = getCompilerProc__magicsys_145((*ctx).g, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_30));
	T1_[0] = newSymNode__ast_3704(T2_);
	T1_[1] = newCurExcAccess__closureiters_91(ctx);
	setupExc = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 27), T1_, 2);
	nimZeroMem((void*)T3_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T3_[0] = setupExc;
	T3_[1] = n;
	tryBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T3_, 2);
	nimZeroMem((void*)T4_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	T4_[0] = newCatchBody__closureiters_1582(ctx, (*(*ctx).fn).info);
	exceptBranch = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 87), T4_, 1);
	nimZeroMem((void*)T5_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T5_[0] = tryBody;
	T5_[1] = exceptBranch;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 106), T5_, 2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, wrapIntoStateLoop__closureiters_1626)(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA* ctx, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* loopBody;
	tyArray__Nfk9cOEzg2bRz9c1V8fGzONg T1_;
	tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T2_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* localVars;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* blockStmt;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T12_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gs;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T13_;
	NI T14_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T15_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* blockBody;
	tyArray__id9c0PBojP5C2oM2bRQSViA T16_;
	result = NIM_NIL;
	loopBody = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
	nimZeroMem((void*)T1_, sizeof(tyArray__Nfk9cOEzg2bRz9c1V8fGzONg));
	T2_ = NIM_NIL;
	T2_ = getSysSym__magicsys_16((*ctx).g, (*n).info, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_18));
	T1_[0] = newSymNode__ast_3704(T2_);
	T1_[1] = loopBody;
	result = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 96), T1_, 2);
	(*result).info = (*n).info;
	localVars = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n).info);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* varSect;
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T7_;
		if (!!(((*ctx).stateVarSym == 0))) goto LA5_;
		varSect = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 99), (*n).info);
		T7_ = NIM_NIL;
		T7_ = newSymNode__ast_3704((*ctx).stateVarSym);
		addVar__lowerings_63(varSect, T7_);
		add__ast_4798(localVars, varSect);
		{
			if (!!(((*ctx).tempVars == 0))) goto LA10_;
			add__ast_4798(localVars, (*ctx).tempVars);
		}
		LA10_: ;
	}
	LA5_: ;
	blockStmt = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 112), (*n).info);
	T12_ = NIM_NIL;
	T12_ = newSymNode__ast_3704((*ctx).stateLoopLabel);
	add__ast_4798(blockStmt, T12_);
	gs = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), (*n).info);
	T13_ = NIM_NIL;
	T13_ = newStateAccess__closureiters_35(ctx);
	add__ast_4798(gs, T13_);
	T14_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
	T15_ = NIM_NIL;
	T15_ = newIntLit__lowerings_701((*ctx).g, (*n).info, ((NI64) ((NI)(T14_ - ((NI) 1)))));
	add__ast_4798(gs, T15_);
	nimZeroMem((void*)T16_, sizeof(tyArray__id9c0PBojP5C2oM2bRQSViA));
	T16_[0] = gs;
	T16_[1] = localVars;
	T16_[2] = n;
	blockBody = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), T16_, 3);
	{
		if (!(*ctx).hasExceptions) goto LA19_;
		blockBody = wrapIntoTryExcept__closureiters_1619(ctx, blockBody);
	}
	LA19_: ;
	add__ast_4798(blockStmt, blockBody);
	add__ast_4798(loopBody, blockStmt);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*, transformClosureIterator__closureiters_3552)(tyObject_ModuleGraphcolonObjectType___nOSrcYqJTxXt2ptNc0gnWg* g, tyObject_IdGeneratorcolonObjectType___WVCsDyf9bR1PcjDFjcjm9bRg* idgen, tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* fn, tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n) {
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* result;
	tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA ctx;
	tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T8_;
	tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T9_;
	tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ pc;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* n_2;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T10_;
	NI T11_;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* gotoOut;
	tyArray__iegsN9bf6GqRiWprrJjTAoA T12_;
	NIM_BOOL ns;
	tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* T18_;
	result = NIM_NIL;
	nimZeroMem((void*)(&ctx), sizeof(tyObject_Ctx__Buxr0Dm4cIuitNzdxUl9bmA));
	ctx.g = g;
	ctx.fn = fn;
	ctx.idgen = idgen;
	{
		tyObject_TSym__3r34mwqcVmg5JFNmiaVncw* T3_;
		tyObject_TIdent__PKDcQ7dqdhiSW9c9cXUFFpMg* T6_;
		tyObject_ItemId__wg9aowaxscbUe2F0nV9btZLg T7_;
		T3_ = NIM_NIL;
		T3_ = getEnvParam__lambdalifting_131(fn);
		if (!(T3_ == 0)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = getIdent__idents_152((*ctx.g).cache, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_2));
		T7_ = nextSymId__ast_3103(idgen);
		ctx.stateVarSym = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 8), T6_, T7_, fn, (*fn).info, 0);
		asgnRef((void**) (&(*ctx.stateVarSym).typ), createClosureIterStateType__lambdalifting_33(g, fn, idgen));
	}
	LA4_: ;
	T8_ = NIM_NIL;
	T8_ = getIdent__idents_152((*ctx.g).cache, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_3));
	T9_ = nextSymId__ast_3103(idgen);
	ctx.stateLoopLabel = newSym__ast_3409(((tyEnum_TSymKind__sjiB9b9aO1FRPetW6gPYZbfw) 22), T8_, T9_, fn, (*fn).info, 0);
	nimZeroMem((void*)(&pc), sizeof(tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ));
	nimZeroMem((void*)(&pc), sizeof(tyObject_PreprocessContext__dBY3kRD8PVupEYy4F5ZPKQ));
	pc.finallys = NIM_NIL;
	pc.config = (*g).config;
	pc.idgen = idgen;
	T10_ = NIM_NIL;
	T10_ = toStmtList__closureiters_136(n);
	n_2 = preprocess__closureiters_3376((&pc), T10_);
	T11_ = (NI)0;
	T11_ = newState__closureiters_97((&ctx), n_2, ((tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw*) NIM_NIL));
	(void)(T11_);
	nimZeroMem((void*)T12_, sizeof(tyArray__iegsN9bf6GqRiWprrJjTAoA));
	T12_[0] = newIntLit__lowerings_701(g, (*n_2).info, IL64(-1));
	gotoOut = newTree__ast_3356(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 156), T12_, 1);
	ns = NIM_FALSE;
	n_2 = lowerStmtListExprs__closureiters_478((&ctx), n_2, (&ns));
	{
		NIM_BOOL T15_;
		T15_ = (NIM_BOOL)0;
		T15_ = hasYieldsInExpressions__closureiters_371(n_2);
		if (!T15_) goto LA16_;
		internalErrorImpl__msgs_1441((*ctx.g).config, unknownLineInfo__lineinfos_284, ((NimStringDesc*) &TM__V8P104kFw4tUofP7Txw6Sw_19), TM__V8P104kFw4tUofP7Txw6Sw_20);
	}
	LA16_: ;
	T18_ = NIM_NIL;
	T18_ = transformClosureIteratorBody__closureiters_1187((&ctx), n_2, gotoOut);
	(void)(T18_);
	deleteEmptyStates__closureiters_1673((&ctx));
	result = newNodeI__ast_3320(((tyEnum_TNodeKind__clSgDh22o9au33BrVH9bDQZw) 115), (*n_2).info);
	{
		tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw** s;
		NI i;
		NI L;
		NI T20_;
		s = (tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw**)0;
		i = ((NI) 0);
		T20_ = (ctx.states ? ctx.states->Sup.len : 0);
		L = T20_;
		{
			while (1) {
				tyObject_TNode__uh9cWvEa5Ty85PXOtuP5emw* body;
				if (!(i < L)) goto LA22;
				s = &ctx.states->data[i];
				body = (*(*s))._kind_6.sons->data[((NI) 1)];
				del__closureiters_3582((&(*(*s))._kind_6.sons), ((NI) 1));
				add__ast_4798(result, (*s));
				add__ast_4798(result, body);
				i += ((NI) 1);
			} LA22: ;
		}
	}
	result = transformStateAssignments__closureiters_1400((&ctx), result);
	result = wrapIntoStateLoop__closureiters_1626((&ctx), result);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmclosureitersdotnim_DatInit000)(void) {
static TNimNode* TM__V8P104kFw4tUofP7Txw6Sw_4_3[3];
static TNimNode TM__V8P104kFw4tUofP7Txw6Sw_0[4];
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.size = sizeof(tyTuple__KhdZ2BpxsMCOVX377s89ayg);
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.align = NIM_ALIGNOF(tyTuple__KhdZ2BpxsMCOVX377s89ayg);
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.kind = 18;
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.base = 0;
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.flags = 2;
TM__V8P104kFw4tUofP7Txw6Sw_4_3[0] = &TM__V8P104kFw4tUofP7Txw6Sw_0[1];
TM__V8P104kFw4tUofP7Txw6Sw_0[1].kind = 1;
TM__V8P104kFw4tUofP7Txw6Sw_0[1].offset = offsetof(tyTuple__KhdZ2BpxsMCOVX377s89ayg, Field0);
TM__V8P104kFw4tUofP7Txw6Sw_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__V8P104kFw4tUofP7Txw6Sw_0[1].name = "Field0";
TM__V8P104kFw4tUofP7Txw6Sw_4_3[1] = &TM__V8P104kFw4tUofP7Txw6Sw_0[2];
TM__V8P104kFw4tUofP7Txw6Sw_0[2].kind = 1;
TM__V8P104kFw4tUofP7Txw6Sw_0[2].offset = offsetof(tyTuple__KhdZ2BpxsMCOVX377s89ayg, Field1);
TM__V8P104kFw4tUofP7Txw6Sw_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__V8P104kFw4tUofP7Txw6Sw_0[2].name = "Field1";
TM__V8P104kFw4tUofP7Txw6Sw_4_3[2] = &TM__V8P104kFw4tUofP7Txw6Sw_0[3];
TM__V8P104kFw4tUofP7Txw6Sw_0[3].kind = 1;
TM__V8P104kFw4tUofP7Txw6Sw_0[3].offset = offsetof(tyTuple__KhdZ2BpxsMCOVX377s89ayg, Field2);
TM__V8P104kFw4tUofP7Txw6Sw_0[3].typ = (&NTIpsym__u9bhQvrOYyAS9bCQ6gt41GOQ_);
TM__V8P104kFw4tUofP7Txw6Sw_0[3].name = "Field2";
TM__V8P104kFw4tUofP7Txw6Sw_0[0].len = 3; TM__V8P104kFw4tUofP7Txw6Sw_0[0].kind = 2; TM__V8P104kFw4tUofP7Txw6Sw_0[0].sons = &TM__V8P104kFw4tUofP7Txw6Sw_4_3[0];
NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_.node = &TM__V8P104kFw4tUofP7Txw6Sw_0[0];
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.size = sizeof(tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*);
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.align = NIM_ALIGNOF(tySequence__K9b6FRiPoaNJikAsXAA9c0Jg*);
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.kind = 24;
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.base = (&NTIkeyvaluepair__KhdZ2BpxsMCOVX377s89ayg_);
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.flags = 2;
NTIkeyvaluepairseq__K9b6FRiPoaNJikAsXAA9c0Jg_.marker = Marker_tySequence__K9b6FRiPoaNJikAsXAA9c0Jg;
}

