// This file is generated by org.jetbrains.kotlin.generators.tests.GenerateNativeTestsKt. DO NOT MODIFY MANUALLY
// KIND: STANDALONE_NO_TR
// MODULE: cinterop
// FILE: objclib.def
language = Objective-C
---
#include <objc/NSObject.h>

void useObject(id) {}

// MODULE: main(cinterop)
// FILE: main.kt
@file:OptIn(kotlin.ExperimentalStdlibApi::class, kotlinx.cinterop.ExperimentalForeignApi::class)

import objclib.*

import kotlin.concurrent.AtomicInt
import kotlin.concurrent.AtomicIntArray
import kotlin.native.concurrent.*
class C1
class C2
class C3
class C4
class C5
class C6
class C7
class C8
class C9
class C10
class C11
class C12
class C13
class C14
class C15
class C16
class C17
class C18
class C19
class C20
class C21
class C22
class C23
class C24
class C25
class C26
class C27
class C28
class C29
class C30
class C31
class C32
class C33
class C34
class C35
class C36
class C37
class C38
class C39
class C40
class C41
class C42
class C43
class C44
class C45
class C46
class C47
class C48
class C49
class C50
class C51
class C52
class C53
class C54
class C55
class C56
class C57
class C58
class C59
class C60
class C61
class C62
class C63
class C64
class C65
class C66
class C67
class C68
class C69
class C70
class C71
class C72
class C73
class C74
class C75
class C76
class C77
class C78
class C79
class C80
class C81
class C82
class C83
class C84
class C85
class C86
class C87
class C88
class C89
class C90
class C91
class C92
class C93
class C94
class C95
class C96
class C97
class C98
class C99
class C100
class C101
class C102
class C103
class C104
class C105
class C106
class C107
class C108
class C109
class C110
class C111
class C112
class C113
class C114
class C115
class C116
class C117
class C118
class C119
class C120
class C121
class C122
class C123
class C124
class C125
class C126
class C127
class C128
class C129
class C130
class C131
class C132
class C133
class C134
class C135
class C136
class C137
class C138
class C139
class C140
class C141
class C142
class C143
class C144
class C145
class C146
class C147
class C148
class C149
class C150
class C151
class C152
class C153
class C154
class C155
class C156
class C157
class C158
class C159
class C160
class C161
class C162
class C163
class C164
class C165
class C166
class C167
class C168
class C169
class C170
class C171
class C172
class C173
class C174
class C175
class C176
class C177
class C178
class C179
class C180
class C181
class C182
class C183
class C184
class C185
class C186
class C187
class C188
class C189
class C190
class C191
class C192
class C193
class C194
class C195
class C196
class C197
class C198
class C199
class C200
class C201
class C202
class C203
class C204
class C205
class C206
class C207
class C208
class C209
class C210
class C211
class C212
class C213
class C214
class C215
class C216
class C217
class C218
class C219
class C220
class C221
class C222
class C223
class C224
class C225
class C226
class C227
class C228
class C229
class C230
class C231
class C232
class C233
class C234
class C235
class C236
class C237
class C238
class C239
class C240
class C241
class C242
class C243
class C244
class C245
class C246
class C247
class C248
class C249
class C250
class C251
class C252
class C253
class C254
class C255
class C256
class C257
class C258
class C259
class C260
class C261
class C262
class C263
class C264
class C265
class C266
class C267
class C268
class C269
class C270
class C271
class C272
class C273
class C274
class C275
class C276
class C277
class C278
class C279
class C280
class C281
class C282
class C283
class C284
class C285
class C286
class C287
class C288
class C289
class C290
class C291
class C292
class C293
class C294
class C295
class C296
class C297
class C298
class C299
class C300
class C301
class C302
class C303
class C304
class C305
class C306
class C307
class C308
class C309
class C310
class C311
class C312
class C313
class C314
class C315
class C316
class C317
class C318
class C319
class C320
class C321
class C322
class C323
class C324
class C325
class C326
class C327
class C328
class C329
class C330
class C331
class C332
class C333
class C334
class C335
class C336
class C337
class C338
class C339
class C340
class C341
class C342
class C343
class C344
class C345
class C346
class C347
class C348
class C349
class C350
class C351
class C352
class C353
class C354
class C355
class C356
class C357
class C358
class C359
class C360
class C361
class C362
class C363
class C364
class C365
class C366
class C367
class C368
class C369
class C370
class C371
class C372
class C373
class C374
class C375
class C376
class C377
class C378
class C379
class C380
class C381
class C382
class C383
class C384
class C385
class C386
class C387
class C388
class C389
class C390
class C391
class C392
class C393
class C394
class C395
class C396
class C397
class C398
class C399
class C400
class C401
class C402
class C403
class C404
class C405
class C406
class C407
class C408
class C409
class C410
class C411
class C412
class C413
class C414
class C415
class C416
class C417
class C418
class C419
class C420
class C421
class C422
class C423
class C424
class C425
class C426
class C427
class C428
class C429
class C430
class C431
class C432
class C433
class C434
class C435
class C436
class C437
class C438
class C439
class C440
class C441
class C442
class C443
class C444
class C445
class C446
class C447
class C448
class C449
class C450
class C451
class C452
class C453
class C454
class C455
class C456
class C457
class C458
class C459
class C460
class C461
class C462
class C463
class C464
class C465
class C466
class C467
class C468
class C469
class C470
class C471
class C472
class C473
class C474
class C475
class C476
class C477
class C478
class C479
class C480
class C481
class C482
class C483
class C484
class C485
class C486
class C487
class C488
class C489
class C490
class C491
class C492
class C493
class C494
class C495
class C496
class C497
class C498
class C499
class C500
class C501
class C502
class C503
class C504
class C505
class C506
class C507
class C508
class C509
class C510
class C511
class C512
class C513
class C514
class C515
class C516
class C517
class C518
class C519
class C520
class C521
class C522
class C523
class C524
class C525
class C526
class C527
class C528
class C529
class C530
class C531
class C532
class C533
class C534
class C535
class C536
class C537
class C538
class C539
class C540
class C541
class C542
class C543
class C544
class C545
class C546
class C547
class C548
class C549
class C550
class C551
class C552
class C553
class C554
class C555
class C556
class C557
class C558
class C559
class C560
class C561
class C562
class C563
class C564
class C565
class C566
class C567
class C568
class C569
class C570
class C571
class C572
class C573
class C574
class C575
class C576
class C577
class C578
class C579
class C580
class C581
class C582
class C583
class C584
class C585
class C586
class C587
class C588
class C589
class C590
class C591
class C592
class C593
class C594
class C595
class C596
class C597
class C598
class C599
class C600
class C601
class C602
class C603
class C604
class C605
class C606
class C607
class C608
class C609
class C610
class C611
class C612
class C613
class C614
class C615
class C616
class C617
class C618
class C619
class C620
class C621
class C622
class C623
class C624
class C625
class C626
class C627
class C628
class C629
class C630
class C631
class C632
class C633
class C634
class C635
class C636
class C637
class C638
class C639
class C640
class C641
class C642
class C643
class C644
class C645
class C646
class C647
class C648
class C649
class C650
class C651
class C652
class C653
class C654
class C655
class C656
class C657
class C658
class C659
class C660
class C661
class C662
class C663
class C664
class C665
class C666
class C667
class C668
class C669
class C670
class C671
class C672
class C673
class C674
class C675
class C676
class C677
class C678
class C679
class C680
class C681
class C682
class C683
class C684
class C685
class C686
class C687
class C688
class C689
class C690
class C691
class C692
class C693
class C694
class C695
class C696
class C697
class C698
class C699
class C700
class C701
class C702
class C703
class C704
class C705
class C706
class C707
class C708
class C709
class C710
class C711
class C712
class C713
class C714
class C715
class C716
class C717
class C718
class C719
class C720
class C721
class C722
class C723
class C724
class C725
class C726
class C727
class C728
class C729
class C730
class C731
class C732
class C733
class C734
class C735
class C736
class C737
class C738
class C739
class C740
class C741
class C742
class C743
class C744
class C745
class C746
class C747
class C748
class C749
class C750
class C751
class C752
class C753
class C754
class C755
class C756
class C757
class C758
class C759
class C760
class C761
class C762
class C763
class C764
class C765
class C766
class C767
class C768
class C769
class C770
class C771
class C772
class C773
class C774
class C775
class C776
class C777
class C778
class C779
class C780
class C781
class C782
class C783
class C784
class C785
class C786
class C787
class C788
class C789
class C790
class C791
class C792
class C793
class C794
class C795
class C796
class C797
class C798
class C799
class C800
class C801
class C802
class C803
class C804
class C805
class C806
class C807
class C808
class C809
class C810
class C811
class C812
class C813
class C814
class C815
class C816
class C817
class C818
class C819
class C820
class C821
class C822
class C823
class C824
class C825
class C826
class C827
class C828
class C829
class C830
class C831
class C832
class C833
class C834
class C835
class C836
class C837
class C838
class C839
class C840
class C841
class C842
class C843
class C844
class C845
class C846
class C847
class C848
class C849
class C850
class C851
class C852
class C853
class C854
class C855
class C856
class C857
class C858
class C859
class C860
class C861
class C862
class C863
class C864
class C865
class C866
class C867
class C868
class C869
class C870
class C871
class C872
class C873
class C874
class C875
class C876
class C877
class C878
class C879
class C880
class C881
class C882
class C883
class C884
class C885
class C886
class C887
class C888
class C889
class C890
class C891
class C892
class C893
class C894
class C895
class C896
class C897
class C898
class C899
class C900
class C901
class C902
class C903
class C904
class C905
class C906
class C907
class C908
class C909
class C910
class C911
class C912
class C913
class C914
class C915
class C916
class C917
class C918
class C919
class C920
class C921
class C922
class C923
class C924
class C925
class C926
class C927
class C928
class C929
class C930
class C931
class C932
class C933
class C934
class C935
class C936
class C937
class C938
class C939
class C940
class C941
class C942
class C943
class C944
class C945
class C946
class C947
class C948
class C949
class C950
class C951
class C952
class C953
class C954
class C955
class C956
class C957
class C958
class C959
class C960
class C961
class C962
class C963
class C964
class C965
class C966
class C967
class C968
class C969
class C970
class C971
class C972
class C973
class C974
class C975
class C976
class C977
class C978
class C979
class C980
class C981
class C982
class C983
class C984
class C985
class C986
class C987
class C988
class C989
class C990
class C991
class C992
class C993
class C994
class C995
class C996
class C997
class C998
class C999
class C1000
const val MAX_STAGE = 1000

val canRunStage = AtomicInt(0)
val hasRunStage = AtomicIntArray(MAX_STAGE + 1)

fun test() {
    hasRunStage.getAndIncrement(0)
    
    while (canRunStage.value != 1) {}
    useObject(C1())
    hasRunStage.getAndIncrement(1)
    
    while (canRunStage.value != 2) {}
    useObject(C2())
    hasRunStage.getAndIncrement(2)
    
    while (canRunStage.value != 3) {}
    useObject(C3())
    hasRunStage.getAndIncrement(3)
    
    while (canRunStage.value != 4) {}
    useObject(C4())
    hasRunStage.getAndIncrement(4)
    
    while (canRunStage.value != 5) {}
    useObject(C5())
    hasRunStage.getAndIncrement(5)
    
    while (canRunStage.value != 6) {}
    useObject(C6())
    hasRunStage.getAndIncrement(6)
    
    while (canRunStage.value != 7) {}
    useObject(C7())
    hasRunStage.getAndIncrement(7)
    
    while (canRunStage.value != 8) {}
    useObject(C8())
    hasRunStage.getAndIncrement(8)
    
    while (canRunStage.value != 9) {}
    useObject(C9())
    hasRunStage.getAndIncrement(9)
    
    while (canRunStage.value != 10) {}
    useObject(C10())
    hasRunStage.getAndIncrement(10)
    
    while (canRunStage.value != 11) {}
    useObject(C11())
    hasRunStage.getAndIncrement(11)
    
    while (canRunStage.value != 12) {}
    useObject(C12())
    hasRunStage.getAndIncrement(12)
    
    while (canRunStage.value != 13) {}
    useObject(C13())
    hasRunStage.getAndIncrement(13)
    
    while (canRunStage.value != 14) {}
    useObject(C14())
    hasRunStage.getAndIncrement(14)
    
    while (canRunStage.value != 15) {}
    useObject(C15())
    hasRunStage.getAndIncrement(15)
    
    while (canRunStage.value != 16) {}
    useObject(C16())
    hasRunStage.getAndIncrement(16)
    
    while (canRunStage.value != 17) {}
    useObject(C17())
    hasRunStage.getAndIncrement(17)
    
    while (canRunStage.value != 18) {}
    useObject(C18())
    hasRunStage.getAndIncrement(18)
    
    while (canRunStage.value != 19) {}
    useObject(C19())
    hasRunStage.getAndIncrement(19)
    
    while (canRunStage.value != 20) {}
    useObject(C20())
    hasRunStage.getAndIncrement(20)
    
    while (canRunStage.value != 21) {}
    useObject(C21())
    hasRunStage.getAndIncrement(21)
    
    while (canRunStage.value != 22) {}
    useObject(C22())
    hasRunStage.getAndIncrement(22)
    
    while (canRunStage.value != 23) {}
    useObject(C23())
    hasRunStage.getAndIncrement(23)
    
    while (canRunStage.value != 24) {}
    useObject(C24())
    hasRunStage.getAndIncrement(24)
    
    while (canRunStage.value != 25) {}
    useObject(C25())
    hasRunStage.getAndIncrement(25)
    
    while (canRunStage.value != 26) {}
    useObject(C26())
    hasRunStage.getAndIncrement(26)
    
    while (canRunStage.value != 27) {}
    useObject(C27())
    hasRunStage.getAndIncrement(27)
    
    while (canRunStage.value != 28) {}
    useObject(C28())
    hasRunStage.getAndIncrement(28)
    
    while (canRunStage.value != 29) {}
    useObject(C29())
    hasRunStage.getAndIncrement(29)
    
    while (canRunStage.value != 30) {}
    useObject(C30())
    hasRunStage.getAndIncrement(30)
    
    while (canRunStage.value != 31) {}
    useObject(C31())
    hasRunStage.getAndIncrement(31)
    
    while (canRunStage.value != 32) {}
    useObject(C32())
    hasRunStage.getAndIncrement(32)
    
    while (canRunStage.value != 33) {}
    useObject(C33())
    hasRunStage.getAndIncrement(33)
    
    while (canRunStage.value != 34) {}
    useObject(C34())
    hasRunStage.getAndIncrement(34)
    
    while (canRunStage.value != 35) {}
    useObject(C35())
    hasRunStage.getAndIncrement(35)
    
    while (canRunStage.value != 36) {}
    useObject(C36())
    hasRunStage.getAndIncrement(36)
    
    while (canRunStage.value != 37) {}
    useObject(C37())
    hasRunStage.getAndIncrement(37)
    
    while (canRunStage.value != 38) {}
    useObject(C38())
    hasRunStage.getAndIncrement(38)
    
    while (canRunStage.value != 39) {}
    useObject(C39())
    hasRunStage.getAndIncrement(39)
    
    while (canRunStage.value != 40) {}
    useObject(C40())
    hasRunStage.getAndIncrement(40)
    
    while (canRunStage.value != 41) {}
    useObject(C41())
    hasRunStage.getAndIncrement(41)
    
    while (canRunStage.value != 42) {}
    useObject(C42())
    hasRunStage.getAndIncrement(42)
    
    while (canRunStage.value != 43) {}
    useObject(C43())
    hasRunStage.getAndIncrement(43)
    
    while (canRunStage.value != 44) {}
    useObject(C44())
    hasRunStage.getAndIncrement(44)
    
    while (canRunStage.value != 45) {}
    useObject(C45())
    hasRunStage.getAndIncrement(45)
    
    while (canRunStage.value != 46) {}
    useObject(C46())
    hasRunStage.getAndIncrement(46)
    
    while (canRunStage.value != 47) {}
    useObject(C47())
    hasRunStage.getAndIncrement(47)
    
    while (canRunStage.value != 48) {}
    useObject(C48())
    hasRunStage.getAndIncrement(48)
    
    while (canRunStage.value != 49) {}
    useObject(C49())
    hasRunStage.getAndIncrement(49)
    
    while (canRunStage.value != 50) {}
    useObject(C50())
    hasRunStage.getAndIncrement(50)
    
    while (canRunStage.value != 51) {}
    useObject(C51())
    hasRunStage.getAndIncrement(51)
    
    while (canRunStage.value != 52) {}
    useObject(C52())
    hasRunStage.getAndIncrement(52)
    
    while (canRunStage.value != 53) {}
    useObject(C53())
    hasRunStage.getAndIncrement(53)
    
    while (canRunStage.value != 54) {}
    useObject(C54())
    hasRunStage.getAndIncrement(54)
    
    while (canRunStage.value != 55) {}
    useObject(C55())
    hasRunStage.getAndIncrement(55)
    
    while (canRunStage.value != 56) {}
    useObject(C56())
    hasRunStage.getAndIncrement(56)
    
    while (canRunStage.value != 57) {}
    useObject(C57())
    hasRunStage.getAndIncrement(57)
    
    while (canRunStage.value != 58) {}
    useObject(C58())
    hasRunStage.getAndIncrement(58)
    
    while (canRunStage.value != 59) {}
    useObject(C59())
    hasRunStage.getAndIncrement(59)
    
    while (canRunStage.value != 60) {}
    useObject(C60())
    hasRunStage.getAndIncrement(60)
    
    while (canRunStage.value != 61) {}
    useObject(C61())
    hasRunStage.getAndIncrement(61)
    
    while (canRunStage.value != 62) {}
    useObject(C62())
    hasRunStage.getAndIncrement(62)
    
    while (canRunStage.value != 63) {}
    useObject(C63())
    hasRunStage.getAndIncrement(63)
    
    while (canRunStage.value != 64) {}
    useObject(C64())
    hasRunStage.getAndIncrement(64)
    
    while (canRunStage.value != 65) {}
    useObject(C65())
    hasRunStage.getAndIncrement(65)
    
    while (canRunStage.value != 66) {}
    useObject(C66())
    hasRunStage.getAndIncrement(66)
    
    while (canRunStage.value != 67) {}
    useObject(C67())
    hasRunStage.getAndIncrement(67)
    
    while (canRunStage.value != 68) {}
    useObject(C68())
    hasRunStage.getAndIncrement(68)
    
    while (canRunStage.value != 69) {}
    useObject(C69())
    hasRunStage.getAndIncrement(69)
    
    while (canRunStage.value != 70) {}
    useObject(C70())
    hasRunStage.getAndIncrement(70)
    
    while (canRunStage.value != 71) {}
    useObject(C71())
    hasRunStage.getAndIncrement(71)
    
    while (canRunStage.value != 72) {}
    useObject(C72())
    hasRunStage.getAndIncrement(72)
    
    while (canRunStage.value != 73) {}
    useObject(C73())
    hasRunStage.getAndIncrement(73)
    
    while (canRunStage.value != 74) {}
    useObject(C74())
    hasRunStage.getAndIncrement(74)
    
    while (canRunStage.value != 75) {}
    useObject(C75())
    hasRunStage.getAndIncrement(75)
    
    while (canRunStage.value != 76) {}
    useObject(C76())
    hasRunStage.getAndIncrement(76)
    
    while (canRunStage.value != 77) {}
    useObject(C77())
    hasRunStage.getAndIncrement(77)
    
    while (canRunStage.value != 78) {}
    useObject(C78())
    hasRunStage.getAndIncrement(78)
    
    while (canRunStage.value != 79) {}
    useObject(C79())
    hasRunStage.getAndIncrement(79)
    
    while (canRunStage.value != 80) {}
    useObject(C80())
    hasRunStage.getAndIncrement(80)
    
    while (canRunStage.value != 81) {}
    useObject(C81())
    hasRunStage.getAndIncrement(81)
    
    while (canRunStage.value != 82) {}
    useObject(C82())
    hasRunStage.getAndIncrement(82)
    
    while (canRunStage.value != 83) {}
    useObject(C83())
    hasRunStage.getAndIncrement(83)
    
    while (canRunStage.value != 84) {}
    useObject(C84())
    hasRunStage.getAndIncrement(84)
    
    while (canRunStage.value != 85) {}
    useObject(C85())
    hasRunStage.getAndIncrement(85)
    
    while (canRunStage.value != 86) {}
    useObject(C86())
    hasRunStage.getAndIncrement(86)
    
    while (canRunStage.value != 87) {}
    useObject(C87())
    hasRunStage.getAndIncrement(87)
    
    while (canRunStage.value != 88) {}
    useObject(C88())
    hasRunStage.getAndIncrement(88)
    
    while (canRunStage.value != 89) {}
    useObject(C89())
    hasRunStage.getAndIncrement(89)
    
    while (canRunStage.value != 90) {}
    useObject(C90())
    hasRunStage.getAndIncrement(90)
    
    while (canRunStage.value != 91) {}
    useObject(C91())
    hasRunStage.getAndIncrement(91)
    
    while (canRunStage.value != 92) {}
    useObject(C92())
    hasRunStage.getAndIncrement(92)
    
    while (canRunStage.value != 93) {}
    useObject(C93())
    hasRunStage.getAndIncrement(93)
    
    while (canRunStage.value != 94) {}
    useObject(C94())
    hasRunStage.getAndIncrement(94)
    
    while (canRunStage.value != 95) {}
    useObject(C95())
    hasRunStage.getAndIncrement(95)
    
    while (canRunStage.value != 96) {}
    useObject(C96())
    hasRunStage.getAndIncrement(96)
    
    while (canRunStage.value != 97) {}
    useObject(C97())
    hasRunStage.getAndIncrement(97)
    
    while (canRunStage.value != 98) {}
    useObject(C98())
    hasRunStage.getAndIncrement(98)
    
    while (canRunStage.value != 99) {}
    useObject(C99())
    hasRunStage.getAndIncrement(99)
    
    while (canRunStage.value != 100) {}
    useObject(C100())
    hasRunStage.getAndIncrement(100)
    
    while (canRunStage.value != 101) {}
    useObject(C101())
    hasRunStage.getAndIncrement(101)
    
    while (canRunStage.value != 102) {}
    useObject(C102())
    hasRunStage.getAndIncrement(102)
    
    while (canRunStage.value != 103) {}
    useObject(C103())
    hasRunStage.getAndIncrement(103)
    
    while (canRunStage.value != 104) {}
    useObject(C104())
    hasRunStage.getAndIncrement(104)
    
    while (canRunStage.value != 105) {}
    useObject(C105())
    hasRunStage.getAndIncrement(105)
    
    while (canRunStage.value != 106) {}
    useObject(C106())
    hasRunStage.getAndIncrement(106)
    
    while (canRunStage.value != 107) {}
    useObject(C107())
    hasRunStage.getAndIncrement(107)
    
    while (canRunStage.value != 108) {}
    useObject(C108())
    hasRunStage.getAndIncrement(108)
    
    while (canRunStage.value != 109) {}
    useObject(C109())
    hasRunStage.getAndIncrement(109)
    
    while (canRunStage.value != 110) {}
    useObject(C110())
    hasRunStage.getAndIncrement(110)
    
    while (canRunStage.value != 111) {}
    useObject(C111())
    hasRunStage.getAndIncrement(111)
    
    while (canRunStage.value != 112) {}
    useObject(C112())
    hasRunStage.getAndIncrement(112)
    
    while (canRunStage.value != 113) {}
    useObject(C113())
    hasRunStage.getAndIncrement(113)
    
    while (canRunStage.value != 114) {}
    useObject(C114())
    hasRunStage.getAndIncrement(114)
    
    while (canRunStage.value != 115) {}
    useObject(C115())
    hasRunStage.getAndIncrement(115)
    
    while (canRunStage.value != 116) {}
    useObject(C116())
    hasRunStage.getAndIncrement(116)
    
    while (canRunStage.value != 117) {}
    useObject(C117())
    hasRunStage.getAndIncrement(117)
    
    while (canRunStage.value != 118) {}
    useObject(C118())
    hasRunStage.getAndIncrement(118)
    
    while (canRunStage.value != 119) {}
    useObject(C119())
    hasRunStage.getAndIncrement(119)
    
    while (canRunStage.value != 120) {}
    useObject(C120())
    hasRunStage.getAndIncrement(120)
    
    while (canRunStage.value != 121) {}
    useObject(C121())
    hasRunStage.getAndIncrement(121)
    
    while (canRunStage.value != 122) {}
    useObject(C122())
    hasRunStage.getAndIncrement(122)
    
    while (canRunStage.value != 123) {}
    useObject(C123())
    hasRunStage.getAndIncrement(123)
    
    while (canRunStage.value != 124) {}
    useObject(C124())
    hasRunStage.getAndIncrement(124)
    
    while (canRunStage.value != 125) {}
    useObject(C125())
    hasRunStage.getAndIncrement(125)
    
    while (canRunStage.value != 126) {}
    useObject(C126())
    hasRunStage.getAndIncrement(126)
    
    while (canRunStage.value != 127) {}
    useObject(C127())
    hasRunStage.getAndIncrement(127)
    
    while (canRunStage.value != 128) {}
    useObject(C128())
    hasRunStage.getAndIncrement(128)
    
    while (canRunStage.value != 129) {}
    useObject(C129())
    hasRunStage.getAndIncrement(129)
    
    while (canRunStage.value != 130) {}
    useObject(C130())
    hasRunStage.getAndIncrement(130)
    
    while (canRunStage.value != 131) {}
    useObject(C131())
    hasRunStage.getAndIncrement(131)
    
    while (canRunStage.value != 132) {}
    useObject(C132())
    hasRunStage.getAndIncrement(132)
    
    while (canRunStage.value != 133) {}
    useObject(C133())
    hasRunStage.getAndIncrement(133)
    
    while (canRunStage.value != 134) {}
    useObject(C134())
    hasRunStage.getAndIncrement(134)
    
    while (canRunStage.value != 135) {}
    useObject(C135())
    hasRunStage.getAndIncrement(135)
    
    while (canRunStage.value != 136) {}
    useObject(C136())
    hasRunStage.getAndIncrement(136)
    
    while (canRunStage.value != 137) {}
    useObject(C137())
    hasRunStage.getAndIncrement(137)
    
    while (canRunStage.value != 138) {}
    useObject(C138())
    hasRunStage.getAndIncrement(138)
    
    while (canRunStage.value != 139) {}
    useObject(C139())
    hasRunStage.getAndIncrement(139)
    
    while (canRunStage.value != 140) {}
    useObject(C140())
    hasRunStage.getAndIncrement(140)
    
    while (canRunStage.value != 141) {}
    useObject(C141())
    hasRunStage.getAndIncrement(141)
    
    while (canRunStage.value != 142) {}
    useObject(C142())
    hasRunStage.getAndIncrement(142)
    
    while (canRunStage.value != 143) {}
    useObject(C143())
    hasRunStage.getAndIncrement(143)
    
    while (canRunStage.value != 144) {}
    useObject(C144())
    hasRunStage.getAndIncrement(144)
    
    while (canRunStage.value != 145) {}
    useObject(C145())
    hasRunStage.getAndIncrement(145)
    
    while (canRunStage.value != 146) {}
    useObject(C146())
    hasRunStage.getAndIncrement(146)
    
    while (canRunStage.value != 147) {}
    useObject(C147())
    hasRunStage.getAndIncrement(147)
    
    while (canRunStage.value != 148) {}
    useObject(C148())
    hasRunStage.getAndIncrement(148)
    
    while (canRunStage.value != 149) {}
    useObject(C149())
    hasRunStage.getAndIncrement(149)
    
    while (canRunStage.value != 150) {}
    useObject(C150())
    hasRunStage.getAndIncrement(150)
    
    while (canRunStage.value != 151) {}
    useObject(C151())
    hasRunStage.getAndIncrement(151)
    
    while (canRunStage.value != 152) {}
    useObject(C152())
    hasRunStage.getAndIncrement(152)
    
    while (canRunStage.value != 153) {}
    useObject(C153())
    hasRunStage.getAndIncrement(153)
    
    while (canRunStage.value != 154) {}
    useObject(C154())
    hasRunStage.getAndIncrement(154)
    
    while (canRunStage.value != 155) {}
    useObject(C155())
    hasRunStage.getAndIncrement(155)
    
    while (canRunStage.value != 156) {}
    useObject(C156())
    hasRunStage.getAndIncrement(156)
    
    while (canRunStage.value != 157) {}
    useObject(C157())
    hasRunStage.getAndIncrement(157)
    
    while (canRunStage.value != 158) {}
    useObject(C158())
    hasRunStage.getAndIncrement(158)
    
    while (canRunStage.value != 159) {}
    useObject(C159())
    hasRunStage.getAndIncrement(159)
    
    while (canRunStage.value != 160) {}
    useObject(C160())
    hasRunStage.getAndIncrement(160)
    
    while (canRunStage.value != 161) {}
    useObject(C161())
    hasRunStage.getAndIncrement(161)
    
    while (canRunStage.value != 162) {}
    useObject(C162())
    hasRunStage.getAndIncrement(162)
    
    while (canRunStage.value != 163) {}
    useObject(C163())
    hasRunStage.getAndIncrement(163)
    
    while (canRunStage.value != 164) {}
    useObject(C164())
    hasRunStage.getAndIncrement(164)
    
    while (canRunStage.value != 165) {}
    useObject(C165())
    hasRunStage.getAndIncrement(165)
    
    while (canRunStage.value != 166) {}
    useObject(C166())
    hasRunStage.getAndIncrement(166)
    
    while (canRunStage.value != 167) {}
    useObject(C167())
    hasRunStage.getAndIncrement(167)
    
    while (canRunStage.value != 168) {}
    useObject(C168())
    hasRunStage.getAndIncrement(168)
    
    while (canRunStage.value != 169) {}
    useObject(C169())
    hasRunStage.getAndIncrement(169)
    
    while (canRunStage.value != 170) {}
    useObject(C170())
    hasRunStage.getAndIncrement(170)
    
    while (canRunStage.value != 171) {}
    useObject(C171())
    hasRunStage.getAndIncrement(171)
    
    while (canRunStage.value != 172) {}
    useObject(C172())
    hasRunStage.getAndIncrement(172)
    
    while (canRunStage.value != 173) {}
    useObject(C173())
    hasRunStage.getAndIncrement(173)
    
    while (canRunStage.value != 174) {}
    useObject(C174())
    hasRunStage.getAndIncrement(174)
    
    while (canRunStage.value != 175) {}
    useObject(C175())
    hasRunStage.getAndIncrement(175)
    
    while (canRunStage.value != 176) {}
    useObject(C176())
    hasRunStage.getAndIncrement(176)
    
    while (canRunStage.value != 177) {}
    useObject(C177())
    hasRunStage.getAndIncrement(177)
    
    while (canRunStage.value != 178) {}
    useObject(C178())
    hasRunStage.getAndIncrement(178)
    
    while (canRunStage.value != 179) {}
    useObject(C179())
    hasRunStage.getAndIncrement(179)
    
    while (canRunStage.value != 180) {}
    useObject(C180())
    hasRunStage.getAndIncrement(180)
    
    while (canRunStage.value != 181) {}
    useObject(C181())
    hasRunStage.getAndIncrement(181)
    
    while (canRunStage.value != 182) {}
    useObject(C182())
    hasRunStage.getAndIncrement(182)
    
    while (canRunStage.value != 183) {}
    useObject(C183())
    hasRunStage.getAndIncrement(183)
    
    while (canRunStage.value != 184) {}
    useObject(C184())
    hasRunStage.getAndIncrement(184)
    
    while (canRunStage.value != 185) {}
    useObject(C185())
    hasRunStage.getAndIncrement(185)
    
    while (canRunStage.value != 186) {}
    useObject(C186())
    hasRunStage.getAndIncrement(186)
    
    while (canRunStage.value != 187) {}
    useObject(C187())
    hasRunStage.getAndIncrement(187)
    
    while (canRunStage.value != 188) {}
    useObject(C188())
    hasRunStage.getAndIncrement(188)
    
    while (canRunStage.value != 189) {}
    useObject(C189())
    hasRunStage.getAndIncrement(189)
    
    while (canRunStage.value != 190) {}
    useObject(C190())
    hasRunStage.getAndIncrement(190)
    
    while (canRunStage.value != 191) {}
    useObject(C191())
    hasRunStage.getAndIncrement(191)
    
    while (canRunStage.value != 192) {}
    useObject(C192())
    hasRunStage.getAndIncrement(192)
    
    while (canRunStage.value != 193) {}
    useObject(C193())
    hasRunStage.getAndIncrement(193)
    
    while (canRunStage.value != 194) {}
    useObject(C194())
    hasRunStage.getAndIncrement(194)
    
    while (canRunStage.value != 195) {}
    useObject(C195())
    hasRunStage.getAndIncrement(195)
    
    while (canRunStage.value != 196) {}
    useObject(C196())
    hasRunStage.getAndIncrement(196)
    
    while (canRunStage.value != 197) {}
    useObject(C197())
    hasRunStage.getAndIncrement(197)
    
    while (canRunStage.value != 198) {}
    useObject(C198())
    hasRunStage.getAndIncrement(198)
    
    while (canRunStage.value != 199) {}
    useObject(C199())
    hasRunStage.getAndIncrement(199)
    
    while (canRunStage.value != 200) {}
    useObject(C200())
    hasRunStage.getAndIncrement(200)
    
    while (canRunStage.value != 201) {}
    useObject(C201())
    hasRunStage.getAndIncrement(201)
    
    while (canRunStage.value != 202) {}
    useObject(C202())
    hasRunStage.getAndIncrement(202)
    
    while (canRunStage.value != 203) {}
    useObject(C203())
    hasRunStage.getAndIncrement(203)
    
    while (canRunStage.value != 204) {}
    useObject(C204())
    hasRunStage.getAndIncrement(204)
    
    while (canRunStage.value != 205) {}
    useObject(C205())
    hasRunStage.getAndIncrement(205)
    
    while (canRunStage.value != 206) {}
    useObject(C206())
    hasRunStage.getAndIncrement(206)
    
    while (canRunStage.value != 207) {}
    useObject(C207())
    hasRunStage.getAndIncrement(207)
    
    while (canRunStage.value != 208) {}
    useObject(C208())
    hasRunStage.getAndIncrement(208)
    
    while (canRunStage.value != 209) {}
    useObject(C209())
    hasRunStage.getAndIncrement(209)
    
    while (canRunStage.value != 210) {}
    useObject(C210())
    hasRunStage.getAndIncrement(210)
    
    while (canRunStage.value != 211) {}
    useObject(C211())
    hasRunStage.getAndIncrement(211)
    
    while (canRunStage.value != 212) {}
    useObject(C212())
    hasRunStage.getAndIncrement(212)
    
    while (canRunStage.value != 213) {}
    useObject(C213())
    hasRunStage.getAndIncrement(213)
    
    while (canRunStage.value != 214) {}
    useObject(C214())
    hasRunStage.getAndIncrement(214)
    
    while (canRunStage.value != 215) {}
    useObject(C215())
    hasRunStage.getAndIncrement(215)
    
    while (canRunStage.value != 216) {}
    useObject(C216())
    hasRunStage.getAndIncrement(216)
    
    while (canRunStage.value != 217) {}
    useObject(C217())
    hasRunStage.getAndIncrement(217)
    
    while (canRunStage.value != 218) {}
    useObject(C218())
    hasRunStage.getAndIncrement(218)
    
    while (canRunStage.value != 219) {}
    useObject(C219())
    hasRunStage.getAndIncrement(219)
    
    while (canRunStage.value != 220) {}
    useObject(C220())
    hasRunStage.getAndIncrement(220)
    
    while (canRunStage.value != 221) {}
    useObject(C221())
    hasRunStage.getAndIncrement(221)
    
    while (canRunStage.value != 222) {}
    useObject(C222())
    hasRunStage.getAndIncrement(222)
    
    while (canRunStage.value != 223) {}
    useObject(C223())
    hasRunStage.getAndIncrement(223)
    
    while (canRunStage.value != 224) {}
    useObject(C224())
    hasRunStage.getAndIncrement(224)
    
    while (canRunStage.value != 225) {}
    useObject(C225())
    hasRunStage.getAndIncrement(225)
    
    while (canRunStage.value != 226) {}
    useObject(C226())
    hasRunStage.getAndIncrement(226)
    
    while (canRunStage.value != 227) {}
    useObject(C227())
    hasRunStage.getAndIncrement(227)
    
    while (canRunStage.value != 228) {}
    useObject(C228())
    hasRunStage.getAndIncrement(228)
    
    while (canRunStage.value != 229) {}
    useObject(C229())
    hasRunStage.getAndIncrement(229)
    
    while (canRunStage.value != 230) {}
    useObject(C230())
    hasRunStage.getAndIncrement(230)
    
    while (canRunStage.value != 231) {}
    useObject(C231())
    hasRunStage.getAndIncrement(231)
    
    while (canRunStage.value != 232) {}
    useObject(C232())
    hasRunStage.getAndIncrement(232)
    
    while (canRunStage.value != 233) {}
    useObject(C233())
    hasRunStage.getAndIncrement(233)
    
    while (canRunStage.value != 234) {}
    useObject(C234())
    hasRunStage.getAndIncrement(234)
    
    while (canRunStage.value != 235) {}
    useObject(C235())
    hasRunStage.getAndIncrement(235)
    
    while (canRunStage.value != 236) {}
    useObject(C236())
    hasRunStage.getAndIncrement(236)
    
    while (canRunStage.value != 237) {}
    useObject(C237())
    hasRunStage.getAndIncrement(237)
    
    while (canRunStage.value != 238) {}
    useObject(C238())
    hasRunStage.getAndIncrement(238)
    
    while (canRunStage.value != 239) {}
    useObject(C239())
    hasRunStage.getAndIncrement(239)
    
    while (canRunStage.value != 240) {}
    useObject(C240())
    hasRunStage.getAndIncrement(240)
    
    while (canRunStage.value != 241) {}
    useObject(C241())
    hasRunStage.getAndIncrement(241)
    
    while (canRunStage.value != 242) {}
    useObject(C242())
    hasRunStage.getAndIncrement(242)
    
    while (canRunStage.value != 243) {}
    useObject(C243())
    hasRunStage.getAndIncrement(243)
    
    while (canRunStage.value != 244) {}
    useObject(C244())
    hasRunStage.getAndIncrement(244)
    
    while (canRunStage.value != 245) {}
    useObject(C245())
    hasRunStage.getAndIncrement(245)
    
    while (canRunStage.value != 246) {}
    useObject(C246())
    hasRunStage.getAndIncrement(246)
    
    while (canRunStage.value != 247) {}
    useObject(C247())
    hasRunStage.getAndIncrement(247)
    
    while (canRunStage.value != 248) {}
    useObject(C248())
    hasRunStage.getAndIncrement(248)
    
    while (canRunStage.value != 249) {}
    useObject(C249())
    hasRunStage.getAndIncrement(249)
    
    while (canRunStage.value != 250) {}
    useObject(C250())
    hasRunStage.getAndIncrement(250)
    
    while (canRunStage.value != 251) {}
    useObject(C251())
    hasRunStage.getAndIncrement(251)
    
    while (canRunStage.value != 252) {}
    useObject(C252())
    hasRunStage.getAndIncrement(252)
    
    while (canRunStage.value != 253) {}
    useObject(C253())
    hasRunStage.getAndIncrement(253)
    
    while (canRunStage.value != 254) {}
    useObject(C254())
    hasRunStage.getAndIncrement(254)
    
    while (canRunStage.value != 255) {}
    useObject(C255())
    hasRunStage.getAndIncrement(255)
    
    while (canRunStage.value != 256) {}
    useObject(C256())
    hasRunStage.getAndIncrement(256)
    
    while (canRunStage.value != 257) {}
    useObject(C257())
    hasRunStage.getAndIncrement(257)
    
    while (canRunStage.value != 258) {}
    useObject(C258())
    hasRunStage.getAndIncrement(258)
    
    while (canRunStage.value != 259) {}
    useObject(C259())
    hasRunStage.getAndIncrement(259)
    
    while (canRunStage.value != 260) {}
    useObject(C260())
    hasRunStage.getAndIncrement(260)
    
    while (canRunStage.value != 261) {}
    useObject(C261())
    hasRunStage.getAndIncrement(261)
    
    while (canRunStage.value != 262) {}
    useObject(C262())
    hasRunStage.getAndIncrement(262)
    
    while (canRunStage.value != 263) {}
    useObject(C263())
    hasRunStage.getAndIncrement(263)
    
    while (canRunStage.value != 264) {}
    useObject(C264())
    hasRunStage.getAndIncrement(264)
    
    while (canRunStage.value != 265) {}
    useObject(C265())
    hasRunStage.getAndIncrement(265)
    
    while (canRunStage.value != 266) {}
    useObject(C266())
    hasRunStage.getAndIncrement(266)
    
    while (canRunStage.value != 267) {}
    useObject(C267())
    hasRunStage.getAndIncrement(267)
    
    while (canRunStage.value != 268) {}
    useObject(C268())
    hasRunStage.getAndIncrement(268)
    
    while (canRunStage.value != 269) {}
    useObject(C269())
    hasRunStage.getAndIncrement(269)
    
    while (canRunStage.value != 270) {}
    useObject(C270())
    hasRunStage.getAndIncrement(270)
    
    while (canRunStage.value != 271) {}
    useObject(C271())
    hasRunStage.getAndIncrement(271)
    
    while (canRunStage.value != 272) {}
    useObject(C272())
    hasRunStage.getAndIncrement(272)
    
    while (canRunStage.value != 273) {}
    useObject(C273())
    hasRunStage.getAndIncrement(273)
    
    while (canRunStage.value != 274) {}
    useObject(C274())
    hasRunStage.getAndIncrement(274)
    
    while (canRunStage.value != 275) {}
    useObject(C275())
    hasRunStage.getAndIncrement(275)
    
    while (canRunStage.value != 276) {}
    useObject(C276())
    hasRunStage.getAndIncrement(276)
    
    while (canRunStage.value != 277) {}
    useObject(C277())
    hasRunStage.getAndIncrement(277)
    
    while (canRunStage.value != 278) {}
    useObject(C278())
    hasRunStage.getAndIncrement(278)
    
    while (canRunStage.value != 279) {}
    useObject(C279())
    hasRunStage.getAndIncrement(279)
    
    while (canRunStage.value != 280) {}
    useObject(C280())
    hasRunStage.getAndIncrement(280)
    
    while (canRunStage.value != 281) {}
    useObject(C281())
    hasRunStage.getAndIncrement(281)
    
    while (canRunStage.value != 282) {}
    useObject(C282())
    hasRunStage.getAndIncrement(282)
    
    while (canRunStage.value != 283) {}
    useObject(C283())
    hasRunStage.getAndIncrement(283)
    
    while (canRunStage.value != 284) {}
    useObject(C284())
    hasRunStage.getAndIncrement(284)
    
    while (canRunStage.value != 285) {}
    useObject(C285())
    hasRunStage.getAndIncrement(285)
    
    while (canRunStage.value != 286) {}
    useObject(C286())
    hasRunStage.getAndIncrement(286)
    
    while (canRunStage.value != 287) {}
    useObject(C287())
    hasRunStage.getAndIncrement(287)
    
    while (canRunStage.value != 288) {}
    useObject(C288())
    hasRunStage.getAndIncrement(288)
    
    while (canRunStage.value != 289) {}
    useObject(C289())
    hasRunStage.getAndIncrement(289)
    
    while (canRunStage.value != 290) {}
    useObject(C290())
    hasRunStage.getAndIncrement(290)
    
    while (canRunStage.value != 291) {}
    useObject(C291())
    hasRunStage.getAndIncrement(291)
    
    while (canRunStage.value != 292) {}
    useObject(C292())
    hasRunStage.getAndIncrement(292)
    
    while (canRunStage.value != 293) {}
    useObject(C293())
    hasRunStage.getAndIncrement(293)
    
    while (canRunStage.value != 294) {}
    useObject(C294())
    hasRunStage.getAndIncrement(294)
    
    while (canRunStage.value != 295) {}
    useObject(C295())
    hasRunStage.getAndIncrement(295)
    
    while (canRunStage.value != 296) {}
    useObject(C296())
    hasRunStage.getAndIncrement(296)
    
    while (canRunStage.value != 297) {}
    useObject(C297())
    hasRunStage.getAndIncrement(297)
    
    while (canRunStage.value != 298) {}
    useObject(C298())
    hasRunStage.getAndIncrement(298)
    
    while (canRunStage.value != 299) {}
    useObject(C299())
    hasRunStage.getAndIncrement(299)
    
    while (canRunStage.value != 300) {}
    useObject(C300())
    hasRunStage.getAndIncrement(300)
    
    while (canRunStage.value != 301) {}
    useObject(C301())
    hasRunStage.getAndIncrement(301)
    
    while (canRunStage.value != 302) {}
    useObject(C302())
    hasRunStage.getAndIncrement(302)
    
    while (canRunStage.value != 303) {}
    useObject(C303())
    hasRunStage.getAndIncrement(303)
    
    while (canRunStage.value != 304) {}
    useObject(C304())
    hasRunStage.getAndIncrement(304)
    
    while (canRunStage.value != 305) {}
    useObject(C305())
    hasRunStage.getAndIncrement(305)
    
    while (canRunStage.value != 306) {}
    useObject(C306())
    hasRunStage.getAndIncrement(306)
    
    while (canRunStage.value != 307) {}
    useObject(C307())
    hasRunStage.getAndIncrement(307)
    
    while (canRunStage.value != 308) {}
    useObject(C308())
    hasRunStage.getAndIncrement(308)
    
    while (canRunStage.value != 309) {}
    useObject(C309())
    hasRunStage.getAndIncrement(309)
    
    while (canRunStage.value != 310) {}
    useObject(C310())
    hasRunStage.getAndIncrement(310)
    
    while (canRunStage.value != 311) {}
    useObject(C311())
    hasRunStage.getAndIncrement(311)
    
    while (canRunStage.value != 312) {}
    useObject(C312())
    hasRunStage.getAndIncrement(312)
    
    while (canRunStage.value != 313) {}
    useObject(C313())
    hasRunStage.getAndIncrement(313)
    
    while (canRunStage.value != 314) {}
    useObject(C314())
    hasRunStage.getAndIncrement(314)
    
    while (canRunStage.value != 315) {}
    useObject(C315())
    hasRunStage.getAndIncrement(315)
    
    while (canRunStage.value != 316) {}
    useObject(C316())
    hasRunStage.getAndIncrement(316)
    
    while (canRunStage.value != 317) {}
    useObject(C317())
    hasRunStage.getAndIncrement(317)
    
    while (canRunStage.value != 318) {}
    useObject(C318())
    hasRunStage.getAndIncrement(318)
    
    while (canRunStage.value != 319) {}
    useObject(C319())
    hasRunStage.getAndIncrement(319)
    
    while (canRunStage.value != 320) {}
    useObject(C320())
    hasRunStage.getAndIncrement(320)
    
    while (canRunStage.value != 321) {}
    useObject(C321())
    hasRunStage.getAndIncrement(321)
    
    while (canRunStage.value != 322) {}
    useObject(C322())
    hasRunStage.getAndIncrement(322)
    
    while (canRunStage.value != 323) {}
    useObject(C323())
    hasRunStage.getAndIncrement(323)
    
    while (canRunStage.value != 324) {}
    useObject(C324())
    hasRunStage.getAndIncrement(324)
    
    while (canRunStage.value != 325) {}
    useObject(C325())
    hasRunStage.getAndIncrement(325)
    
    while (canRunStage.value != 326) {}
    useObject(C326())
    hasRunStage.getAndIncrement(326)
    
    while (canRunStage.value != 327) {}
    useObject(C327())
    hasRunStage.getAndIncrement(327)
    
    while (canRunStage.value != 328) {}
    useObject(C328())
    hasRunStage.getAndIncrement(328)
    
    while (canRunStage.value != 329) {}
    useObject(C329())
    hasRunStage.getAndIncrement(329)
    
    while (canRunStage.value != 330) {}
    useObject(C330())
    hasRunStage.getAndIncrement(330)
    
    while (canRunStage.value != 331) {}
    useObject(C331())
    hasRunStage.getAndIncrement(331)
    
    while (canRunStage.value != 332) {}
    useObject(C332())
    hasRunStage.getAndIncrement(332)
    
    while (canRunStage.value != 333) {}
    useObject(C333())
    hasRunStage.getAndIncrement(333)
    
    while (canRunStage.value != 334) {}
    useObject(C334())
    hasRunStage.getAndIncrement(334)
    
    while (canRunStage.value != 335) {}
    useObject(C335())
    hasRunStage.getAndIncrement(335)
    
    while (canRunStage.value != 336) {}
    useObject(C336())
    hasRunStage.getAndIncrement(336)
    
    while (canRunStage.value != 337) {}
    useObject(C337())
    hasRunStage.getAndIncrement(337)
    
    while (canRunStage.value != 338) {}
    useObject(C338())
    hasRunStage.getAndIncrement(338)
    
    while (canRunStage.value != 339) {}
    useObject(C339())
    hasRunStage.getAndIncrement(339)
    
    while (canRunStage.value != 340) {}
    useObject(C340())
    hasRunStage.getAndIncrement(340)
    
    while (canRunStage.value != 341) {}
    useObject(C341())
    hasRunStage.getAndIncrement(341)
    
    while (canRunStage.value != 342) {}
    useObject(C342())
    hasRunStage.getAndIncrement(342)
    
    while (canRunStage.value != 343) {}
    useObject(C343())
    hasRunStage.getAndIncrement(343)
    
    while (canRunStage.value != 344) {}
    useObject(C344())
    hasRunStage.getAndIncrement(344)
    
    while (canRunStage.value != 345) {}
    useObject(C345())
    hasRunStage.getAndIncrement(345)
    
    while (canRunStage.value != 346) {}
    useObject(C346())
    hasRunStage.getAndIncrement(346)
    
    while (canRunStage.value != 347) {}
    useObject(C347())
    hasRunStage.getAndIncrement(347)
    
    while (canRunStage.value != 348) {}
    useObject(C348())
    hasRunStage.getAndIncrement(348)
    
    while (canRunStage.value != 349) {}
    useObject(C349())
    hasRunStage.getAndIncrement(349)
    
    while (canRunStage.value != 350) {}
    useObject(C350())
    hasRunStage.getAndIncrement(350)
    
    while (canRunStage.value != 351) {}
    useObject(C351())
    hasRunStage.getAndIncrement(351)
    
    while (canRunStage.value != 352) {}
    useObject(C352())
    hasRunStage.getAndIncrement(352)
    
    while (canRunStage.value != 353) {}
    useObject(C353())
    hasRunStage.getAndIncrement(353)
    
    while (canRunStage.value != 354) {}
    useObject(C354())
    hasRunStage.getAndIncrement(354)
    
    while (canRunStage.value != 355) {}
    useObject(C355())
    hasRunStage.getAndIncrement(355)
    
    while (canRunStage.value != 356) {}
    useObject(C356())
    hasRunStage.getAndIncrement(356)
    
    while (canRunStage.value != 357) {}
    useObject(C357())
    hasRunStage.getAndIncrement(357)
    
    while (canRunStage.value != 358) {}
    useObject(C358())
    hasRunStage.getAndIncrement(358)
    
    while (canRunStage.value != 359) {}
    useObject(C359())
    hasRunStage.getAndIncrement(359)
    
    while (canRunStage.value != 360) {}
    useObject(C360())
    hasRunStage.getAndIncrement(360)
    
    while (canRunStage.value != 361) {}
    useObject(C361())
    hasRunStage.getAndIncrement(361)
    
    while (canRunStage.value != 362) {}
    useObject(C362())
    hasRunStage.getAndIncrement(362)
    
    while (canRunStage.value != 363) {}
    useObject(C363())
    hasRunStage.getAndIncrement(363)
    
    while (canRunStage.value != 364) {}
    useObject(C364())
    hasRunStage.getAndIncrement(364)
    
    while (canRunStage.value != 365) {}
    useObject(C365())
    hasRunStage.getAndIncrement(365)
    
    while (canRunStage.value != 366) {}
    useObject(C366())
    hasRunStage.getAndIncrement(366)
    
    while (canRunStage.value != 367) {}
    useObject(C367())
    hasRunStage.getAndIncrement(367)
    
    while (canRunStage.value != 368) {}
    useObject(C368())
    hasRunStage.getAndIncrement(368)
    
    while (canRunStage.value != 369) {}
    useObject(C369())
    hasRunStage.getAndIncrement(369)
    
    while (canRunStage.value != 370) {}
    useObject(C370())
    hasRunStage.getAndIncrement(370)
    
    while (canRunStage.value != 371) {}
    useObject(C371())
    hasRunStage.getAndIncrement(371)
    
    while (canRunStage.value != 372) {}
    useObject(C372())
    hasRunStage.getAndIncrement(372)
    
    while (canRunStage.value != 373) {}
    useObject(C373())
    hasRunStage.getAndIncrement(373)
    
    while (canRunStage.value != 374) {}
    useObject(C374())
    hasRunStage.getAndIncrement(374)
    
    while (canRunStage.value != 375) {}
    useObject(C375())
    hasRunStage.getAndIncrement(375)
    
    while (canRunStage.value != 376) {}
    useObject(C376())
    hasRunStage.getAndIncrement(376)
    
    while (canRunStage.value != 377) {}
    useObject(C377())
    hasRunStage.getAndIncrement(377)
    
    while (canRunStage.value != 378) {}
    useObject(C378())
    hasRunStage.getAndIncrement(378)
    
    while (canRunStage.value != 379) {}
    useObject(C379())
    hasRunStage.getAndIncrement(379)
    
    while (canRunStage.value != 380) {}
    useObject(C380())
    hasRunStage.getAndIncrement(380)
    
    while (canRunStage.value != 381) {}
    useObject(C381())
    hasRunStage.getAndIncrement(381)
    
    while (canRunStage.value != 382) {}
    useObject(C382())
    hasRunStage.getAndIncrement(382)
    
    while (canRunStage.value != 383) {}
    useObject(C383())
    hasRunStage.getAndIncrement(383)
    
    while (canRunStage.value != 384) {}
    useObject(C384())
    hasRunStage.getAndIncrement(384)
    
    while (canRunStage.value != 385) {}
    useObject(C385())
    hasRunStage.getAndIncrement(385)
    
    while (canRunStage.value != 386) {}
    useObject(C386())
    hasRunStage.getAndIncrement(386)
    
    while (canRunStage.value != 387) {}
    useObject(C387())
    hasRunStage.getAndIncrement(387)
    
    while (canRunStage.value != 388) {}
    useObject(C388())
    hasRunStage.getAndIncrement(388)
    
    while (canRunStage.value != 389) {}
    useObject(C389())
    hasRunStage.getAndIncrement(389)
    
    while (canRunStage.value != 390) {}
    useObject(C390())
    hasRunStage.getAndIncrement(390)
    
    while (canRunStage.value != 391) {}
    useObject(C391())
    hasRunStage.getAndIncrement(391)
    
    while (canRunStage.value != 392) {}
    useObject(C392())
    hasRunStage.getAndIncrement(392)
    
    while (canRunStage.value != 393) {}
    useObject(C393())
    hasRunStage.getAndIncrement(393)
    
    while (canRunStage.value != 394) {}
    useObject(C394())
    hasRunStage.getAndIncrement(394)
    
    while (canRunStage.value != 395) {}
    useObject(C395())
    hasRunStage.getAndIncrement(395)
    
    while (canRunStage.value != 396) {}
    useObject(C396())
    hasRunStage.getAndIncrement(396)
    
    while (canRunStage.value != 397) {}
    useObject(C397())
    hasRunStage.getAndIncrement(397)
    
    while (canRunStage.value != 398) {}
    useObject(C398())
    hasRunStage.getAndIncrement(398)
    
    while (canRunStage.value != 399) {}
    useObject(C399())
    hasRunStage.getAndIncrement(399)
    
    while (canRunStage.value != 400) {}
    useObject(C400())
    hasRunStage.getAndIncrement(400)
    
    while (canRunStage.value != 401) {}
    useObject(C401())
    hasRunStage.getAndIncrement(401)
    
    while (canRunStage.value != 402) {}
    useObject(C402())
    hasRunStage.getAndIncrement(402)
    
    while (canRunStage.value != 403) {}
    useObject(C403())
    hasRunStage.getAndIncrement(403)
    
    while (canRunStage.value != 404) {}
    useObject(C404())
    hasRunStage.getAndIncrement(404)
    
    while (canRunStage.value != 405) {}
    useObject(C405())
    hasRunStage.getAndIncrement(405)
    
    while (canRunStage.value != 406) {}
    useObject(C406())
    hasRunStage.getAndIncrement(406)
    
    while (canRunStage.value != 407) {}
    useObject(C407())
    hasRunStage.getAndIncrement(407)
    
    while (canRunStage.value != 408) {}
    useObject(C408())
    hasRunStage.getAndIncrement(408)
    
    while (canRunStage.value != 409) {}
    useObject(C409())
    hasRunStage.getAndIncrement(409)
    
    while (canRunStage.value != 410) {}
    useObject(C410())
    hasRunStage.getAndIncrement(410)
    
    while (canRunStage.value != 411) {}
    useObject(C411())
    hasRunStage.getAndIncrement(411)
    
    while (canRunStage.value != 412) {}
    useObject(C412())
    hasRunStage.getAndIncrement(412)
    
    while (canRunStage.value != 413) {}
    useObject(C413())
    hasRunStage.getAndIncrement(413)
    
    while (canRunStage.value != 414) {}
    useObject(C414())
    hasRunStage.getAndIncrement(414)
    
    while (canRunStage.value != 415) {}
    useObject(C415())
    hasRunStage.getAndIncrement(415)
    
    while (canRunStage.value != 416) {}
    useObject(C416())
    hasRunStage.getAndIncrement(416)
    
    while (canRunStage.value != 417) {}
    useObject(C417())
    hasRunStage.getAndIncrement(417)
    
    while (canRunStage.value != 418) {}
    useObject(C418())
    hasRunStage.getAndIncrement(418)
    
    while (canRunStage.value != 419) {}
    useObject(C419())
    hasRunStage.getAndIncrement(419)
    
    while (canRunStage.value != 420) {}
    useObject(C420())
    hasRunStage.getAndIncrement(420)
    
    while (canRunStage.value != 421) {}
    useObject(C421())
    hasRunStage.getAndIncrement(421)
    
    while (canRunStage.value != 422) {}
    useObject(C422())
    hasRunStage.getAndIncrement(422)
    
    while (canRunStage.value != 423) {}
    useObject(C423())
    hasRunStage.getAndIncrement(423)
    
    while (canRunStage.value != 424) {}
    useObject(C424())
    hasRunStage.getAndIncrement(424)
    
    while (canRunStage.value != 425) {}
    useObject(C425())
    hasRunStage.getAndIncrement(425)
    
    while (canRunStage.value != 426) {}
    useObject(C426())
    hasRunStage.getAndIncrement(426)
    
    while (canRunStage.value != 427) {}
    useObject(C427())
    hasRunStage.getAndIncrement(427)
    
    while (canRunStage.value != 428) {}
    useObject(C428())
    hasRunStage.getAndIncrement(428)
    
    while (canRunStage.value != 429) {}
    useObject(C429())
    hasRunStage.getAndIncrement(429)
    
    while (canRunStage.value != 430) {}
    useObject(C430())
    hasRunStage.getAndIncrement(430)
    
    while (canRunStage.value != 431) {}
    useObject(C431())
    hasRunStage.getAndIncrement(431)
    
    while (canRunStage.value != 432) {}
    useObject(C432())
    hasRunStage.getAndIncrement(432)
    
    while (canRunStage.value != 433) {}
    useObject(C433())
    hasRunStage.getAndIncrement(433)
    
    while (canRunStage.value != 434) {}
    useObject(C434())
    hasRunStage.getAndIncrement(434)
    
    while (canRunStage.value != 435) {}
    useObject(C435())
    hasRunStage.getAndIncrement(435)
    
    while (canRunStage.value != 436) {}
    useObject(C436())
    hasRunStage.getAndIncrement(436)
    
    while (canRunStage.value != 437) {}
    useObject(C437())
    hasRunStage.getAndIncrement(437)
    
    while (canRunStage.value != 438) {}
    useObject(C438())
    hasRunStage.getAndIncrement(438)
    
    while (canRunStage.value != 439) {}
    useObject(C439())
    hasRunStage.getAndIncrement(439)
    
    while (canRunStage.value != 440) {}
    useObject(C440())
    hasRunStage.getAndIncrement(440)
    
    while (canRunStage.value != 441) {}
    useObject(C441())
    hasRunStage.getAndIncrement(441)
    
    while (canRunStage.value != 442) {}
    useObject(C442())
    hasRunStage.getAndIncrement(442)
    
    while (canRunStage.value != 443) {}
    useObject(C443())
    hasRunStage.getAndIncrement(443)
    
    while (canRunStage.value != 444) {}
    useObject(C444())
    hasRunStage.getAndIncrement(444)
    
    while (canRunStage.value != 445) {}
    useObject(C445())
    hasRunStage.getAndIncrement(445)
    
    while (canRunStage.value != 446) {}
    useObject(C446())
    hasRunStage.getAndIncrement(446)
    
    while (canRunStage.value != 447) {}
    useObject(C447())
    hasRunStage.getAndIncrement(447)
    
    while (canRunStage.value != 448) {}
    useObject(C448())
    hasRunStage.getAndIncrement(448)
    
    while (canRunStage.value != 449) {}
    useObject(C449())
    hasRunStage.getAndIncrement(449)
    
    while (canRunStage.value != 450) {}
    useObject(C450())
    hasRunStage.getAndIncrement(450)
    
    while (canRunStage.value != 451) {}
    useObject(C451())
    hasRunStage.getAndIncrement(451)
    
    while (canRunStage.value != 452) {}
    useObject(C452())
    hasRunStage.getAndIncrement(452)
    
    while (canRunStage.value != 453) {}
    useObject(C453())
    hasRunStage.getAndIncrement(453)
    
    while (canRunStage.value != 454) {}
    useObject(C454())
    hasRunStage.getAndIncrement(454)
    
    while (canRunStage.value != 455) {}
    useObject(C455())
    hasRunStage.getAndIncrement(455)
    
    while (canRunStage.value != 456) {}
    useObject(C456())
    hasRunStage.getAndIncrement(456)
    
    while (canRunStage.value != 457) {}
    useObject(C457())
    hasRunStage.getAndIncrement(457)
    
    while (canRunStage.value != 458) {}
    useObject(C458())
    hasRunStage.getAndIncrement(458)
    
    while (canRunStage.value != 459) {}
    useObject(C459())
    hasRunStage.getAndIncrement(459)
    
    while (canRunStage.value != 460) {}
    useObject(C460())
    hasRunStage.getAndIncrement(460)
    
    while (canRunStage.value != 461) {}
    useObject(C461())
    hasRunStage.getAndIncrement(461)
    
    while (canRunStage.value != 462) {}
    useObject(C462())
    hasRunStage.getAndIncrement(462)
    
    while (canRunStage.value != 463) {}
    useObject(C463())
    hasRunStage.getAndIncrement(463)
    
    while (canRunStage.value != 464) {}
    useObject(C464())
    hasRunStage.getAndIncrement(464)
    
    while (canRunStage.value != 465) {}
    useObject(C465())
    hasRunStage.getAndIncrement(465)
    
    while (canRunStage.value != 466) {}
    useObject(C466())
    hasRunStage.getAndIncrement(466)
    
    while (canRunStage.value != 467) {}
    useObject(C467())
    hasRunStage.getAndIncrement(467)
    
    while (canRunStage.value != 468) {}
    useObject(C468())
    hasRunStage.getAndIncrement(468)
    
    while (canRunStage.value != 469) {}
    useObject(C469())
    hasRunStage.getAndIncrement(469)
    
    while (canRunStage.value != 470) {}
    useObject(C470())
    hasRunStage.getAndIncrement(470)
    
    while (canRunStage.value != 471) {}
    useObject(C471())
    hasRunStage.getAndIncrement(471)
    
    while (canRunStage.value != 472) {}
    useObject(C472())
    hasRunStage.getAndIncrement(472)
    
    while (canRunStage.value != 473) {}
    useObject(C473())
    hasRunStage.getAndIncrement(473)
    
    while (canRunStage.value != 474) {}
    useObject(C474())
    hasRunStage.getAndIncrement(474)
    
    while (canRunStage.value != 475) {}
    useObject(C475())
    hasRunStage.getAndIncrement(475)
    
    while (canRunStage.value != 476) {}
    useObject(C476())
    hasRunStage.getAndIncrement(476)
    
    while (canRunStage.value != 477) {}
    useObject(C477())
    hasRunStage.getAndIncrement(477)
    
    while (canRunStage.value != 478) {}
    useObject(C478())
    hasRunStage.getAndIncrement(478)
    
    while (canRunStage.value != 479) {}
    useObject(C479())
    hasRunStage.getAndIncrement(479)
    
    while (canRunStage.value != 480) {}
    useObject(C480())
    hasRunStage.getAndIncrement(480)
    
    while (canRunStage.value != 481) {}
    useObject(C481())
    hasRunStage.getAndIncrement(481)
    
    while (canRunStage.value != 482) {}
    useObject(C482())
    hasRunStage.getAndIncrement(482)
    
    while (canRunStage.value != 483) {}
    useObject(C483())
    hasRunStage.getAndIncrement(483)
    
    while (canRunStage.value != 484) {}
    useObject(C484())
    hasRunStage.getAndIncrement(484)
    
    while (canRunStage.value != 485) {}
    useObject(C485())
    hasRunStage.getAndIncrement(485)
    
    while (canRunStage.value != 486) {}
    useObject(C486())
    hasRunStage.getAndIncrement(486)
    
    while (canRunStage.value != 487) {}
    useObject(C487())
    hasRunStage.getAndIncrement(487)
    
    while (canRunStage.value != 488) {}
    useObject(C488())
    hasRunStage.getAndIncrement(488)
    
    while (canRunStage.value != 489) {}
    useObject(C489())
    hasRunStage.getAndIncrement(489)
    
    while (canRunStage.value != 490) {}
    useObject(C490())
    hasRunStage.getAndIncrement(490)
    
    while (canRunStage.value != 491) {}
    useObject(C491())
    hasRunStage.getAndIncrement(491)
    
    while (canRunStage.value != 492) {}
    useObject(C492())
    hasRunStage.getAndIncrement(492)
    
    while (canRunStage.value != 493) {}
    useObject(C493())
    hasRunStage.getAndIncrement(493)
    
    while (canRunStage.value != 494) {}
    useObject(C494())
    hasRunStage.getAndIncrement(494)
    
    while (canRunStage.value != 495) {}
    useObject(C495())
    hasRunStage.getAndIncrement(495)
    
    while (canRunStage.value != 496) {}
    useObject(C496())
    hasRunStage.getAndIncrement(496)
    
    while (canRunStage.value != 497) {}
    useObject(C497())
    hasRunStage.getAndIncrement(497)
    
    while (canRunStage.value != 498) {}
    useObject(C498())
    hasRunStage.getAndIncrement(498)
    
    while (canRunStage.value != 499) {}
    useObject(C499())
    hasRunStage.getAndIncrement(499)
    
    while (canRunStage.value != 500) {}
    useObject(C500())
    hasRunStage.getAndIncrement(500)
    
    while (canRunStage.value != 501) {}
    useObject(C501())
    hasRunStage.getAndIncrement(501)
    
    while (canRunStage.value != 502) {}
    useObject(C502())
    hasRunStage.getAndIncrement(502)
    
    while (canRunStage.value != 503) {}
    useObject(C503())
    hasRunStage.getAndIncrement(503)
    
    while (canRunStage.value != 504) {}
    useObject(C504())
    hasRunStage.getAndIncrement(504)
    
    while (canRunStage.value != 505) {}
    useObject(C505())
    hasRunStage.getAndIncrement(505)
    
    while (canRunStage.value != 506) {}
    useObject(C506())
    hasRunStage.getAndIncrement(506)
    
    while (canRunStage.value != 507) {}
    useObject(C507())
    hasRunStage.getAndIncrement(507)
    
    while (canRunStage.value != 508) {}
    useObject(C508())
    hasRunStage.getAndIncrement(508)
    
    while (canRunStage.value != 509) {}
    useObject(C509())
    hasRunStage.getAndIncrement(509)
    
    while (canRunStage.value != 510) {}
    useObject(C510())
    hasRunStage.getAndIncrement(510)
    
    while (canRunStage.value != 511) {}
    useObject(C511())
    hasRunStage.getAndIncrement(511)
    
    while (canRunStage.value != 512) {}
    useObject(C512())
    hasRunStage.getAndIncrement(512)
    
    while (canRunStage.value != 513) {}
    useObject(C513())
    hasRunStage.getAndIncrement(513)
    
    while (canRunStage.value != 514) {}
    useObject(C514())
    hasRunStage.getAndIncrement(514)
    
    while (canRunStage.value != 515) {}
    useObject(C515())
    hasRunStage.getAndIncrement(515)
    
    while (canRunStage.value != 516) {}
    useObject(C516())
    hasRunStage.getAndIncrement(516)
    
    while (canRunStage.value != 517) {}
    useObject(C517())
    hasRunStage.getAndIncrement(517)
    
    while (canRunStage.value != 518) {}
    useObject(C518())
    hasRunStage.getAndIncrement(518)
    
    while (canRunStage.value != 519) {}
    useObject(C519())
    hasRunStage.getAndIncrement(519)
    
    while (canRunStage.value != 520) {}
    useObject(C520())
    hasRunStage.getAndIncrement(520)
    
    while (canRunStage.value != 521) {}
    useObject(C521())
    hasRunStage.getAndIncrement(521)
    
    while (canRunStage.value != 522) {}
    useObject(C522())
    hasRunStage.getAndIncrement(522)
    
    while (canRunStage.value != 523) {}
    useObject(C523())
    hasRunStage.getAndIncrement(523)
    
    while (canRunStage.value != 524) {}
    useObject(C524())
    hasRunStage.getAndIncrement(524)
    
    while (canRunStage.value != 525) {}
    useObject(C525())
    hasRunStage.getAndIncrement(525)
    
    while (canRunStage.value != 526) {}
    useObject(C526())
    hasRunStage.getAndIncrement(526)
    
    while (canRunStage.value != 527) {}
    useObject(C527())
    hasRunStage.getAndIncrement(527)
    
    while (canRunStage.value != 528) {}
    useObject(C528())
    hasRunStage.getAndIncrement(528)
    
    while (canRunStage.value != 529) {}
    useObject(C529())
    hasRunStage.getAndIncrement(529)
    
    while (canRunStage.value != 530) {}
    useObject(C530())
    hasRunStage.getAndIncrement(530)
    
    while (canRunStage.value != 531) {}
    useObject(C531())
    hasRunStage.getAndIncrement(531)
    
    while (canRunStage.value != 532) {}
    useObject(C532())
    hasRunStage.getAndIncrement(532)
    
    while (canRunStage.value != 533) {}
    useObject(C533())
    hasRunStage.getAndIncrement(533)
    
    while (canRunStage.value != 534) {}
    useObject(C534())
    hasRunStage.getAndIncrement(534)
    
    while (canRunStage.value != 535) {}
    useObject(C535())
    hasRunStage.getAndIncrement(535)
    
    while (canRunStage.value != 536) {}
    useObject(C536())
    hasRunStage.getAndIncrement(536)
    
    while (canRunStage.value != 537) {}
    useObject(C537())
    hasRunStage.getAndIncrement(537)
    
    while (canRunStage.value != 538) {}
    useObject(C538())
    hasRunStage.getAndIncrement(538)
    
    while (canRunStage.value != 539) {}
    useObject(C539())
    hasRunStage.getAndIncrement(539)
    
    while (canRunStage.value != 540) {}
    useObject(C540())
    hasRunStage.getAndIncrement(540)
    
    while (canRunStage.value != 541) {}
    useObject(C541())
    hasRunStage.getAndIncrement(541)
    
    while (canRunStage.value != 542) {}
    useObject(C542())
    hasRunStage.getAndIncrement(542)
    
    while (canRunStage.value != 543) {}
    useObject(C543())
    hasRunStage.getAndIncrement(543)
    
    while (canRunStage.value != 544) {}
    useObject(C544())
    hasRunStage.getAndIncrement(544)
    
    while (canRunStage.value != 545) {}
    useObject(C545())
    hasRunStage.getAndIncrement(545)
    
    while (canRunStage.value != 546) {}
    useObject(C546())
    hasRunStage.getAndIncrement(546)
    
    while (canRunStage.value != 547) {}
    useObject(C547())
    hasRunStage.getAndIncrement(547)
    
    while (canRunStage.value != 548) {}
    useObject(C548())
    hasRunStage.getAndIncrement(548)
    
    while (canRunStage.value != 549) {}
    useObject(C549())
    hasRunStage.getAndIncrement(549)
    
    while (canRunStage.value != 550) {}
    useObject(C550())
    hasRunStage.getAndIncrement(550)
    
    while (canRunStage.value != 551) {}
    useObject(C551())
    hasRunStage.getAndIncrement(551)
    
    while (canRunStage.value != 552) {}
    useObject(C552())
    hasRunStage.getAndIncrement(552)
    
    while (canRunStage.value != 553) {}
    useObject(C553())
    hasRunStage.getAndIncrement(553)
    
    while (canRunStage.value != 554) {}
    useObject(C554())
    hasRunStage.getAndIncrement(554)
    
    while (canRunStage.value != 555) {}
    useObject(C555())
    hasRunStage.getAndIncrement(555)
    
    while (canRunStage.value != 556) {}
    useObject(C556())
    hasRunStage.getAndIncrement(556)
    
    while (canRunStage.value != 557) {}
    useObject(C557())
    hasRunStage.getAndIncrement(557)
    
    while (canRunStage.value != 558) {}
    useObject(C558())
    hasRunStage.getAndIncrement(558)
    
    while (canRunStage.value != 559) {}
    useObject(C559())
    hasRunStage.getAndIncrement(559)
    
    while (canRunStage.value != 560) {}
    useObject(C560())
    hasRunStage.getAndIncrement(560)
    
    while (canRunStage.value != 561) {}
    useObject(C561())
    hasRunStage.getAndIncrement(561)
    
    while (canRunStage.value != 562) {}
    useObject(C562())
    hasRunStage.getAndIncrement(562)
    
    while (canRunStage.value != 563) {}
    useObject(C563())
    hasRunStage.getAndIncrement(563)
    
    while (canRunStage.value != 564) {}
    useObject(C564())
    hasRunStage.getAndIncrement(564)
    
    while (canRunStage.value != 565) {}
    useObject(C565())
    hasRunStage.getAndIncrement(565)
    
    while (canRunStage.value != 566) {}
    useObject(C566())
    hasRunStage.getAndIncrement(566)
    
    while (canRunStage.value != 567) {}
    useObject(C567())
    hasRunStage.getAndIncrement(567)
    
    while (canRunStage.value != 568) {}
    useObject(C568())
    hasRunStage.getAndIncrement(568)
    
    while (canRunStage.value != 569) {}
    useObject(C569())
    hasRunStage.getAndIncrement(569)
    
    while (canRunStage.value != 570) {}
    useObject(C570())
    hasRunStage.getAndIncrement(570)
    
    while (canRunStage.value != 571) {}
    useObject(C571())
    hasRunStage.getAndIncrement(571)
    
    while (canRunStage.value != 572) {}
    useObject(C572())
    hasRunStage.getAndIncrement(572)
    
    while (canRunStage.value != 573) {}
    useObject(C573())
    hasRunStage.getAndIncrement(573)
    
    while (canRunStage.value != 574) {}
    useObject(C574())
    hasRunStage.getAndIncrement(574)
    
    while (canRunStage.value != 575) {}
    useObject(C575())
    hasRunStage.getAndIncrement(575)
    
    while (canRunStage.value != 576) {}
    useObject(C576())
    hasRunStage.getAndIncrement(576)
    
    while (canRunStage.value != 577) {}
    useObject(C577())
    hasRunStage.getAndIncrement(577)
    
    while (canRunStage.value != 578) {}
    useObject(C578())
    hasRunStage.getAndIncrement(578)
    
    while (canRunStage.value != 579) {}
    useObject(C579())
    hasRunStage.getAndIncrement(579)
    
    while (canRunStage.value != 580) {}
    useObject(C580())
    hasRunStage.getAndIncrement(580)
    
    while (canRunStage.value != 581) {}
    useObject(C581())
    hasRunStage.getAndIncrement(581)
    
    while (canRunStage.value != 582) {}
    useObject(C582())
    hasRunStage.getAndIncrement(582)
    
    while (canRunStage.value != 583) {}
    useObject(C583())
    hasRunStage.getAndIncrement(583)
    
    while (canRunStage.value != 584) {}
    useObject(C584())
    hasRunStage.getAndIncrement(584)
    
    while (canRunStage.value != 585) {}
    useObject(C585())
    hasRunStage.getAndIncrement(585)
    
    while (canRunStage.value != 586) {}
    useObject(C586())
    hasRunStage.getAndIncrement(586)
    
    while (canRunStage.value != 587) {}
    useObject(C587())
    hasRunStage.getAndIncrement(587)
    
    while (canRunStage.value != 588) {}
    useObject(C588())
    hasRunStage.getAndIncrement(588)
    
    while (canRunStage.value != 589) {}
    useObject(C589())
    hasRunStage.getAndIncrement(589)
    
    while (canRunStage.value != 590) {}
    useObject(C590())
    hasRunStage.getAndIncrement(590)
    
    while (canRunStage.value != 591) {}
    useObject(C591())
    hasRunStage.getAndIncrement(591)
    
    while (canRunStage.value != 592) {}
    useObject(C592())
    hasRunStage.getAndIncrement(592)
    
    while (canRunStage.value != 593) {}
    useObject(C593())
    hasRunStage.getAndIncrement(593)
    
    while (canRunStage.value != 594) {}
    useObject(C594())
    hasRunStage.getAndIncrement(594)
    
    while (canRunStage.value != 595) {}
    useObject(C595())
    hasRunStage.getAndIncrement(595)
    
    while (canRunStage.value != 596) {}
    useObject(C596())
    hasRunStage.getAndIncrement(596)
    
    while (canRunStage.value != 597) {}
    useObject(C597())
    hasRunStage.getAndIncrement(597)
    
    while (canRunStage.value != 598) {}
    useObject(C598())
    hasRunStage.getAndIncrement(598)
    
    while (canRunStage.value != 599) {}
    useObject(C599())
    hasRunStage.getAndIncrement(599)
    
    while (canRunStage.value != 600) {}
    useObject(C600())
    hasRunStage.getAndIncrement(600)
    
    while (canRunStage.value != 601) {}
    useObject(C601())
    hasRunStage.getAndIncrement(601)
    
    while (canRunStage.value != 602) {}
    useObject(C602())
    hasRunStage.getAndIncrement(602)
    
    while (canRunStage.value != 603) {}
    useObject(C603())
    hasRunStage.getAndIncrement(603)
    
    while (canRunStage.value != 604) {}
    useObject(C604())
    hasRunStage.getAndIncrement(604)
    
    while (canRunStage.value != 605) {}
    useObject(C605())
    hasRunStage.getAndIncrement(605)
    
    while (canRunStage.value != 606) {}
    useObject(C606())
    hasRunStage.getAndIncrement(606)
    
    while (canRunStage.value != 607) {}
    useObject(C607())
    hasRunStage.getAndIncrement(607)
    
    while (canRunStage.value != 608) {}
    useObject(C608())
    hasRunStage.getAndIncrement(608)
    
    while (canRunStage.value != 609) {}
    useObject(C609())
    hasRunStage.getAndIncrement(609)
    
    while (canRunStage.value != 610) {}
    useObject(C610())
    hasRunStage.getAndIncrement(610)
    
    while (canRunStage.value != 611) {}
    useObject(C611())
    hasRunStage.getAndIncrement(611)
    
    while (canRunStage.value != 612) {}
    useObject(C612())
    hasRunStage.getAndIncrement(612)
    
    while (canRunStage.value != 613) {}
    useObject(C613())
    hasRunStage.getAndIncrement(613)
    
    while (canRunStage.value != 614) {}
    useObject(C614())
    hasRunStage.getAndIncrement(614)
    
    while (canRunStage.value != 615) {}
    useObject(C615())
    hasRunStage.getAndIncrement(615)
    
    while (canRunStage.value != 616) {}
    useObject(C616())
    hasRunStage.getAndIncrement(616)
    
    while (canRunStage.value != 617) {}
    useObject(C617())
    hasRunStage.getAndIncrement(617)
    
    while (canRunStage.value != 618) {}
    useObject(C618())
    hasRunStage.getAndIncrement(618)
    
    while (canRunStage.value != 619) {}
    useObject(C619())
    hasRunStage.getAndIncrement(619)
    
    while (canRunStage.value != 620) {}
    useObject(C620())
    hasRunStage.getAndIncrement(620)
    
    while (canRunStage.value != 621) {}
    useObject(C621())
    hasRunStage.getAndIncrement(621)
    
    while (canRunStage.value != 622) {}
    useObject(C622())
    hasRunStage.getAndIncrement(622)
    
    while (canRunStage.value != 623) {}
    useObject(C623())
    hasRunStage.getAndIncrement(623)
    
    while (canRunStage.value != 624) {}
    useObject(C624())
    hasRunStage.getAndIncrement(624)
    
    while (canRunStage.value != 625) {}
    useObject(C625())
    hasRunStage.getAndIncrement(625)
    
    while (canRunStage.value != 626) {}
    useObject(C626())
    hasRunStage.getAndIncrement(626)
    
    while (canRunStage.value != 627) {}
    useObject(C627())
    hasRunStage.getAndIncrement(627)
    
    while (canRunStage.value != 628) {}
    useObject(C628())
    hasRunStage.getAndIncrement(628)
    
    while (canRunStage.value != 629) {}
    useObject(C629())
    hasRunStage.getAndIncrement(629)
    
    while (canRunStage.value != 630) {}
    useObject(C630())
    hasRunStage.getAndIncrement(630)
    
    while (canRunStage.value != 631) {}
    useObject(C631())
    hasRunStage.getAndIncrement(631)
    
    while (canRunStage.value != 632) {}
    useObject(C632())
    hasRunStage.getAndIncrement(632)
    
    while (canRunStage.value != 633) {}
    useObject(C633())
    hasRunStage.getAndIncrement(633)
    
    while (canRunStage.value != 634) {}
    useObject(C634())
    hasRunStage.getAndIncrement(634)
    
    while (canRunStage.value != 635) {}
    useObject(C635())
    hasRunStage.getAndIncrement(635)
    
    while (canRunStage.value != 636) {}
    useObject(C636())
    hasRunStage.getAndIncrement(636)
    
    while (canRunStage.value != 637) {}
    useObject(C637())
    hasRunStage.getAndIncrement(637)
    
    while (canRunStage.value != 638) {}
    useObject(C638())
    hasRunStage.getAndIncrement(638)
    
    while (canRunStage.value != 639) {}
    useObject(C639())
    hasRunStage.getAndIncrement(639)
    
    while (canRunStage.value != 640) {}
    useObject(C640())
    hasRunStage.getAndIncrement(640)
    
    while (canRunStage.value != 641) {}
    useObject(C641())
    hasRunStage.getAndIncrement(641)
    
    while (canRunStage.value != 642) {}
    useObject(C642())
    hasRunStage.getAndIncrement(642)
    
    while (canRunStage.value != 643) {}
    useObject(C643())
    hasRunStage.getAndIncrement(643)
    
    while (canRunStage.value != 644) {}
    useObject(C644())
    hasRunStage.getAndIncrement(644)
    
    while (canRunStage.value != 645) {}
    useObject(C645())
    hasRunStage.getAndIncrement(645)
    
    while (canRunStage.value != 646) {}
    useObject(C646())
    hasRunStage.getAndIncrement(646)
    
    while (canRunStage.value != 647) {}
    useObject(C647())
    hasRunStage.getAndIncrement(647)
    
    while (canRunStage.value != 648) {}
    useObject(C648())
    hasRunStage.getAndIncrement(648)
    
    while (canRunStage.value != 649) {}
    useObject(C649())
    hasRunStage.getAndIncrement(649)
    
    while (canRunStage.value != 650) {}
    useObject(C650())
    hasRunStage.getAndIncrement(650)
    
    while (canRunStage.value != 651) {}
    useObject(C651())
    hasRunStage.getAndIncrement(651)
    
    while (canRunStage.value != 652) {}
    useObject(C652())
    hasRunStage.getAndIncrement(652)
    
    while (canRunStage.value != 653) {}
    useObject(C653())
    hasRunStage.getAndIncrement(653)
    
    while (canRunStage.value != 654) {}
    useObject(C654())
    hasRunStage.getAndIncrement(654)
    
    while (canRunStage.value != 655) {}
    useObject(C655())
    hasRunStage.getAndIncrement(655)
    
    while (canRunStage.value != 656) {}
    useObject(C656())
    hasRunStage.getAndIncrement(656)
    
    while (canRunStage.value != 657) {}
    useObject(C657())
    hasRunStage.getAndIncrement(657)
    
    while (canRunStage.value != 658) {}
    useObject(C658())
    hasRunStage.getAndIncrement(658)
    
    while (canRunStage.value != 659) {}
    useObject(C659())
    hasRunStage.getAndIncrement(659)
    
    while (canRunStage.value != 660) {}
    useObject(C660())
    hasRunStage.getAndIncrement(660)
    
    while (canRunStage.value != 661) {}
    useObject(C661())
    hasRunStage.getAndIncrement(661)
    
    while (canRunStage.value != 662) {}
    useObject(C662())
    hasRunStage.getAndIncrement(662)
    
    while (canRunStage.value != 663) {}
    useObject(C663())
    hasRunStage.getAndIncrement(663)
    
    while (canRunStage.value != 664) {}
    useObject(C664())
    hasRunStage.getAndIncrement(664)
    
    while (canRunStage.value != 665) {}
    useObject(C665())
    hasRunStage.getAndIncrement(665)
    
    while (canRunStage.value != 666) {}
    useObject(C666())
    hasRunStage.getAndIncrement(666)
    
    while (canRunStage.value != 667) {}
    useObject(C667())
    hasRunStage.getAndIncrement(667)
    
    while (canRunStage.value != 668) {}
    useObject(C668())
    hasRunStage.getAndIncrement(668)
    
    while (canRunStage.value != 669) {}
    useObject(C669())
    hasRunStage.getAndIncrement(669)
    
    while (canRunStage.value != 670) {}
    useObject(C670())
    hasRunStage.getAndIncrement(670)
    
    while (canRunStage.value != 671) {}
    useObject(C671())
    hasRunStage.getAndIncrement(671)
    
    while (canRunStage.value != 672) {}
    useObject(C672())
    hasRunStage.getAndIncrement(672)
    
    while (canRunStage.value != 673) {}
    useObject(C673())
    hasRunStage.getAndIncrement(673)
    
    while (canRunStage.value != 674) {}
    useObject(C674())
    hasRunStage.getAndIncrement(674)
    
    while (canRunStage.value != 675) {}
    useObject(C675())
    hasRunStage.getAndIncrement(675)
    
    while (canRunStage.value != 676) {}
    useObject(C676())
    hasRunStage.getAndIncrement(676)
    
    while (canRunStage.value != 677) {}
    useObject(C677())
    hasRunStage.getAndIncrement(677)
    
    while (canRunStage.value != 678) {}
    useObject(C678())
    hasRunStage.getAndIncrement(678)
    
    while (canRunStage.value != 679) {}
    useObject(C679())
    hasRunStage.getAndIncrement(679)
    
    while (canRunStage.value != 680) {}
    useObject(C680())
    hasRunStage.getAndIncrement(680)
    
    while (canRunStage.value != 681) {}
    useObject(C681())
    hasRunStage.getAndIncrement(681)
    
    while (canRunStage.value != 682) {}
    useObject(C682())
    hasRunStage.getAndIncrement(682)
    
    while (canRunStage.value != 683) {}
    useObject(C683())
    hasRunStage.getAndIncrement(683)
    
    while (canRunStage.value != 684) {}
    useObject(C684())
    hasRunStage.getAndIncrement(684)
    
    while (canRunStage.value != 685) {}
    useObject(C685())
    hasRunStage.getAndIncrement(685)
    
    while (canRunStage.value != 686) {}
    useObject(C686())
    hasRunStage.getAndIncrement(686)
    
    while (canRunStage.value != 687) {}
    useObject(C687())
    hasRunStage.getAndIncrement(687)
    
    while (canRunStage.value != 688) {}
    useObject(C688())
    hasRunStage.getAndIncrement(688)
    
    while (canRunStage.value != 689) {}
    useObject(C689())
    hasRunStage.getAndIncrement(689)
    
    while (canRunStage.value != 690) {}
    useObject(C690())
    hasRunStage.getAndIncrement(690)
    
    while (canRunStage.value != 691) {}
    useObject(C691())
    hasRunStage.getAndIncrement(691)
    
    while (canRunStage.value != 692) {}
    useObject(C692())
    hasRunStage.getAndIncrement(692)
    
    while (canRunStage.value != 693) {}
    useObject(C693())
    hasRunStage.getAndIncrement(693)
    
    while (canRunStage.value != 694) {}
    useObject(C694())
    hasRunStage.getAndIncrement(694)
    
    while (canRunStage.value != 695) {}
    useObject(C695())
    hasRunStage.getAndIncrement(695)
    
    while (canRunStage.value != 696) {}
    useObject(C696())
    hasRunStage.getAndIncrement(696)
    
    while (canRunStage.value != 697) {}
    useObject(C697())
    hasRunStage.getAndIncrement(697)
    
    while (canRunStage.value != 698) {}
    useObject(C698())
    hasRunStage.getAndIncrement(698)
    
    while (canRunStage.value != 699) {}
    useObject(C699())
    hasRunStage.getAndIncrement(699)
    
    while (canRunStage.value != 700) {}
    useObject(C700())
    hasRunStage.getAndIncrement(700)
    
    while (canRunStage.value != 701) {}
    useObject(C701())
    hasRunStage.getAndIncrement(701)
    
    while (canRunStage.value != 702) {}
    useObject(C702())
    hasRunStage.getAndIncrement(702)
    
    while (canRunStage.value != 703) {}
    useObject(C703())
    hasRunStage.getAndIncrement(703)
    
    while (canRunStage.value != 704) {}
    useObject(C704())
    hasRunStage.getAndIncrement(704)
    
    while (canRunStage.value != 705) {}
    useObject(C705())
    hasRunStage.getAndIncrement(705)
    
    while (canRunStage.value != 706) {}
    useObject(C706())
    hasRunStage.getAndIncrement(706)
    
    while (canRunStage.value != 707) {}
    useObject(C707())
    hasRunStage.getAndIncrement(707)
    
    while (canRunStage.value != 708) {}
    useObject(C708())
    hasRunStage.getAndIncrement(708)
    
    while (canRunStage.value != 709) {}
    useObject(C709())
    hasRunStage.getAndIncrement(709)
    
    while (canRunStage.value != 710) {}
    useObject(C710())
    hasRunStage.getAndIncrement(710)
    
    while (canRunStage.value != 711) {}
    useObject(C711())
    hasRunStage.getAndIncrement(711)
    
    while (canRunStage.value != 712) {}
    useObject(C712())
    hasRunStage.getAndIncrement(712)
    
    while (canRunStage.value != 713) {}
    useObject(C713())
    hasRunStage.getAndIncrement(713)
    
    while (canRunStage.value != 714) {}
    useObject(C714())
    hasRunStage.getAndIncrement(714)
    
    while (canRunStage.value != 715) {}
    useObject(C715())
    hasRunStage.getAndIncrement(715)
    
    while (canRunStage.value != 716) {}
    useObject(C716())
    hasRunStage.getAndIncrement(716)
    
    while (canRunStage.value != 717) {}
    useObject(C717())
    hasRunStage.getAndIncrement(717)
    
    while (canRunStage.value != 718) {}
    useObject(C718())
    hasRunStage.getAndIncrement(718)
    
    while (canRunStage.value != 719) {}
    useObject(C719())
    hasRunStage.getAndIncrement(719)
    
    while (canRunStage.value != 720) {}
    useObject(C720())
    hasRunStage.getAndIncrement(720)
    
    while (canRunStage.value != 721) {}
    useObject(C721())
    hasRunStage.getAndIncrement(721)
    
    while (canRunStage.value != 722) {}
    useObject(C722())
    hasRunStage.getAndIncrement(722)
    
    while (canRunStage.value != 723) {}
    useObject(C723())
    hasRunStage.getAndIncrement(723)
    
    while (canRunStage.value != 724) {}
    useObject(C724())
    hasRunStage.getAndIncrement(724)
    
    while (canRunStage.value != 725) {}
    useObject(C725())
    hasRunStage.getAndIncrement(725)
    
    while (canRunStage.value != 726) {}
    useObject(C726())
    hasRunStage.getAndIncrement(726)
    
    while (canRunStage.value != 727) {}
    useObject(C727())
    hasRunStage.getAndIncrement(727)
    
    while (canRunStage.value != 728) {}
    useObject(C728())
    hasRunStage.getAndIncrement(728)
    
    while (canRunStage.value != 729) {}
    useObject(C729())
    hasRunStage.getAndIncrement(729)
    
    while (canRunStage.value != 730) {}
    useObject(C730())
    hasRunStage.getAndIncrement(730)
    
    while (canRunStage.value != 731) {}
    useObject(C731())
    hasRunStage.getAndIncrement(731)
    
    while (canRunStage.value != 732) {}
    useObject(C732())
    hasRunStage.getAndIncrement(732)
    
    while (canRunStage.value != 733) {}
    useObject(C733())
    hasRunStage.getAndIncrement(733)
    
    while (canRunStage.value != 734) {}
    useObject(C734())
    hasRunStage.getAndIncrement(734)
    
    while (canRunStage.value != 735) {}
    useObject(C735())
    hasRunStage.getAndIncrement(735)
    
    while (canRunStage.value != 736) {}
    useObject(C736())
    hasRunStage.getAndIncrement(736)
    
    while (canRunStage.value != 737) {}
    useObject(C737())
    hasRunStage.getAndIncrement(737)
    
    while (canRunStage.value != 738) {}
    useObject(C738())
    hasRunStage.getAndIncrement(738)
    
    while (canRunStage.value != 739) {}
    useObject(C739())
    hasRunStage.getAndIncrement(739)
    
    while (canRunStage.value != 740) {}
    useObject(C740())
    hasRunStage.getAndIncrement(740)
    
    while (canRunStage.value != 741) {}
    useObject(C741())
    hasRunStage.getAndIncrement(741)
    
    while (canRunStage.value != 742) {}
    useObject(C742())
    hasRunStage.getAndIncrement(742)
    
    while (canRunStage.value != 743) {}
    useObject(C743())
    hasRunStage.getAndIncrement(743)
    
    while (canRunStage.value != 744) {}
    useObject(C744())
    hasRunStage.getAndIncrement(744)
    
    while (canRunStage.value != 745) {}
    useObject(C745())
    hasRunStage.getAndIncrement(745)
    
    while (canRunStage.value != 746) {}
    useObject(C746())
    hasRunStage.getAndIncrement(746)
    
    while (canRunStage.value != 747) {}
    useObject(C747())
    hasRunStage.getAndIncrement(747)
    
    while (canRunStage.value != 748) {}
    useObject(C748())
    hasRunStage.getAndIncrement(748)
    
    while (canRunStage.value != 749) {}
    useObject(C749())
    hasRunStage.getAndIncrement(749)
    
    while (canRunStage.value != 750) {}
    useObject(C750())
    hasRunStage.getAndIncrement(750)
    
    while (canRunStage.value != 751) {}
    useObject(C751())
    hasRunStage.getAndIncrement(751)
    
    while (canRunStage.value != 752) {}
    useObject(C752())
    hasRunStage.getAndIncrement(752)
    
    while (canRunStage.value != 753) {}
    useObject(C753())
    hasRunStage.getAndIncrement(753)
    
    while (canRunStage.value != 754) {}
    useObject(C754())
    hasRunStage.getAndIncrement(754)
    
    while (canRunStage.value != 755) {}
    useObject(C755())
    hasRunStage.getAndIncrement(755)
    
    while (canRunStage.value != 756) {}
    useObject(C756())
    hasRunStage.getAndIncrement(756)
    
    while (canRunStage.value != 757) {}
    useObject(C757())
    hasRunStage.getAndIncrement(757)
    
    while (canRunStage.value != 758) {}
    useObject(C758())
    hasRunStage.getAndIncrement(758)
    
    while (canRunStage.value != 759) {}
    useObject(C759())
    hasRunStage.getAndIncrement(759)
    
    while (canRunStage.value != 760) {}
    useObject(C760())
    hasRunStage.getAndIncrement(760)
    
    while (canRunStage.value != 761) {}
    useObject(C761())
    hasRunStage.getAndIncrement(761)
    
    while (canRunStage.value != 762) {}
    useObject(C762())
    hasRunStage.getAndIncrement(762)
    
    while (canRunStage.value != 763) {}
    useObject(C763())
    hasRunStage.getAndIncrement(763)
    
    while (canRunStage.value != 764) {}
    useObject(C764())
    hasRunStage.getAndIncrement(764)
    
    while (canRunStage.value != 765) {}
    useObject(C765())
    hasRunStage.getAndIncrement(765)
    
    while (canRunStage.value != 766) {}
    useObject(C766())
    hasRunStage.getAndIncrement(766)
    
    while (canRunStage.value != 767) {}
    useObject(C767())
    hasRunStage.getAndIncrement(767)
    
    while (canRunStage.value != 768) {}
    useObject(C768())
    hasRunStage.getAndIncrement(768)
    
    while (canRunStage.value != 769) {}
    useObject(C769())
    hasRunStage.getAndIncrement(769)
    
    while (canRunStage.value != 770) {}
    useObject(C770())
    hasRunStage.getAndIncrement(770)
    
    while (canRunStage.value != 771) {}
    useObject(C771())
    hasRunStage.getAndIncrement(771)
    
    while (canRunStage.value != 772) {}
    useObject(C772())
    hasRunStage.getAndIncrement(772)
    
    while (canRunStage.value != 773) {}
    useObject(C773())
    hasRunStage.getAndIncrement(773)
    
    while (canRunStage.value != 774) {}
    useObject(C774())
    hasRunStage.getAndIncrement(774)
    
    while (canRunStage.value != 775) {}
    useObject(C775())
    hasRunStage.getAndIncrement(775)
    
    while (canRunStage.value != 776) {}
    useObject(C776())
    hasRunStage.getAndIncrement(776)
    
    while (canRunStage.value != 777) {}
    useObject(C777())
    hasRunStage.getAndIncrement(777)
    
    while (canRunStage.value != 778) {}
    useObject(C778())
    hasRunStage.getAndIncrement(778)
    
    while (canRunStage.value != 779) {}
    useObject(C779())
    hasRunStage.getAndIncrement(779)
    
    while (canRunStage.value != 780) {}
    useObject(C780())
    hasRunStage.getAndIncrement(780)
    
    while (canRunStage.value != 781) {}
    useObject(C781())
    hasRunStage.getAndIncrement(781)
    
    while (canRunStage.value != 782) {}
    useObject(C782())
    hasRunStage.getAndIncrement(782)
    
    while (canRunStage.value != 783) {}
    useObject(C783())
    hasRunStage.getAndIncrement(783)
    
    while (canRunStage.value != 784) {}
    useObject(C784())
    hasRunStage.getAndIncrement(784)
    
    while (canRunStage.value != 785) {}
    useObject(C785())
    hasRunStage.getAndIncrement(785)
    
    while (canRunStage.value != 786) {}
    useObject(C786())
    hasRunStage.getAndIncrement(786)
    
    while (canRunStage.value != 787) {}
    useObject(C787())
    hasRunStage.getAndIncrement(787)
    
    while (canRunStage.value != 788) {}
    useObject(C788())
    hasRunStage.getAndIncrement(788)
    
    while (canRunStage.value != 789) {}
    useObject(C789())
    hasRunStage.getAndIncrement(789)
    
    while (canRunStage.value != 790) {}
    useObject(C790())
    hasRunStage.getAndIncrement(790)
    
    while (canRunStage.value != 791) {}
    useObject(C791())
    hasRunStage.getAndIncrement(791)
    
    while (canRunStage.value != 792) {}
    useObject(C792())
    hasRunStage.getAndIncrement(792)
    
    while (canRunStage.value != 793) {}
    useObject(C793())
    hasRunStage.getAndIncrement(793)
    
    while (canRunStage.value != 794) {}
    useObject(C794())
    hasRunStage.getAndIncrement(794)
    
    while (canRunStage.value != 795) {}
    useObject(C795())
    hasRunStage.getAndIncrement(795)
    
    while (canRunStage.value != 796) {}
    useObject(C796())
    hasRunStage.getAndIncrement(796)
    
    while (canRunStage.value != 797) {}
    useObject(C797())
    hasRunStage.getAndIncrement(797)
    
    while (canRunStage.value != 798) {}
    useObject(C798())
    hasRunStage.getAndIncrement(798)
    
    while (canRunStage.value != 799) {}
    useObject(C799())
    hasRunStage.getAndIncrement(799)
    
    while (canRunStage.value != 800) {}
    useObject(C800())
    hasRunStage.getAndIncrement(800)
    
    while (canRunStage.value != 801) {}
    useObject(C801())
    hasRunStage.getAndIncrement(801)
    
    while (canRunStage.value != 802) {}
    useObject(C802())
    hasRunStage.getAndIncrement(802)
    
    while (canRunStage.value != 803) {}
    useObject(C803())
    hasRunStage.getAndIncrement(803)
    
    while (canRunStage.value != 804) {}
    useObject(C804())
    hasRunStage.getAndIncrement(804)
    
    while (canRunStage.value != 805) {}
    useObject(C805())
    hasRunStage.getAndIncrement(805)
    
    while (canRunStage.value != 806) {}
    useObject(C806())
    hasRunStage.getAndIncrement(806)
    
    while (canRunStage.value != 807) {}
    useObject(C807())
    hasRunStage.getAndIncrement(807)
    
    while (canRunStage.value != 808) {}
    useObject(C808())
    hasRunStage.getAndIncrement(808)
    
    while (canRunStage.value != 809) {}
    useObject(C809())
    hasRunStage.getAndIncrement(809)
    
    while (canRunStage.value != 810) {}
    useObject(C810())
    hasRunStage.getAndIncrement(810)
    
    while (canRunStage.value != 811) {}
    useObject(C811())
    hasRunStage.getAndIncrement(811)
    
    while (canRunStage.value != 812) {}
    useObject(C812())
    hasRunStage.getAndIncrement(812)
    
    while (canRunStage.value != 813) {}
    useObject(C813())
    hasRunStage.getAndIncrement(813)
    
    while (canRunStage.value != 814) {}
    useObject(C814())
    hasRunStage.getAndIncrement(814)
    
    while (canRunStage.value != 815) {}
    useObject(C815())
    hasRunStage.getAndIncrement(815)
    
    while (canRunStage.value != 816) {}
    useObject(C816())
    hasRunStage.getAndIncrement(816)
    
    while (canRunStage.value != 817) {}
    useObject(C817())
    hasRunStage.getAndIncrement(817)
    
    while (canRunStage.value != 818) {}
    useObject(C818())
    hasRunStage.getAndIncrement(818)
    
    while (canRunStage.value != 819) {}
    useObject(C819())
    hasRunStage.getAndIncrement(819)
    
    while (canRunStage.value != 820) {}
    useObject(C820())
    hasRunStage.getAndIncrement(820)
    
    while (canRunStage.value != 821) {}
    useObject(C821())
    hasRunStage.getAndIncrement(821)
    
    while (canRunStage.value != 822) {}
    useObject(C822())
    hasRunStage.getAndIncrement(822)
    
    while (canRunStage.value != 823) {}
    useObject(C823())
    hasRunStage.getAndIncrement(823)
    
    while (canRunStage.value != 824) {}
    useObject(C824())
    hasRunStage.getAndIncrement(824)
    
    while (canRunStage.value != 825) {}
    useObject(C825())
    hasRunStage.getAndIncrement(825)
    
    while (canRunStage.value != 826) {}
    useObject(C826())
    hasRunStage.getAndIncrement(826)
    
    while (canRunStage.value != 827) {}
    useObject(C827())
    hasRunStage.getAndIncrement(827)
    
    while (canRunStage.value != 828) {}
    useObject(C828())
    hasRunStage.getAndIncrement(828)
    
    while (canRunStage.value != 829) {}
    useObject(C829())
    hasRunStage.getAndIncrement(829)
    
    while (canRunStage.value != 830) {}
    useObject(C830())
    hasRunStage.getAndIncrement(830)
    
    while (canRunStage.value != 831) {}
    useObject(C831())
    hasRunStage.getAndIncrement(831)
    
    while (canRunStage.value != 832) {}
    useObject(C832())
    hasRunStage.getAndIncrement(832)
    
    while (canRunStage.value != 833) {}
    useObject(C833())
    hasRunStage.getAndIncrement(833)
    
    while (canRunStage.value != 834) {}
    useObject(C834())
    hasRunStage.getAndIncrement(834)
    
    while (canRunStage.value != 835) {}
    useObject(C835())
    hasRunStage.getAndIncrement(835)
    
    while (canRunStage.value != 836) {}
    useObject(C836())
    hasRunStage.getAndIncrement(836)
    
    while (canRunStage.value != 837) {}
    useObject(C837())
    hasRunStage.getAndIncrement(837)
    
    while (canRunStage.value != 838) {}
    useObject(C838())
    hasRunStage.getAndIncrement(838)
    
    while (canRunStage.value != 839) {}
    useObject(C839())
    hasRunStage.getAndIncrement(839)
    
    while (canRunStage.value != 840) {}
    useObject(C840())
    hasRunStage.getAndIncrement(840)
    
    while (canRunStage.value != 841) {}
    useObject(C841())
    hasRunStage.getAndIncrement(841)
    
    while (canRunStage.value != 842) {}
    useObject(C842())
    hasRunStage.getAndIncrement(842)
    
    while (canRunStage.value != 843) {}
    useObject(C843())
    hasRunStage.getAndIncrement(843)
    
    while (canRunStage.value != 844) {}
    useObject(C844())
    hasRunStage.getAndIncrement(844)
    
    while (canRunStage.value != 845) {}
    useObject(C845())
    hasRunStage.getAndIncrement(845)
    
    while (canRunStage.value != 846) {}
    useObject(C846())
    hasRunStage.getAndIncrement(846)
    
    while (canRunStage.value != 847) {}
    useObject(C847())
    hasRunStage.getAndIncrement(847)
    
    while (canRunStage.value != 848) {}
    useObject(C848())
    hasRunStage.getAndIncrement(848)
    
    while (canRunStage.value != 849) {}
    useObject(C849())
    hasRunStage.getAndIncrement(849)
    
    while (canRunStage.value != 850) {}
    useObject(C850())
    hasRunStage.getAndIncrement(850)
    
    while (canRunStage.value != 851) {}
    useObject(C851())
    hasRunStage.getAndIncrement(851)
    
    while (canRunStage.value != 852) {}
    useObject(C852())
    hasRunStage.getAndIncrement(852)
    
    while (canRunStage.value != 853) {}
    useObject(C853())
    hasRunStage.getAndIncrement(853)
    
    while (canRunStage.value != 854) {}
    useObject(C854())
    hasRunStage.getAndIncrement(854)
    
    while (canRunStage.value != 855) {}
    useObject(C855())
    hasRunStage.getAndIncrement(855)
    
    while (canRunStage.value != 856) {}
    useObject(C856())
    hasRunStage.getAndIncrement(856)
    
    while (canRunStage.value != 857) {}
    useObject(C857())
    hasRunStage.getAndIncrement(857)
    
    while (canRunStage.value != 858) {}
    useObject(C858())
    hasRunStage.getAndIncrement(858)
    
    while (canRunStage.value != 859) {}
    useObject(C859())
    hasRunStage.getAndIncrement(859)
    
    while (canRunStage.value != 860) {}
    useObject(C860())
    hasRunStage.getAndIncrement(860)
    
    while (canRunStage.value != 861) {}
    useObject(C861())
    hasRunStage.getAndIncrement(861)
    
    while (canRunStage.value != 862) {}
    useObject(C862())
    hasRunStage.getAndIncrement(862)
    
    while (canRunStage.value != 863) {}
    useObject(C863())
    hasRunStage.getAndIncrement(863)
    
    while (canRunStage.value != 864) {}
    useObject(C864())
    hasRunStage.getAndIncrement(864)
    
    while (canRunStage.value != 865) {}
    useObject(C865())
    hasRunStage.getAndIncrement(865)
    
    while (canRunStage.value != 866) {}
    useObject(C866())
    hasRunStage.getAndIncrement(866)
    
    while (canRunStage.value != 867) {}
    useObject(C867())
    hasRunStage.getAndIncrement(867)
    
    while (canRunStage.value != 868) {}
    useObject(C868())
    hasRunStage.getAndIncrement(868)
    
    while (canRunStage.value != 869) {}
    useObject(C869())
    hasRunStage.getAndIncrement(869)
    
    while (canRunStage.value != 870) {}
    useObject(C870())
    hasRunStage.getAndIncrement(870)
    
    while (canRunStage.value != 871) {}
    useObject(C871())
    hasRunStage.getAndIncrement(871)
    
    while (canRunStage.value != 872) {}
    useObject(C872())
    hasRunStage.getAndIncrement(872)
    
    while (canRunStage.value != 873) {}
    useObject(C873())
    hasRunStage.getAndIncrement(873)
    
    while (canRunStage.value != 874) {}
    useObject(C874())
    hasRunStage.getAndIncrement(874)
    
    while (canRunStage.value != 875) {}
    useObject(C875())
    hasRunStage.getAndIncrement(875)
    
    while (canRunStage.value != 876) {}
    useObject(C876())
    hasRunStage.getAndIncrement(876)
    
    while (canRunStage.value != 877) {}
    useObject(C877())
    hasRunStage.getAndIncrement(877)
    
    while (canRunStage.value != 878) {}
    useObject(C878())
    hasRunStage.getAndIncrement(878)
    
    while (canRunStage.value != 879) {}
    useObject(C879())
    hasRunStage.getAndIncrement(879)
    
    while (canRunStage.value != 880) {}
    useObject(C880())
    hasRunStage.getAndIncrement(880)
    
    while (canRunStage.value != 881) {}
    useObject(C881())
    hasRunStage.getAndIncrement(881)
    
    while (canRunStage.value != 882) {}
    useObject(C882())
    hasRunStage.getAndIncrement(882)
    
    while (canRunStage.value != 883) {}
    useObject(C883())
    hasRunStage.getAndIncrement(883)
    
    while (canRunStage.value != 884) {}
    useObject(C884())
    hasRunStage.getAndIncrement(884)
    
    while (canRunStage.value != 885) {}
    useObject(C885())
    hasRunStage.getAndIncrement(885)
    
    while (canRunStage.value != 886) {}
    useObject(C886())
    hasRunStage.getAndIncrement(886)
    
    while (canRunStage.value != 887) {}
    useObject(C887())
    hasRunStage.getAndIncrement(887)
    
    while (canRunStage.value != 888) {}
    useObject(C888())
    hasRunStage.getAndIncrement(888)
    
    while (canRunStage.value != 889) {}
    useObject(C889())
    hasRunStage.getAndIncrement(889)
    
    while (canRunStage.value != 890) {}
    useObject(C890())
    hasRunStage.getAndIncrement(890)
    
    while (canRunStage.value != 891) {}
    useObject(C891())
    hasRunStage.getAndIncrement(891)
    
    while (canRunStage.value != 892) {}
    useObject(C892())
    hasRunStage.getAndIncrement(892)
    
    while (canRunStage.value != 893) {}
    useObject(C893())
    hasRunStage.getAndIncrement(893)
    
    while (canRunStage.value != 894) {}
    useObject(C894())
    hasRunStage.getAndIncrement(894)
    
    while (canRunStage.value != 895) {}
    useObject(C895())
    hasRunStage.getAndIncrement(895)
    
    while (canRunStage.value != 896) {}
    useObject(C896())
    hasRunStage.getAndIncrement(896)
    
    while (canRunStage.value != 897) {}
    useObject(C897())
    hasRunStage.getAndIncrement(897)
    
    while (canRunStage.value != 898) {}
    useObject(C898())
    hasRunStage.getAndIncrement(898)
    
    while (canRunStage.value != 899) {}
    useObject(C899())
    hasRunStage.getAndIncrement(899)
    
    while (canRunStage.value != 900) {}
    useObject(C900())
    hasRunStage.getAndIncrement(900)
    
    while (canRunStage.value != 901) {}
    useObject(C901())
    hasRunStage.getAndIncrement(901)
    
    while (canRunStage.value != 902) {}
    useObject(C902())
    hasRunStage.getAndIncrement(902)
    
    while (canRunStage.value != 903) {}
    useObject(C903())
    hasRunStage.getAndIncrement(903)
    
    while (canRunStage.value != 904) {}
    useObject(C904())
    hasRunStage.getAndIncrement(904)
    
    while (canRunStage.value != 905) {}
    useObject(C905())
    hasRunStage.getAndIncrement(905)
    
    while (canRunStage.value != 906) {}
    useObject(C906())
    hasRunStage.getAndIncrement(906)
    
    while (canRunStage.value != 907) {}
    useObject(C907())
    hasRunStage.getAndIncrement(907)
    
    while (canRunStage.value != 908) {}
    useObject(C908())
    hasRunStage.getAndIncrement(908)
    
    while (canRunStage.value != 909) {}
    useObject(C909())
    hasRunStage.getAndIncrement(909)
    
    while (canRunStage.value != 910) {}
    useObject(C910())
    hasRunStage.getAndIncrement(910)
    
    while (canRunStage.value != 911) {}
    useObject(C911())
    hasRunStage.getAndIncrement(911)
    
    while (canRunStage.value != 912) {}
    useObject(C912())
    hasRunStage.getAndIncrement(912)
    
    while (canRunStage.value != 913) {}
    useObject(C913())
    hasRunStage.getAndIncrement(913)
    
    while (canRunStage.value != 914) {}
    useObject(C914())
    hasRunStage.getAndIncrement(914)
    
    while (canRunStage.value != 915) {}
    useObject(C915())
    hasRunStage.getAndIncrement(915)
    
    while (canRunStage.value != 916) {}
    useObject(C916())
    hasRunStage.getAndIncrement(916)
    
    while (canRunStage.value != 917) {}
    useObject(C917())
    hasRunStage.getAndIncrement(917)
    
    while (canRunStage.value != 918) {}
    useObject(C918())
    hasRunStage.getAndIncrement(918)
    
    while (canRunStage.value != 919) {}
    useObject(C919())
    hasRunStage.getAndIncrement(919)
    
    while (canRunStage.value != 920) {}
    useObject(C920())
    hasRunStage.getAndIncrement(920)
    
    while (canRunStage.value != 921) {}
    useObject(C921())
    hasRunStage.getAndIncrement(921)
    
    while (canRunStage.value != 922) {}
    useObject(C922())
    hasRunStage.getAndIncrement(922)
    
    while (canRunStage.value != 923) {}
    useObject(C923())
    hasRunStage.getAndIncrement(923)
    
    while (canRunStage.value != 924) {}
    useObject(C924())
    hasRunStage.getAndIncrement(924)
    
    while (canRunStage.value != 925) {}
    useObject(C925())
    hasRunStage.getAndIncrement(925)
    
    while (canRunStage.value != 926) {}
    useObject(C926())
    hasRunStage.getAndIncrement(926)
    
    while (canRunStage.value != 927) {}
    useObject(C927())
    hasRunStage.getAndIncrement(927)
    
    while (canRunStage.value != 928) {}
    useObject(C928())
    hasRunStage.getAndIncrement(928)
    
    while (canRunStage.value != 929) {}
    useObject(C929())
    hasRunStage.getAndIncrement(929)
    
    while (canRunStage.value != 930) {}
    useObject(C930())
    hasRunStage.getAndIncrement(930)
    
    while (canRunStage.value != 931) {}
    useObject(C931())
    hasRunStage.getAndIncrement(931)
    
    while (canRunStage.value != 932) {}
    useObject(C932())
    hasRunStage.getAndIncrement(932)
    
    while (canRunStage.value != 933) {}
    useObject(C933())
    hasRunStage.getAndIncrement(933)
    
    while (canRunStage.value != 934) {}
    useObject(C934())
    hasRunStage.getAndIncrement(934)
    
    while (canRunStage.value != 935) {}
    useObject(C935())
    hasRunStage.getAndIncrement(935)
    
    while (canRunStage.value != 936) {}
    useObject(C936())
    hasRunStage.getAndIncrement(936)
    
    while (canRunStage.value != 937) {}
    useObject(C937())
    hasRunStage.getAndIncrement(937)
    
    while (canRunStage.value != 938) {}
    useObject(C938())
    hasRunStage.getAndIncrement(938)
    
    while (canRunStage.value != 939) {}
    useObject(C939())
    hasRunStage.getAndIncrement(939)
    
    while (canRunStage.value != 940) {}
    useObject(C940())
    hasRunStage.getAndIncrement(940)
    
    while (canRunStage.value != 941) {}
    useObject(C941())
    hasRunStage.getAndIncrement(941)
    
    while (canRunStage.value != 942) {}
    useObject(C942())
    hasRunStage.getAndIncrement(942)
    
    while (canRunStage.value != 943) {}
    useObject(C943())
    hasRunStage.getAndIncrement(943)
    
    while (canRunStage.value != 944) {}
    useObject(C944())
    hasRunStage.getAndIncrement(944)
    
    while (canRunStage.value != 945) {}
    useObject(C945())
    hasRunStage.getAndIncrement(945)
    
    while (canRunStage.value != 946) {}
    useObject(C946())
    hasRunStage.getAndIncrement(946)
    
    while (canRunStage.value != 947) {}
    useObject(C947())
    hasRunStage.getAndIncrement(947)
    
    while (canRunStage.value != 948) {}
    useObject(C948())
    hasRunStage.getAndIncrement(948)
    
    while (canRunStage.value != 949) {}
    useObject(C949())
    hasRunStage.getAndIncrement(949)
    
    while (canRunStage.value != 950) {}
    useObject(C950())
    hasRunStage.getAndIncrement(950)
    
    while (canRunStage.value != 951) {}
    useObject(C951())
    hasRunStage.getAndIncrement(951)
    
    while (canRunStage.value != 952) {}
    useObject(C952())
    hasRunStage.getAndIncrement(952)
    
    while (canRunStage.value != 953) {}
    useObject(C953())
    hasRunStage.getAndIncrement(953)
    
    while (canRunStage.value != 954) {}
    useObject(C954())
    hasRunStage.getAndIncrement(954)
    
    while (canRunStage.value != 955) {}
    useObject(C955())
    hasRunStage.getAndIncrement(955)
    
    while (canRunStage.value != 956) {}
    useObject(C956())
    hasRunStage.getAndIncrement(956)
    
    while (canRunStage.value != 957) {}
    useObject(C957())
    hasRunStage.getAndIncrement(957)
    
    while (canRunStage.value != 958) {}
    useObject(C958())
    hasRunStage.getAndIncrement(958)
    
    while (canRunStage.value != 959) {}
    useObject(C959())
    hasRunStage.getAndIncrement(959)
    
    while (canRunStage.value != 960) {}
    useObject(C960())
    hasRunStage.getAndIncrement(960)
    
    while (canRunStage.value != 961) {}
    useObject(C961())
    hasRunStage.getAndIncrement(961)
    
    while (canRunStage.value != 962) {}
    useObject(C962())
    hasRunStage.getAndIncrement(962)
    
    while (canRunStage.value != 963) {}
    useObject(C963())
    hasRunStage.getAndIncrement(963)
    
    while (canRunStage.value != 964) {}
    useObject(C964())
    hasRunStage.getAndIncrement(964)
    
    while (canRunStage.value != 965) {}
    useObject(C965())
    hasRunStage.getAndIncrement(965)
    
    while (canRunStage.value != 966) {}
    useObject(C966())
    hasRunStage.getAndIncrement(966)
    
    while (canRunStage.value != 967) {}
    useObject(C967())
    hasRunStage.getAndIncrement(967)
    
    while (canRunStage.value != 968) {}
    useObject(C968())
    hasRunStage.getAndIncrement(968)
    
    while (canRunStage.value != 969) {}
    useObject(C969())
    hasRunStage.getAndIncrement(969)
    
    while (canRunStage.value != 970) {}
    useObject(C970())
    hasRunStage.getAndIncrement(970)
    
    while (canRunStage.value != 971) {}
    useObject(C971())
    hasRunStage.getAndIncrement(971)
    
    while (canRunStage.value != 972) {}
    useObject(C972())
    hasRunStage.getAndIncrement(972)
    
    while (canRunStage.value != 973) {}
    useObject(C973())
    hasRunStage.getAndIncrement(973)
    
    while (canRunStage.value != 974) {}
    useObject(C974())
    hasRunStage.getAndIncrement(974)
    
    while (canRunStage.value != 975) {}
    useObject(C975())
    hasRunStage.getAndIncrement(975)
    
    while (canRunStage.value != 976) {}
    useObject(C976())
    hasRunStage.getAndIncrement(976)
    
    while (canRunStage.value != 977) {}
    useObject(C977())
    hasRunStage.getAndIncrement(977)
    
    while (canRunStage.value != 978) {}
    useObject(C978())
    hasRunStage.getAndIncrement(978)
    
    while (canRunStage.value != 979) {}
    useObject(C979())
    hasRunStage.getAndIncrement(979)
    
    while (canRunStage.value != 980) {}
    useObject(C980())
    hasRunStage.getAndIncrement(980)
    
    while (canRunStage.value != 981) {}
    useObject(C981())
    hasRunStage.getAndIncrement(981)
    
    while (canRunStage.value != 982) {}
    useObject(C982())
    hasRunStage.getAndIncrement(982)
    
    while (canRunStage.value != 983) {}
    useObject(C983())
    hasRunStage.getAndIncrement(983)
    
    while (canRunStage.value != 984) {}
    useObject(C984())
    hasRunStage.getAndIncrement(984)
    
    while (canRunStage.value != 985) {}
    useObject(C985())
    hasRunStage.getAndIncrement(985)
    
    while (canRunStage.value != 986) {}
    useObject(C986())
    hasRunStage.getAndIncrement(986)
    
    while (canRunStage.value != 987) {}
    useObject(C987())
    hasRunStage.getAndIncrement(987)
    
    while (canRunStage.value != 988) {}
    useObject(C988())
    hasRunStage.getAndIncrement(988)
    
    while (canRunStage.value != 989) {}
    useObject(C989())
    hasRunStage.getAndIncrement(989)
    
    while (canRunStage.value != 990) {}
    useObject(C990())
    hasRunStage.getAndIncrement(990)
    
    while (canRunStage.value != 991) {}
    useObject(C991())
    hasRunStage.getAndIncrement(991)
    
    while (canRunStage.value != 992) {}
    useObject(C992())
    hasRunStage.getAndIncrement(992)
    
    while (canRunStage.value != 993) {}
    useObject(C993())
    hasRunStage.getAndIncrement(993)
    
    while (canRunStage.value != 994) {}
    useObject(C994())
    hasRunStage.getAndIncrement(994)
    
    while (canRunStage.value != 995) {}
    useObject(C995())
    hasRunStage.getAndIncrement(995)
    
    while (canRunStage.value != 996) {}
    useObject(C996())
    hasRunStage.getAndIncrement(996)
    
    while (canRunStage.value != 997) {}
    useObject(C997())
    hasRunStage.getAndIncrement(997)
    
    while (canRunStage.value != 998) {}
    useObject(C998())
    hasRunStage.getAndIncrement(998)
    
    while (canRunStage.value != 999) {}
    useObject(C999())
    hasRunStage.getAndIncrement(999)
    
    while (canRunStage.value != 1000) {}
    useObject(C1000())
    hasRunStage.getAndIncrement(1000)
}

fun main() {
    val workers = Array(10) { Worker.start() }

    workers.forEach { it.executeAfter(0, ::test) }

    while (hasRunStage[0] != workers.size) {}
    (1..MAX_STAGE).forEach { stage ->
        canRunStage.value = stage
        while (hasRunStage[stage] != workers.size) {}
    }

    workers.forEach { it.requestTermination().result }
}
