# LuckyBlastActivity_Model_LuckyBlastActivityModel_1757.luac
; fn @LuckyBlastActivityModel.lua  line 0-0 np=0 va=1 ms=5 code=439 consts=171 upvals=1 protos=137
;   K[0]='LuckyBlastActivityModel'
;   K[1]='setmetatable'
;   K[2]='BaseActivityModel'
;   K[3]='__index'
;   K[4]='TriggerState'
;   K[5]='tri'
;   K[6]='TriggerEndTime'
;   K[7]='end_time'
;   K[8]='TriggerCurrentStage'
;   K[9]='stg'
;   K[10]='TriggerCooldownEndTime'
;   K[11]='cd'
;   K[12]='EnergyConsumed'
;   K[13]='ene'
;   K[14]='LastEnergyConsumed'
;   K[15]='l_ene'
;   K[16]='NextPosition'
;   K[17]='pos'
;   K[18]='HasShowMachineAnimation'
;   K[19]='s_mach'
;   K[20]='PdChainTriggered'
;   K[21]='pd_tri'
;   K[22]='PdChainEnergyConsumed'
;   K[23]='pd_ene'
;   K[24]='PdChainEnergyRequired'
;   K[25]='pd_ene_req'
;   K[26]='PdChainTriggerEndTime'
;   K[27]='pd_end'
;   K[28]='ControlConfigKey'
;   K[29]='luckyBlastControl'
;   K[30]='ChainConfigKey'
;   K[31]='luckyBlastItem'
;   K[32]='Init'
;   K[33]='GetActivityDefinition'
;   K[34]='_OnStateChanged'
;   K[35]='IsActivityOpen'
;   K[36]='GetResourceLabels'
;   K[37]='_LoadDBTableData'
;   K[38]='_DropData'
;   K[39]='UpdatePerSecond'
;   K[40]='_GetLogPrefix'
;   K[41]='_LoadOtherServerConfig'
;   K[42]='_CheckConfigValid'
;   K[43]='LuckyBlastActivityModel'
;   K[44]='HasTimeLimit'
;   K[45]='GetDuration'
;   K[46]='GetCooldown'
;   K[47]='GetTotalStage'
;   K[48]='GetEnergyRequiredByStage'
;   K[49]='GetRoundTimeByStage'
;   K[50]='GetChainConfig'
;   K[51]='GetSpreadWeightInfo'
;   K[52]='GetPdChainEnergyPerRound'
;   K[53]='DB_VALUE_KEY'
;   K[54]=1
;   K[55]='_DBTableGetValue'
;   K[56]='_DBTableGetNumber'
;   K[57]='_DBTableGetTable'
;   K[58]='_DBTableSet'
;   K[59]='_DBTableSetTable'
;   K[60]='_DBTableRemove'
;   K[61]='IsTriggerState'
;   K[62]='SetTriggerState'
;   K[63]='GetTriggerEndTime'
;   K[64]='SetTriggerEndTime'
;   K[65]='GetTriggerCurrentStage'
;   K[66]='SetTriggerCurrentStage'
;   K[67]='GetTriggerCooldownEndTime'
;   K[68]='SetTriggerCooldownEndTime'
;   K[69]='GetEnergyConsumed'
;   K[70]='SetEnergyConsumed'
;   K[71]='GetLastEnergyConsumed'
;   K[72]='SetLastEnergyConsumed'
;   K[73]='GetNextPosition'
;   K[74]='SetNextPosition'
;   K[75]='SetHasShowMachineAnimation'
;   K[76]='_LoadPdChainTriggered'
;   K[77]='_SavePdChainTriggered'
;   K[78]='IsPdChainTriggered'
;   K[79]='GetPdChainTriggered'
;   K[80]='SetPdChainTriggered'
;   K[81]='ClearPdChainTriggered'
;   K[82]='_LoadPdChainEnergyConsumed'
;   K[83]='_SavePdChainEnergyConsumed'
;   K[84]='GetPdChainEnergyConsumed'
;   K[85]='SetPdChainEnergyConsumed'
;   K[86]='ClearPdChainEnergyConsumed'
;   K[87]='_LoadPdChainEnergyRequired'
;   K[88]='_SavePdChainEnergyRequired'
;   K[89]='GetPdChainEnergyRequired'
;   K[90]='SetPdChainEnergyRequired'
;   K[91]='ClearPdChainEnergyRequired'
;   K[92]='_LoadPdChainTriggerEndTime'
;   K[93]='_SavePdChainTriggerEndTime'
;   K[94]='GetPdChainTriggerEndTime'
;   K[95]='SetPdChainTriggerEndTime'
;   K[96]='ClearPdChainTriggerEndTime'
;   K[97]='GetLeftDuration'
;   K[98]='IsInDuration'
;   K[99]='IsInCooldown'
;   K[100]='GetPdChainTriggeredCount'
;   K[101]='HasNextStage'
;   K[102]='GetNextStage'
;   K[103]='GetNextStageEnergyRequired'
;   K[104]='_ChangePdChainEnergyConsumed'
;   K[105]='GetPdChainTriggeredByPosition'
;   K[106]='IsPdChainTriggeredByPosition'
;   K[107]='HasNextPosition'
;   K[108]='GetPdChainLeftDuration'
;   K[109]='IsPdChainInDuration'
;   K[110]='GetNextPositionByMode'
;   K[111]='SetHideTopRightEntry'
;   K[112]='IsHideTopRightEntry'
;   K[113]='SetHideSpreadEffect'
;   K[114]='IsHideSpreadEffect'
;   K[115]='_DispatchStateChangedEvent'
;   K[116]='_DispatchRefreshEntryEvent'
;   K[117]='_DispatchTriggerStateChangedEvent'
;   K[118]='_DispatchSelectPdChainEvent'
;   K[119]='_DispatchPdChainTriggerEndedEvent'
;   K[120]='_DispatchSimpleStartEvent'
;   K[121]='_DispatchRefreshSpreadEffectEvent'
;   K[122]='_DispatchTokenHitEvent'
;   K[123]='_DispatchRefreshEnergyConsumedEvent'
;   K[124]='_DispatchEnergyRequirementSatisfiedEvent'
;   K[125]='_DispatchClickEntryEvent'
;   K[126]='_DispatchMainWindowCanSpinEvent'
;   K[127]='_DispatchMainWindowStartSpinEvent'
;   K[128]='_DispatchMainWindowSpinEndEvent'
;   K[129]='_DispatchMainWindowIdleEvent'
;   K[130]='IsTriggered'
;   K[131]='CanTrigger'
;   K[132]='TryTrigger'
;   K[133]='_OnConsumeEnergy'
;   K[134]='GetButtonTarget'
;   K[135]='OnTokenHit'
;   K[136]='GetMainPdChainInfo'
;   K[137]='GetRemainMainPdChainForSpin'
;   K[138]='GetRemainValidMainPdChainForSpin'
;   K[139]='CanSpin'
;   K[140]='_FormatTmpOrderByCombineOrders'
;   K[141]='SelectPdChainToTrigger'
;   K[142]='GetMapPdChainShowItemCode'
;   K[143]='PreviewSpinResult'
;   K[144]='UpdateNextPosition'
;   K[145]='TriggerPdChain'
;   K[146]='OnSpreadTriggerEffectHit'
;   K[147]='IsItemSpreadHasNoCooldown'
;   K[148]='GetItemSpreadReplace'
;   K[149]='_GetFilteredSpreadWeightInfo'
;   K[150]='_RandomSetNextPdChainEnergyRequired'
;   K[151]='OnItemSpreadReplace'
;   K[152]='_TryAccumulatePdEnergy'
;   K[153]='GetItemSpreadTrailEffectConfig'
;   K[154]='TestFinishCurrentStage'
;   K[155]='TestSpreadNext'
;   K[156]='OnEntryClicked'
;   K[157]='_OpenWindow'
;   K[158]='OpenMainWindow'
;   K[159]='OpenHelpWindow'
;   K[160]='CanPopSimpleStart'
;   K[161]='OnMainWindowCanSpin'
;   K[162]='OnMainWindowStartSpin'
;   K[163]='OnMainWindowSpinEnd'
;   K[164]='OnMainWindowIdle'
;   K[165]='_IsEntryVisible'
;   K[166]='GetMapEntryShowConfig'
;   K[167]='GetItemSpreadEntryConfig'
;   K[168]='_LogStart'
;   K[169]='_LogReady'
;   K[170]='_LogSpin'
;   upvals: _ENV
;   locals: DBKey(21-439), DB_VALUE_KEY(86-439), TRUE_VALUE(87-439)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  GETTABUP  R2 = _ENV[K2('BaseActivityModel')]
0003  CALL      R0 = call(R0, 1 args, 2 rets)
0004  SETTABUP  _ENV[K0('LuckyBlastActivityModel')] = R0
0005  GETTABUP  R0 = _ENV[K0('LuckyBlastActivityModel')]
0006  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0007  SETTABLE  R0[K3('__index')] = R1
0008  NEWTABLE  R0 = {} (0 items)
0009  SETTABLE  R0[K4('TriggerState')] = K5('tri')
0010  SETTABLE  R0[K6('TriggerEndTime')] = K7('end_time')
0011  SETTABLE  R0[K8('TriggerCurrentStage')] = K9('stg')
0012  SETTABLE  R0[K10('TriggerCooldownEndTime')] = K11('cd')
0013  SETTABLE  R0[K12('EnergyConsumed')] = K13('ene')
0014  SETTABLE  R0[K14('LastEnergyConsumed')] = K15('l_ene')
0015  SETTABLE  R0[K16('NextPosition')] = K17('pos')
0016  SETTABLE  R0[K18('HasShowMachineAnimation')] = K19('s_mach')
0017  SETTABLE  R0[K20('PdChainTriggered')] = K21('pd_tri')
0018  SETTABLE  R0[K22('PdChainEnergyConsumed')] = K23('pd_ene')
0019  SETTABLE  R0[K24('PdChainEnergyRequired')] = K25('pd_ene_req')
0020  SETTABLE  R0[K26('PdChainTriggerEndTime')] = K27('pd_end')
0021  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0022  SETTABLE  R1[K28('ControlConfigKey')] = K29('luckyBlastControl')
0023  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0024  SETTABLE  R1[K30('ChainConfigKey')] = K31('luckyBlastItem')
0025  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0026  CLOSURE   R2 = closure proto0
0027  SETTABLE  R1[K32('Init')] = R2
0028  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0029  CLOSURE   R2 = closure proto1
0030  SETTABLE  R1[K33('GetActivityDefinition')] = R2
0031  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0032  CLOSURE   R2 = closure proto2
0033  SETTABLE  R1[K34('_OnStateChanged')] = R2
0034  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0035  CLOSURE   R2 = closure proto3
0036  SETTABLE  R1[K35('IsActivityOpen')] = R2
0037  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0038  CLOSURE   R2 = closure proto4
0039  SETTABLE  R1[K36('GetResourceLabels')] = R2
0040  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0041  CLOSURE   R2 = closure proto5
0042  SETTABLE  R1[K37('_LoadDBTableData')] = R2
0043  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0044  CLOSURE   R2 = closure proto6
0045  SETTABLE  R1[K38('_DropData')] = R2
0046  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0047  CLOSURE   R2 = closure proto7
0048  SETTABLE  R1[K39('UpdatePerSecond')] = R2
0049  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0050  CLOSURE   R2 = closure proto8
0051  SETTABLE  R1[K40('_GetLogPrefix')] = R2
0052  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0053  CLOSURE   R2 = closure proto9
0054  SETTABLE  R1[K41('_LoadOtherServerConfig')] = R2
0055  GETTABUP  R1 = _ENV[K0('LuckyBlastActivityModel')]
0056  CLOSURE   R2 = closure proto10
0057  SETTABLE  R1[K42('_CheckConfigValid')] = R2
0058  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0059  CLOSURE   R2 = closure proto11
0060  SETTABLE  R1[K44('HasTimeLimit')] = R2
0061  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0062  CLOSURE   R2 = closure proto12
0063  SETTABLE  R1[K45('GetDuration')] = R2
0064  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0065  CLOSURE   R2 = closure proto13
0066  SETTABLE  R1[K46('GetCooldown')] = R2
0067  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0068  CLOSURE   R2 = closure proto14
0069  SETTABLE  R1[K47('GetTotalStage')] = R2
0070  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0071  CLOSURE   R2 = closure proto15
0072  SETTABLE  R1[K48('GetEnergyRequiredByStage')] = R2
0073  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0074  CLOSURE   R2 = closure proto16
0075  SETTABLE  R1[K49('GetRoundTimeByStage')] = R2
0076  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0077  CLOSURE   R2 = closure proto17
0078  SETTABLE  R1[K50('GetChainConfig')] = R2
0079  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0080  CLOSURE   R2 = closure proto18
0081  SETTABLE  R1[K51('GetSpreadWeightInfo')] = R2
0082  GETTABUP  R1 = _ENV[K43('LuckyBlastActivityModel')]
0083  CLOSURE   R2 = closure proto19
0084  SETTABLE  R1[K52('GetPdChainEnergyPerRound')] = R2
0085  GETTABUP  R1 = _ENV[K53('DB_VALUE_KEY')]
0086  LOADK     R2 = K54 1
0087  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0088  CLOSURE   R4 = closure proto20
0089  SETTABLE  R3[K55('_DBTableGetValue')] = R4
0090  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0091  CLOSURE   R4 = closure proto21
0092  SETTABLE  R3[K56('_DBTableGetNumber')] = R4
0093  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0094  CLOSURE   R4 = closure proto22
0095  SETTABLE  R3[K57('_DBTableGetTable')] = R4
0096  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0097  CLOSURE   R4 = closure proto23
0098  SETTABLE  R3[K58('_DBTableSet')] = R4
0099  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0100  CLOSURE   R4 = closure proto24
0101  SETTABLE  R3[K59('_DBTableSetTable')] = R4
0102  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0103  CLOSURE   R4 = closure proto25
0104  SETTABLE  R3[K60('_DBTableRemove')] = R4
0105  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0106  CLOSURE   R4 = closure proto26
0107  SETTABLE  R3[K61('IsTriggerState')] = R4
0108  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0109  CLOSURE   R4 = closure proto27
0110  SETTABLE  R3[K62('SetTriggerState')] = R4
0111  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0112  CLOSURE   R4 = closure proto28
0113  SETTABLE  R3[K63('GetTriggerEndTime')] = R4
0114  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0115  CLOSURE   R4 = closure proto29
0116  SETTABLE  R3[K64('SetTriggerEndTime')] = R4
0117  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0118  CLOSURE   R4 = closure proto30
0119  SETTABLE  R3[K65('GetTriggerCurrentStage')] = R4
0120  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0121  CLOSURE   R4 = closure proto31
0122  SETTABLE  R3[K66('SetTriggerCurrentStage')] = R4
0123  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0124  CLOSURE   R4 = closure proto32
0125  SETTABLE  R3[K67('GetTriggerCooldownEndTime')] = R4
0126  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0127  CLOSURE   R4 = closure proto33
0128  SETTABLE  R3[K68('SetTriggerCooldownEndTime')] = R4
0129  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0130  CLOSURE   R4 = closure proto34
0131  SETTABLE  R3[K69('GetEnergyConsumed')] = R4
0132  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0133  CLOSURE   R4 = closure proto35
0134  SETTABLE  R3[K70('SetEnergyConsumed')] = R4
0135  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0136  CLOSURE   R4 = closure proto36
0137  SETTABLE  R3[K71('GetLastEnergyConsumed')] = R4
0138  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0139  CLOSURE   R4 = closure proto37
0140  SETTABLE  R3[K72('SetLastEnergyConsumed')] = R4
0141  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0142  CLOSURE   R4 = closure proto38
0143  SETTABLE  R3[K73('GetNextPosition')] = R4
0144  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0145  CLOSURE   R4 = closure proto39
0146  SETTABLE  R3[K74('SetNextPosition')] = R4
0147  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0148  CLOSURE   R4 = closure proto40
0149  SETTABLE  R3[K18('HasShowMachineAnimation')] = R4
0150  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0151  CLOSURE   R4 = closure proto41
0152  SETTABLE  R3[K75('SetHasShowMachineAnimation')] = R4
0153  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0154  CLOSURE   R4 = closure proto42
0155  SETTABLE  R3[K76('_LoadPdChainTriggered')] = R4
0156  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0157  CLOSURE   R4 = closure proto43
0158  SETTABLE  R3[K77('_SavePdChainTriggered')] = R4
0159  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0160  CLOSURE   R4 = closure proto44
0161  SETTABLE  R3[K78('IsPdChainTriggered')] = R4
0162  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0163  CLOSURE   R4 = closure proto45
0164  SETTABLE  R3[K79('GetPdChainTriggered')] = R4
0165  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0166  CLOSURE   R4 = closure proto46
0167  SETTABLE  R3[K80('SetPdChainTriggered')] = R4
0168  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0169  CLOSURE   R4 = closure proto47
0170  SETTABLE  R3[K81('ClearPdChainTriggered')] = R4
0171  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0172  CLOSURE   R4 = closure proto48
0173  SETTABLE  R3[K82('_LoadPdChainEnergyConsumed')] = R4
0174  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0175  CLOSURE   R4 = closure proto49
0176  SETTABLE  R3[K83('_SavePdChainEnergyConsumed')] = R4
0177  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0178  CLOSURE   R4 = closure proto50
0179  SETTABLE  R3[K84('GetPdChainEnergyConsumed')] = R4
0180  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0181  CLOSURE   R4 = closure proto51
0182  SETTABLE  R3[K85('SetPdChainEnergyConsumed')] = R4
0183  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0184  CLOSURE   R4 = closure proto52
0185  SETTABLE  R3[K86('ClearPdChainEnergyConsumed')] = R4
0186  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0187  CLOSURE   R4 = closure proto53
0188  SETTABLE  R3[K87('_LoadPdChainEnergyRequired')] = R4
0189  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0190  CLOSURE   R4 = closure proto54
0191  SETTABLE  R3[K88('_SavePdChainEnergyRequired')] = R4
0192  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0193  CLOSURE   R4 = closure proto55
0194  SETTABLE  R3[K89('GetPdChainEnergyRequired')] = R4
0195  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0196  CLOSURE   R4 = closure proto56
0197  SETTABLE  R3[K90('SetPdChainEnergyRequired')] = R4
0198  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0199  CLOSURE   R4 = closure proto57
0200  SETTABLE  R3[K91('ClearPdChainEnergyRequired')] = R4
0201  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0202  CLOSURE   R4 = closure proto58
0203  SETTABLE  R3[K92('_LoadPdChainTriggerEndTime')] = R4
0204  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0205  CLOSURE   R4 = closure proto59
0206  SETTABLE  R3[K93('_SavePdChainTriggerEndTime')] = R4
0207  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0208  CLOSURE   R4 = closure proto60
0209  SETTABLE  R3[K94('GetPdChainTriggerEndTime')] = R4
0210  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0211  CLOSURE   R4 = closure proto61
0212  SETTABLE  R3[K95('SetPdChainTriggerEndTime')] = R4
0213  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0214  CLOSURE   R4 = closure proto62
0215  SETTABLE  R3[K96('ClearPdChainTriggerEndTime')] = R4
0216  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0217  CLOSURE   R4 = closure proto63
0218  SETTABLE  R3[K97('GetLeftDuration')] = R4
0219  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0220  CLOSURE   R4 = closure proto64
0221  SETTABLE  R3[K98('IsInDuration')] = R4
0222  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0223  CLOSURE   R4 = closure proto65
0224  SETTABLE  R3[K99('IsInCooldown')] = R4
0225  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0226  CLOSURE   R4 = closure proto66
0227  SETTABLE  R3[K100('GetPdChainTriggeredCount')] = R4
0228  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0229  CLOSURE   R4 = closure proto67
0230  SETTABLE  R3[K101('HasNextStage')] = R4
0231  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0232  CLOSURE   R4 = closure proto68
0233  SETTABLE  R3[K102('GetNextStage')] = R4
0234  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0235  CLOSURE   R4 = closure proto69
0236  SETTABLE  R3[K103('GetNextStageEnergyRequired')] = R4
0237  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0238  CLOSURE   R4 = closure proto70
0239  SETTABLE  R3[K104('_ChangePdChainEnergyConsumed')] = R4
0240  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0241  CLOSURE   R4 = closure proto71
0242  SETTABLE  R3[K105('GetPdChainTriggeredByPosition')] = R4
0243  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0244  CLOSURE   R4 = closure proto72
0245  SETTABLE  R3[K106('IsPdChainTriggeredByPosition')] = R4
0246  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0247  CLOSURE   R4 = closure proto73
0248  SETTABLE  R3[K107('HasNextPosition')] = R4
0249  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0250  CLOSURE   R4 = closure proto74
0251  SETTABLE  R3[K108('GetPdChainLeftDuration')] = R4
0252  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0253  CLOSURE   R4 = closure proto75
0254  SETTABLE  R3[K109('IsPdChainInDuration')] = R4
0255  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0256  CLOSURE   R4 = closure proto76
0257  SETTABLE  R3[K110('GetNextPositionByMode')] = R4
0258  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0259  CLOSURE   R4 = closure proto77
0260  SETTABLE  R3[K111('SetHideTopRightEntry')] = R4
0261  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0262  CLOSURE   R4 = closure proto78
0263  SETTABLE  R3[K112('IsHideTopRightEntry')] = R4
0264  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0265  CLOSURE   R4 = closure proto79
0266  SETTABLE  R3[K113('SetHideSpreadEffect')] = R4
0267  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0268  CLOSURE   R4 = closure proto80
0269  SETTABLE  R3[K114('IsHideSpreadEffect')] = R4
0270  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0271  CLOSURE   R4 = closure proto81
0272  SETTABLE  R3[K115('_DispatchStateChangedEvent')] = R4
0273  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0274  CLOSURE   R4 = closure proto82
0275  SETTABLE  R3[K116('_DispatchRefreshEntryEvent')] = R4
0276  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0277  CLOSURE   R4 = closure proto83
0278  SETTABLE  R3[K117('_DispatchTriggerStateChangedEvent')] = R4
0279  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0280  CLOSURE   R4 = closure proto84
0281  SETTABLE  R3[K118('_DispatchSelectPdChainEvent')] = R4
0282  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0283  CLOSURE   R4 = closure proto85
0284  SETTABLE  R3[K119('_DispatchPdChainTriggerEndedEvent')] = R4
0285  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0286  CLOSURE   R4 = closure proto86
0287  SETTABLE  R3[K120('_DispatchSimpleStartEvent')] = R4
0288  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0289  CLOSURE   R4 = closure proto87
0290  SETTABLE  R3[K121('_DispatchRefreshSpreadEffectEvent')] = R4
0291  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0292  CLOSURE   R4 = closure proto88
0293  SETTABLE  R3[K122('_DispatchTokenHitEvent')] = R4
0294  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0295  CLOSURE   R4 = closure proto89
0296  SETTABLE  R3[K123('_DispatchRefreshEnergyConsumedEvent')] = R4
0297  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0298  CLOSURE   R4 = closure proto90
0299  SETTABLE  R3[K124('_DispatchEnergyRequirementSatisfiedEvent')] = R4
0300  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0301  CLOSURE   R4 = closure proto91
0302  SETTABLE  R3[K125('_DispatchClickEntryEvent')] = R4
0303  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0304  CLOSURE   R4 = closure proto92
0305  SETTABLE  R3[K126('_DispatchMainWindowCanSpinEvent')] = R4
0306  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0307  CLOSURE   R4 = closure proto93
0308  SETTABLE  R3[K127('_DispatchMainWindowStartSpinEvent')] = R4
0309  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0310  CLOSURE   R4 = closure proto94
0311  SETTABLE  R3[K128('_DispatchMainWindowSpinEndEvent')] = R4
0312  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0313  CLOSURE   R4 = closure proto95
0314  SETTABLE  R3[K129('_DispatchMainWindowIdleEvent')] = R4
0315  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0316  CLOSURE   R4 = closure proto96
0317  SETTABLE  R3[K130('IsTriggered')] = R4
0318  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0319  CLOSURE   R4 = closure proto97
0320  SETTABLE  R3[K131('CanTrigger')] = R4
0321  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0322  CLOSURE   R4 = closure proto98
0323  SETTABLE  R3[K132('TryTrigger')] = R4
0324  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0325  CLOSURE   R4 = closure proto99
0326  SETTABLE  R3[K133('_OnConsumeEnergy')] = R4
0327  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0328  CLOSURE   R4 = closure proto100
0329  SETTABLE  R3[K134('GetButtonTarget')] = R4
0330  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0331  CLOSURE   R4 = closure proto101
0332  SETTABLE  R3[K135('OnTokenHit')] = R4
0333  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0334  CLOSURE   R4 = closure proto102
0335  SETTABLE  R3[K136('GetMainPdChainInfo')] = R4
0336  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0337  CLOSURE   R4 = closure proto103
0338  SETTABLE  R3[K137('GetRemainMainPdChainForSpin')] = R4
0339  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0340  CLOSURE   R4 = closure proto104
0341  SETTABLE  R3[K138('GetRemainValidMainPdChainForSpin')] = R4
0342  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0343  CLOSURE   R4 = closure proto105
0344  SETTABLE  R3[K139('CanSpin')] = R4
0345  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0346  CLOSURE   R4 = closure proto106
0347  SETTABLE  R3[K140('_FormatTmpOrderByCombineOrders')] = R4
0348  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0349  CLOSURE   R4 = closure proto107
0350  SETTABLE  R3[K141('SelectPdChainToTrigger')] = R4
0351  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0352  CLOSURE   R4 = closure proto108
0353  SETTABLE  R3[K142('GetMapPdChainShowItemCode')] = R4
0354  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0355  CLOSURE   R4 = closure proto109
0356  SETTABLE  R3[K143('PreviewSpinResult')] = R4
0357  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0358  CLOSURE   R4 = closure proto110
0359  SETTABLE  R3[K144('UpdateNextPosition')] = R4
0360  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0361  CLOSURE   R4 = closure proto111
0362  SETTABLE  R3[K145('TriggerPdChain')] = R4
0363  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0364  CLOSURE   R4 = closure proto112
0365  SETTABLE  R3[K146('OnSpreadTriggerEffectHit')] = R4
0366  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0367  CLOSURE   R4 = closure proto113
0368  SETTABLE  R3[K147('IsItemSpreadHasNoCooldown')] = R4
0369  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0370  CLOSURE   R4 = closure proto114
0371  SETTABLE  R3[K148('GetItemSpreadReplace')] = R4
0372  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0373  CLOSURE   R4 = closure proto115
0374  SETTABLE  R3[K149('_GetFilteredSpreadWeightInfo')] = R4
0375  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0376  CLOSURE   R4 = closure proto116
0377  SETTABLE  R3[K150('_RandomSetNextPdChainEnergyRequired')] = R4
0378  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0379  CLOSURE   R4 = closure proto117
0380  SETTABLE  R3[K151('OnItemSpreadReplace')] = R4
0381  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0382  CLOSURE   R4 = closure proto118
0383  SETTABLE  R3[K152('_TryAccumulatePdEnergy')] = R4
0384  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0385  CLOSURE   R4 = closure proto119
0386  SETTABLE  R3[K153('GetItemSpreadTrailEffectConfig')] = R4
0387  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0388  CLOSURE   R4 = closure proto120
0389  SETTABLE  R3[K154('TestFinishCurrentStage')] = R4
0390  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0391  CLOSURE   R4 = closure proto121
0392  SETTABLE  R3[K155('TestSpreadNext')] = R4
0393  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0394  CLOSURE   R4 = closure proto122
0395  SETTABLE  R3[K156('OnEntryClicked')] = R4
0396  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0397  CLOSURE   R4 = closure proto123
0398  SETTABLE  R3[K157('_OpenWindow')] = R4
0399  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0400  CLOSURE   R4 = closure proto124
0401  SETTABLE  R3[K158('OpenMainWindow')] = R4
0402  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0403  CLOSURE   R4 = closure proto125
0404  SETTABLE  R3[K159('OpenHelpWindow')] = R4
0405  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0406  CLOSURE   R4 = closure proto126
0407  SETTABLE  R3[K160('CanPopSimpleStart')] = R4
0408  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0409  CLOSURE   R4 = closure proto127
0410  SETTABLE  R3[K161('OnMainWindowCanSpin')] = R4
0411  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0412  CLOSURE   R4 = closure proto128
0413  SETTABLE  R3[K162('OnMainWindowStartSpin')] = R4
0414  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0415  CLOSURE   R4 = closure proto129
0416  SETTABLE  R3[K163('OnMainWindowSpinEnd')] = R4
0417  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0418  CLOSURE   R4 = closure proto130
0419  SETTABLE  R3[K164('OnMainWindowIdle')] = R4
0420  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0421  CLOSURE   R4 = closure proto131
0422  SETTABLE  R3[K165('_IsEntryVisible')] = R4
0423  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0424  CLOSURE   R4 = closure proto132
0425  SETTABLE  R3[K166('GetMapEntryShowConfig')] = R4
0426  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0427  CLOSURE   R4 = closure proto133
0428  SETTABLE  R3[K167('GetItemSpreadEntryConfig')] = R4
0429  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0430  CLOSURE   R4 = closure proto134
0431  SETTABLE  R3[K168('_LogStart')] = R4
0432  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0433  CLOSURE   R4 = closure proto135
0434  SETTABLE  R3[K169('_LogReady')] = R4
0435  GETTABUP  R3 = _ENV[K43('LuckyBlastActivityModel')]
0436  CLOSURE   R4 = closure proto136
0437  SETTABLE  R3[K170('_LogSpin')] = R4
0438  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 39-49 np=3 va=0 ms=7 code=21 consts=11 upvals=1 protos=0
  ;   K[0]='m_activityDefinition'
  ;   K[1]='LuckyBlastActivityDefinition'
  ;   K[2]='BaseActivityModel'
  ;   K[3]='Init'
  ;   K[4]='_LoadDBTableData'
  ;   K[5]='m_mapHideSpreadEffect'
  ;   K[6]='EventDispatcher'
  ;   K[7]='AddListener'
  ;   K[8]='EEventType'
  ;   K[9]='CosumeEnergy'
  ;   K[10]='_OnConsumeEnergy'
  ;   upvals: _ENV
  ;   locals: self(0-21), activityType(0-21), virtualDBTable(0-21)
  0000  GETTABUP  R3 = _ENV[K1('LuckyBlastActivityDefinition')]
  0001  GETTABLE  R3 = R3[R1]
  0002  SETTABLE  R0[K0('m_activityDefinition')] = R3
  0003  GETTABUP  R3 = _ENV[K2('BaseActivityModel')]
  0004  GETTABLE  R3 = R3[K3('Init')]
  0005  MOVE      R4 = R0
  0006  MOVE      R5 = R0
  0007  MOVE      R6 = R0
  0008  CALL      R3 = call(R3, 0 args, 3 rets)
  0009  SELF      R4 = R0[K4('_LoadDBTableData')] (self)
  0010  CALL      R3 = call(R3, 0 args, 1 rets)
  0011  NEWTABLE  R3 = {} (0 items)
  0012  SETTABLE  R0[K5('m_mapHideSpreadEffect')] = R3
  0013  GETTABUP  R3 = _ENV[K6('EventDispatcher')]
  0014  GETTABLE  R3 = R3[K7('AddListener')]
  0015  GETTABUP  R4 = _ENV[K8('EEventType')]
  0016  GETTABLE  R4 = R4[K9('CosumeEnergy')]
  0017  MOVE      R5 = R0
  0018  GETTABLE  R6 = R0[K10('_OnConsumeEnergy')]
  0019  CALL      R3 = call(R3, 0 args, 3 rets)
  0020  RETURN    return R0..R-1
; ---------- proto1 [GetActivityDefinition] ----------
  ; fn ?  line 52-54 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_activityDefinition'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_activityDefinition')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto2 [_OnStateChanged] ----------
  ; fn ?  line 57-62 np=1 va=0 ms=3 code=9 consts=4 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='_OnStateChanged'
  ;   K[2]='_DispatchStateChangedEvent'
  ;   K[3]='_DispatchRefreshEntryEvent'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  GETTABUP  R1 = _ENV[K0('BaseActivityModel')]
  0001  GETTABLE  R1 = R1[K1('_OnStateChanged')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('_DispatchStateChangedEvent')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  SELF      R2 = R0[K3('_DispatchRefreshEntryEvent')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto3 [IsActivityOpen] ----------
  ; fn ?  line 65-67 np=1 va=0 ms=3 code=10 consts=3 upvals=1 protos=0
  ;   K[0]='GetState'
  ;   K[1]='ActivityState'
  ;   K[2]='Started'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('GetState')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('ActivityState')]
  0003  GETTABLE  R2 = R2[K2('Started')]
  0004  EQ        if R1 eq R2   -> -130552
  0005  JMP       (jump)   -> 7
  0006  LOADBOOL  R1 = false
  0007  LOADBOOL  R1 = true
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto4 [GetResourceLabels] ----------
  ; fn ?  line 71-73 np=1 va=0 ms=2 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_activityDefinition'
  ;   K[1]='ResourceLabels'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_activityDefinition')]
  0001  GETTABLE  R1 = R1[K1('ResourceLabels')]
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto5 [_LoadDBTableData] ----------
  ; fn ?  line 76-81 np=1 va=0 ms=3 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='_LoadPdChainTriggered'
  ;   K[1]='_LoadPdChainEnergyConsumed'
  ;   K[2]='_LoadPdChainEnergyRequired'
  ;   K[3]='_LoadPdChainTriggerEndTime'
  ;   locals: self(0-9)
  0000  SELF      R2 = R0[K0('_LoadPdChainTriggered')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  SELF      R2 = R0[K1('_LoadPdChainEnergyConsumed')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('_LoadPdChainEnergyRequired')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  SELF      R2 = R0[K3('_LoadPdChainTriggerEndTime')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto6 [_DropData] ----------
  ; fn ?  line 84-90 np=1 va=0 ms=3 code=13 consts=6 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='_DropData'
  ;   K[2]='m_arrPdChainTriggered'
  ;   K[3]='m_mapPdChainEnergyConsumed'
  ;   K[4]='m_mapPdChainEnergyRequired'
  ;   K[5]='m_mapPdChainTriggerEndTime'
  ;   upvals: _ENV
  ;   locals: self(0-13)
  0000  GETTABUP  R1 = _ENV[K0('BaseActivityModel')]
  0001  GETTABLE  R1 = R1[K1('_DropData')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  NEWTABLE  R1 = {} (0 items)
  0005  SETTABLE  R0[K2('m_arrPdChainTriggered')] = R1
  0006  NEWTABLE  R1 = {} (0 items)
  0007  SETTABLE  R0[K3('m_mapPdChainEnergyConsumed')] = R1
  0008  NEWTABLE  R1 = {} (0 items)
  0009  SETTABLE  R0[K4('m_mapPdChainEnergyRequired')] = R1
  0010  NEWTABLE  R1 = {} (0 items)
  0011  SETTABLE  R0[K5('m_mapPdChainTriggerEndTime')] = R1
  0012  RETURN    return R0..R-1
; ---------- proto7 [UpdatePerSecond] ----------
  ; fn ?  line 93-122 np=1 va=0 ms=12 code=63 consts=18 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='UpdatePerSecond'
  ;   K[2]='IsTriggerState'
  ;   K[3]='IsInDuration'
  ;   K[4]='SetTriggerState'
  ;   K[5]='ClearPdChainTriggered'
  ;   K[6]='_DispatchRefreshEntryEvent'
  ;   K[7]='_DispatchTriggerStateChangedEvent'
  ;   K[8]='_DispatchSimpleStartEvent'
  ;   K[9]='HasTimeLimit'
  ;   K[10]=1
  ;   K[11]='GetTotalStage'
  ;   K[12]='IsPdChainTriggeredByPosition'
  ;   K[13]='GetPdChainTriggeredByPosition'
  ;   K[14]='IsPdChainInDuration'
  ;   K[15]='SetPdChainTriggered'
  ;   K[16]='UpdateNextPosition'
  ;   K[17]='_DispatchPdChainTriggerEndedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-63), bStateChanged(29-62), (for index)(33-54), (for limit)(33-54), (for step)(33-54), position(34-53), chainId(42-53)
  0000  GETTABUP  R1 = _ENV[K0('BaseActivityModel')]
  0001  GETTABLE  R1 = R1[K1('UpdatePerSecond')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('IsTriggerState')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  TEST      if not R1 then   -> -131064
  0007  JMP       (jump)   -> 62
  0008  SELF      R2 = R0[K3('IsInDuration')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  TEST      if not R1 then   -> -131059
  0011  JMP       (jump)   -> 24
  0012  SELF      R2 = R0[K4('SetTriggerState')] (self)
  0013  LOADBOOL  R3 = false
  0014  CALL      R1 = call(R1, 0 args, 2 rets)
  0015  SELF      R2 = R0[K5('ClearPdChainTriggered')] (self)
  0016  CALL      R1 = call(R1, 0 args, 1 rets)
  0017  SELF      R2 = R0[K6('_DispatchRefreshEntryEvent')] (self)
  0018  CALL      R1 = call(R1, 0 args, 1 rets)
  0019  SELF      R2 = R0[K7('_DispatchTriggerStateChangedEvent')] (self)
  0020  CALL      R1 = call(R1, 0 args, 1 rets)
  0021  SELF      R2 = R0[K8('_DispatchSimpleStartEvent')] (self)
  0022  CALL      R1 = call(R1, 0 args, 1 rets)
  0023  JMP       (jump)   -> 62
  0024  SELF      R2 = R0[K9('HasTimeLimit')] (self)
  0025  CALL      R1 = call(R1, 1 args, 1 rets)
  0026  TEST      if not R1 then   -> -131044
  0027  JMP       (jump)   -> 62
  0028  LOADBOOL  R1 = false
  0029  LOADK     R2 = K10 1
  0030  SELF      R4 = R0[K11('GetTotalStage')] (self)
  0031  CALL      R3 = call(R3, 1 args, 1 rets)
  0032  LOADK     R4 = K10 1
  0033  FORPREP   forprep R2(sBx=19)   -> 53
  0034  SELF      R7 = R0[K12('IsPdChainTriggeredByPosition')] (self)
  0035  MOVE      R8 = R0
  0036  CALL      R6 = call(R6, 1 args, 2 rets)
  0037  TEST      if not R6 then   -> -131033
  0038  JMP       (jump)   -> 53
  0039  SELF      R7 = R0[K13('GetPdChainTriggeredByPosition')] (self)
  0040  MOVE      R8 = R0
  0041  CALL      R6 = call(R6, 1 args, 2 rets)
  0042  SELF      R8 = R0[K14('IsPdChainInDuration')] (self)
  0043  MOVE      R9 = R0
  0044  CALL      R7 = call(R7, 1 args, 2 rets)
  0045  TEST      if not R7 then   -> -131024
  0046  JMP       (jump)   -> 53
  0047  SELF      R8 = R0[K15('SetPdChainTriggered')] (self)
  0048  MOVE      R9 = R0
  0049  MOVE      R10 = R0
  0050  LOADBOOL  R11 = false
  0051  CALL      R7 = call(R7, 0 args, 4 rets)
  0052  LOADBOOL  R1 = true
  0053  FORLOOP   forloop R2(sBx=-20)   -> 34
  0054  TEST      if not R1 then   -> -131016
  0055  JMP       (jump)   -> 62
  0056  SELF      R3 = R0[K16('UpdateNextPosition')] (self)
  0057  CALL      R2 = call(R2, 0 args, 1 rets)
  0058  SELF      R3 = R0[K6('_DispatchRefreshEntryEvent')] (self)
  0059  CALL      R2 = call(R2, 0 args, 1 rets)
  0060  SELF      R3 = R0[K17('_DispatchPdChainTriggerEndedEvent')] (self)
  0061  CALL      R2 = call(R2, 0 args, 1 rets)
  0062  RETURN    return R0..R-1
; ---------- proto8 [_GetLogPrefix] ----------
  ; fn ?  line 128-130 np=2 va=0 ms=6 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='string'
  ;   K[1]='format'
  ;   K[2]='[幸运喷发] 活动id=<color=#FFA000>%d</color>，'
  ;   K[3]='id'
  ;   K[4]='GetId'
  ;   upvals: _ENV
  ;   locals: self(0-13), config(0-13)
  0000  GETTABUP  R2 = _ENV[K0('string')]
  0001  GETTABLE  R2 = R2[K1('format')]
  0002  LOADK     R3 = K2 '[幸运喷发] 活动id=<color=#FFA000>%d</color>，'
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 8
  0005  GETTABLE  R4 = R1[K3('id')]
  0006  TEST      if not R4 then   -> -131063
  0007  JMP       (jump)   -> 10
  0008  SELF      R5 = R0[K4('GetId')] (self)
  0009  CALL      R4 = call(R4, 1 args, 1 rets)
  0010  TAILCALL  tailcall(R2, 0)
  0011  RETURN    return R2..R1
  0012  RETURN    return R0..R-1
; ---------- proto9 [_LoadOtherServerConfig] ----------
  ; fn ?  line 132-159 np=2 va=0 ms=18 code=117 consts=28 upvals=1 protos=0
  ;   K[0]='LuckyBlastActivityModel'
  ;   K[1]='ControlConfigKey'
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]=0
  ;   K[5]='Log'
  ;   K[6]='Error'
  ;   K[7]='string'
  ;   K[8]='format'
  ;   K[9]='%s没有找到配置：%s，配置需要使用include关联表%s！'
  ;   K[10]='_GetLogPrefix'
  ;   K[11]='LogTag'
  ;   K[12]='ConfigCheck'
  ;   K[13]='m_config'
  ;   K[14]='controlConfig'
  ;   K[15]='LuckyBlastActivityControlConfig'
  ;   K[16]='Create'
  ;   K[17]=1
  ;   K[18]='ChainConfigKey'
  ;   K[19]='ipairs'
  ;   K[20]='LuckyBlastActivityChainConfig'
  ;   K[21]='GetPdChainId'
  ;   K[22]='GameConfig'
  ;   K[23]='IsTestMode'
  ;   K[24]=nil
  ;   K[25]='%s配置表%s里，母棋子合成线配置重复：pdType=%s'
  ;   K[26]='mapChainConfig'
  ;   K[27]='_CheckConfigValid'
  ;   upvals: _ENV
  ;   locals: self(0-117), config(0-117), arrRawControlConfig(6-117), mapChainConfig(41-117), arrRawChainConfig(47-117), chainConfig(73-117), chainId(73-117), (for generator)(76-111), (for state)(76-111), (for control)(76-111), _(77-109), rawConfig(77-109)
  0000  GETTABUP  R2 = _ENV[K0('LuckyBlastActivityModel')]
  0001  GETTABLE  R2 = R2[K1('ControlConfigKey')]
  0002  GETTABLE  R2 = R1[R2]
  0003  TEST      if not R2 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  NEWTABLE  R2 = {} (0 items)
  0006  GETTABUP  R3 = _ENV[K2('Table')]
  0007  GETTABLE  R3 = R3[K3('IsEmpty')]
  0008  MOVE      R4 = R0
  0009  CALL      R3 = call(R3, 1 args, 1 rets)
  0010  TEST      if not R3 then   -> -131059
  0011  JMP       (jump)   -> 15
  0012  LEN       R3 = len R0
  0013  LE        if R0 le K4(0)   -> -129261
  0014  JMP       (jump)   -> 31
  0015  GETTABUP  R3 = _ENV[K5('Log')]
  0016  GETTABLE  R3 = R3[K6('Error')]
  0017  GETTABUP  R4 = _ENV[K7('string')]
  0018  GETTABLE  R4 = R4[K8('format')]
  0019  LOADK     R5 = K9 '%s没有找到配置：%s，配置需要使用include关联表%s！'
  0020  SELF      R7 = R0[K10('_GetLogPrefix')] (self)
  0021  MOVE      R8 = R0
  0022  CALL      R6 = call(R6, 1 args, 2 rets)
  0023  GETTABUP  R7 = _ENV[K0('LuckyBlastActivityModel')]
  0024  GETTABLE  R7 = R7[K1('ControlConfigKey')]
  0025  GETTABUP  R8 = _ENV[K0('LuckyBlastActivityModel')]
  0026  GETTABLE  R8 = R8[K1('ControlConfigKey')]
  0027  CALL      R4 = call(R4, 1 args, 4 rets)
  0028  GETTABUP  R5 = _ENV[K11('LogTag')]
  0029  GETTABLE  R5 = R5[K12('ConfigCheck')]
  0030  CALL      R3 = call(R3, 0 args, 2 rets)
  0031  GETTABLE  R3 = R0[K13('m_config')]
  0032  GETTABUP  R4 = _ENV[K15('LuckyBlastActivityControlConfig')]
  0033  GETTABLE  R4 = R4[K16('Create')]
  0034  GETTABLE  R5 = R2[K17(1)]
  0035  TEST      if not R5 then   -> -131034
  0036  JMP       (jump)   -> 38
  0037  NEWTABLE  R5 = {} (0 items)
  0038  CALL      R4 = call(R4, 1 args, 1 rets)
  0039  SETTABLE  R3[K14('controlConfig')] = R4
  0040  NEWTABLE  R3 = {} (0 items)
  0041  GETTABUP  R4 = _ENV[K0('LuckyBlastActivityModel')]
  0042  GETTABLE  R4 = R4[K18('ChainConfigKey')]
  0043  GETTABLE  R4 = R1[R4]
  0044  TEST      if not R4 then   -> -131025
  0045  JMP       (jump)   -> 47
  0046  NEWTABLE  R4 = {} (0 items)
  0047  GETTABUP  R5 = _ENV[K2('Table')]
  0048  GETTABLE  R5 = R5[K3('IsEmpty')]
  0049  MOVE      R6 = R0
  0050  CALL      R5 = call(R5, 1 args, 1 rets)
  0051  TEST      if not R5 then   -> -131018
  0052  JMP       (jump)   -> 56
  0053  LEN       R5 = len R0
  0054  LE        if R0 le K4(0)   -> -128196
  0055  JMP       (jump)   -> 72
  0056  GETTABUP  R5 = _ENV[K5('Log')]
  0057  GETTABLE  R5 = R5[K6('Error')]
  0058  GETTABUP  R6 = _ENV[K7('string')]
  0059  GETTABLE  R6 = R6[K8('format')]
  0060  LOADK     R7 = K9 '%s没有找到配置：%s，配置需要使用include关联表%s！'
  0061  SELF      R9 = R0[K10('_GetLogPrefix')] (self)
  0062  MOVE      R10 = R0
  0063  CALL      R8 = call(R8, 1 args, 2 rets)
  0064  GETTABUP  R9 = _ENV[K0('LuckyBlastActivityModel')]
  0065  GETTABLE  R9 = R9[K18('ChainConfigKey')]
  0066  GETTABUP  R10 = _ENV[K0('LuckyBlastActivityModel')]
  0067  GETTABLE  R10 = R10[K18('ChainConfigKey')]
  0068  CALL      R6 = call(R6, 1 args, 4 rets)
  0069  GETTABUP  R7 = _ENV[K11('LogTag')]
  0070  GETTABLE  R7 = R7[K12('ConfigCheck')]
  0071  CALL      R5 = call(R5, 0 args, 2 rets)
  0072  LOADNIL   R5..R5 = nil
  0073  GETTABUP  R7 = _ENV[K19('ipairs')]
  0074  MOVE      R8 = R0
  0075  CALL      R7 = call(R7, 3 args, 1 rets)
  0076  JMP       (jump)   -> 109
  0077  GETTABUP  R12 = _ENV[K20('LuckyBlastActivityChainConfig')]
  0078  GETTABLE  R12 = R12[K16('Create')]
  0079  MOVE      R13 = R0
  0080  CALL      R12 = call(R12, 1 args, 1 rets)
  0081  MOVE      R5 = R0
  0082  SELF      R13 = R5[K21('GetPdChainId')] (self)
  0083  CALL      R12 = call(R12, 1 args, 1 rets)
  0084  MOVE      R6 = R0
  0085  GETTABUP  R12 = _ENV[K22('GameConfig')]
  0086  GETTABLE  R12 = R12[K23('IsTestMode')]
  0087  CALL      R12 = call(R12, 1 args, 0 rets)
  0088  TEST      if not R12 then   -> -130982
  0089  JMP       (jump)   -> 108
  0090  GETTABLE  R12 = R3[R6]
  0091  EQ        if R1 eq K24(nil)   -> -124555
  0092  JMP       (jump)   -> 108
  0093  GETTABUP  R12 = _ENV[K5('Log')]
  0094  GETTABLE  R12 = R12[K6('Error')]
  0095  GETTABUP  R13 = _ENV[K7('string')]
  0096  GETTABLE  R13 = R13[K8('format')]
  0097  LOADK     R14 = K25 '%s配置表%s里，母棋子合成线配置重复：pdType=%s'
  0098  SELF      R16 = R0[K10('_GetLogPrefix')] (self)
  0099  MOVE      R17 = R0
  0100  CALL      R15 = call(R15, 1 args, 2 rets)
  0101  GETTABUP  R16 = _ENV[K0('LuckyBlastActivityModel')]
  0102  GETTABLE  R16 = R16[K18('ChainConfigKey')]
  0103  MOVE      R17 = R0
  0104  CALL      R13 = call(R13, 1 args, 4 rets)
  0105  GETTABUP  R14 = _ENV[K11('LogTag')]
  0106  GETTABLE  R14 = R14[K12('ConfigCheck')]
  0107  CALL      R12 = call(R12, 0 args, 2 rets)
  0108  SETTABLE  R3[R6] = R5
  0109  TFORCALL  tforcall R7
  0110  TFORLOOP  tforloop R9(sBx=-34)   -> 77
  0111  GETTABLE  R7 = R0[K13('m_config')]
  0112  SETTABLE  R7[K26('mapChainConfig')] = R3
  0113  SELF      R8 = R0[K27('_CheckConfigValid')] (self)
  0114  MOVE      R9 = R0
  0115  CALL      R7 = call(R7, 0 args, 2 rets)
  0116  RETURN    return R0..R-1
; ---------- proto10 [_CheckConfigValid] ----------
  ; fn ?  line 161-238 np=2 va=0 ms=27 code=245 consts=44 upvals=1 protos=2
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='m_config'
  ;   K[3]='controlConfig'
  ;   K[4]='GetEnergyNeeded'
  ;   K[5]='GetActivityDefinition'
  ;   K[6]='TotalStage'
  ;   K[7]='HasTimeLimit'
  ;   K[8]='Log'
  ;   K[9]='Error'
  ;   K[10]='string'
  ;   K[11]='format'
  ;   K[12]='%s配置表%s里，每轮所需要的体力配置不完整，当前roundneed=%s，非母棋子限时模式下<color=#FFA000>体力需求配置必须是%d轮</color>！'
  ;   K[13]='_GetLogPrefix'
  ;   K[14]='LuckyBlastActivityModel'
  ;   K[15]='ControlConfigKey'
  ;   K[16]='table'
  ;   K[17]='concat'
  ;   K[18]=';'
  ;   K[19]='LogTag'
  ;   K[20]='ConfigCheck'
  ;   K[21]=1
  ;   K[22]=nil
  ;   K[23]=0
  ;   K[24]='%s配置表%s里，第%d轮的体力要求roundneed=%d，<color=#FFA000>体力需求必须大于0</color>！'
  ;   K[25]='pairs'
  ;   K[26]='mapChainConfig'
  ;   K[27]='%s配置表%s里，pdType=%s，母棋子类型错误，<color=#FFA000>母棋子类型必须是基础母棋子合成线</color>（pd_1到pd_7）！'
  ;   K[28]='ChainConfigKey'
  ;   K[29]='GetPdChainWeight'
  ;   K[30]='insert'
  ;   K[31]='GetSpreadWeightInfo'
  ;   K[32]='%s-%d'
  ;   K[33]='Item'
  ;   K[34]='Weight'
  ;   K[35]='GM'
  ;   K[36]='ItemDataModel'
  ;   K[37]='IsItemExist'
  ;   K[38]='%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板的棋子配置错误</color>！'
  ;   K[39]='%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板的棋子不是母棋子合成线生产的棋子或其转化棋子</color>！'
  ;   K[40]='%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板没有大于0的权重</color>！'
  ;   K[41]='GetEnergyPerRound'
  ;   K[42]='%s配置表%s里，pdType=%s，needEne=%d，<color=#FFA000>母棋子触发幸运喷发的体力要求必须大于0</color>！'
  ;   K[43]='%s配置表%s里，母棋子weight权重错误，当前权重大于0的母棋子合成线为%s，<color=#FFA000>母棋子权重大于0的数量必须大于等于%d</color>！'
  ;   upvals: _ENV
  ;   locals: self(0-245), config(0-245), energyNeeded(10-245), totalStage(13-245), (for index)(43-66), (for limit)(43-66), (for step)(43-66), stage(44-65), energy(45-65), arrValidChainId(67-245), (for generator)(71-221), (for state)(71-221), (for control)(71-221), chainId(72-219), chainConfig(72-219), checkChainIdValid(73-218), bWeightFound(102-218), logArrWeightInfo(103-218), getMapPdChainId(104-218), (for generator)(110-174), (for state)(110-174), (for control)(110-174), _(111-172), weightInfo(111-172), logWeightInfo(117-172)
  0000  GETTABUP  R2 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R2 = R2[K1('IsTestMode')]
  0002  CALL      R2 = call(R2, 1 args, 0 rets)
  0003  TEST      if not R2 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  GETTABLE  R2 = R0[K2('m_config')]
  0007  GETTABLE  R2 = R2[K3('controlConfig')]
  0008  SELF      R3 = R2[K4('GetEnergyNeeded')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  SELF      R4 = R0[K5('GetActivityDefinition')] (self)
  0011  CALL      R3 = call(R3, 1 args, 1 rets)
  0012  GETTABLE  R3 = R3[K6('TotalStage')]
  0013  LEN       R4 = len R0
  0014  EQ        if R1 eq R3   -> -129005
  0015  JMP       (jump)   -> 40
  0016  SELF      R5 = R0[K7('HasTimeLimit')] (self)
  0017  CALL      R4 = call(R4, 1 args, 1 rets)
  0018  TEST      if not R4 then   -> -131051
  0019  JMP       (jump)   -> 40
  0020  GETTABUP  R4 = _ENV[K8('Log')]
  0021  GETTABLE  R4 = R4[K9('Error')]
  0022  GETTABUP  R5 = _ENV[K10('string')]
  0023  GETTABLE  R5 = R5[K11('format')]
  0024  LOADK     R6 = K12 '%s配置表%s里，每轮所需要的体力配置不完整，当前roundneed=%s，非母棋子限时模式下<color=#FFA000>体力需求配置必须是%d轮</color>！'
  0025  SELF      R8 = R0[K13('_GetLogPrefix')] (self)
  0026  MOVE      R9 = R0
  0027  CALL      R7 = call(R7, 1 args, 2 rets)
  0028  GETTABUP  R8 = _ENV[K14('LuckyBlastActivityModel')]
  0029  GETTABLE  R8 = R8[K15('ControlConfigKey')]
  0030  GETTABUP  R9 = _ENV[K16('table')]
  0031  GETTABLE  R9 = R9[K17('concat')]
  0032  MOVE      R10 = R0
  0033  LOADK     R11 = K18 ';'
  0034  CALL      R9 = call(R9, 1 args, 2 rets)
  0035  MOVE      R10 = R0
  0036  CALL      R5 = call(R5, 1 args, 5 rets)
  0037  GETTABUP  R6 = _ENV[K19('LogTag')]
  0038  GETTABLE  R6 = R6[K20('ConfigCheck')]
  0039  CALL      R4 = call(R4, 0 args, 2 rets)
  0040  LOADK     R4 = K21 1
  0041  MOVE      R5 = R0
  0042  LOADK     R6 = K21 1
  0043  FORPREP   forprep R4(sBx=21)   -> 65
  0044  GETTABLE  R8 = R2[R7]
  0045  EQ        if R1 eq K22(nil)   -> -126651
  0046  JMP       (jump)   -> 65
  0047  LE        if R0 le K23(0)   -> -126648
  0048  JMP       (jump)   -> 65
  0049  GETTABUP  R9 = _ENV[K8('Log')]
  0050  GETTABLE  R9 = R9[K9('Error')]
  0051  GETTABUP  R10 = _ENV[K10('string')]
  0052  GETTABLE  R10 = R10[K11('format')]
  0053  LOADK     R11 = K24 '%s配置表%s里，第%d轮的体力要求roundneed=%d，<color=#FFA000>体力需求必须大于0</color>！'
  0054  SELF      R13 = R0[K13('_GetLogPrefix')] (self)
  0055  MOVE      R14 = R0
  0056  CALL      R12 = call(R12, 1 args, 2 rets)
  0057  GETTABUP  R13 = _ENV[K14('LuckyBlastActivityModel')]
  0058  GETTABLE  R13 = R13[K15('ControlConfigKey')]
  0059  MOVE      R14 = R0
  0060  MOVE      R15 = R0
  0061  CALL      R10 = call(R10, 1 args, 5 rets)
  0062  GETTABUP  R11 = _ENV[K19('LogTag')]
  0063  GETTABLE  R11 = R11[K20('ConfigCheck')]
  0064  CALL      R9 = call(R9, 0 args, 2 rets)
  0065  FORLOOP   forloop R4(sBx=-22)   -> 44
  0066  NEWTABLE  R4 = {} (0 items)
  0067  GETTABUP  R5 = _ENV[K25('pairs')]
  0068  GETTABLE  R6 = R0[K2('m_config')]
  0069  GETTABLE  R6 = R6[K26('mapChainConfig')]
  0070  CALL      R5 = call(R5, 3 args, 1 rets)
  0071  JMP       (jump)   -> 219
  0072  CLOSURE   R10 = closure proto0
  0073  MOVE      R11 = R0
  0074  CALL      R11 = call(R11, 1 args, 0 rets)
  0075  TEST      if not R11 then   -> -130994
  0076  JMP       (jump)   -> 92
  0077  GETTABUP  R11 = _ENV[K8('Log')]
  0078  GETTABLE  R11 = R11[K9('Error')]
  0079  GETTABUP  R12 = _ENV[K10('string')]
  0080  GETTABLE  R12 = R12[K11('format')]
  0081  LOADK     R13 = K27 '%s配置表%s里，pdType=%s，母棋子类型错误，<color=#FFA000>母棋子类型必须是基础母棋子合成线</color>（pd_1到pd_7）！'
  0082  SELF      R15 = R0[K13('_GetLogPrefix')] (self)
  0083  MOVE      R16 = R0
  0084  CALL      R14 = call(R14, 1 args, 2 rets)
  0085  GETTABUP  R15 = _ENV[K14('LuckyBlastActivityModel')]
  0086  GETTABLE  R15 = R15[K28('ChainConfigKey')]
  0087  MOVE      R16 = R0
  0088  CALL      R12 = call(R12, 1 args, 4 rets)
  0089  GETTABUP  R13 = _ENV[K19('LogTag')]
  0090  GETTABLE  R13 = R13[K20('ConfigCheck')]
  0091  CALL      R11 = call(R11, 0 args, 2 rets)
  0092  SELF      R12 = R9[K29('GetPdChainWeight')] (self)
  0093  CALL      R11 = call(R11, 1 args, 1 rets)
  0094  LT        if R0 lt R11   -> 11883
  0095  JMP       (jump)   -> 101
  0096  GETTABUP  R11 = _ENV[K16('table')]
  0097  GETTABLE  R11 = R11[K30('insert')]
  0098  MOVE      R12 = R0
  0099  MOVE      R13 = R0
  0100  CALL      R11 = call(R11, 0 args, 2 rets)
  0101  LOADBOOL  R11 = false
  0102  NEWTABLE  R12 = {} (0 items)
  0103  LOADNIL   R13..R13 = nil
  0104  CLOSURE   R14 = closure proto1
  0105  MOVE      R13 = R0
  0106  GETTABUP  R14 = _ENV[K25('pairs')]
  0107  SELF      R16 = R9[K31('GetSpreadWeightInfo')] (self)
  0108  CALL      R15 = call(R15, -1 args, 1 rets)
  0109  CALL      R14 = call(R14, 3 args, -1 rets)
  0110  JMP       (jump)   -> 172
  0111  GETTABUP  R19 = _ENV[K10('string')]
  0112  GETTABLE  R19 = R19[K11('format')]
  0113  LOADK     R20 = K32 '%s-%d'
  0114  GETTABLE  R21 = R18[K33('Item')]
  0115  GETTABLE  R22 = R18[K34('Weight')]
  0116  CALL      R19 = call(R19, 1 args, 3 rets)
  0117  GETTABUP  R20 = _ENV[K16('table')]
  0118  GETTABLE  R20 = R20[K30('insert')]
  0119  MOVE      R21 = R0
  0120  MOVE      R22 = R0
  0121  CALL      R20 = call(R20, 0 args, 2 rets)
  0122  GETTABLE  R20 = R18[K34('Weight')]
  0123  LT        if R0 lt R20   -> 11921
  0124  JMP       (jump)   -> 126
  0125  LOADBOOL  R11 = true
  0126  GETTABUP  R20 = _ENV[K35('GM')]
  0127  GETTABLE  R20 = R20[K36('ItemDataModel')]
  0128  SELF      R21 = R20[K37('IsItemExist')] (self)
  0129  GETTABLE  R22 = R18[K33('Item')]
  0130  CALL      R20 = call(R20, 1 args, 2 rets)
  0131  TEST      if not R20 then   -> -130938
  0132  JMP       (jump)   -> 150
  0133  GETTABUP  R20 = _ENV[K8('Log')]
  0134  GETTABLE  R20 = R20[K9('Error')]
  0135  GETTABUP  R21 = _ENV[K10('string')]
  0136  GETTABLE  R21 = R21[K11('format')]
  0137  LOADK     R22 = K38 '%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板的棋子配置错误</color>！'
  0138  SELF      R24 = R0[K13('_GetLogPrefix')] (self)
  0139  MOVE      R25 = R0
  0140  CALL      R23 = call(R23, 1 args, 2 rets)
  0141  GETTABUP  R24 = _ENV[K14('LuckyBlastActivityModel')]
  0142  GETTABLE  R24 = R24[K28('ChainConfigKey')]
  0143  MOVE      R25 = R0
  0144  MOVE      R26 = R0
  0145  CALL      R21 = call(R21, 1 args, 5 rets)
  0146  GETTABUP  R22 = _ENV[K19('LogTag')]
  0147  GETTABLE  R22 = R22[K20('ConfigCheck')]
  0148  CALL      R20 = call(R20, 0 args, 2 rets)
  0149  JMP       (jump)   -> 172
  0150  MOVE      R20 = R0
  0151  GETTABLE  R21 = R18[K33('Item')]
  0152  CALL      R20 = call(R20, 1 args, 1 rets)
  0153  GETTABLE  R20 = R20[R8]
  0154  TEST      if not R20 then   -> -130915
  0155  JMP       (jump)   -> 172
  0156  GETTABUP  R20 = _ENV[K8('Log')]
  0157  GETTABLE  R20 = R20[K9('Error')]
  0158  GETTABUP  R21 = _ENV[K10('string')]
  0159  GETTABLE  R21 = R21[K11('format')]
  0160  LOADK     R22 = K39 '%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板的棋子不是母棋子合成线生产的棋子或其转化棋子</color>！'
  0161  SELF      R24 = R0[K13('_GetLogPrefix')] (self)
  0162  MOVE      R25 = R0
  0163  CALL      R23 = call(R23, 1 args, 2 rets)
  0164  GETTABUP  R24 = _ENV[K14('LuckyBlastActivityModel')]
  0165  GETTABLE  R24 = R24[K28('ChainConfigKey')]
  0166  MOVE      R25 = R0
  0167  MOVE      R26 = R0
  0168  CALL      R21 = call(R21, 1 args, 5 rets)
  0169  GETTABUP  R22 = _ENV[K19('LogTag')]
  0170  GETTABLE  R22 = R22[K20('ConfigCheck')]
  0171  CALL      R20 = call(R20, 0 args, 2 rets)
  0172  TFORCALL  tforcall R14
  0173  TFORLOOP  tforloop R16(sBx=-63)   -> 111
  0174  TEST      if not R11 then   -> -130895
  0175  JMP       (jump)   -> 196
  0176  GETTABUP  R14 = _ENV[K8('Log')]
  0177  GETTABLE  R14 = R14[K9('Error')]
  0178  GETTABUP  R15 = _ENV[K10('string')]
  0179  GETTABLE  R15 = R15[K11('format')]
  0180  LOADK     R16 = K40 '%s配置表%s里，pdType=%s，spread=%s，<color=#FFA000>喷发模板没有大于0的权重</color>！'
  0181  SELF      R18 = R0[K13('_GetLogPrefix')] (self)
  0182  MOVE      R19 = R0
  0183  CALL      R17 = call(R17, 1 args, 2 rets)
  0184  GETTABUP  R18 = _ENV[K14('LuckyBlastActivityModel')]
  0185  GETTABLE  R18 = R18[K28('ChainConfigKey')]
  0186  MOVE      R19 = R0
  0187  GETTABUP  R20 = _ENV[K16('table')]
  0188  GETTABLE  R20 = R20[K17('concat')]
  0189  MOVE      R21 = R0
  0190  LOADK     R22 = K18 ';'
  0191  CALL      R20 = call(R20, -1 args, 2 rets)
  0192  CALL      R15 = call(R15, 1 args, -1 rets)
  0193  GETTABUP  R16 = _ENV[K19('LogTag')]
  0194  GETTABLE  R16 = R16[K20('ConfigCheck')]
  0195  CALL      R14 = call(R14, 0 args, 2 rets)
  0196  SELF      R15 = R9[K41('GetEnergyPerRound')] (self)
  0197  CALL      R14 = call(R14, 1 args, 1 rets)
  0198  LE        if R0 le K23(0)   -> -123425
  0199  JMP       (jump)   -> 219
  0200  GETTABUP  R14 = _ENV[K8('Log')]
  0201  GETTABLE  R14 = R14[K9('Error')]
  0202  GETTABUP  R15 = _ENV[K10('string')]
  0203  GETTABLE  R15 = R15[K11('format')]
  0204  LOADK     R16 = K42 '%s配置表%s里，pdType=%s，needEne=%d，<color=#FFA000>母棋子触发幸运喷发的体力要求必须大于0</color>！'
  0205  SELF      R18 = R0[K13('_GetLogPrefix')] (self)
  0206  MOVE      R19 = R0
  0207  CALL      R17 = call(R17, 1 args, 2 rets)
  0208  GETTABUP  R18 = _ENV[K14('LuckyBlastActivityModel')]
  0209  GETTABLE  R18 = R18[K28('ChainConfigKey')]
  0210  MOVE      R19 = R0
  0211  SELF      R21 = R9[K41('GetEnergyPerRound')] (self)
  0212  CALL      R20 = call(R20, -1 args, 1 rets)
  0213  CALL      R15 = call(R15, 1 args, -1 rets)
  0214  GETTABUP  R16 = _ENV[K19('LogTag')]
  0215  GETTABLE  R16 = R16[K20('ConfigCheck')]
  0216  CALL      R14 = call(R14, 0 args, 2 rets)
  0217  JMP       (jump)   -> 219
  0218  JMP       (jump)   -> 219
  0219  TFORCALL  tforcall R5
  0220  TFORLOOP  tforloop R7(sBx=-149)   -> 72
  0221  LEN       R5 = len R0
  0222  LT        if R0 lt R3   -> -128285
  0223  JMP       (jump)   -> 244
  0224  GETTABUP  R5 = _ENV[K8('Log')]
  0225  GETTABLE  R5 = R5[K9('Error')]
  0226  GETTABUP  R6 = _ENV[K10('string')]
  0227  GETTABLE  R6 = R6[K11('format')]
  0228  LOADK     R7 = K43 '%s配置表%s里，母棋子weight权重错误，当前权重大于0的母棋子合成线为%s，<color=#FFA000>母棋子权重大于0的数量必须大于等于%d</color>！'
  0229  SELF      R9 = R0[K13('_GetLogPrefix')] (self)
  0230  MOVE      R10 = R0
  0231  CALL      R8 = call(R8, 1 args, 2 rets)
  0232  GETTABUP  R9 = _ENV[K14('LuckyBlastActivityModel')]
  0233  GETTABLE  R9 = R9[K28('ChainConfigKey')]
  0234  GETTABUP  R10 = _ENV[K16('table')]
  0235  GETTABLE  R10 = R10[K17('concat')]
  0236  MOVE      R11 = R0
  0237  LOADK     R12 = K18 ';'
  0238  CALL      R10 = call(R10, 1 args, 2 rets)
  0239  MOVE      R11 = R0
  0240  CALL      R6 = call(R6, 1 args, 5 rets)
  0241  GETTABUP  R7 = _ENV[K19('LogTag')]
  0242  GETTABLE  R7 = R7[K20('ConfigCheck')]
  0243  CALL      R5 = call(R5, 0 args, 2 rets)
  0244  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 180-195 np=0 va=0 ms=4 code=35 consts=8 upvals=2 protos=0
    ;   K[0]='GM'
    ;   K[1]='ItemDataModel'
    ;   K[2]='GetChainMaxLevel'
    ;   K[3]=nil
    ;   K[4]='IsPd'
    ;   K[5]='GetChain'
    ;   K[6]='GetItemSeries'
    ;   K[7]=1
    ;   upvals: _ENV, chainId
    ;   locals: chain(23-35)
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('ItemDataModel')]
    0002  SELF      R1 = R0[K2('GetChainMaxLevel')] (self)
    0003  GETUPVAL  R2 = _ENV
    0004  CALL      R0 = call(R0, 1 args, 2 rets)
    0005  EQ        if R0 eq K3(nil)   -> -130806
    0006  JMP       (jump)   -> 9
    0007  LOADBOOL  R0 = false
    0008  RETURN    return R0..R-1
    0009  GETTABUP  R0 = _ENV[K0('GM')]
    0010  GETTABLE  R0 = R0[K1('ItemDataModel')]
    0011  SELF      R1 = R0[K4('IsPd')] (self)
    0012  GETUPVAL  R2 = _ENV
    0013  CALL      R0 = call(R0, 1 args, 2 rets)
    0014  TEST      if not R0 then   -> -131055
    0015  JMP       (jump)   -> 18
    0016  LOADBOOL  R0 = false
    0017  RETURN    return R0..R-1
    0018  GETTABUP  R0 = _ENV[K0('GM')]
    0019  GETTABLE  R0 = R0[K1('ItemDataModel')]
    0020  SELF      R1 = R0[K5('GetChain')] (self)
    0021  GETUPVAL  R2 = _ENV
    0022  CALL      R0 = call(R0, 1 args, 2 rets)
    0023  GETTABUP  R1 = _ENV[K0('GM')]
    0024  GETTABLE  R1 = R1[K1('ItemDataModel')]
    0025  SELF      R2 = R1[K6('GetItemSeries')] (self)
    0026  GETTABLE  R3 = R0[K7(1)]
    0027  CALL      R1 = call(R1, 1 args, 2 rets)
    0028  EQ        if R1 eq K3(nil)   -> -130271
    0029  JMP       (jump)   -> 32
    0030  LOADBOOL  R1 = false
    0031  RETURN    return R1..R0
    0032  LOADBOOL  R1 = true
    0033  RETURN    return R1..R0
    0034  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 205-215 np=1 va=0 ms=11 code=37 consts=9 upvals=2 protos=0
    ;   K[0]='ipairs'
    ;   K[1]='GM'
    ;   K[2]='ItemDataModel'
    ;   K[3]='GetItemGenerators'
    ;   K[4]='IsPd'
    ;   K[5]='GetChainId'
    ;   K[6]=true
    ;   K[7]='Table'
    ;   K[8]='MergeKeys'
    ;   upvals: _ENV, getMapPdChainId
    ;   locals: itemCode(0-37), mapPdChainId(1-37), (for generator)(11-35), (for state)(11-35), (for control)(11-35), _(12-33), itemGenerator(12-33)
    0000  NEWTABLE  R1 = {} (0 items)
    0001  GETTABUP  R2 = _ENV[K0('ipairs')]
    0002  GETTABUP  R3 = _ENV[K1('GM')]
    0003  GETTABLE  R3 = R3[K2('ItemDataModel')]
    0004  SELF      R4 = R3[K3('GetItemGenerators')] (self)
    0005  MOVE      R5 = R0
    0006  CALL      R3 = call(R3, 1 args, 2 rets)
    0007  TEST      if not R3 then   -> -131062
    0008  JMP       (jump)   -> 10
    0009  NEWTABLE  R3 = {} (0 items)
    0010  CALL      R2 = call(R2, 3 args, 1 rets)
    0011  JMP       (jump)   -> 33
    0012  GETTABUP  R7 = _ENV[K1('GM')]
    0013  GETTABLE  R7 = R7[K2('ItemDataModel')]
    0014  SELF      R8 = R7[K4('IsPd')] (self)
    0015  MOVE      R9 = R0
    0016  CALL      R7 = call(R7, 1 args, 2 rets)
    0017  TEST      if not R7 then   -> -131053
    0018  JMP       (jump)   -> 26
    0019  GETTABUP  R7 = _ENV[K1('GM')]
    0020  GETTABLE  R7 = R7[K2('ItemDataModel')]
    0021  SELF      R8 = R7[K5('GetChainId')] (self)
    0022  MOVE      R9 = R0
    0023  CALL      R7 = call(R7, 1 args, 2 rets)
    0024  SETTABLE  R1[R7] = K6(true)
    0025  JMP       (jump)   -> 33
    0026  GETTABUP  R7 = _ENV[K7('Table')]
    0027  GETTABLE  R7 = R7[K8('MergeKeys')]
    0028  MOVE      R8 = R0
    0029  GETUPVAL  R9 = _ENV
    0030  MOVE      R10 = R0
    0031  CALL      R9 = call(R9, -1 args, 1 rets)
    0032  CALL      R7 = call(R7, 0 args, -1 rets)
    0033  TFORCALL  tforcall R2
    0034  TFORLOOP  tforloop R4(sBx=-23)   -> 12
    0035  RETURN    return R1..R0
    0036  RETURN    return R0..R-1
; ---------- proto11 [HasTimeLimit] ----------
  ; fn ?  line 245-247 np=1 va=0 ms=3 code=11 consts=4 upvals=0 protos=0
  ;   K[0]='m_config'
  ;   K[1]='controlConfig'
  ;   K[2]='GetRoundTime'
  ;   K[3]=0
  ;   locals: self(0-11)
  0000  GETTABLE  R1 = R0[K0('m_config')]
  0001  GETTABLE  R1 = R1[K1('controlConfig')]
  0002  SELF      R2 = R1[K2('GetRoundTime')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  LEN       R1 = len R0
  0005  LT        if R1 lt R1   -> 1544
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R1 = false
  0008  LOADBOOL  R1 = true
  0009  RETURN    return R1..R0
  0010  RETURN    return R0..R-1
; ---------- proto12 [GetDuration] ----------
  ; fn ?  line 249-251 np=1 va=0 ms=3 code=6 consts=3 upvals=0 protos=0
  ;   K[0]='m_config'
  ;   K[1]='controlConfig'
  ;   K[2]='GetDuration'
  ;   locals: self(0-6)
  0000  GETTABLE  R1 = R0[K0('m_config')]
  0001  GETTABLE  R1 = R1[K1('controlConfig')]
  0002  SELF      R2 = R1[K2('GetDuration')] (self)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto13 [GetCooldown] ----------
  ; fn ?  line 253-255 np=1 va=0 ms=3 code=6 consts=3 upvals=0 protos=0
  ;   K[0]='m_config'
  ;   K[1]='controlConfig'
  ;   K[2]='GetCooldown'
  ;   locals: self(0-6)
  0000  GETTABLE  R1 = R0[K0('m_config')]
  0001  GETTABLE  R1 = R1[K1('controlConfig')]
  0002  SELF      R2 = R1[K2('GetCooldown')] (self)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto14 [GetTotalStage] ----------
  ; fn ?  line 257-259 np=1 va=0 ms=2 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_activityDefinition'
  ;   K[1]='TotalStage'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_activityDefinition')]
  0001  GETTABLE  R1 = R1[K1('TotalStage')]
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto15 [GetEnergyRequiredByStage] ----------
  ; fn ?  line 262-266 np=2 va=0 ms=6 code=16 consts=6 upvals=1 protos=0
  ;   K[0]='m_config'
  ;   K[1]='controlConfig'
  ;   K[2]='GetEnergyNeeded'
  ;   K[3]='math'
  ;   K[4]='min'
  ;   K[5]=0
  ;   upvals: _ENV
  ;   locals: self(0-16), stage(0-16), arrEnergyNeeded(4-16)
  0000  GETTABLE  R2 = R0[K0('m_config')]
  0001  GETTABLE  R2 = R2[K1('controlConfig')]
  0002  SELF      R3 = R2[K2('GetEnergyNeeded')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABUP  R3 = _ENV[K3('math')]
  0005  GETTABLE  R3 = R3[K4('min')]
  0006  LEN       R4 = len R0
  0007  MOVE      R5 = R0
  0008  CALL      R3 = call(R3, 1 args, 2 rets)
  0009  MOVE      R1 = R0
  0010  GETTABLE  R3 = R2[R1]
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 14
  0013  LOADK     R3 = K5 0
  0014  RETURN    return R3..R2
  0015  RETURN    return R0..R-1
; ---------- proto16 [GetRoundTimeByStage] ----------
  ; fn ?  line 269-273 np=2 va=0 ms=6 code=16 consts=6 upvals=1 protos=0
  ;   K[0]='m_config'
  ;   K[1]='controlConfig'
  ;   K[2]='GetRoundTime'
  ;   K[3]='math'
  ;   K[4]='min'
  ;   K[5]=0
  ;   upvals: _ENV
  ;   locals: self(0-16), stage(0-16), arrRoundTime(4-16)
  0000  GETTABLE  R2 = R0[K0('m_config')]
  0001  GETTABLE  R2 = R2[K1('controlConfig')]
  0002  SELF      R3 = R2[K2('GetRoundTime')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABUP  R3 = _ENV[K3('math')]
  0005  GETTABLE  R3 = R3[K4('min')]
  0006  LEN       R4 = len R0
  0007  MOVE      R5 = R0
  0008  CALL      R3 = call(R3, 1 args, 2 rets)
  0009  MOVE      R1 = R0
  0010  GETTABLE  R3 = R2[R1]
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 14
  0013  LOADK     R3 = K5 0
  0014  RETURN    return R3..R2
  0015  RETURN    return R0..R-1
; ---------- proto17 [GetChainConfig] ----------
  ; fn ?  line 276-278 np=2 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_config'
  ;   K[1]='mapChainConfig'
  ;   locals: self(0-5), chainId(0-5)
  0000  GETTABLE  R2 = R0[K0('m_config')]
  0001  GETTABLE  R2 = R2[K1('mapChainConfig')]
  0002  GETTABLE  R2 = R2[R1]
  0003  RETURN    return R2..R1
  0004  RETURN    return R0..R-1
; ---------- proto18 [GetSpreadWeightInfo] ----------
  ; fn ?  line 281-283 np=2 va=0 ms=5 code=7 consts=2 upvals=0 protos=0
  ;   K[0]='GetChainConfig'
  ;   K[1]='GetSpreadWeightInfo'
  ;   locals: self(0-7), chainId(0-7)
  0000  SELF      R3 = R0[K0('GetChainConfig')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  SELF      R3 = R2[K1('GetSpreadWeightInfo')] (self)
  0004  TAILCALL  tailcall(R2, 0)
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto19 [GetPdChainEnergyPerRound] ----------
  ; fn ?  line 286-289 np=2 va=0 ms=7 code=11 consts=5 upvals=1 protos=0
  ;   K[0]='math'
  ;   K[1]='max'
  ;   K[2]=1
  ;   K[3]='GetChainConfig'
  ;   K[4]='GetEnergyPerRound'
  ;   upvals: _ENV
  ;   locals: self(0-11), chainId(0-11)
  0000  GETTABUP  R2 = _ENV[K0('math')]
  0001  GETTABLE  R2 = R2[K1('max')]
  0002  LOADK     R3 = K2 1
  0003  SELF      R5 = R0[K3('GetChainConfig')] (self)
  0004  MOVE      R6 = R0
  0005  CALL      R4 = call(R4, 1 args, 2 rets)
  0006  SELF      R5 = R4[K4('GetEnergyPerRound')] (self)
  0007  CALL      R4 = call(R4, -1 args, 1 rets)
  0008  TAILCALL  tailcall(R2, 0)
  0009  RETURN    return R2..R1
  0010  RETURN    return R0..R-1
; ---------- proto20 [_DBTableGetValue] ----------
  ; fn ?  line 300-302 np=2 va=0 ms=6 code=7 consts=2 upvals=1 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   upvals: DB_VALUE_KEY
  ;   locals: self(0-7), key(0-7)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('GetValue')] (self)
  0002  MOVE      R4 = R0
  0003  GETUPVAL  R5 = DB_VALUE_KEY
  0004  TAILCALL  tailcall(R2, 0)
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto21 [_DBTableGetNumber] ----------
  ; fn ?  line 306-309 np=3 va=0 ms=7 code=13 consts=3 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='tonumber'
  ;   K[2]='_DBTableGetValue'
  ;   upvals: _ENV
  ;   locals: self(0-13), key(0-13), defaultValue(0-13)
  0000  TEST      if not R2 then   -> -131069
  0001  JMP       (jump)   -> 3
  0002  LOADK     R2 = K0 0
  0003  GETTABUP  R3 = _ENV[K1('tonumber')]
  0004  SELF      R5 = R0[K2('_DBTableGetValue')] (self)
  0005  MOVE      R6 = R0
  0006  CALL      R4 = call(R4, -1 args, 2 rets)
  0007  CALL      R3 = call(R3, 1 args, -1 rets)
  0008  TEST      if not R3 then   -> -131061
  0009  JMP       (jump)   -> 11
  0010  MOVE      R3 = R0
  0011  RETURN    return R3..R2
  0012  RETURN    return R0..R-1
; ---------- proto22 [_DBTableGetTable] ----------
  ; fn ?  line 313-315 np=2 va=0 ms=7 code=17 consts=6 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='ShallowCopy'
  ;   K[2]='json'
  ;   K[3]='decode'
  ;   K[4]='_DBTableGetValue'
  ;   K[5]=''
  ;   upvals: _ENV
  ;   locals: self(0-17), key(0-17)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('ShallowCopy')]
  0002  GETTABUP  R3 = _ENV[K2('json')]
  0003  GETTABLE  R3 = R3[K3('decode')]
  0004  SELF      R5 = R0[K4('_DBTableGetValue')] (self)
  0005  MOVE      R6 = R0
  0006  CALL      R4 = call(R4, 1 args, 2 rets)
  0007  TEST      if not R4 then   -> -131062
  0008  JMP       (jump)   -> 10
  0009  LOADK     R4 = K5 ''
  0010  CALL      R3 = call(R3, -1 args, 1 rets)
  0011  CALL      R2 = call(R2, 1 args, -1 rets)
  0012  TEST      if not R2 then   -> -131057
  0013  JMP       (jump)   -> 15
  0014  NEWTABLE  R2 = {} (0 items)
  0015  RETURN    return R2..R1
  0016  RETURN    return R0..R-1
; ---------- proto23 [_DBTableSet] ----------
  ; fn ?  line 319-321 np=3 va=0 ms=8 code=7 consts=2 upvals=1 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   upvals: DB_VALUE_KEY
  ;   locals: self(0-7), key(0-7), value(0-7)
  0000  GETTABLE  R3 = R0[K0('m_dbTable')]
  0001  SELF      R4 = R3[K1('Set')] (self)
  0002  MOVE      R5 = R0
  0003  GETUPVAL  R6 = DB_VALUE_KEY
  0004  MOVE      R7 = R0
  0005  CALL      R3 = call(R3, 0 args, 4 rets)
  0006  RETURN    return R0..R-1
; ---------- proto24 [_DBTableSetTable] ----------
  ; fn ?  line 325-332 np=3 va=0 ms=8 code=18 consts=6 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='IsEmpty'
  ;   K[2]='_DBTableRemove'
  ;   K[3]='_DBTableSet'
  ;   K[4]='json'
  ;   K[5]='encode'
  ;   upvals: _ENV
  ;   locals: self(0-18), key(0-18), value(0-18)
  0000  GETTABUP  R3 = _ENV[K0('Table')]
  0001  GETTABLE  R3 = R3[K1('IsEmpty')]
  0002  MOVE      R4 = R0
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  TEST      if not R3 then   -> -131066
  0005  JMP       (jump)   -> 10
  0006  SELF      R4 = R0[K2('_DBTableRemove')] (self)
  0007  MOVE      R5 = R0
  0008  CALL      R3 = call(R3, 0 args, 2 rets)
  0009  JMP       (jump)   -> 17
  0010  SELF      R4 = R0[K3('_DBTableSet')] (self)
  0011  MOVE      R5 = R0
  0012  GETTABUP  R6 = _ENV[K4('json')]
  0013  GETTABLE  R6 = R6[K5('encode')]
  0014  MOVE      R7 = R0
  0015  CALL      R6 = call(R6, -1 args, 1 rets)
  0016  CALL      R3 = call(R3, 0 args, -1 rets)
  0017  RETURN    return R0..R-1
; ---------- proto25 [_DBTableRemove] ----------
  ; fn ?  line 335-337 np=2 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Remove'
  ;   locals: self(0-5), key(0-5)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('Remove')] (self)
  0002  MOVE      R4 = R0
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  RETURN    return R0..R-1
; ---------- proto26 [IsTriggerState] ----------
  ; fn ?  line 339-341 np=1 va=0 ms=4 code=10 consts=2 upvals=2 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='TriggerState'
  ;   upvals: DBKey, TRUE_VALUE
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('TriggerState')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  GETUPVAL  R2 = DBKey
  0004  EQ        if R1 eq R2   -> -130552
  0005  JMP       (jump)   -> 7
  0006  LOADBOOL  R1 = false
  0007  LOADBOOL  R1 = true
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto27 [SetTriggerState] ----------
  ; fn ?  line 344-350 np=2 va=0 ms=6 code=11 consts=3 upvals=2 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='TriggerState'
  ;   K[2]='_DBTableRemove'
  ;   upvals: DBKey, TRUE_VALUE
  ;   locals: self(0-11), bTriggeredState(0-11)
  0000  TEST      if not R1 then   -> -131070
  0001  JMP       (jump)   -> 7
  0002  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0003  GETTABUP  R4 = DBKey[K1('TriggerState')]
  0004  GETUPVAL  R5 = DBKey
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  JMP       (jump)   -> 10
  0007  SELF      R3 = R0[K2('_DBTableRemove')] (self)
  0008  GETTABUP  R4 = DBKey[K1('TriggerState')]
  0009  CALL      R2 = call(R2, 0 args, 2 rets)
  0010  RETURN    return R0..R-1
; ---------- proto28 [GetTriggerEndTime] ----------
  ; fn ?  line 352-354 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='TriggerEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('TriggerEndTime')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto29 [SetTriggerEndTime] ----------
  ; fn ?  line 357-359 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='TriggerEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5), triggerEndTime(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('TriggerEndTime')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto30 [GetTriggerCurrentStage] ----------
  ; fn ?  line 361-363 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='TriggerCurrentStage'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('TriggerCurrentStage')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto31 [SetTriggerCurrentStage] ----------
  ; fn ?  line 366-368 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='TriggerCurrentStage'
  ;   upvals: DBKey
  ;   locals: self(0-5), triggerCurrentStage(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('TriggerCurrentStage')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto32 [GetTriggerCooldownEndTime] ----------
  ; fn ?  line 370-372 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='TriggerCooldownEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('TriggerCooldownEndTime')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto33 [SetTriggerCooldownEndTime] ----------
  ; fn ?  line 375-377 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='TriggerCooldownEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5), triggerCooldownEndTime(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('TriggerCooldownEndTime')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto34 [GetEnergyConsumed] ----------
  ; fn ?  line 379-381 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='EnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('EnergyConsumed')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto35 [SetEnergyConsumed] ----------
  ; fn ?  line 384-386 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='EnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5), energyConsumed(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('EnergyConsumed')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto36 [GetLastEnergyConsumed] ----------
  ; fn ?  line 388-390 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='LastEnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('LastEnergyConsumed')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto37 [SetLastEnergyConsumed] ----------
  ; fn ?  line 393-395 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='LastEnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5), lastEnergyConsumed(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('LastEnergyConsumed')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto38 [GetNextPosition] ----------
  ; fn ?  line 397-399 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='NextPosition'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('NextPosition')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto39 [SetNextPosition] ----------
  ; fn ?  line 402-404 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='NextPosition'
  ;   upvals: DBKey
  ;   locals: self(0-5), nextPosition(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('NextPosition')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto40 [HasShowMachineAnimation] ----------
  ; fn ?  line 406-408 np=1 va=0 ms=4 code=10 consts=2 upvals=2 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='HasShowMachineAnimation'
  ;   upvals: DBKey, TRUE_VALUE
  ;   locals: self(0-10)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('HasShowMachineAnimation')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  GETUPVAL  R2 = DBKey
  0004  EQ        if R1 eq R2   -> -130552
  0005  JMP       (jump)   -> 7
  0006  LOADBOOL  R1 = false
  0007  LOADBOOL  R1 = true
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto41 [SetHasShowMachineAnimation] ----------
  ; fn ?  line 411-417 np=2 va=0 ms=6 code=11 consts=3 upvals=2 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='HasShowMachineAnimation'
  ;   K[2]='_DBTableRemove'
  ;   upvals: DBKey, TRUE_VALUE
  ;   locals: self(0-11), bHasShowMachineAnimation(0-11)
  0000  TEST      if not R1 then   -> -131070
  0001  JMP       (jump)   -> 7
  0002  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0003  GETTABUP  R4 = DBKey[K1('HasShowMachineAnimation')]
  0004  GETUPVAL  R5 = DBKey
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  JMP       (jump)   -> 10
  0007  SELF      R3 = R0[K2('_DBTableRemove')] (self)
  0008  GETTABUP  R4 = DBKey[K1('HasShowMachineAnimation')]
  0009  CALL      R2 = call(R2, 0 args, 2 rets)
  0010  RETURN    return R0..R-1
; ---------- proto42 [_LoadPdChainTriggered] ----------
  ; fn ?  line 419-421 np=1 va=0 ms=4 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='m_arrPdChainTriggered'
  ;   K[1]='_DBTableGetTable'
  ;   K[2]='PdChainTriggered'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K1('_DBTableGetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K2('PdChainTriggered')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  SETTABLE  R0[K0('m_arrPdChainTriggered')] = R1
  0004  RETURN    return R0..R-1
; ---------- proto43 [_SavePdChainTriggered] ----------
  ; fn ?  line 423-425 np=1 va=0 ms=5 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='_DBTableSetTable'
  ;   K[1]='PdChainTriggered'
  ;   K[2]='m_arrPdChainTriggered'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableSetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K1('PdChainTriggered')]
  0002  GETTABLE  R4 = R0[K2('m_arrPdChainTriggered')]
  0003  CALL      R1 = call(R1, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto44 [IsPdChainTriggered] ----------
  ; fn ?  line 427-429 np=2 va=0 ms=5 code=7 consts=3 upvals=1 protos=0
  ;   K[0]='Table'
  ;   K[1]='Contain'
  ;   K[2]='m_arrPdChainTriggered'
  ;   upvals: _ENV
  ;   locals: self(0-7), chainId(0-7)
  0000  GETTABUP  R2 = _ENV[K0('Table')]
  0001  GETTABLE  R2 = R2[K1('Contain')]
  0002  GETTABLE  R3 = R0[K2('m_arrPdChainTriggered')]
  0003  MOVE      R4 = R0
  0004  TAILCALL  tailcall(R2, 0)
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto45 [GetPdChainTriggered] ----------
  ; fn ?  line 431-433 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_arrPdChainTriggered'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_arrPdChainTriggered')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto46 [SetPdChainTriggered] ----------
  ; fn ?  line 438-446 np=4 va=0 ms=6 code=14 consts=3 upvals=0 protos=0
  ;   K[0]='m_arrPdChainTriggered'
  ;   K[1]=''
  ;   K[2]='_SavePdChainTriggered'
  ;   locals: self(0-14), position(0-14), chainId(0-14), bTriggered(0-14)
  0000  TEST      if not R3 then   -> -131070
  0001  JMP       (jump)   -> 5
  0002  GETTABLE  R4 = R0[K0('m_arrPdChainTriggered')]
  0003  SETTABLE  R4[R1] = R2
  0004  JMP       (jump)   -> 11
  0005  GETTABLE  R4 = R0[K0('m_arrPdChainTriggered')]
  0006  GETTABLE  R4 = R4[R1]
  0007  EQ        if R0 eq R2   -> -129013
  0008  JMP       (jump)   -> 11
  0009  GETTABLE  R4 = R0[K0('m_arrPdChainTriggered')]
  0010  SETTABLE  R4[R1] = K1('')
  0011  SELF      R5 = R0[K2('_SavePdChainTriggered')] (self)
  0012  CALL      R4 = call(R4, 0 args, 1 rets)
  0013  RETURN    return R0..R-1
; ---------- proto47 [ClearPdChainTriggered] ----------
  ; fn ?  line 448-451 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_arrPdChainTriggered'
  ;   K[1]='_SavePdChainTriggered'
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_arrPdChainTriggered')] = R1
  0002  SELF      R2 = R0[K1('_SavePdChainTriggered')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto48 [_LoadPdChainEnergyConsumed] ----------
  ; fn ?  line 453-455 np=1 va=0 ms=4 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapPdChainEnergyConsumed'
  ;   K[1]='_DBTableGetTable'
  ;   K[2]='PdChainEnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K1('_DBTableGetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K2('PdChainEnergyConsumed')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  SETTABLE  R0[K0('m_mapPdChainEnergyConsumed')] = R1
  0004  RETURN    return R0..R-1
; ---------- proto49 [_SavePdChainEnergyConsumed] ----------
  ; fn ?  line 457-459 np=1 va=0 ms=5 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='_DBTableSetTable'
  ;   K[1]='PdChainEnergyConsumed'
  ;   K[2]='m_mapPdChainEnergyConsumed'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableSetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K1('PdChainEnergyConsumed')]
  0002  GETTABLE  R4 = R0[K2('m_mapPdChainEnergyConsumed')]
  0003  CALL      R1 = call(R1, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto50 [GetPdChainEnergyConsumed] ----------
  ; fn ?  line 462-464 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyConsumed'
  ;   locals: self(0-4), chainId(0-4)
  0000  GETTABLE  R2 = R0[K0('m_mapPdChainEnergyConsumed')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto51 [SetPdChainEnergyConsumed] ----------
  ; fn ?  line 468-471 np=3 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyConsumed'
  ;   K[1]='_SavePdChainEnergyConsumed'
  ;   locals: self(0-5), chainId(0-5), energyConsumed(0-5)
  0000  GETTABLE  R3 = R0[K0('m_mapPdChainEnergyConsumed')]
  0001  SETTABLE  R3[R1] = R2
  0002  SELF      R4 = R0[K1('_SavePdChainEnergyConsumed')] (self)
  0003  CALL      R3 = call(R3, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto52 [ClearPdChainEnergyConsumed] ----------
  ; fn ?  line 473-476 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyConsumed'
  ;   K[1]='_SavePdChainEnergyConsumed'
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapPdChainEnergyConsumed')] = R1
  0002  SELF      R2 = R0[K1('_SavePdChainEnergyConsumed')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto53 [_LoadPdChainEnergyRequired] ----------
  ; fn ?  line 478-480 np=1 va=0 ms=4 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapPdChainEnergyRequired'
  ;   K[1]='_DBTableGetTable'
  ;   K[2]='PdChainEnergyRequired'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K1('_DBTableGetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K2('PdChainEnergyRequired')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  SETTABLE  R0[K0('m_mapPdChainEnergyRequired')] = R1
  0004  RETURN    return R0..R-1
; ---------- proto54 [_SavePdChainEnergyRequired] ----------
  ; fn ?  line 482-484 np=1 va=0 ms=5 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='_DBTableSetTable'
  ;   K[1]='PdChainEnergyRequired'
  ;   K[2]='m_mapPdChainEnergyRequired'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableSetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K1('PdChainEnergyRequired')]
  0002  GETTABLE  R4 = R0[K2('m_mapPdChainEnergyRequired')]
  0003  CALL      R1 = call(R1, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto55 [GetPdChainEnergyRequired] ----------
  ; fn ?  line 487-489 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyRequired'
  ;   locals: self(0-4), chainId(0-4)
  0000  GETTABLE  R2 = R0[K0('m_mapPdChainEnergyRequired')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto56 [SetPdChainEnergyRequired] ----------
  ; fn ?  line 493-496 np=3 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyRequired'
  ;   K[1]='_SavePdChainEnergyRequired'
  ;   locals: self(0-5), chainId(0-5), energyRequired(0-5)
  0000  GETTABLE  R3 = R0[K0('m_mapPdChainEnergyRequired')]
  0001  SETTABLE  R3[R1] = R2
  0002  SELF      R4 = R0[K1('_SavePdChainEnergyRequired')] (self)
  0003  CALL      R3 = call(R3, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto57 [ClearPdChainEnergyRequired] ----------
  ; fn ?  line 498-501 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainEnergyRequired'
  ;   K[1]='_SavePdChainEnergyRequired'
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapPdChainEnergyRequired')] = R1
  0002  SELF      R2 = R0[K1('_SavePdChainEnergyRequired')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto58 [_LoadPdChainTriggerEndTime] ----------
  ; fn ?  line 503-505 np=1 va=0 ms=4 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapPdChainTriggerEndTime'
  ;   K[1]='_DBTableGetTable'
  ;   K[2]='PdChainTriggerEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K1('_DBTableGetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K2('PdChainTriggerEndTime')]
  0002  CALL      R1 = call(R1, 1 args, 2 rets)
  0003  SETTABLE  R0[K0('m_mapPdChainTriggerEndTime')] = R1
  0004  RETURN    return R0..R-1
; ---------- proto59 [_SavePdChainTriggerEndTime] ----------
  ; fn ?  line 507-509 np=1 va=0 ms=5 code=5 consts=3 upvals=1 protos=0
  ;   K[0]='_DBTableSetTable'
  ;   K[1]='PdChainTriggerEndTime'
  ;   K[2]='m_mapPdChainTriggerEndTime'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableSetTable')] (self)
  0001  GETTABUP  R3 = DBKey[K1('PdChainTriggerEndTime')]
  0002  GETTABLE  R4 = R0[K2('m_mapPdChainTriggerEndTime')]
  0003  CALL      R1 = call(R1, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto60 [GetPdChainTriggerEndTime] ----------
  ; fn ?  line 512-514 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapPdChainTriggerEndTime'
  ;   locals: self(0-4), chainId(0-4)
  0000  GETTABLE  R2 = R0[K0('m_mapPdChainTriggerEndTime')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto61 [SetPdChainTriggerEndTime] ----------
  ; fn ?  line 518-521 np=3 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainTriggerEndTime'
  ;   K[1]='_SavePdChainTriggerEndTime'
  ;   locals: self(0-5), chainId(0-5), triggerEndTime(0-5)
  0000  GETTABLE  R3 = R0[K0('m_mapPdChainTriggerEndTime')]
  0001  SETTABLE  R3[R1] = R2
  0002  SELF      R4 = R0[K1('_SavePdChainTriggerEndTime')] (self)
  0003  CALL      R3 = call(R3, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto62 [ClearPdChainTriggerEndTime] ----------
  ; fn ?  line 523-526 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapPdChainTriggerEndTime'
  ;   K[1]='_SavePdChainTriggerEndTime'
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapPdChainTriggerEndTime')] = R1
  0002  SELF      R2 = R0[K1('_SavePdChainTriggerEndTime')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto63 [GetLeftDuration] ----------
  ; fn ?  line 532-535 np=1 va=0 ms=5 code=13 consts=7 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='GameModel'
  ;   K[2]='GetServerTime'
  ;   K[3]='math'
  ;   K[4]='max'
  ;   K[5]='GetTriggerEndTime'
  ;   K[6]=0
  ;   upvals: _ENV
  ;   locals: self(0-13), serverTime(4-13)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('GameModel')]
  0002  SELF      R2 = R1[K2('GetServerTime')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  GETTABUP  R2 = _ENV[K3('math')]
  0005  GETTABLE  R2 = R2[K4('max')]
  0006  SELF      R4 = R0[K5('GetTriggerEndTime')] (self)
  0007  CALL      R3 = call(R3, 1 args, 1 rets)
  0008  SUB       R3 = R1 sub R3
  0009  LOADK     R4 = K6 0
  0010  TAILCALL  tailcall(R2, 0)
  0011  RETURN    return R2..R1
  0012  RETURN    return R0..R-1
; ---------- proto64 [IsInDuration] ----------
  ; fn ?  line 537-539 np=1 va=0 ms=3 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetLeftDuration'
  ;   K[1]=0
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('GetLeftDuration')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  LT        if R1 lt R1   -> 517
  0003  JMP       (jump)   -> 5
  0004  LOADBOOL  R1 = false
  0005  LOADBOOL  R1 = true
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto65 [IsInCooldown] ----------
  ; fn ?  line 541-544 np=1 va=0 ms=4 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='GameModel'
  ;   K[2]='GetServerTime'
  ;   K[3]='GetTriggerCooldownEndTime'
  ;   K[4]=0
  ;   upvals: _ENV
  ;   locals: self(0-13), serverTime(4-13)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('GameModel')]
  0002  SELF      R2 = R1[K2('GetServerTime')] (self)
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  SELF      R3 = R0[K3('GetTriggerCooldownEndTime')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  SUB       R2 = R1 sub R2
  0007  LT        if R1 lt R2   -> 2059
  0008  JMP       (jump)   -> 10
  0009  LOADBOOL  R2 = false
  0010  LOADBOOL  R2 = true
  0011  RETURN    return R2..R1
  0012  RETURN    return R0..R-1
; ---------- proto66 [GetPdChainTriggeredCount] ----------
  ; fn ?  line 546-554 np=1 va=0 ms=9 code=16 consts=5 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='ipairs'
  ;   K[2]='GetPdChainTriggered'
  ;   K[3]='IsPdChainTriggeredByPosition'
  ;   K[4]=1
  ;   upvals: _ENV
  ;   locals: self(0-16), count(1-16), (for generator)(5-14), (for state)(5-14), (for control)(5-14), position(6-12)
  0000  LOADK     R1 = K0 0
  0001  GETTABUP  R2 = _ENV[K1('ipairs')]
  0002  SELF      R4 = R0[K2('GetPdChainTriggered')] (self)
  0003  CALL      R3 = call(R3, -1 args, 1 rets)
  0004  CALL      R2 = call(R2, 3 args, -1 rets)
  0005  JMP       (jump)   -> 12
  0006  SELF      R7 = R0[K3('IsPdChainTriggeredByPosition')] (self)
  0007  MOVE      R8 = R0
  0008  CALL      R6 = call(R6, 1 args, 2 rets)
  0009  TEST      if not R6 then   -> -131061
  0010  JMP       (jump)   -> 12
  0011  ADD       R1 = K4(1) add R1
  0012  TFORCALL  tforcall R2
  0013  TFORLOOP  tforloop R4(sBx=-8)   -> 6
  0014  RETURN    return R1..R0
  0015  RETURN    return R0..R-1
; ---------- proto67 [HasNextStage] ----------
  ; fn ?  line 556-562 np=1 va=0 ms=4 code=24 consts=4 upvals=0 protos=0
  ;   K[0]='HasTimeLimit'
  ;   K[1]='GetPdChainTriggeredCount'
  ;   K[2]='GetTotalStage'
  ;   K[3]='GetTriggerCurrentStage'
  ;   locals: self(0-24)
  0000  SELF      R2 = R0[K0('HasTimeLimit')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 14
  0004  SELF      R2 = R0[K1('GetPdChainTriggeredCount')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SELF      R3 = R0[K2('GetTotalStage')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  LT        if R1 lt R2   -> -130548
  0009  JMP       (jump)   -> 11
  0010  LOADBOOL  R1 = false
  0011  LOADBOOL  R1 = true
  0012  RETURN    return R1..R0
  0013  JMP       (jump)   -> 23
  0014  SELF      R2 = R0[K3('GetTriggerCurrentStage')] (self)
  0015  CALL      R1 = call(R1, 1 args, 1 rets)
  0016  SELF      R3 = R0[K2('GetTotalStage')] (self)
  0017  CALL      R2 = call(R2, 1 args, 1 rets)
  0018  LT        if R1 lt R2   -> -130538
  0019  JMP       (jump)   -> 21
  0020  LOADBOOL  R1 = false
  0021  LOADBOOL  R1 = true
  0022  RETURN    return R1..R0
  0023  RETURN    return R0..R-1
; ---------- proto68 [GetNextStage] ----------
  ; fn ?  line 564-566 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='GetTriggerCurrentStage'
  ;   K[1]=1
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('GetTriggerCurrentStage')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  ADD       R1 = K1(1) add R1
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto69 [GetNextStageEnergyRequired] ----------
  ; fn ?  line 568-570 np=1 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetEnergyRequiredByStage'
  ;   K[1]='GetNextStage'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('GetEnergyRequiredByStage')] (self)
  0001  SELF      R4 = R0[K1('GetNextStage')] (self)
  0002  CALL      R3 = call(R3, -1 args, 1 rets)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto70 [_ChangePdChainEnergyConsumed] ----------
  ; fn ?  line 574-576 np=3 va=0 ms=9 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='SetPdChainEnergyConsumed'
  ;   K[1]='GetPdChainEnergyConsumed'
  ;   locals: self(0-8), chainId(0-8), delta(0-8)
  0000  SELF      R4 = R0[K0('SetPdChainEnergyConsumed')] (self)
  0001  MOVE      R5 = R0
  0002  SELF      R7 = R0[K1('GetPdChainEnergyConsumed')] (self)
  0003  MOVE      R8 = R0
  0004  CALL      R6 = call(R6, 1 args, 2 rets)
  0005  ADD       R6 = R2 add R6
  0006  CALL      R3 = call(R3, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto71 [GetPdChainTriggeredByPosition] ----------
  ; fn ?  line 579-581 np=2 va=0 ms=4 code=5 consts=1 upvals=0 protos=0
  ;   K[0]='GetPdChainTriggered'
  ;   locals: self(0-5), position(0-5)
  0000  SELF      R3 = R0[K0('GetPdChainTriggered')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABLE  R2 = R2[R1]
  0003  RETURN    return R2..R1
  0004  RETURN    return R0..R-1
; ---------- proto72 [IsPdChainTriggeredByPosition] ----------
  ; fn ?  line 584-586 np=2 va=0 ms=6 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='StringUtil'
  ;   K[1]='IsNilOrEmpty'
  ;   K[2]='GetPdChainTriggeredByPosition'
  ;   upvals: _ENV
  ;   locals: self(0-9), position(0-9)
  0000  GETTABUP  R2 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R2 = R2[K1('IsNilOrEmpty')]
  0002  SELF      R4 = R0[K2('GetPdChainTriggeredByPosition')] (self)
  0003  MOVE      R5 = R0
  0004  CALL      R3 = call(R3, -1 args, 2 rets)
  0005  CALL      R2 = call(R2, 1 args, -1 rets)
  0006  NOT       R2 = not R0
  0007  RETURN    return R2..R1
  0008  RETURN    return R0..R-1
; ---------- proto73 [HasNextPosition] ----------
  ; fn ?  line 588-590 np=1 va=0 ms=3 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='GetNextPosition'
  ;   K[1]=0
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('GetNextPosition')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  LT        if R1 lt R1   -> 517
  0003  JMP       (jump)   -> 5
  0004  LOADBOOL  R1 = false
  0005  LOADBOOL  R1 = true
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto74 [GetPdChainLeftDuration] ----------
  ; fn ?  line 593-596 np=2 va=0 ms=7 code=14 consts=7 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='GameModel'
  ;   K[2]='GetServerTime'
  ;   K[3]='math'
  ;   K[4]='max'
  ;   K[5]='GetPdChainTriggerEndTime'
  ;   K[6]=0
  ;   upvals: _ENV
  ;   locals: self(0-14), chainId(0-14), serverTime(4-14)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('GameModel')]
  0002  SELF      R3 = R2[K2('GetServerTime')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABUP  R3 = _ENV[K3('math')]
  0005  GETTABLE  R3 = R3[K4('max')]
  0006  SELF      R5 = R0[K5('GetPdChainTriggerEndTime')] (self)
  0007  MOVE      R6 = R0
  0008  CALL      R4 = call(R4, 1 args, 2 rets)
  0009  SUB       R4 = R2 sub R4
  0010  LOADK     R5 = K6 0
  0011  TAILCALL  tailcall(R3, 0)
  0012  RETURN    return R3..R2
  0013  RETURN    return R0..R-1
; ---------- proto75 [IsPdChainInDuration] ----------
  ; fn ?  line 599-601 np=2 va=0 ms=5 code=9 consts=2 upvals=0 protos=0
  ;   K[0]='GetPdChainLeftDuration'
  ;   K[1]=0
  ;   locals: self(0-9), chainId(0-9)
  0000  SELF      R3 = R0[K0('GetPdChainLeftDuration')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  LT        if R1 lt R2   -> 519
  0004  JMP       (jump)   -> 6
  0005  LOADBOOL  R2 = false
  0006  LOADBOOL  R2 = true
  0007  RETURN    return R2..R1
  0008  RETURN    return R0..R-1
; ---------- proto76 [GetNextPositionByMode] ----------
  ; fn ?  line 603-613 np=1 va=0 ms=3 code=19 consts=5 upvals=0 protos=0
  ;   K[0]='HasTimeLimit'
  ;   K[1]='GetNextPosition'
  ;   K[2]='HasNextStage'
  ;   K[3]='GetNextStage'
  ;   K[4]=0
  ;   locals: self(0-19)
  0000  SELF      R2 = R0[K0('HasTimeLimit')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 8
  0004  SELF      R2 = R0[K1('GetNextPosition')] (self)
  0005  TAILCALL  tailcall(R1, 0)
  0006  RETURN    return R1..R0
  0007  JMP       (jump)   -> 18
  0008  SELF      R2 = R0[K2('HasNextStage')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  TEST      if not R1 then   -> -131060
  0011  JMP       (jump)   -> 16
  0012  SELF      R2 = R0[K3('GetNextStage')] (self)
  0013  TAILCALL  tailcall(R1, 0)
  0014  RETURN    return R1..R0
  0015  JMP       (jump)   -> 18
  0016  LOADK     R1 = K4 0
  0017  RETURN    return R1..R0
  0018  RETURN    return R0..R-1
; ---------- proto77 [SetHideTopRightEntry] ----------
  ; fn ?  line 620-622 np=2 va=0 ms=2 code=2 consts=1 upvals=0 protos=0
  ;   K[0]='m_bHideTopRightEntry'
  ;   locals: self(0-2), bHideTopRightEntry(0-2)
  0000  SETTABLE  R0[K0('m_bHideTopRightEntry')] = R1
  0001  RETURN    return R0..R-1
; ---------- proto78 [IsHideTopRightEntry] ----------
  ; fn ?  line 624-626 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_bHideTopRightEntry'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_bHideTopRightEntry')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto79 [SetHideSpreadEffect] ----------
  ; fn ?  line 630-632 np=3 va=0 ms=4 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapHideSpreadEffect'
  ;   locals: self(0-3), itemModel(0-3), bHideSpreadEffect(0-3)
  0000  GETTABLE  R3 = R0[K0('m_mapHideSpreadEffect')]
  0001  SETTABLE  R3[R1] = R2
  0002  RETURN    return R0..R-1
; ---------- proto80 [IsHideSpreadEffect] ----------
  ; fn ?  line 635-637 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapHideSpreadEffect'
  ;   locals: self(0-4), itemModel(0-4)
  0000  GETTABLE  R2 = R0[K0('m_mapHideSpreadEffect')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto81 [_DispatchStateChangedEvent] ----------
  ; fn ?  line 643-645 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='StateChangedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('StateChangedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto82 [_DispatchRefreshEntryEvent] ----------
  ; fn ?  line 647-649 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='RefreshEntryEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('RefreshEntryEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto83 [_DispatchTriggerStateChangedEvent] ----------
  ; fn ?  line 651-653 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='TriggerStateChangedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('TriggerStateChangedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto84 [_DispatchSelectPdChainEvent] ----------
  ; fn ?  line 655-657 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='SelectPdChainEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('SelectPdChainEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto85 [_DispatchPdChainTriggerEndedEvent] ----------
  ; fn ?  line 659-661 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='PdChainTriggerEndedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('PdChainTriggerEndedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto86 [_DispatchSimpleStartEvent] ----------
  ; fn ?  line 663-665 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='SimpleStartEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('SimpleStartEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto87 [_DispatchRefreshSpreadEffectEvent] ----------
  ; fn ?  line 667-669 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='RefreshSpreadEffectEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('RefreshSpreadEffectEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto88 [_DispatchTokenHitEvent] ----------
  ; fn ?  line 671-673 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='TokenHitEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('TokenHitEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto89 [_DispatchRefreshEnergyConsumedEvent] ----------
  ; fn ?  line 675-677 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='RefreshEnergyConsumedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('RefreshEnergyConsumedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto90 [_DispatchEnergyRequirementSatisfiedEvent] ----------
  ; fn ?  line 680-682 np=2 va=0 ms=5 code=9 consts=5 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='EnergyRequirementSatisfiedEvent'
  ;   K[4]='itemModel'
  ;   upvals: _ENV
  ;   locals: self(0-9), itemModel(0-9)
  0000  GETTABUP  R2 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R2 = R2[K1('DispatchEvent')]
  0002  SELF      R4 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  GETTABLE  R3 = R3[K3('EnergyRequirementSatisfiedEvent')]
  0005  NEWTABLE  R4 = {} (0 items)
  0006  SETTABLE  R4[K4('itemModel')] = R1
  0007  CALL      R2 = call(R2, 0 args, 2 rets)
  0008  RETURN    return R0..R-1
; ---------- proto91 [_DispatchClickEntryEvent] ----------
  ; fn ?  line 684-686 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='ClickEntryEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('ClickEntryEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto92 [_DispatchMainWindowCanSpinEvent] ----------
  ; fn ?  line 688-690 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowCanSpinEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowCanSpinEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto93 [_DispatchMainWindowStartSpinEvent] ----------
  ; fn ?  line 692-694 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowStartSpinEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowStartSpinEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto94 [_DispatchMainWindowSpinEndEvent] ----------
  ; fn ?  line 697-699 np=2 va=0 ms=5 code=9 consts=5 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowSpinEndEvent'
  ;   K[4]='result'
  ;   upvals: _ENV
  ;   locals: self(0-9), result(0-9)
  0000  GETTABUP  R2 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R2 = R2[K1('DispatchEvent')]
  0002  SELF      R4 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  GETTABLE  R3 = R3[K3('MainWindowSpinEndEvent')]
  0005  NEWTABLE  R4 = {} (0 items)
  0006  SETTABLE  R4[K4('result')] = R1
  0007  CALL      R2 = call(R2, 0 args, 2 rets)
  0008  RETURN    return R0..R-1
; ---------- proto95 [_DispatchMainWindowIdleEvent] ----------
  ; fn ?  line 701-703 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowIdleEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowIdleEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto96 [IsTriggered] ----------
  ; fn ?  line 709-711 np=1 va=0 ms=3 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='IsTriggerState'
  ;   K[1]='IsInDuration'
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('IsTriggerState')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 6
  0004  SELF      R2 = R0[K1('IsInDuration')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto97 [CanTrigger] ----------
  ; fn ?  line 713-737 np=1 va=0 ms=4 code=45 consts=12 upvals=1 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='IsTriggerState'
  ;   K[2]='IsInCooldown'
  ;   K[3]='Table'
  ;   K[4]='GetMapSize'
  ;   K[5]='GetRemainValidMainPdChainForSpin'
  ;   K[6]='GetTotalStage'
  ;   K[7]='GM'
  ;   K[8]='GameModel'
  ;   K[9]='GetServerTime'
  ;   K[10]='GetDuration'
  ;   K[11]='GetEndTime'
  ;   upvals: _ENV
  ;   locals: self(0-45)
  0000  SELF      R2 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADBOOL  R1 = false
  0005  RETURN    return R1..R0
  0006  SELF      R2 = R0[K1('IsTriggerState')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 12
  0010  LOADBOOL  R1 = false
  0011  RETURN    return R1..R0
  0012  SELF      R2 = R0[K2('IsInCooldown')] (self)
  0013  CALL      R1 = call(R1, 1 args, 1 rets)
  0014  TEST      if not R1 then   -> -131056
  0015  JMP       (jump)   -> 18
  0016  LOADBOOL  R1 = false
  0017  RETURN    return R1..R0
  0018  GETTABUP  R1 = _ENV[K3('Table')]
  0019  GETTABLE  R1 = R1[K4('GetMapSize')]
  0020  SELF      R3 = R0[K5('GetRemainValidMainPdChainForSpin')] (self)
  0021  CALL      R2 = call(R2, -1 args, 1 rets)
  0022  CALL      R1 = call(R1, 1 args, -1 rets)
  0023  SELF      R3 = R0[K6('GetTotalStage')] (self)
  0024  CALL      R2 = call(R2, 1 args, 1 rets)
  0025  LT        if R0 lt R2   -> -130531
  0026  JMP       (jump)   -> 29
  0027  LOADBOOL  R1 = false
  0028  RETURN    return R1..R0
  0029  GETTABUP  R1 = _ENV[K7('GM')]
  0030  GETTABLE  R1 = R1[K8('GameModel')]
  0031  SELF      R2 = R1[K9('GetServerTime')] (self)
  0032  CALL      R1 = call(R1, 1 args, 1 rets)
  0033  SELF      R3 = R0[K10('GetDuration')] (self)
  0034  CALL      R2 = call(R2, 1 args, 1 rets)
  0035  ADD       R1 = R2 add R1
  0036  SELF      R3 = R0[K11('GetEndTime')] (self)
  0037  CALL      R2 = call(R2, 1 args, 1 rets)
  0038  LT        if R0 lt R1   -> -130007
  0039  JMP       (jump)   -> 42
  0040  LOADBOOL  R1 = false
  0041  RETURN    return R1..R0
  0042  LOADBOOL  R1 = true
  0043  RETURN    return R1..R0
  0044  RETURN    return R0..R-1
; ---------- proto98 [TryTrigger] ----------
  ; fn ?  line 739-768 np=1 va=0 ms=7 code=58 consts=24 upvals=1 protos=0
  ;   K[0]='CanTrigger'
  ;   K[1]='HasTimeLimit'
  ;   K[2]='GM'
  ;   K[3]='GameModel'
  ;   K[4]='GetServerTime'
  ;   K[5]='SetTriggerState'
  ;   K[6]='SetEnergyConsumed'
  ;   K[7]=0
  ;   K[8]='SetLastEnergyConsumed'
  ;   K[9]='SetTriggerCurrentStage'
  ;   K[10]='SetTriggerEndTime'
  ;   K[11]='GetDuration'
  ;   K[12]='SetTriggerCooldownEndTime'
  ;   K[13]='GetCooldown'
  ;   K[14]='SetNextPosition'
  ;   K[15]=1
  ;   K[16]='SetHasShowMachineAnimation'
  ;   K[17]='ClearPdChainTriggered'
  ;   K[18]='ClearPdChainEnergyConsumed'
  ;   K[19]='ClearPdChainEnergyRequired'
  ;   K[20]='ClearPdChainTriggerEndTime'
  ;   K[21]='_LogStart'
  ;   K[22]='_DispatchRefreshEntryEvent'
  ;   K[23]='_DispatchTriggerStateChangedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-58), bHasTimeLimit(7-58), serverTime(11-58)
  0000  SELF      R2 = R0[K0('CanTrigger')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  SELF      R2 = R0[K1('HasTimeLimit')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  GETTABUP  R2 = _ENV[K2('GM')]
  0008  GETTABLE  R2 = R2[K3('GameModel')]
  0009  SELF      R3 = R2[K4('GetServerTime')] (self)
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  SELF      R4 = R0[K5('SetTriggerState')] (self)
  0012  LOADBOOL  R5 = true
  0013  CALL      R3 = call(R3, 0 args, 2 rets)
  0014  SELF      R4 = R0[K6('SetEnergyConsumed')] (self)
  0015  LOADK     R5 = K7 0
  0016  CALL      R3 = call(R3, 0 args, 2 rets)
  0017  SELF      R4 = R0[K8('SetLastEnergyConsumed')] (self)
  0018  LOADK     R5 = K7 0
  0019  CALL      R3 = call(R3, 0 args, 2 rets)
  0020  SELF      R4 = R0[K9('SetTriggerCurrentStage')] (self)
  0021  LOADK     R5 = K7 0
  0022  CALL      R3 = call(R3, 0 args, 2 rets)
  0023  SELF      R4 = R0[K10('SetTriggerEndTime')] (self)
  0024  SELF      R6 = R0[K11('GetDuration')] (self)
  0025  CALL      R5 = call(R5, 1 args, 1 rets)
  0026  ADD       R5 = R5 add R2
  0027  CALL      R3 = call(R3, 0 args, 2 rets)
  0028  SELF      R4 = R0[K12('SetTriggerCooldownEndTime')] (self)
  0029  SELF      R6 = R0[K13('GetCooldown')] (self)
  0030  CALL      R5 = call(R5, 1 args, 1 rets)
  0031  ADD       R5 = R5 add R2
  0032  CALL      R3 = call(R3, 0 args, 2 rets)
  0033  TEST      if not R1 then   -> -131037
  0034  JMP       (jump)   -> 38
  0035  SELF      R4 = R0[K14('SetNextPosition')] (self)
  0036  LOADK     R5 = K15 1
  0037  CALL      R3 = call(R3, 0 args, 2 rets)
  0038  SELF      R4 = R0[K16('SetHasShowMachineAnimation')] (self)
  0039  LOADBOOL  R5 = false
  0040  CALL      R3 = call(R3, 0 args, 2 rets)
  0041  SELF      R4 = R0[K17('ClearPdChainTriggered')] (self)
  0042  CALL      R3 = call(R3, 0 args, 1 rets)
  0043  SELF      R4 = R0[K18('ClearPdChainEnergyConsumed')] (self)
  0044  CALL      R3 = call(R3, 0 args, 1 rets)
  0045  SELF      R4 = R0[K19('ClearPdChainEnergyRequired')] (self)
  0046  CALL      R3 = call(R3, 0 args, 1 rets)
  0047  TEST      if not R1 then   -> -131023
  0048  JMP       (jump)   -> 51
  0049  SELF      R4 = R0[K20('ClearPdChainTriggerEndTime')] (self)
  0050  CALL      R3 = call(R3, 0 args, 1 rets)
  0051  SELF      R4 = R0[K21('_LogStart')] (self)
  0052  CALL      R3 = call(R3, 0 args, 1 rets)
  0053  SELF      R4 = R0[K22('_DispatchRefreshEntryEvent')] (self)
  0054  CALL      R3 = call(R3, 0 args, 1 rets)
  0055  SELF      R4 = R0[K23('_DispatchTriggerStateChangedEvent')] (self)
  0056  CALL      R3 = call(R3, 0 args, 1 rets)
  0057  RETURN    return R0..R-1
; ---------- proto99 [_OnConsumeEnergy] ----------
  ; fn ?  line 774-799 np=2 va=0 ms=11 code=44 consts=14 upvals=1 protos=0
  ;   K[0]='IsTriggered'
  ;   K[1]='num'
  ;   K[2]='itemModel'
  ;   K[3]='GetType'
  ;   K[4]='HasNextStage'
  ;   K[5]='GetNextStageEnergyRequired'
  ;   K[6]='GetEnergyConsumed'
  ;   K[7]='SetEnergyConsumed'
  ;   K[8]='math'
  ;   K[9]='min'
  ;   K[10]='_LogReady'
  ;   K[11]='_DispatchEnergyRequirementSatisfiedEvent'
  ;   K[12]='_DispatchRefreshEnergyConsumedEvent'
  ;   K[13]='_TryAccumulatePdEnergy'
  ;   upvals: _ENV
  ;   locals: self(0-44), msg(0-44), energyCount(6-44), itemModel(7-44), itemCode(9-44), energyRequired(15-39)
  0000  SELF      R3 = R0[K0('IsTriggered')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABLE  R2 = R1[K1('num')]
  0006  GETTABLE  R3 = R1[K2('itemModel')]
  0007  SELF      R5 = R3[K3('GetType')] (self)
  0008  CALL      R4 = call(R4, 1 args, 1 rets)
  0009  SELF      R6 = R0[K4('HasNextStage')] (self)
  0010  CALL      R5 = call(R5, 1 args, 1 rets)
  0011  TEST      if not R5 then   -> -131059
  0012  JMP       (jump)   -> 39
  0013  SELF      R6 = R0[K5('GetNextStageEnergyRequired')] (self)
  0014  CALL      R5 = call(R5, 1 args, 1 rets)
  0015  SELF      R7 = R0[K6('GetEnergyConsumed')] (self)
  0016  CALL      R6 = call(R6, 1 args, 1 rets)
  0017  LT        if R0 lt R5   -> -127976
  0018  JMP       (jump)   -> 39
  0019  SELF      R7 = R0[K7('SetEnergyConsumed')] (self)
  0020  GETTABUP  R8 = _ENV[K8('math')]
  0021  GETTABLE  R8 = R8[K9('min')]
  0022  SELF      R10 = R0[K6('GetEnergyConsumed')] (self)
  0023  CALL      R9 = call(R9, 1 args, 1 rets)
  0024  ADD       R9 = R2 add R9
  0025  MOVE      R10 = R0
  0026  CALL      R8 = call(R8, -1 args, 2 rets)
  0027  CALL      R6 = call(R6, 0 args, -1 rets)
  0028  SELF      R7 = R0[K6('GetEnergyConsumed')] (self)
  0029  CALL      R6 = call(R6, 1 args, 1 rets)
  0030  LE        if R0 le R6   -> -128474
  0031  JMP       (jump)   -> 37
  0032  SELF      R7 = R0[K10('_LogReady')] (self)
  0033  CALL      R6 = call(R6, 0 args, 1 rets)
  0034  SELF      R7 = R0[K11('_DispatchEnergyRequirementSatisfiedEvent')] (self)
  0035  MOVE      R8 = R0
  0036  CALL      R6 = call(R6, 0 args, 2 rets)
  0037  SELF      R7 = R0[K12('_DispatchRefreshEnergyConsumedEvent')] (self)
  0038  CALL      R6 = call(R6, 0 args, 1 rets)
  0039  SELF      R6 = R0[K13('_TryAccumulatePdEnergy')] (self)
  0040  MOVE      R7 = R0
  0041  MOVE      R8 = R0
  0042  CALL      R5 = call(R5, 0 args, 3 rets)
  0043  RETURN    return R0..R-1
; ---------- proto100 [GetButtonTarget] ----------
  ; fn ?  line 801-810 np=2 va=0 ms=9 code=25 consts=11 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='LuckyBlastActivityDefinition'
  ;   K[2]='ActivityTokenPropertyType'
  ;   K[3]='GM'
  ;   K[4]='SceneManager'
  ;   K[5]='GetGameMode'
  ;   K[6]='EGameMode'
  ;   K[7]='Board'
  ;   K[8]='TutorialHelper'
  ;   K[9]='GetHudButton'
  ;   K[10]='EntryButtonKey'
  ;   upvals: _ENV
  ;   locals: propertyType(0-25), flyCount(0-25), (for generator)(3-22), (for state)(3-22), (for control)(3-22), activityType(4-20), activityDefinition(4-20)
  0000  GETTABUP  R2 = _ENV[K0('pairs')]
  0001  GETTABUP  R3 = _ENV[K1('LuckyBlastActivityDefinition')]
  0002  CALL      R2 = call(R2, 3 args, 1 rets)
  0003  JMP       (jump)   -> 20
  0004  GETTABLE  R7 = R6[K2('ActivityTokenPropertyType')]
  0005  EQ        if R0 eq R7   -> -131058
  0006  JMP       (jump)   -> 20
  0007  GETTABUP  R7 = _ENV[K3('GM')]
  0008  GETTABLE  R7 = R7[K4('SceneManager')]
  0009  SELF      R8 = R7[K5('GetGameMode')] (self)
  0010  CALL      R7 = call(R7, 1 args, 1 rets)
  0011  GETTABUP  R8 = _ENV[K6('EGameMode')]
  0012  GETTABLE  R8 = R8[K7('Board')]
  0013  EQ        if R0 eq R8   -> -127465
  0014  JMP       (jump)   -> 20
  0015  GETTABUP  R7 = _ENV[K8('TutorialHelper')]
  0016  GETTABLE  R7 = R7[K9('GetHudButton')]
  0017  GETTABLE  R8 = R6[K10('EntryButtonKey')]
  0018  TAILCALL  tailcall(R7, 0)
  0019  RETURN    return R7..R6
  0020  TFORCALL  tforcall R2
  0021  TFORLOOP  tforloop R4(sBx=-18)   -> 4
  0022  LOADNIL   R2..R2 = nil
  0023  RETURN    return R2..R1
  0024  RETURN    return R0..R-1
; ---------- proto101 [OnTokenHit] ----------
  ; fn ?  line 812-814 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchTokenHitEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchTokenHitEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto102 [GetMainPdChainInfo] ----------
  ; fn ?  line 822-847 np=1 va=0 ms=15 code=34 consts=10 upvals=1 protos=1
  ;   K[0]='GM'
  ;   K[1]='MainBoardModel'
  ;   K[2]='FilterItems'
  ;   K[3]='ipairs'
  ;   K[4]='GetType'
  ;   K[5]='GM'
  ;   K[6]='ItemDataModel'
  ;   K[7]='GetChainId'
  ;   K[8]='table'
  ;   K[9]='insert'
  ;   upvals: _ENV
  ;   locals: self(0-34), boardModel(2-34), filterMainPd(3-34), arrItemModel(8-34), mapPdChain(9-34), (for generator)(12-32), (for state)(12-32), (for control)(12-32), _(13-30), itemModel(13-30), itemCode(15-30), chainId(20-30)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('MainBoardModel')]
  0002  CLOSURE   R2 = closure proto0
  0003  SELF      R4 = R1[K2('FilterItems')] (self)
  0004  MOVE      R5 = R0
  0005  LOADNIL   R6..R6 = nil
  0006  LOADBOOL  R7 = true
  0007  CALL      R3 = call(R3, 1 args, 4 rets)
  0008  NEWTABLE  R4 = {} (0 items)
  0009  GETTABUP  R5 = _ENV[K3('ipairs')]
  0010  MOVE      R6 = R0
  0011  CALL      R5 = call(R5, 3 args, 1 rets)
  0012  JMP       (jump)   -> 30
  0013  SELF      R11 = R9[K4('GetType')] (self)
  0014  CALL      R10 = call(R10, 1 args, 1 rets)
  0015  GETTABUP  R11 = _ENV[K5('GM')]
  0016  GETTABLE  R11 = R11[K6('ItemDataModel')]
  0017  SELF      R12 = R11[K7('GetChainId')] (self)
  0018  MOVE      R13 = R0
  0019  CALL      R11 = call(R11, 1 args, 2 rets)
  0020  GETTABLE  R12 = R4[R11]
  0021  TEST      if not R12 then   -> -131048
  0022  JMP       (jump)   -> 24
  0023  NEWTABLE  R12 = {} (0 items)
  0024  SETTABLE  R4[R11] = R12
  0025  GETTABUP  R12 = _ENV[K8('table')]
  0026  GETTABLE  R12 = R12[K9('insert')]
  0027  GETTABLE  R13 = R4[R11]
  0028  MOVE      R14 = R0
  0029  CALL      R12 = call(R12, 0 args, 2 rets)
  0030  TFORCALL  tforcall R5
  0031  TFORLOOP  tforloop R7(sBx=-19)   -> 13
  0032  RETURN    return R4..R3
  0033  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 825-833 np=1 va=0 ms=5 code=27 consts=8 upvals=1 protos=0
    ;   K[0]='GetType'
    ;   K[1]='GM'
    ;   K[2]='ItemDataModel'
    ;   K[3]='IsPd'
    ;   K[4]='GetComponent'
    ;   K[5]='ItemSpread'
    ;   K[6]=nil
    ;   K[7]='GetItemSeries'
    ;   upvals: _ENV
    ;   locals: itemModel(0-27), itemCode(2-27)
    0000  SELF      R2 = R0[K0('GetType')] (self)
    0001  CALL      R1 = call(R1, 1 args, 1 rets)
    0002  GETTABUP  R2 = _ENV[K1('GM')]
    0003  GETTABLE  R2 = R2[K2('ItemDataModel')]
    0004  SELF      R3 = R2[K3('IsPd')] (self)
    0005  MOVE      R4 = R0
    0006  CALL      R2 = call(R2, 1 args, 2 rets)
    0007  TEST      if not R2 then   -> -131063
    0008  JMP       (jump)   -> 14
    0009  SELF      R3 = R0[K4('GetComponent')] (self)
    0010  GETTABUP  R4 = _ENV[K5('ItemSpread')]
    0011  CALL      R2 = call(R2, 1 args, 2 rets)
    0012  EQ        if R0 eq K6(nil)   -> -129772
    0013  JMP       (jump)   -> 16
    0014  LOADBOOL  R2 = false
    0015  RETURN    return R2..R1
    0016  GETTABUP  R2 = _ENV[K1('GM')]
    0017  GETTABLE  R2 = R2[K2('ItemDataModel')]
    0018  SELF      R3 = R2[K7('GetItemSeries')] (self)
    0019  MOVE      R4 = R0
    0020  CALL      R2 = call(R2, 1 args, 2 rets)
    0021  EQ        if R1 eq K6(nil)   -> -129763
    0022  JMP       (jump)   -> 24
    0023  LOADBOOL  R2 = false
    0024  LOADBOOL  R2 = true
    0025  RETURN    return R2..R1
    0026  RETURN    return R0..R-1
; ---------- proto103 [GetRemainMainPdChainForSpin] ----------
  ; fn ?  line 850-859 np=1 va=0 ms=10 code=16 consts=3 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='GetMainPdChainInfo'
  ;   K[2]='IsPdChainTriggered'
  ;   upvals: _ENV
  ;   locals: self(0-16), mapPdChain(1-16), (for generator)(5-14), (for state)(5-14), (for control)(5-14), chainId(6-12), arrItemModel(6-12)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABUP  R2 = _ENV[K0('pairs')]
  0002  SELF      R4 = R0[K1('GetMainPdChainInfo')] (self)
  0003  CALL      R3 = call(R3, -1 args, 1 rets)
  0004  CALL      R2 = call(R2, 3 args, -1 rets)
  0005  JMP       (jump)   -> 12
  0006  SELF      R8 = R0[K2('IsPdChainTriggered')] (self)
  0007  MOVE      R9 = R0
  0008  CALL      R7 = call(R7, 1 args, 2 rets)
  0009  TEST      if not R7 then   -> -131060
  0010  JMP       (jump)   -> 12
  0011  SETTABLE  R1[R5] = R6
  0012  TFORCALL  tforcall R2
  0013  TFORLOOP  tforloop R4(sBx=-8)   -> 6
  0014  RETURN    return R1..R0
  0015  RETURN    return R0..R-1
; ---------- proto104 [GetRemainValidMainPdChainForSpin] ----------
  ; fn ?  line 862-872 np=1 va=0 ms=10 code=19 consts=6 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='GetRemainMainPdChainForSpin'
  ;   K[2]='GetChainConfig'
  ;   K[3]=nil
  ;   K[4]='weight'
  ;   K[5]=0
  ;   upvals: _ENV
  ;   locals: self(0-19), mapPdChain(1-19), (for generator)(5-17), (for state)(5-17), (for control)(5-17), chainId(6-15), arrItemModel(6-15), chainConfig(9-15)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABUP  R2 = _ENV[K0('pairs')]
  0002  SELF      R4 = R0[K1('GetRemainMainPdChainForSpin')] (self)
  0003  CALL      R3 = call(R3, -1 args, 1 rets)
  0004  CALL      R2 = call(R2, 3 args, -1 rets)
  0005  JMP       (jump)   -> 15
  0006  SELF      R8 = R0[K2('GetChainConfig')] (self)
  0007  MOVE      R9 = R0
  0008  CALL      R7 = call(R7, 1 args, 2 rets)
  0009  EQ        if R1 eq K3(nil)   -> -127218
  0010  JMP       (jump)   -> 15
  0011  GETTABLE  R8 = R7[K4('weight')]
  0012  LT        if R0 lt R8   -> 2582
  0013  JMP       (jump)   -> 15
  0014  SETTABLE  R1[R5] = R6
  0015  TFORCALL  tforcall R2
  0016  TFORLOOP  tforloop R4(sBx=-11)   -> 6
  0017  RETURN    return R1..R0
  0018  RETURN    return R0..R-1
; ---------- proto105 [CanSpin] ----------
  ; fn ?  line 875-886 np=1 va=0 ms=4 code=25 consts=7 upvals=1 protos=0
  ;   K[0]='HasNextStage'
  ;   K[1]='Table'
  ;   K[2]='GetMapSize'
  ;   K[3]='GetRemainValidMainPdChainForSpin'
  ;   K[4]=0
  ;   K[5]='GetEnergyConsumed'
  ;   K[6]='GetNextStageEnergyRequired'
  ;   upvals: _ENV
  ;   locals: self(0-25)
  0000  SELF      R2 = R0[K0('HasNextStage')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADBOOL  R1 = false
  0005  RETURN    return R1..R0
  0006  GETTABUP  R1 = _ENV[K1('Table')]
  0007  GETTABLE  R1 = R1[K2('GetMapSize')]
  0008  SELF      R3 = R0[K3('GetRemainValidMainPdChainForSpin')] (self)
  0009  CALL      R2 = call(R2, -1 args, 1 rets)
  0010  CALL      R1 = call(R1, 1 args, -1 rets)
  0011  LE        if R0 le K4(0)   -> -130287
  0012  JMP       (jump)   -> 15
  0013  LOADBOOL  R1 = false
  0014  RETURN    return R1..R0
  0015  SELF      R2 = R0[K5('GetEnergyConsumed')] (self)
  0016  CALL      R1 = call(R1, 1 args, 1 rets)
  0017  SELF      R3 = R0[K6('GetNextStageEnergyRequired')] (self)
  0018  CALL      R2 = call(R2, 1 args, 1 rets)
  0019  LE        if R1 le R1   -> -130026
  0020  JMP       (jump)   -> 22
  0021  LOADBOOL  R1 = false
  0022  LOADBOOL  R1 = true
  0023  RETURN    return R1..R0
  0024  RETURN    return R0..R-1
; ---------- proto106 [_FormatTmpOrderByCombineOrders] ----------
  ; fn ?  line 888-905 np=3 va=0 ms=14 code=26 consts=7 upvals=1 protos=2
  ;   K[0]='math'
  ;   K[1]='min'
  ;   K[2]=1
  ;   K[3]='Table'
  ;   K[4]='ListAppend'
  ;   K[5]='GetRequirements'
  ;   K[6]='GetId'
  ;   upvals: _ENV
  ;   locals: self(0-26), arrOrders(0-26), count(0-26), requirements(1-26), count(6-26), order(7-26), (for index)(10-19), (for limit)(10-19), (for step)(10-19), i(11-18), tmpOrder(20-26)
  0000  NEWTABLE  R3 = {} (0 items)
  0001  GETTABUP  R4 = _ENV[K0('math')]
  0002  GETTABLE  R4 = R4[K1('min')]
  0003  MOVE      R5 = R0
  0004  LEN       R6 = len R0
  0005  CALL      R4 = call(R4, 1 args, 2 rets)
  0006  LOADNIL   R5..R5 = nil
  0007  LOADK     R6 = K2 1
  0008  MOVE      R7 = R0
  0009  LOADK     R8 = K2 1
  0010  FORPREP   forprep R6(sBx=7)   -> 18
  0011  GETTABLE  R5 = R1[R9]
  0012  GETTABUP  R10 = _ENV[K3('Table')]
  0013  GETTABLE  R10 = R10[K4('ListAppend')]
  0014  MOVE      R11 = R0
  0015  SELF      R13 = R5[K5('GetRequirements')] (self)
  0016  CALL      R12 = call(R12, -1 args, 1 rets)
  0017  CALL      R10 = call(R10, 0 args, -1 rets)
  0018  FORLOOP   forloop R6(sBx=-8)   -> 11
  0019  NEWTABLE  R6 = {} (0 items)
  0020  CLOSURE   R7 = closure proto0
  0021  SETTABLE  R6[K5('GetRequirements')] = R7
  0022  CLOSURE   R7 = closure proto1
  0023  SETTABLE  R6[K6('GetId')] = R7
  0024  RETURN    return R6..R5
  0025  RETURN    return R0..R-1
  ; ---------- proto0 [GetRequirements] ----------
    ; fn ?  line 898-900 np=0 va=0 ms=2 code=3 consts=0 upvals=1 protos=0
    ;   upvals: requirements
    0000  GETUPVAL  R0 = requirements
    0001  RETURN    return R0..R-1
    0002  RETURN    return R0..R-1
  ; ---------- proto1 [GetId] ----------
    ; fn ?  line 901-903 np=0 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
    ;   K[0]=''
    0000  LOADK     R0 = K0 ''
    0001  RETURN    return R0..R-1
    0002  RETURN    return R0..R-1
; ---------- proto107 [SelectPdChainToTrigger] ----------
  ; fn ?  line 909-1034 np=1 va=0 ms=29 code=351 consts=50 upvals=1 protos=0
  ;   K[0]='GetRemainValidMainPdChainForSpin'
  ;   K[1]='Log'
  ;   K[2]='Info'
  ;   K[3]='string'
  ;   K[4]='format'
  ;   K[5]='[幸运喷发] 可抽取合成线：%s'
  ;   K[6]='table'
  ;   K[7]='concat'
  ;   K[8]='Table'
  ;   K[9]='GetKeys'
  ;   K[10]='; '
  ;   K[11]='GM'
  ;   K[12]='MainBoardModel'
  ;   K[13]='ipairs'
  ;   K[14]='ItemRandomHelper'
  ;   K[15]='GetCandidateOrdersByWave'
  ;   K[16]='GetOrderFillEnergyDiff'
  ;   K[17]='_FormatTmpOrderByCombineOrders'
  ;   K[18]='pairs'
  ;   K[19]='ItemDataModel'
  ;   K[20]='GetChainGenerators'
  ;   K[21]='remainRequireChain'
  ;   K[22]='GetChainId'
  ;   K[23]=nil
  ;   K[24]=true
  ;   K[25]=0
  ;   K[26]='energyDiff'
  ;   K[27]='IsEmpty'
  ;   K[28]='insert'
  ;   K[29]='GetId'
  ;   K[30]='[幸运喷发] 筛选订单需求结果：%s；考虑订单：'
  ;   K[31]=', '
  ;   K[32]='[幸运喷发] 订单需求已满足，查找cd数量最多的'
  ;   K[33]='GetComponent'
  ;   K[34]='ItemSpread'
  ;   K[35]='GetStorageRestNumber'
  ;   K[36]=1
  ;   K[37]='StringUtil'
  ;   K[38]='MakeColorFormat'
  ;   K[39]='%s-%d'
  ;   K[40]='FFA000'
  ;   K[41]='[幸运喷发] 筛选cd数量最多结果：%s；cd情况：%s'
  ;   K[42]='%s-%f'
  ;   K[43]='[幸运喷发] 筛选订单差额最多结果：%s；差额情况：%s'
  ;   K[44]='GetChainConfig'
  ;   K[45]='weight'
  ;   K[46]='chainId'
  ;   K[47]='Weight'
  ;   K[48]='ListWeightSelectOne'
  ;   K[49]='[幸运喷发] 当前抽取母棋子权重及结果：%s'
  ;   upvals: _ENV
  ;   locals: self(0-351), mapPdChain(2-351), mapEnergyDiff(18-351), boardModel(20-125), bFound(21-125), (for generator)(27-119), (for state)(27-119), (for control)(27-119), _(28-117), arrOrders(28-117), _(34-117), _(34-117), energyDiffInfo(34-117), _(34-117), mapPdChainNew(35-117), (for generator)(40-75), (for state)(40-75), (for control)(40-75), requirement(41-73), info(41-73), mapHandledPdChain(42-73), (for generator)(49-73), (for state)(49-73), (for control)(49-73), _(50-71), chainGenerator(50-71), chainId(55-71), logOrder(83-117), (for generator)(86-95), (for state)(86-95), (for control)(86-95), _(87-93), order(87-93), maxCdCount(126-208), mapCdCount(127-208), (for generator)(130-155), (for state)(130-155), (for control)(130-155), chainId(131-153), arrItemModel(131-153), cdCount(132-153), (for generator)(135-147), (for state)(135-147), (for control)(135-147), _(136-145), itemModel(136-145), itemSpread(139-145), mapPdChainNew(156-208), logCdCount(157-208), (for generator)(160-187), (for state)(160-187), (for control)(160-187), chainId(161-185), arrItemModel(161-185), maxEnergyDiff(209-279), (for generator)(212-224), (for state)(212-224), (for control)(212-224), chainId(213-222), energyDiff(217-222), mapPdChainNew(225-279), logEnergyDiff(226-279), (for generator)(229-258), (for state)(229-258), (for control)(229-258), chainId(230-256), arrItemModel(230-256), energyDiff(234-256), arrWeightInfo(280-351), (for generator)(283-305), (for state)(283-305), (for control)(283-305), chainId(284-303), chainConfig(287-303), selectedChainId(310-351), logMapWeight(311-351), (for generator)(314-337), (for state)(314-337), (for control)(314-337), _(315-335), weightInfo(315-335)
  0000  SELF      R2 = R0[K0('GetRemainValidMainPdChainForSpin')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('Log')]
  0003  GETTABLE  R2 = R2[K2('Info')]
  0004  GETTABUP  R3 = _ENV[K3('string')]
  0005  GETTABLE  R3 = R3[K4('format')]
  0006  LOADK     R4 = K5 '[幸运喷发] 可抽取合成线：%s'
  0007  GETTABUP  R5 = _ENV[K6('table')]
  0008  GETTABLE  R5 = R5[K7('concat')]
  0009  GETTABUP  R6 = _ENV[K8('Table')]
  0010  GETTABLE  R6 = R6[K9('GetKeys')]
  0011  MOVE      R7 = R0
  0012  CALL      R6 = call(R6, 1 args, 1 rets)
  0013  LOADK     R7 = K10 '; '
  0014  CALL      R5 = call(R5, -1 args, 2 rets)
  0015  CALL      R3 = call(R3, -1 args, -1 rets)
  0016  CALL      R2 = call(R2, 0 args, -1 rets)
  0017  LOADNIL   R2..R2 = nil
  0018  GETTABUP  R3 = _ENV[K11('GM')]
  0019  GETTABLE  R3 = R3[K12('MainBoardModel')]
  0020  LOADBOOL  R4 = false
  0021  GETTABUP  R5 = _ENV[K13('ipairs')]
  0022  GETTABUP  R6 = _ENV[K14('ItemRandomHelper')]
  0023  GETTABLE  R6 = R6[K15('GetCandidateOrdersByWave')]
  0024  MOVE      R7 = R0
  0025  CALL      R6 = call(R6, -1 args, 1 rets)
  0026  CALL      R5 = call(R5, 3 args, -1 rets)
  0027  JMP       (jump)   -> 117
  0028  SELF      R11 = R3[K16('GetOrderFillEnergyDiff')] (self)
  0029  SELF      R13 = R0[K17('_FormatTmpOrderByCombineOrders')] (self)
  0030  MOVE      R14 = R0
  0031  LEN       R15 = len R0
  0032  CALL      R12 = call(R12, -1 args, 3 rets)
  0033  CALL      R10 = call(R10, 4 args, -1 rets)
  0034  NEWTABLE  R14 = {} (0 items)
  0035  NEWTABLE  R15 = {} (0 items)
  0036  MOVE      R2 = R0
  0037  GETTABUP  R15 = _ENV[K18('pairs')]
  0038  MOVE      R16 = R0
  0039  CALL      R15 = call(R15, 3 args, 1 rets)
  0040  JMP       (jump)   -> 73
  0041  NEWTABLE  R20 = {} (0 items)
  0042  GETTABUP  R21 = _ENV[K13('ipairs')]
  0043  GETTABUP  R22 = _ENV[K11('GM')]
  0044  GETTABLE  R22 = R22[K19('ItemDataModel')]
  0045  SELF      R23 = R22[K20('GetChainGenerators')] (self)
  0046  GETTABLE  R24 = R19[K21('remainRequireChain')]
  0047  CALL      R22 = call(R22, -1 args, 2 rets)
  0048  CALL      R21 = call(R21, 3 args, -1 rets)
  0049  JMP       (jump)   -> 71
  0050  GETTABUP  R26 = _ENV[K11('GM')]
  0051  GETTABLE  R26 = R26[K19('ItemDataModel')]
  0052  SELF      R27 = R26[K22('GetChainId')] (self)
  0053  MOVE      R28 = R0
  0054  CALL      R26 = call(R26, 1 args, 2 rets)
  0055  GETTABLE  R27 = R1[R26]
  0056  EQ        if R1 eq K23(nil)   -> -116911
  0057  JMP       (jump)   -> 71
  0058  GETTABLE  R27 = R20[R26]
  0059  TEST      if not R27 then   -> -131010
  0060  JMP       (jump)   -> 71
  0061  SETTABLE  R20[R26] = K24(true)
  0062  GETTABLE  R27 = R2[R26]
  0063  TEST      if not R27 then   -> -131006
  0064  JMP       (jump)   -> 66
  0065  LOADK     R27 = K25 0
  0066  GETTABLE  R28 = R19[K26('energyDiff')]
  0067  ADD       R27 = R28 add R27
  0068  SETTABLE  R2[R26] = R27
  0069  GETTABLE  R27 = R1[R26]
  0070  SETTABLE  R14[R26] = R27
  0071  TFORCALL  tforcall R21
  0072  TFORLOOP  tforloop R23(sBx=-23)   -> 50
  0073  TFORCALL  tforcall R15
  0074  TFORLOOP  tforloop R17(sBx=-34)   -> 41
  0075  GETTABUP  R15 = _ENV[K8('Table')]
  0076  GETTABLE  R15 = R15[K27('IsEmpty')]
  0077  MOVE      R16 = R0
  0078  CALL      R15 = call(R15, 1 args, 1 rets)
  0079  TEST      if not R15 then   -> -130990
  0080  JMP       (jump)   -> 117
  0081  MOVE      R1 = R0
  0082  NEWTABLE  R15 = {} (0 items)
  0083  GETTABUP  R16 = _ENV[K13('ipairs')]
  0084  MOVE      R17 = R0
  0085  CALL      R16 = call(R16, 3 args, 1 rets)
  0086  JMP       (jump)   -> 93
  0087  GETTABUP  R21 = _ENV[K6('table')]
  0088  GETTABLE  R21 = R21[K28('insert')]
  0089  MOVE      R22 = R0
  0090  SELF      R24 = R20[K29('GetId')] (self)
  0091  CALL      R23 = call(R23, -1 args, 1 rets)
  0092  CALL      R21 = call(R21, 0 args, -1 rets)
  0093  TFORCALL  tforcall R16
  0094  TFORLOOP  tforloop R18(sBx=-8)   -> 87
  0095  GETTABUP  R16 = _ENV[K1('Log')]
  0096  GETTABLE  R16 = R16[K2('Info')]
  0097  GETTABUP  R17 = _ENV[K3('string')]
  0098  GETTABLE  R17 = R17[K4('format')]
  0099  LOADK     R18 = K30 '[幸运喷发] 筛选订单需求结果：%s；考虑订单：'
  0100  GETTABUP  R19 = _ENV[K6('table')]
  0101  GETTABLE  R19 = R19[K7('concat')]
  0102  GETTABUP  R20 = _ENV[K8('Table')]
  0103  GETTABLE  R20 = R20[K9('GetKeys')]
  0104  MOVE      R21 = R0
  0105  CALL      R20 = call(R20, 1 args, 1 rets)
  0106  LOADK     R21 = K10 '; '
  0107  CALL      R19 = call(R19, 1 args, 2 rets)
  0108  GETTABUP  R20 = _ENV[K6('table')]
  0109  GETTABLE  R20 = R20[K7('concat')]
  0110  MOVE      R21 = R0
  0111  LOADK     R22 = K31 ', '
  0112  CALL      R20 = call(R20, -1 args, 2 rets)
  0113  CALL      R17 = call(R17, -1 args, -1 rets)
  0114  CALL      R16 = call(R16, 0 args, -1 rets)
  0115  LOADBOOL  R4 = true
  0116  JMP       (jump)   -> 119
  0117  TFORCALL  tforcall R5
  0118  TFORLOOP  tforloop R7(sBx=-91)   -> 28
  0119  TEST      if not R4 then   -> -130950
  0120  JMP       (jump)   -> 125
  0121  GETTABUP  R5 = _ENV[K1('Log')]
  0122  GETTABLE  R5 = R5[K2('Info')]
  0123  LOADK     R6 = K32 '[幸运喷发] 订单需求已满足，查找cd数量最多的'
  0124  CALL      R5 = call(R5, 0 args, 1 rets)
  0125  LOADNIL   R3..R3 = nil
  0126  NEWTABLE  R4 = {} (0 items)
  0127  GETTABUP  R5 = _ENV[K18('pairs')]
  0128  MOVE      R6 = R0
  0129  CALL      R5 = call(R5, 3 args, 1 rets)
  0130  JMP       (jump)   -> 153
  0131  LOADK     R10 = K25 0
  0132  GETTABUP  R11 = _ENV[K13('ipairs')]
  0133  MOVE      R12 = R0
  0134  CALL      R11 = call(R11, 3 args, 1 rets)
  0135  JMP       (jump)   -> 145
  0136  SELF      R17 = R15[K33('GetComponent')] (self)
  0137  GETTABUP  R18 = _ENV[K34('ItemSpread')]
  0138  CALL      R16 = call(R16, 1 args, 2 rets)
  0139  SELF      R18 = R16[K35('GetStorageRestNumber')] (self)
  0140  LOADBOOL  R19 = false
  0141  CALL      R17 = call(R17, 1 args, 2 rets)
  0142  LE        if R0 le K25(0)   -> -121943
  0143  JMP       (jump)   -> 145
  0144  ADD       R10 = K36(1) add R10
  0145  TFORCALL  tforcall R11
  0146  TFORLOOP  tforloop R13(sBx=-11)   -> 136
  0147  EQ        if R1 eq K23(nil)   -> -129108
  0148  JMP       (jump)   -> 151
  0149  LT        if R0 lt R10   -> -129375
  0150  JMP       (jump)   -> 152
  0151  MOVE      R3 = R0
  0152  SETTABLE  R4[R8] = R10
  0153  TFORCALL  tforcall R5
  0154  TFORLOOP  tforloop R7(sBx=-24)   -> 131
  0155  NEWTABLE  R5 = {} (0 items)
  0156  NEWTABLE  R6 = {} (0 items)
  0157  GETTABUP  R7 = _ENV[K18('pairs')]
  0158  MOVE      R8 = R0
  0159  CALL      R7 = call(R7, 3 args, 1 rets)
  0160  JMP       (jump)   -> 185
  0161  GETTABLE  R12 = R4[R10]
  0162  EQ        if R0 eq R3   -> -124761
  0163  JMP       (jump)   -> 165
  0164  SETTABLE  R5[R10] = R11
  0165  GETTABUP  R12 = _ENV[K6('table')]
  0166  GETTABLE  R12 = R12[K28('insert')]
  0167  MOVE      R13 = R0
  0168  GETTABUP  R14 = _ENV[K3('string')]
  0169  GETTABLE  R14 = R14[K4('format')]
  0170  GETTABUP  R15 = _ENV[K37('StringUtil')]
  0171  GETTABLE  R15 = R15[K38('MakeColorFormat')]
  0172  LOADK     R16 = K39 '%s-%d'
  0173  GETTABLE  R17 = R4[R10]
  0174  EQ        if R0 eq R3   -> -122189
  0175  JMP       (jump)   -> 178
  0176  LOADK     R17 = K40 'FFA000'
  0177  JMP       (jump)   -> 180
  0178  LOADBOOL  R17 = false
  0179  LOADBOOL  R17 = true
  0180  CALL      R15 = call(R15, 1 args, 2 rets)
  0181  MOVE      R16 = R0
  0182  GETTABLE  R17 = R4[R10]
  0183  CALL      R14 = call(R14, -1 args, 3 rets)
  0184  CALL      R12 = call(R12, 0 args, -1 rets)
  0185  TFORCALL  tforcall R7
  0186  TFORLOOP  tforloop R9(sBx=-26)   -> 161
  0187  MOVE      R1 = R0
  0188  GETTABUP  R7 = _ENV[K1('Log')]
  0189  GETTABLE  R7 = R7[K2('Info')]
  0190  GETTABUP  R8 = _ENV[K3('string')]
  0191  GETTABLE  R8 = R8[K4('format')]
  0192  LOADK     R9 = K41 '[幸运喷发] 筛选cd数量最多结果：%s；cd情况：%s'
  0193  GETTABUP  R10 = _ENV[K6('table')]
  0194  GETTABLE  R10 = R10[K7('concat')]
  0195  GETTABUP  R11 = _ENV[K8('Table')]
  0196  GETTABLE  R11 = R11[K9('GetKeys')]
  0197  MOVE      R12 = R0
  0198  CALL      R11 = call(R11, 1 args, 1 rets)
  0199  LOADK     R12 = K10 '; '
  0200  CALL      R10 = call(R10, 1 args, 2 rets)
  0201  GETTABUP  R11 = _ENV[K6('table')]
  0202  GETTABLE  R11 = R11[K7('concat')]
  0203  MOVE      R12 = R0
  0204  LOADK     R13 = K10 '; '
  0205  CALL      R11 = call(R11, -1 args, 2 rets)
  0206  CALL      R8 = call(R8, -1 args, -1 rets)
  0207  CALL      R7 = call(R7, 0 args, -1 rets)
  0208  LOADNIL   R3..R3 = nil
  0209  GETTABUP  R4 = _ENV[K18('pairs')]
  0210  MOVE      R5 = R0
  0211  CALL      R4 = call(R4, 3 args, 1 rets)
  0212  JMP       (jump)   -> 222
  0213  GETTABLE  R8 = R2[R7]
  0214  TEST      if not R8 then   -> -130855
  0215  JMP       (jump)   -> 217
  0216  LOADK     R8 = K25 0
  0217  EQ        if R1 eq K23(nil)   -> -129038
  0218  JMP       (jump)   -> 221
  0219  LT        if R0 lt R8   -> -129307
  0220  JMP       (jump)   -> 222
  0221  MOVE      R3 = R0
  0222  TFORCALL  tforcall R4
  0223  TFORLOOP  tforloop R6(sBx=-11)   -> 213
  0224  NEWTABLE  R4 = {} (0 items)
  0225  NEWTABLE  R5 = {} (0 items)
  0226  GETTABUP  R6 = _ENV[K18('pairs')]
  0227  MOVE      R7 = R0
  0228  CALL      R6 = call(R6, 3 args, 1 rets)
  0229  JMP       (jump)   -> 256
  0230  GETTABLE  R11 = R2[R9]
  0231  TEST      if not R11 then   -> -130838
  0232  JMP       (jump)   -> 234
  0233  LOADK     R11 = K25 0
  0234  EQ        if R0 eq R3   -> -125201
  0235  JMP       (jump)   -> 237
  0236  SETTABLE  R4[R9] = R10
  0237  GETTABUP  R12 = _ENV[K6('table')]
  0238  GETTABLE  R12 = R12[K28('insert')]
  0239  MOVE      R13 = R0
  0240  GETTABUP  R14 = _ENV[K3('string')]
  0241  GETTABLE  R14 = R14[K4('format')]
  0242  GETTABUP  R15 = _ENV[K37('StringUtil')]
  0243  GETTABLE  R15 = R15[K38('MakeColorFormat')]
  0244  LOADK     R16 = K42 '%s-%f'
  0245  EQ        if R0 eq R3   -> -125190
  0246  JMP       (jump)   -> 249
  0247  LOADK     R17 = K40 'FFA000'
  0248  JMP       (jump)   -> 251
  0249  LOADBOOL  R17 = false
  0250  LOADBOOL  R17 = true
  0251  CALL      R15 = call(R15, 1 args, 2 rets)
  0252  MOVE      R16 = R0
  0253  MOVE      R17 = R0
  0254  CALL      R14 = call(R14, -1 args, 3 rets)
  0255  CALL      R12 = call(R12, 0 args, -1 rets)
  0256  TFORCALL  tforcall R6
  0257  TFORLOOP  tforloop R8(sBx=-28)   -> 230
  0258  MOVE      R1 = R0
  0259  GETTABUP  R6 = _ENV[K1('Log')]
  0260  GETTABLE  R6 = R6[K2('Info')]
  0261  GETTABUP  R7 = _ENV[K3('string')]
  0262  GETTABLE  R7 = R7[K4('format')]
  0263  LOADK     R8 = K43 '[幸运喷发] 筛选订单差额最多结果：%s；差额情况：%s'
  0264  GETTABUP  R9 = _ENV[K6('table')]
  0265  GETTABLE  R9 = R9[K7('concat')]
  0266  GETTABUP  R10 = _ENV[K8('Table')]
  0267  GETTABLE  R10 = R10[K9('GetKeys')]
  0268  MOVE      R11 = R0
  0269  CALL      R10 = call(R10, 1 args, 1 rets)
  0270  LOADK     R11 = K10 '; '
  0271  CALL      R9 = call(R9, 1 args, 2 rets)
  0272  GETTABUP  R10 = _ENV[K6('table')]
  0273  GETTABLE  R10 = R10[K7('concat')]
  0274  MOVE      R11 = R0
  0275  LOADK     R12 = K10 '; '
  0276  CALL      R10 = call(R10, -1 args, 2 rets)
  0277  CALL      R7 = call(R7, -1 args, -1 rets)
  0278  CALL      R6 = call(R6, 0 args, -1 rets)
  0279  NEWTABLE  R3 = {} (0 items)
  0280  GETTABUP  R4 = _ENV[K18('pairs')]
  0281  MOVE      R5 = R0
  0282  CALL      R4 = call(R4, 3 args, 1 rets)
  0283  JMP       (jump)   -> 303
  0284  SELF      R9 = R0[K44('GetChainConfig')] (self)
  0285  MOVE      R10 = R0
  0286  CALL      R8 = call(R8, 1 args, 2 rets)
  0287  EQ        if R1 eq K23(nil)   -> -126408
  0288  JMP       (jump)   -> 303
  0289  GETTABLE  R9 = R8[K45('weight')]
  0290  LT        if R0 lt R9   -> 13101
  0291  JMP       (jump)   -> 303
  0292  GETTABUP  R9 = _ENV[K6('table')]
  0293  GETTABLE  R9 = R9[K28('insert')]
  0294  MOVE      R10 = R0
  0295  NEWTABLE  R11 = {} (0 items)
  0296  SETTABLE  R11[K46('chainId')] = R7
  0297  SELF      R13 = R0[K44('GetChainConfig')] (self)
  0298  MOVE      R14 = R0
  0299  CALL      R12 = call(R12, 1 args, 2 rets)
  0300  GETTABLE  R12 = R12[K45('weight')]
  0301  SETTABLE  R11[K47('Weight')] = R12
  0302  CALL      R9 = call(R9, 0 args, 2 rets)
  0303  TFORCALL  tforcall R4
  0304  TFORLOOP  tforloop R6(sBx=-21)   -> 284
  0305  GETTABUP  R4 = _ENV[K8('Table')]
  0306  GETTABLE  R4 = R4[K48('ListWeightSelectOne')]
  0307  MOVE      R5 = R0
  0308  CALL      R4 = call(R4, 1 args, 1 rets)
  0309  GETTABLE  R4 = R4[K46('chainId')]
  0310  NEWTABLE  R5 = {} (0 items)
  0311  GETTABUP  R6 = _ENV[K13('ipairs')]
  0312  MOVE      R7 = R0
  0313  CALL      R6 = call(R6, 3 args, 1 rets)
  0314  JMP       (jump)   -> 335
  0315  GETTABUP  R11 = _ENV[K6('table')]
  0316  GETTABLE  R11 = R11[K28('insert')]
  0317  MOVE      R12 = R0
  0318  GETTABUP  R13 = _ENV[K3('string')]
  0319  GETTABLE  R13 = R13[K4('format')]
  0320  GETTABUP  R14 = _ENV[K37('StringUtil')]
  0321  GETTABLE  R14 = R14[K38('MakeColorFormat')]
  0322  LOADK     R15 = K39 '%s-%d'
  0323  GETTABLE  R16 = R10[K46('chainId')]
  0324  EQ        if R0 eq R4   -> -122550
  0325  JMP       (jump)   -> 328
  0326  LOADK     R16 = K40 'FFA000'
  0327  JMP       (jump)   -> 330
  0328  LOADBOOL  R16 = false
  0329  LOADBOOL  R16 = true
  0330  CALL      R14 = call(R14, 1 args, 2 rets)
  0331  GETTABLE  R15 = R10[K46('chainId')]
  0332  GETTABLE  R16 = R10[K47('Weight')]
  0333  CALL      R13 = call(R13, -1 args, 3 rets)
  0334  CALL      R11 = call(R11, 0 args, -1 rets)
  0335  TFORCALL  tforcall R6
  0336  TFORLOOP  tforloop R8(sBx=-22)   -> 315
  0337  GETTABUP  R6 = _ENV[K1('Log')]
  0338  GETTABLE  R6 = R6[K2('Info')]
  0339  GETTABUP  R7 = _ENV[K3('string')]
  0340  GETTABLE  R7 = R7[K4('format')]
  0341  LOADK     R8 = K49 '[幸运喷发] 当前抽取母棋子权重及结果：%s'
  0342  GETTABUP  R9 = _ENV[K6('table')]
  0343  GETTABLE  R9 = R9[K7('concat')]
  0344  MOVE      R10 = R0
  0345  LOADK     R11 = K10 '; '
  0346  CALL      R9 = call(R9, -1 args, 2 rets)
  0347  CALL      R7 = call(R7, -1 args, -1 rets)
  0348  CALL      R6 = call(R6, 0 args, -1 rets)
  0349  RETURN    return R4..R3
  0350  RETURN    return R0..R-1
; ---------- proto108 [GetMapPdChainShowItemCode] ----------
  ; fn ?  line 1037-1054 np=1 va=0 ms=19 code=32 consts=8 upvals=1 protos=0
  ;   K[0]='GetMainPdChainInfo'
  ;   K[1]='pairs'
  ;   K[2]='ipairs'
  ;   K[3]='GetType'
  ;   K[4]='GM'
  ;   K[5]='ItemDataModel'
  ;   K[6]='GetChainLevel'
  ;   K[7]=nil
  ;   upvals: _ENV
  ;   locals: self(0-32), mapPdChain(2-32), mapPdChainShowItemCode(3-32), (for generator)(6-30), (for state)(6-30), (for control)(6-30), chainId(7-28), arrItemModel(7-28), bestItemCode(8-28), highestLevel(8-28), (for generator)(11-27), (for state)(11-27), (for control)(11-27), _(12-25), itemModel(12-25), itemCode(14-25), chainLevel(19-25)
  0000  SELF      R2 = R0[K0('GetMainPdChainInfo')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  NEWTABLE  R2 = {} (0 items)
  0003  GETTABUP  R3 = _ENV[K1('pairs')]
  0004  MOVE      R4 = R0
  0005  CALL      R3 = call(R3, 3 args, 1 rets)
  0006  JMP       (jump)   -> 28
  0007  LOADNIL   R8..R8 = nil
  0008  GETTABUP  R10 = _ENV[K2('ipairs')]
  0009  MOVE      R11 = R0
  0010  CALL      R10 = call(R10, 3 args, 1 rets)
  0011  JMP       (jump)   -> 25
  0012  SELF      R16 = R14[K3('GetType')] (self)
  0013  CALL      R15 = call(R15, 1 args, 1 rets)
  0014  GETTABUP  R16 = _ENV[K4('GM')]
  0015  GETTABLE  R16 = R16[K5('ItemDataModel')]
  0016  SELF      R17 = R16[K6('GetChainLevel')] (self)
  0017  MOVE      R18 = R0
  0018  CALL      R16 = call(R16, 1 args, 2 rets)
  0019  EQ        if R1 eq K7(nil)   -> -126692
  0020  JMP       (jump)   -> 23
  0021  LT        if R0 lt R16   -> -126425
  0022  JMP       (jump)   -> 25
  0023  MOVE      R8 = R0
  0024  MOVE      R9 = R0
  0025  TFORCALL  tforcall R10
  0026  TFORLOOP  tforloop R12(sBx=-15)   -> 12
  0027  SETTABLE  R2[R6] = R8
  0028  TFORCALL  tforcall R3
  0029  TFORLOOP  tforloop R5(sBx=-23)   -> 7
  0030  RETURN    return R2..R1
  0031  RETURN    return R0..R-1
; ---------- proto109 [PreviewSpinResult] ----------
  ; fn ?  line 1057-1072 np=2 va=0 ms=11 code=29 consts=7 upvals=1 protos=0
  ;   K[0]='GetRemainMainPdChainForSpin'
  ;   K[1]='pairs'
  ;   K[2]='table'
  ;   K[3]='insert'
  ;   K[4]='Table'
  ;   K[5]='Shuffle'
  ;   K[6]=nil
  ;   upvals: _ENV
  ;   locals: self(0-29), selectedChainId(0-29), mapPdChain(2-29), arrChainId(3-29), (for generator)(6-16), (for state)(6-16), (for control)(6-16), chainId(7-14)
  0000  SELF      R3 = R0[K0('GetRemainMainPdChainForSpin')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  NEWTABLE  R3 = {} (0 items)
  0003  GETTABUP  R4 = _ENV[K1('pairs')]
  0004  MOVE      R5 = R0
  0005  CALL      R4 = call(R4, 3 args, 1 rets)
  0006  JMP       (jump)   -> 14
  0007  EQ        if R1 eq R1   -> -127478
  0008  JMP       (jump)   -> 14
  0009  GETTABUP  R8 = _ENV[K2('table')]
  0010  GETTABLE  R8 = R8[K3('insert')]
  0011  MOVE      R9 = R0
  0012  MOVE      R10 = R0
  0013  CALL      R8 = call(R8, 0 args, 2 rets)
  0014  TFORCALL  tforcall R4
  0015  TFORLOOP  tforloop R6(sBx=-9)   -> 7
  0016  GETTABUP  R4 = _ENV[K4('Table')]
  0017  GETTABLE  R4 = R4[K5('Shuffle')]
  0018  MOVE      R5 = R0
  0019  CALL      R4 = call(R4, 0 args, 1 rets)
  0020  EQ        if R1 eq K6(nil)   -> -130276
  0021  JMP       (jump)   -> 27
  0022  GETTABUP  R4 = _ENV[K2('table')]
  0023  GETTABLE  R4 = R4[K3('insert')]
  0024  MOVE      R5 = R0
  0025  MOVE      R6 = R0
  0026  CALL      R4 = call(R4, 0 args, 2 rets)
  0027  RETURN    return R3..R2
  0028  RETURN    return R0..R-1
; ---------- proto110 [UpdateNextPosition] ----------
  ; fn ?  line 1075-1087 np=2 va=0 ms=9 code=26 consts=6 upvals=0 protos=0
  ;   K[0]='HasNextPosition'
  ;   K[1]=1
  ;   K[2]='GetTotalStage'
  ;   K[3]='IsPdChainTriggeredByPosition'
  ;   K[4]='SetNextPosition'
  ;   K[5]=0
  ;   locals: self(0-26), bForce(0-26), (for index)(11-22), (for limit)(11-22), (for step)(11-22), position(12-21)
  0000  SELF      R3 = R0[K0('HasNextPosition')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131068
  0003  JMP       (jump)   -> 7
  0004  TEST      if not R1 then   -> -131065
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  LOADK     R2 = K1 1
  0008  SELF      R4 = R0[K2('GetTotalStage')] (self)
  0009  CALL      R3 = call(R3, 1 args, 1 rets)
  0010  LOADK     R4 = K1 1
  0011  FORPREP   forprep R2(sBx=9)   -> 21
  0012  SELF      R7 = R0[K3('IsPdChainTriggeredByPosition')] (self)
  0013  MOVE      R8 = R0
  0014  CALL      R6 = call(R6, 1 args, 2 rets)
  0015  TEST      if not R6 then   -> -131054
  0016  JMP       (jump)   -> 21
  0017  SELF      R7 = R0[K4('SetNextPosition')] (self)
  0018  MOVE      R8 = R0
  0019  CALL      R6 = call(R6, 0 args, 2 rets)
  0020  RETURN    return R0..R-1
  0021  FORLOOP   forloop R2(sBx=-10)   -> 12
  0022  SELF      R3 = R0[K4('SetNextPosition')] (self)
  0023  LOADK     R4 = K5 0
  0024  CALL      R2 = call(R2, 0 args, 2 rets)
  0025  RETURN    return R0..R-1
; ---------- proto111 [TriggerPdChain] ----------
  ; fn ?  line 1091-1136 np=2 va=0 ms=15 code=95 consts=32 upvals=1 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='IsTriggered'
  ;   K[2]='CanSpin'
  ;   K[3]='HasTimeLimit'
  ;   K[4]='GetRemainValidMainPdChainForSpin'
  ;   K[5]='GetNextPositionByMode'
  ;   K[6]='SetTriggerCurrentStage'
  ;   K[7]='GetTriggerCurrentStage'
  ;   K[8]=1
  ;   K[9]='SetEnergyConsumed'
  ;   K[10]=0
  ;   K[11]='SetLastEnergyConsumed'
  ;   K[12]='SetPdChainTriggered'
  ;   K[13]='SetPdChainEnergyConsumed'
  ;   K[14]='_RandomSetNextPdChainEnergyRequired'
  ;   K[15]='UpdateNextPosition'
  ;   K[16]='GM'
  ;   K[17]='GameModel'
  ;   K[18]='GetServerTime'
  ;   K[19]='GetRoundTimeByStage'
  ;   K[20]='SetPdChainTriggerEndTime'
  ;   K[21]='math'
  ;   K[22]='min'
  ;   K[23]='GetTriggerEndTime'
  ;   K[24]='_LogSpin'
  ;   K[25]='ipairs'
  ;   K[26]='SetHideSpreadEffect'
  ;   K[27]='GetComponent'
  ;   K[28]='ItemSpread'
  ;   K[29]='PauseViewUpdateState'
  ;   K[30]='_DispatchRefreshEntryEvent'
  ;   K[31]='_DispatchSelectPdChainEvent'
  ;   upvals: _ENV
  ;   locals: self(0-95), selectedChainId(0-95), bHasTimeLimit(20-95), mapPdChain(22-95), position(24-95), triggerEndTime(61-70), arrItemModel(74-95), (for generator)(77-89), (for state)(77-89), (for control)(77-89), _(78-87), itemModel(78-87), itemSpread(85-87)
  0000  SELF      R3 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADNIL   R2..R2 = nil
  0005  RETURN    return R2..R1
  0006  SELF      R3 = R0[K1('IsTriggered')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  TEST      if not R2 then   -> -131061
  0009  JMP       (jump)   -> 12
  0010  LOADNIL   R2..R2 = nil
  0011  RETURN    return R2..R1
  0012  SELF      R3 = R0[K2('CanSpin')] (self)
  0013  CALL      R2 = call(R2, 1 args, 1 rets)
  0014  TEST      if not R2 then   -> -131055
  0015  JMP       (jump)   -> 18
  0016  LOADNIL   R2..R2 = nil
  0017  RETURN    return R2..R1
  0018  SELF      R3 = R0[K3('HasTimeLimit')] (self)
  0019  CALL      R2 = call(R2, 1 args, 1 rets)
  0020  SELF      R4 = R0[K4('GetRemainValidMainPdChainForSpin')] (self)
  0021  CALL      R3 = call(R3, 1 args, 1 rets)
  0022  SELF      R5 = R0[K5('GetNextPositionByMode')] (self)
  0023  CALL      R4 = call(R4, 1 args, 1 rets)
  0024  SELF      R6 = R0[K6('SetTriggerCurrentStage')] (self)
  0025  SELF      R8 = R0[K7('GetTriggerCurrentStage')] (self)
  0026  CALL      R7 = call(R7, 1 args, 1 rets)
  0027  ADD       R7 = K8(1) add R7
  0028  CALL      R5 = call(R5, 0 args, 2 rets)
  0029  SELF      R6 = R0[K9('SetEnergyConsumed')] (self)
  0030  LOADK     R7 = K10 0
  0031  CALL      R5 = call(R5, 0 args, 2 rets)
  0032  SELF      R6 = R0[K11('SetLastEnergyConsumed')] (self)
  0033  LOADK     R7 = K10 0
  0034  CALL      R5 = call(R5, 0 args, 2 rets)
  0035  SELF      R6 = R0[K12('SetPdChainTriggered')] (self)
  0036  MOVE      R7 = R0
  0037  MOVE      R8 = R0
  0038  LOADBOOL  R9 = true
  0039  CALL      R5 = call(R5, 0 args, 4 rets)
  0040  SELF      R6 = R0[K13('SetPdChainEnergyConsumed')] (self)
  0041  MOVE      R7 = R0
  0042  LOADK     R8 = K10 0
  0043  CALL      R5 = call(R5, 0 args, 3 rets)
  0044  SELF      R6 = R0[K14('_RandomSetNextPdChainEnergyRequired')] (self)
  0045  MOVE      R7 = R0
  0046  CALL      R5 = call(R5, 0 args, 2 rets)
  0047  TEST      if not R2 then   -> -131023
  0048  JMP       (jump)   -> 70
  0049  SELF      R6 = R0[K15('UpdateNextPosition')] (self)
  0050  LOADBOOL  R7 = true
  0051  CALL      R5 = call(R5, 0 args, 2 rets)
  0052  GETTABUP  R5 = _ENV[K16('GM')]
  0053  GETTABLE  R5 = R5[K17('GameModel')]
  0054  SELF      R6 = R5[K18('GetServerTime')] (self)
  0055  CALL      R5 = call(R5, 1 args, 1 rets)
  0056  SELF      R7 = R0[K19('GetRoundTimeByStage')] (self)
  0057  SELF      R9 = R0[K7('GetTriggerCurrentStage')] (self)
  0058  CALL      R8 = call(R8, -1 args, 1 rets)
  0059  CALL      R6 = call(R6, 1 args, -1 rets)
  0060  ADD       R5 = R6 add R5
  0061  SELF      R7 = R0[K20('SetPdChainTriggerEndTime')] (self)
  0062  MOVE      R8 = R0
  0063  GETTABUP  R9 = _ENV[K21('math')]
  0064  GETTABLE  R9 = R9[K22('min')]
  0065  MOVE      R10 = R0
  0066  SELF      R12 = R0[K23('GetTriggerEndTime')] (self)
  0067  CALL      R11 = call(R11, -1 args, 1 rets)
  0068  CALL      R9 = call(R9, -1 args, -1 rets)
  0069  CALL      R6 = call(R6, 0 args, -1 rets)
  0070  SELF      R6 = R0[K24('_LogSpin')] (self)
  0071  MOVE      R7 = R0
  0072  CALL      R5 = call(R5, 0 args, 2 rets)
  0073  GETTABLE  R5 = R3[R1]
  0074  GETTABUP  R6 = _ENV[K25('ipairs')]
  0075  MOVE      R7 = R0
  0076  CALL      R6 = call(R6, 3 args, 1 rets)
  0077  JMP       (jump)   -> 87
  0078  SELF      R12 = R0[K26('SetHideSpreadEffect')] (self)
  0079  MOVE      R13 = R0
  0080  LOADBOOL  R14 = true
  0081  CALL      R11 = call(R11, 0 args, 3 rets)
  0082  SELF      R12 = R10[K27('GetComponent')] (self)
  0083  GETTABUP  R13 = _ENV[K28('ItemSpread')]
  0084  CALL      R11 = call(R11, 1 args, 2 rets)
  0085  SELF      R13 = R11[K29('PauseViewUpdateState')] (self)
  0086  CALL      R12 = call(R12, 0 args, 1 rets)
  0087  TFORCALL  tforcall R6
  0088  TFORLOOP  tforloop R8(sBx=-11)   -> 78
  0089  SELF      R7 = R0[K30('_DispatchRefreshEntryEvent')] (self)
  0090  CALL      R6 = call(R6, 0 args, 1 rets)
  0091  SELF      R7 = R0[K31('_DispatchSelectPdChainEvent')] (self)
  0092  CALL      R6 = call(R6, 0 args, 1 rets)
  0093  RETURN    return R5..R4
  0094  RETURN    return R0..R-1
; ---------- proto112 [OnSpreadTriggerEffectHit] ----------
  ; fn ?  line 1138-1140 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchRefreshSpreadEffectEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchRefreshSpreadEffectEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto113 [IsItemSpreadHasNoCooldown] ----------
  ; fn ?  line 1148-1155 np=2 va=0 ms=7 code=18 consts=6 upvals=1 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='GetType'
  ;   K[2]='GM'
  ;   K[3]='ItemDataModel'
  ;   K[4]='GetChainId'
  ;   K[5]='IsPdChainTriggered'
  ;   upvals: _ENV
  ;   locals: self(0-18), itemModel(0-18), itemCode(8-18), chainId(13-18)
  0000  SELF      R3 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADBOOL  R2 = false
  0005  RETURN    return R2..R1
  0006  SELF      R3 = R1[K1('GetType')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  GETTABUP  R3 = _ENV[K2('GM')]
  0009  GETTABLE  R3 = R3[K3('ItemDataModel')]
  0010  SELF      R4 = R3[K4('GetChainId')] (self)
  0011  MOVE      R5 = R0
  0012  CALL      R3 = call(R3, 1 args, 2 rets)
  0013  SELF      R5 = R0[K5('IsPdChainTriggered')] (self)
  0014  MOVE      R6 = R0
  0015  TAILCALL  tailcall(R4, 0)
  0016  RETURN    return R4..R3
  0017  RETURN    return R0..R-1
; ---------- proto114 [GetItemSpreadReplace] ----------
  ; fn ?  line 1160-1191 np=2 va=0 ms=19 code=96 consts=32 upvals=1 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='GetType'
  ;   K[2]='GM'
  ;   K[3]='ItemDataModel'
  ;   K[4]='GetChainId'
  ;   K[5]='IsPdChainTriggered'
  ;   K[6]='GameConfig'
  ;   K[7]='IsTestMode'
  ;   K[8]='m_testSpreadNext'
  ;   K[9]=nil
  ;   K[10]='Log'
  ;   K[11]='Info'
  ;   K[12]='[幸运喷发] 测试功能：强制触发幸运喷发'
  ;   K[13]='GetPdChainEnergyConsumed'
  ;   K[14]='GetPdChainEnergyRequired'
  ;   K[15]='_GetFilteredSpreadWeightInfo'
  ;   K[16]='Table'
  ;   K[17]='ListWeightSelectOne'
  ;   K[18]='Item'
  ;   K[19]='ipairs'
  ;   K[20]='table'
  ;   K[21]='insert'
  ;   K[22]='string'
  ;   K[23]='format'
  ;   K[24]='StringUtil'
  ;   K[25]='MakeColorFormat'
  ;   K[26]='%s-%d'
  ;   K[27]='FFA000'
  ;   K[28]='Weight'
  ;   K[29]='[幸运喷发] 当前喷发权重：%s'
  ;   K[30]='concat'
  ;   K[31]='; '
  ;   upvals: _ENV
  ;   locals: self(0-96), itemModel(0-96), itemCode(8-96), chainId(13-96), bIgnoreEnergyRequried(21-96), spreadWeightInfo(50-96), spreadItem(55-96), logSpreadWeightInfo(56-96), (for generator)(59-82), (for state)(59-82), (for control)(59-82), _(60-80), weightInfo(60-80)
  0000  SELF      R3 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADNIL   R2..R2 = nil
  0005  RETURN    return R2..R1
  0006  SELF      R3 = R1[K1('GetType')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  GETTABUP  R3 = _ENV[K2('GM')]
  0009  GETTABLE  R3 = R3[K3('ItemDataModel')]
  0010  SELF      R4 = R3[K4('GetChainId')] (self)
  0011  MOVE      R5 = R0
  0012  CALL      R3 = call(R3, 1 args, 2 rets)
  0013  SELF      R5 = R0[K5('IsPdChainTriggered')] (self)
  0014  MOVE      R6 = R0
  0015  CALL      R4 = call(R4, 1 args, 2 rets)
  0016  TEST      if not R4 then   -> -131053
  0017  JMP       (jump)   -> 20
  0018  LOADNIL   R4..R4 = nil
  0019  RETURN    return R4..R3
  0020  LOADBOOL  R4 = false
  0021  GETTABUP  R5 = _ENV[K6('GameConfig')]
  0022  GETTABLE  R5 = R5[K7('IsTestMode')]
  0023  CALL      R5 = call(R5, 1 args, 0 rets)
  0024  TEST      if not R5 then   -> -131046
  0025  JMP       (jump)   -> 35
  0026  GETTABLE  R5 = R0[K8('m_testSpreadNext')]
  0027  TEST      if not R5 then   -> -131043
  0028  JMP       (jump)   -> 35
  0029  LOADBOOL  R4 = true
  0030  SETTABLE  R0[K8('m_testSpreadNext')] = K9(nil)
  0031  GETTABUP  R5 = _ENV[K10('Log')]
  0032  GETTABLE  R5 = R5[K11('Info')]
  0033  LOADK     R6 = K12 '[幸运喷发] 测试功能：强制触发幸运喷发'
  0034  CALL      R5 = call(R5, 0 args, 1 rets)
  0035  TEST      if not R4 then   -> -131034
  0036  JMP       (jump)   -> 47
  0037  SELF      R6 = R0[K13('GetPdChainEnergyConsumed')] (self)
  0038  MOVE      R7 = R0
  0039  CALL      R5 = call(R5, 1 args, 2 rets)
  0040  SELF      R7 = R0[K14('GetPdChainEnergyRequired')] (self)
  0041  MOVE      R8 = R0
  0042  CALL      R6 = call(R6, 1 args, 2 rets)
  0043  LT        if R0 lt R6   -> -128461
  0044  JMP       (jump)   -> 47
  0045  LOADNIL   R5..R5 = nil
  0046  RETURN    return R5..R4
  0047  SELF      R6 = R0[K15('_GetFilteredSpreadWeightInfo')] (self)
  0048  MOVE      R7 = R0
  0049  CALL      R5 = call(R5, 1 args, 2 rets)
  0050  GETTABUP  R6 = _ENV[K16('Table')]
  0051  GETTABLE  R6 = R6[K17('ListWeightSelectOne')]
  0052  MOVE      R7 = R0
  0053  CALL      R6 = call(R6, 1 args, 1 rets)
  0054  GETTABLE  R6 = R6[K18('Item')]
  0055  NEWTABLE  R7 = {} (0 items)
  0056  GETTABUP  R8 = _ENV[K19('ipairs')]
  0057  MOVE      R9 = R0
  0058  CALL      R8 = call(R8, 3 args, 1 rets)
  0059  JMP       (jump)   -> 80
  0060  GETTABUP  R13 = _ENV[K20('table')]
  0061  GETTABLE  R13 = R13[K21('insert')]
  0062  MOVE      R14 = R0
  0063  GETTABUP  R15 = _ENV[K22('string')]
  0064  GETTABLE  R15 = R15[K23('format')]
  0065  GETTABUP  R16 = _ENV[K24('StringUtil')]
  0066  GETTABLE  R16 = R16[K25('MakeColorFormat')]
  0067  LOADK     R17 = K26 '%s-%d'
  0068  GETTABLE  R18 = R12[K18('Item')]
  0069  EQ        if R0 eq R18   -> -127911
  0070  JMP       (jump)   -> 73
  0071  LOADK     R18 = K27 'FFA000'
  0072  JMP       (jump)   -> 75
  0073  LOADBOOL  R18 = false
  0074  LOADBOOL  R18 = true
  0075  CALL      R16 = call(R16, 1 args, 2 rets)
  0076  GETTABLE  R17 = R12[K18('Item')]
  0077  GETTABLE  R18 = R12[K28('Weight')]
  0078  CALL      R15 = call(R15, -1 args, 3 rets)
  0079  CALL      R13 = call(R13, 0 args, -1 rets)
  0080  TFORCALL  tforcall R8
  0081  TFORLOOP  tforloop R10(sBx=-22)   -> 60
  0082  GETTABUP  R8 = _ENV[K10('Log')]
  0083  GETTABLE  R8 = R8[K11('Info')]
  0084  GETTABUP  R9 = _ENV[K22('string')]
  0085  GETTABLE  R9 = R9[K23('format')]
  0086  LOADK     R10 = K29 '[幸运喷发] 当前喷发权重：%s'
  0087  GETTABUP  R11 = _ENV[K20('table')]
  0088  GETTABLE  R11 = R11[K30('concat')]
  0089  MOVE      R12 = R0
  0090  LOADK     R13 = K31 '; '
  0091  CALL      R11 = call(R11, -1 args, 2 rets)
  0092  CALL      R9 = call(R9, -1 args, -1 rets)
  0093  CALL      R8 = call(R8, 0 args, -1 rets)
  0094  RETURN    return R6..R5
  0095  RETURN    return R0..R-1
; ---------- proto115 [_GetFilteredSpreadWeightInfo] ----------
  ; fn ?  line 1194-1288 np=2 va=0 ms=25 code=188 consts=35 upvals=1 protos=3
  ;   K[0]='GetSpreadWeightInfo'
  ;   K[1]='GM'
  ;   K[2]='MainBoardModel'
  ;   K[3]='ipairs'
  ;   K[4]='ItemRandomHelper'
  ;   K[5]='GetCandidateOrdersByWave'
  ;   K[6]='GetUnfilledOrderRequirements'
  ;   K[7]='_FormatTmpOrderByCombineOrders'
  ;   K[8]='Table'
  ;   K[9]='IsEmpty'
  ;   K[10]='pairs'
  ;   K[11]='ItemDataModel'
  ;   K[12]='IsDishes'
  ;   K[13]='table'
  ;   K[14]='insert'
  ;   K[15]='string'
  ;   K[16]='format'
  ;   K[17]='%s-%d'
  ;   K[18]='sort'
  ;   K[19]='GetId'
  ;   K[20]='Log'
  ;   K[21]='Info'
  ;   K[22]='[幸运喷发] 按照订单喷发\n当前缺少棋子：%s\n考虑订单：%s'
  ;   K[23]='concat'
  ;   K[24]='; '
  ;   K[25]=', '
  ;   K[26]='GetChainScoreInfo'
  ;   K[27]='%s-%f'
  ;   K[28]='[幸运喷发] 平衡合成线分数情况：%s'
  ;   K[29]=nil
  ;   K[30]=0
  ;   K[31]=1
  ;   K[32]='GetMapSize'
  ;   K[33]='[幸运喷发] 平衡合成线棋子'
  ;   K[34]='[幸运喷发] 按照配置模板随机'
  ;   upvals: _ENV
  ;   locals: self(0-188), chainId(0-188), spreadWeightInfo(3-188), boardModel(5-188), filterWeightInfo(6-188), (for generator)(12-92), (for state)(12-92), (for control)(12-92), _(13-90), arrOrders(13-90), directResult(20-90), filterByUnfilled(21-90), currentWeightInfo(24-90), logUnfilledDirectResult(31-89), (for generator)(34-54), (for state)(34-54), (for control)(34-54), code(35-52), count(35-52), logOrder(59-89), (for generator)(62-71), (for state)(62-71), (for control)(62-71), _(63-69), order(63-69), scoreInfo(96-179), logScoreInfo(103-178), (for generator)(106-119), (for state)(106-119), (for control)(106-119), itemChainId(107-117), score(107-117), minScore(132-178), (for generator)(135-143), (for state)(135-143), (for control)(135-143), itemChainId(136-141), score(136-141), minScoreCount(144-178), (for generator)(147-153), (for state)(147-153), (for control)(147-153), itemChainId(148-151), score(148-151), filterByChainScoreInfo(154-178), currentWeightInfo(157-178)
  0000  SELF      R3 = R0[K0('GetSpreadWeightInfo')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  GETTABUP  R3 = _ENV[K1('GM')]
  0004  GETTABLE  R3 = R3[K2('MainBoardModel')]
  0005  CLOSURE   R4 = closure proto0
  0006  GETTABUP  R5 = _ENV[K3('ipairs')]
  0007  GETTABUP  R6 = _ENV[K4('ItemRandomHelper')]
  0008  GETTABLE  R6 = R6[K5('GetCandidateOrdersByWave')]
  0009  MOVE      R7 = R0
  0010  CALL      R6 = call(R6, -1 args, 1 rets)
  0011  CALL      R5 = call(R5, 3 args, -1 rets)
  0012  JMP       (jump)   -> 90
  0013  SELF      R11 = R3[K6('GetUnfilledOrderRequirements')] (self)
  0014  LOADNIL   R12..R12 = nil
  0015  SELF      R14 = R0[K7('_FormatTmpOrderByCombineOrders')] (self)
  0016  MOVE      R15 = R0
  0017  LEN       R16 = len R0
  0018  CALL      R13 = call(R13, -1 args, 3 rets)
  0019  CALL      R10 = call(R10, 1 args, -1 rets)
  0020  CLOSURE   R11 = closure proto1
  0021  MOVE      R12 = R0
  0022  MOVE      R13 = R0
  0023  CALL      R12 = call(R12, 1 args, 1 rets)
  0024  GETTABUP  R13 = _ENV[K8('Table')]
  0025  GETTABLE  R13 = R13[K9('IsEmpty')]
  0026  MOVE      R14 = R0
  0027  CALL      R13 = call(R13, 1 args, 1 rets)
  0028  TEST      if not R13 then   -> -131041
  0029  JMP       (jump)   -> 90
  0030  NEWTABLE  R13 = {} (0 items)
  0031  GETTABUP  R14 = _ENV[K10('pairs')]
  0032  MOVE      R15 = R0
  0033  CALL      R14 = call(R14, 3 args, 1 rets)
  0034  JMP       (jump)   -> 52
  0035  GETTABUP  R19 = _ENV[K1('GM')]
  0036  GETTABLE  R19 = R19[K11('ItemDataModel')]
  0037  SELF      R20 = R19[K12('IsDishes')] (self)
  0038  MOVE      R21 = R0
  0039  CALL      R19 = call(R19, 1 args, 2 rets)
  0040  TEST      if not R19 then   -> -131029
  0041  JMP       (jump)   -> 52
  0042  GETTABUP  R19 = _ENV[K13('table')]
  0043  GETTABLE  R19 = R19[K14('insert')]
  0044  MOVE      R20 = R0
  0045  GETTABUP  R21 = _ENV[K15('string')]
  0046  GETTABLE  R21 = R21[K16('format')]
  0047  LOADK     R22 = K17 '%s-%d'
  0048  MOVE      R23 = R0
  0049  MOVE      R24 = R0
  0050  CALL      R21 = call(R21, -1 args, 3 rets)
  0051  CALL      R19 = call(R19, 0 args, -1 rets)
  0052  TFORCALL  tforcall R14
  0053  TFORLOOP  tforloop R16(sBx=-19)   -> 35
  0054  GETTABUP  R14 = _ENV[K13('table')]
  0055  GETTABLE  R14 = R14[K18('sort')]
  0056  MOVE      R15 = R0
  0057  CALL      R14 = call(R14, 0 args, 1 rets)
  0058  NEWTABLE  R14 = {} (0 items)
  0059  GETTABUP  R15 = _ENV[K3('ipairs')]
  0060  MOVE      R16 = R0
  0061  CALL      R15 = call(R15, 3 args, 1 rets)
  0062  JMP       (jump)   -> 69
  0063  GETTABUP  R20 = _ENV[K13('table')]
  0064  GETTABLE  R20 = R20[K14('insert')]
  0065  MOVE      R21 = R0
  0066  SELF      R23 = R19[K19('GetId')] (self)
  0067  CALL      R22 = call(R22, -1 args, 1 rets)
  0068  CALL      R20 = call(R20, 0 args, -1 rets)
  0069  TFORCALL  tforcall R15
  0070  TFORLOOP  tforloop R17(sBx=-8)   -> 63
  0071  GETTABUP  R15 = _ENV[K20('Log')]
  0072  GETTABLE  R15 = R15[K21('Info')]
  0073  GETTABUP  R16 = _ENV[K15('string')]
  0074  GETTABLE  R16 = R16[K16('format')]
  0075  LOADK     R17 = K22 '[幸运喷发] 按照订单喷发\n当前缺少棋子：%s\n考虑订单：%s'
  0076  GETTABUP  R18 = _ENV[K13('table')]
  0077  GETTABLE  R18 = R18[K23('concat')]
  0078  MOVE      R19 = R0
  0079  LOADK     R20 = K24 '; '
  0080  CALL      R18 = call(R18, 1 args, 2 rets)
  0081  GETTABUP  R19 = _ENV[K13('table')]
  0082  GETTABLE  R19 = R19[K23('concat')]
  0083  MOVE      R20 = R0
  0084  LOADK     R21 = K25 ', '
  0085  CALL      R19 = call(R19, -1 args, 2 rets)
  0086  CALL      R16 = call(R16, -1 args, -1 rets)
  0087  CALL      R15 = call(R15, 0 args, -1 rets)
  0088  RETURN    return R12..R11
  0089  JMP       (jump)   -> 90
  0090  TFORCALL  tforcall R5
  0091  TFORLOOP  tforloop R7(sBx=-79)   -> 13
  0092  GETTABUP  R5 = _ENV[K4('ItemRandomHelper')]
  0093  GETTABLE  R5 = R5[K26('GetChainScoreInfo')]
  0094  MOVE      R6 = R0
  0095  CALL      R5 = call(R5, 1 args, 1 rets)
  0096  GETTABUP  R6 = _ENV[K8('Table')]
  0097  GETTABLE  R6 = R6[K9('IsEmpty')]
  0098  GETTABLE  R7 = R5[R1]
  0099  CALL      R6 = call(R6, 1 args, 1 rets)
  0100  TEST      if not R6 then   -> -130969
  0101  JMP       (jump)   -> 179
  0102  NEWTABLE  R6 = {} (0 items)
  0103  GETTABUP  R7 = _ENV[K10('pairs')]
  0104  GETTABLE  R8 = R5[R1]
  0105  CALL      R7 = call(R7, 3 args, 1 rets)
  0106  JMP       (jump)   -> 117
  0107  GETTABUP  R12 = _ENV[K13('table')]
  0108  GETTABLE  R12 = R12[K14('insert')]
  0109  MOVE      R13 = R0
  0110  GETTABUP  R14 = _ENV[K15('string')]
  0111  GETTABLE  R14 = R14[K16('format')]
  0112  LOADK     R15 = K27 '%s-%f'
  0113  MOVE      R16 = R0
  0114  MOVE      R17 = R0
  0115  CALL      R14 = call(R14, -1 args, 3 rets)
  0116  CALL      R12 = call(R12, 0 args, -1 rets)
  0117  TFORCALL  tforcall R7
  0118  TFORLOOP  tforloop R9(sBx=-12)   -> 107
  0119  GETTABUP  R7 = _ENV[K20('Log')]
  0120  GETTABLE  R7 = R7[K21('Info')]
  0121  GETTABUP  R8 = _ENV[K15('string')]
  0122  GETTABLE  R8 = R8[K16('format')]
  0123  LOADK     R9 = K28 '[幸运喷发] 平衡合成线分数情况：%s'
  0124  GETTABUP  R10 = _ENV[K13('table')]
  0125  GETTABLE  R10 = R10[K23('concat')]
  0126  MOVE      R11 = R0
  0127  LOADK     R12 = K24 '; '
  0128  CALL      R10 = call(R10, -1 args, 2 rets)
  0129  CALL      R8 = call(R8, -1 args, -1 rets)
  0130  CALL      R7 = call(R7, 0 args, -1 rets)
  0131  LOADNIL   R7..R7 = nil
  0132  GETTABUP  R8 = _ENV[K10('pairs')]
  0133  GETTABLE  R9 = R5[R1]
  0134  CALL      R8 = call(R8, 3 args, 1 rets)
  0135  JMP       (jump)   -> 141
  0136  EQ        if R1 eq K29(nil)   -> -127065
  0137  JMP       (jump)   -> 140
  0138  LT        if R0 lt R7   -> -124781
  0139  JMP       (jump)   -> 141
  0140  MOVE      R7 = R0
  0141  TFORCALL  tforcall R8
  0142  TFORLOOP  tforloop R10(sBx=-7)   -> 136
  0143  LOADK     R8 = K30 0
  0144  GETTABUP  R9 = _ENV[K10('pairs')]
  0145  GETTABLE  R10 = R5[R1]
  0146  CALL      R9 = call(R9, 3 args, 1 rets)
  0147  JMP       (jump)   -> 151
  0148  LE        if R0 le R7   -> -124259
  0149  JMP       (jump)   -> 151
  0150  ADD       R8 = K31(1) add R8
  0151  TFORCALL  tforcall R9
  0152  TFORLOOP  tforloop R11(sBx=-5)   -> 148
  0153  CLOSURE   R9 = closure proto2
  0154  MOVE      R10 = R0
  0155  MOVE      R11 = R0
  0156  CALL      R10 = call(R10, 1 args, 1 rets)
  0157  GETTABUP  R11 = _ENV[K8('Table')]
  0158  GETTABLE  R11 = R11[K32('GetMapSize')]
  0159  GETTABLE  R12 = R5[R1]
  0160  CALL      R11 = call(R11, 1 args, 1 rets)
  0161  LT        if R0 lt R11   -> -126802
  0162  JMP       (jump)   -> 179
  0163  GETTABUP  R11 = _ENV[K8('Table')]
  0164  GETTABLE  R11 = R11[K9('IsEmpty')]
  0165  MOVE      R12 = R0
  0166  CALL      R11 = call(R11, 1 args, 1 rets)
  0167  TEST      if not R11 then   -> -130902
  0168  JMP       (jump)   -> 179
  0169  GETTABUP  R11 = _ENV[K20('Log')]
  0170  GETTABLE  R11 = R11[K21('Info')]
  0171  GETTABUP  R12 = _ENV[K15('string')]
  0172  GETTABLE  R12 = R12[K16('format')]
  0173  LOADK     R13 = K33 '[幸运喷发] 平衡合成线棋子'
  0174  CALL      R12 = call(R12, -1 args, 1 rets)
  0175  CALL      R11 = call(R11, 0 args, -1 rets)
  0176  RETURN    return R10..R9
  0177  JMP       (jump)   -> 179
  0178  JMP       (jump)   -> 179
  0179  GETTABUP  R5 = _ENV[K20('Log')]
  0180  GETTABLE  R5 = R5[K21('Info')]
  0181  GETTABUP  R6 = _ENV[K15('string')]
  0182  GETTABLE  R6 = R6[K16('format')]
  0183  LOADK     R7 = K34 '[幸运喷发] 按照配置模板随机'
  0184  CALL      R6 = call(R6, -1 args, 1 rets)
  0185  CALL      R5 = call(R5, 0 args, -1 rets)
  0186  RETURN    return R2..R1
  0187  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 1201-1210 np=1 va=0 ms=10 code=19 consts=3 upvals=2 protos=0
    ;   K[0]='ipairs'
    ;   K[1]='table'
    ;   K[2]='insert'
    ;   upvals: _ENV, spreadWeightInfo
    ;   locals: filter(0-19), result(1-19), (for generator)(4-17), (for state)(4-17), (for control)(4-17), _(5-15), weightInfo(5-15)
    0000  NEWTABLE  R1 = {} (0 items)
    0001  GETTABUP  R2 = _ENV[K0('ipairs')]
    0002  GETUPVAL  R3 = _ENV
    0003  CALL      R2 = call(R2, 3 args, 1 rets)
    0004  JMP       (jump)   -> 15
    0005  MOVE      R7 = R0
    0006  MOVE      R8 = R0
    0007  CALL      R7 = call(R7, 1 args, 1 rets)
    0008  TEST      if not R7 then   -> -131062
    0009  JMP       (jump)   -> 15
    0010  GETTABUP  R7 = _ENV[K1('table')]
    0011  GETTABLE  R7 = R7[K2('insert')]
    0012  MOVE      R8 = R0
    0013  MOVE      R9 = R0
    0014  CALL      R7 = call(R7, 0 args, 2 rets)
    0015  TFORCALL  tforcall R2
    0016  TFORLOOP  tforloop R4(sBx=-12)   -> 5
    0017  RETURN    return R1..R0
    0018  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 1219-1226 np=1 va=0 ms=9 code=20 consts=5 upvals=2 protos=0
    ;   K[0]='pairs'
    ;   K[1]=0
    ;   K[2]='ItemFillHelper'
    ;   K[3]='CanConvertToTarget'
    ;   K[4]='Item'
    ;   upvals: _ENV, directResult
    ;   locals: weightInfo(0-20), (for generator)(3-17), (for state)(3-17), (for control)(3-17), itemCode(4-15), count(4-15)
    0000  GETTABUP  R1 = _ENV[K0('pairs')]
    0001  GETUPVAL  R2 = _ENV
    0002  CALL      R1 = call(R1, 3 args, 1 rets)
    0003  JMP       (jump)   -> 15
    0004  LT        if R0 lt R5   -> 523
    0005  JMP       (jump)   -> 15
    0006  GETTABUP  R6 = _ENV[K2('ItemFillHelper')]
    0007  GETTABLE  R6 = R6[K3('CanConvertToTarget')]
    0008  GETTABLE  R7 = R0[K4('Item')]
    0009  MOVE      R8 = R0
    0010  CALL      R6 = call(R6, 1 args, 2 rets)
    0011  TEST      if not R6 then   -> -131059
    0012  JMP       (jump)   -> 15
    0013  LOADBOOL  R6 = true
    0014  RETURN    return R6..R5
    0015  TFORCALL  tforcall R1
    0016  TFORLOOP  tforloop R3(sBx=-13)   -> 4
    0017  LOADBOOL  R1 = false
    0018  RETURN    return R1..R0
    0019  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 1271-1274 np=1 va=0 ms=5 code=17 consts=5 upvals=4 protos=0
    ;   K[0]='GM'
    ;   K[1]='ItemDataModel'
    ;   K[2]='GetChainId'
    ;   K[3]='Item'
    ;   K[4]=nil
    ;   upvals: scoreInfo, chainId, _ENV, minScore
    ;   locals: weightInfo(0-17), score(8-17)
    0000  GETUPVAL  R1 = scoreInfo
    0001  GETTABUP  R1 = scoreInfo[R1]
    0002  GETTABUP  R2 = _ENV[K0('GM')]
    0003  GETTABLE  R2 = R2[K1('ItemDataModel')]
    0004  SELF      R3 = R2[K2('GetChainId')] (self)
    0005  GETTABLE  R4 = R0[K3('Item')]
    0006  CALL      R2 = call(R2, 1 args, 2 rets)
    0007  GETTABLE  R1 = R1[R2]
    0008  EQ        if R1 eq K4(nil)   -> -130290
    0009  JMP       (jump)   -> 13
    0010  GETUPVAL  R2 = scoreInfo
    0011  LE        if R1 le R2   -> -130545
    0012  JMP       (jump)   -> 14
    0013  LOADBOOL  R2 = false
    0014  LOADBOOL  R2 = true
    0015  RETURN    return R2..R1
    0016  RETURN    return R0..R-1
; ---------- proto116 [_RandomSetNextPdChainEnergyRequired] ----------
  ; fn ?  line 1292-1297 np=2 va=0 ms=8 code=22 consts=11 upvals=1 protos=0
  ;   K[0]='MathUtil'
  ;   K[1]='Random'
  ;   K[2]=0
  ;   K[3]='GetPdChainEnergyPerRound'
  ;   K[4]=1
  ;   K[5]='SetPdChainEnergyRequired'
  ;   K[6]='Log'
  ;   K[7]='Info'
  ;   K[8]='string'
  ;   K[9]='format'
  ;   K[10]='[幸运喷发] 抽取母棋子体力目标，合成线：<color=#FFA000>%s</color>，体力目标：<color=#FFA000>%d</color>'
  ;   upvals: _ENV
  ;   locals: self(0-22), chainId(0-22), nextEnergyRequired(8-22)
  0000  GETTABUP  R2 = _ENV[K0('MathUtil')]
  0001  GETTABLE  R2 = R2[K1('Random')]
  0002  LOADK     R3 = K2 0
  0003  SELF      R5 = R0[K3('GetPdChainEnergyPerRound')] (self)
  0004  MOVE      R6 = R0
  0005  CALL      R4 = call(R4, 1 args, 2 rets)
  0006  SUB       R4 = K4(1) sub R4
  0007  CALL      R2 = call(R2, 1 args, 2 rets)
  0008  SELF      R4 = R0[K5('SetPdChainEnergyRequired')] (self)
  0009  MOVE      R5 = R0
  0010  MOVE      R6 = R0
  0011  CALL      R3 = call(R3, 0 args, 3 rets)
  0012  GETTABUP  R3 = _ENV[K6('Log')]
  0013  GETTABLE  R3 = R3[K7('Info')]
  0014  GETTABUP  R4 = _ENV[K8('string')]
  0015  GETTABLE  R4 = R4[K9('format')]
  0016  LOADK     R5 = K10 '[幸运喷发] 抽取母棋子体力目标，合成线：<color=#FFA000>%s</color>，体力目标：<color=#FFA000>%d</color>'
  0017  MOVE      R6 = R0
  0018  MOVE      R7 = R0
  0019  CALL      R4 = call(R4, -1 args, 3 rets)
  0020  CALL      R3 = call(R3, 0 args, -1 rets)
  0021  RETURN    return R0..R-1
; ---------- proto117 [OnItemSpreadReplace] ----------
  ; fn ?  line 1301-1313 np=2 va=0 ms=10 code=33 consts=13 upvals=1 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='GetType'
  ;   K[2]='GM'
  ;   K[3]='ItemDataModel'
  ;   K[4]='GetChainId'
  ;   K[5]='GetPdChainEnergyPerRound'
  ;   K[6]='_ChangePdChainEnergyConsumed'
  ;   K[7]='Log'
  ;   K[8]='Info'
  ;   K[9]='string'
  ;   K[10]='format'
  ;   K[11]='[幸运喷发] 重置体力进度，合成线：<color=#1976D2>%s</color>，体力进度：<color=#1976D2>-%d</color>'
  ;   K[12]='_RandomSetNextPdChainEnergyRequired'
  ;   upvals: _ENV
  ;   locals: self(0-33), itemModel(0-33), itemCode(8-33), chainId(13-33), energyPerRound(16-33)
  0000  SELF      R3 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131067
  0003  JMP       (jump)   -> 6
  0004  LOADNIL   R2..R2 = nil
  0005  RETURN    return R2..R1
  0006  SELF      R3 = R1[K1('GetType')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  GETTABUP  R3 = _ENV[K2('GM')]
  0009  GETTABLE  R3 = R3[K3('ItemDataModel')]
  0010  SELF      R4 = R3[K4('GetChainId')] (self)
  0011  MOVE      R5 = R0
  0012  CALL      R3 = call(R3, 1 args, 2 rets)
  0013  SELF      R5 = R0[K5('GetPdChainEnergyPerRound')] (self)
  0014  MOVE      R6 = R0
  0015  CALL      R4 = call(R4, 1 args, 2 rets)
  0016  SELF      R6 = R0[K6('_ChangePdChainEnergyConsumed')] (self)
  0017  MOVE      R7 = R0
  0018  UNM       R8 = unm R0
  0019  CALL      R5 = call(R5, 0 args, 3 rets)
  0020  GETTABUP  R5 = _ENV[K7('Log')]
  0021  GETTABLE  R5 = R5[K8('Info')]
  0022  GETTABUP  R6 = _ENV[K9('string')]
  0023  GETTABLE  R6 = R6[K10('format')]
  0024  LOADK     R7 = K11 '[幸运喷发] 重置体力进度，合成线：<color=#1976D2>%s</color>，体力进度：<color=#1976D2>-%d</color>'
  0025  MOVE      R8 = R0
  0026  MOVE      R9 = R0
  0027  CALL      R6 = call(R6, -1 args, 3 rets)
  0028  CALL      R5 = call(R5, 0 args, -1 rets)
  0029  SELF      R6 = R0[K12('_RandomSetNextPdChainEnergyRequired')] (self)
  0030  MOVE      R7 = R0
  0031  CALL      R5 = call(R5, 0 args, 2 rets)
  0032  RETURN    return R0..R-1
; ---------- proto118 [_TryAccumulatePdEnergy] ----------
  ; fn ?  line 1318-1327 np=3 va=0 ms=13 code=31 consts=12 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='ItemDataModel'
  ;   K[2]='GetChainId'
  ;   K[3]='IsPdChainTriggered'
  ;   K[4]='_ChangePdChainEnergyConsumed'
  ;   K[5]='Log'
  ;   K[6]='Info'
  ;   K[7]='string'
  ;   K[8]='format'
  ;   K[9]='[幸运喷发] 消耗 %d 体力，合成线：<color=#1976D2>%s</color>，体力进度：<color=#1976D2>%d</color> / %d'
  ;   K[10]='GetPdChainEnergyConsumed'
  ;   K[11]='GetPdChainEnergyRequired'
  ;   upvals: _ENV
  ;   locals: self(0-31), itemCode(0-31), energyCount(0-31), chainId(5-31)
  0000  GETTABUP  R3 = _ENV[K0('GM')]
  0001  GETTABLE  R3 = R3[K1('ItemDataModel')]
  0002  SELF      R4 = R3[K2('GetChainId')] (self)
  0003  MOVE      R5 = R0
  0004  CALL      R3 = call(R3, 1 args, 2 rets)
  0005  SELF      R5 = R0[K3('IsPdChainTriggered')] (self)
  0006  MOVE      R6 = R0
  0007  CALL      R4 = call(R4, 1 args, 2 rets)
  0008  TEST      if not R4 then   -> -131061
  0009  JMP       (jump)   -> 11
  0010  RETURN    return R0..R-1
  0011  SELF      R5 = R0[K4('_ChangePdChainEnergyConsumed')] (self)
  0012  MOVE      R6 = R0
  0013  MOVE      R7 = R0
  0014  CALL      R4 = call(R4, 0 args, 3 rets)
  0015  GETTABUP  R4 = _ENV[K5('Log')]
  0016  GETTABLE  R4 = R4[K6('Info')]
  0017  GETTABUP  R5 = _ENV[K7('string')]
  0018  GETTABLE  R5 = R5[K8('format')]
  0019  LOADK     R6 = K9 '[幸运喷发] 消耗 %d 体力，合成线：<color=#1976D2>%s</color>，体力进度：<color=#1976D2>%d</color> / %d'
  0020  MOVE      R7 = R0
  0021  MOVE      R8 = R0
  0022  SELF      R10 = R0[K10('GetPdChainEnergyConsumed')] (self)
  0023  MOVE      R11 = R0
  0024  CALL      R9 = call(R9, 1 args, 2 rets)
  0025  SELF      R11 = R0[K11('GetPdChainEnergyRequired')] (self)
  0026  MOVE      R12 = R0
  0027  CALL      R10 = call(R10, -1 args, 2 rets)
  0028  CALL      R5 = call(R5, -1 args, -1 rets)
  0029  CALL      R4 = call(R4, 0 args, -1 rets)
  0030  RETURN    return R0..R-1
; ---------- proto119 [GetItemSpreadTrailEffectConfig] ----------
  ; fn ?  line 1331-1336 np=1 va=0 ms=4 code=8 consts=5 upvals=0 protos=0
  ;   K[0]='effectPrefabName'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='ItemSpreadTrailEffectPrefabName'
  ;   K[3]='bCustomAnim'
  ;   K[4]=true
  ;   locals: self(0-8)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABLE  R2 = R2[K2('ItemSpreadTrailEffectPrefabName')]
  0004  SETTABLE  R1[K0('effectPrefabName')] = R2
  0005  SETTABLE  R1[K3('bCustomAnim')] = K4(true)
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto120 [TestFinishCurrentStage] ----------
  ; fn ?  line 1342-1349 np=1 va=0 ms=5 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='SetEnergyConsumed'
  ;   K[3]='GetNextStageEnergyRequired'
  ;   K[4]='_DispatchRefreshEnergyConsumedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-13)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('SetEnergyConsumed')] (self)
  0007  SELF      R4 = R0[K3('GetNextStageEnergyRequired')] (self)
  0008  CALL      R3 = call(R3, -1 args, 1 rets)
  0009  CALL      R1 = call(R1, 0 args, -1 rets)
  0010  SELF      R2 = R0[K4('_DispatchRefreshEnergyConsumedEvent')] (self)
  0011  CALL      R1 = call(R1, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto121 [TestSpreadNext] ----------
  ; fn ?  line 1351-1358 np=1 va=0 ms=3 code=12 consts=7 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='m_testSpreadNext'
  ;   K[3]=true
  ;   K[4]='Log'
  ;   K[5]='Info'
  ;   K[6]='[幸运喷发] 测试功能：下次强制幸运喷发'
  ;   upvals: _ENV
  ;   locals: self(0-12)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SETTABLE  R0[K2('m_testSpreadNext')] = K3(true)
  0007  GETTABUP  R1 = _ENV[K4('Log')]
  0008  GETTABLE  R1 = R1[K5('Info')]
  0009  LOADK     R2 = K6 '[幸运喷发] 测试功能：下次强制幸运喷发'
  0010  CALL      R1 = call(R1, 0 args, 1 rets)
  0011  RETURN    return R0..R-1
; ---------- proto122 [OnEntryClicked] ----------
  ; fn ?  line 1365-1368 np=1 va=0 ms=3 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='OpenMainWindow'
  ;   K[1]='_DispatchClickEntryEvent'
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('OpenMainWindow')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  SELF      R2 = R0[K1('_DispatchClickEntryEvent')] (self)
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  RETURN    return R0..R-1
; ---------- proto123 [_OpenWindow] ----------
  ; fn ?  line 1371-1373 np=2 va=1 ms=8 code=11 consts=5 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='GetType'
  ;   K[4]='GetId'
  ;   upvals: _ENV
  ;   locals: self(0-11), prefabName(0-11)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('UIManager')]
  0002  SELF      R3 = R2[K2('OpenView')] (self)
  0003  MOVE      R4 = R0
  0004  SELF      R6 = R0[K3('GetType')] (self)
  0005  CALL      R5 = call(R5, 1 args, 1 rets)
  0006  SELF      R7 = R0[K4('GetId')] (self)
  0007  CALL      R6 = call(R6, 1 args, 1 rets)
  0008  VARARG    R7 = vararg(0)
  0009  CALL      R2 = call(R2, 0 args, -1 rets)
  0010  RETURN    return R0..R-1
; ---------- proto124 [OpenMainWindow] ----------
  ; fn ?  line 1377-1379 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='MainWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('MainWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto125 [OpenHelpWindow] ----------
  ; fn ?  line 1382-1384 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='HelpWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('HelpWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto126 [CanPopSimpleStart] ----------
  ; fn ?  line 1386-1388 np=1 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='CanTrigger'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('CanTrigger')] (self)
  0001  TAILCALL  tailcall(R1, 0)
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto127 [OnMainWindowCanSpin] ----------
  ; fn ?  line 1390-1392 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowCanSpinEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchMainWindowCanSpinEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto128 [OnMainWindowStartSpin] ----------
  ; fn ?  line 1394-1396 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowStartSpinEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchMainWindowStartSpinEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto129 [OnMainWindowSpinEnd] ----------
  ; fn ?  line 1399-1401 np=2 va=0 ms=5 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowSpinEndEvent'
  ;   locals: self(0-4), result(0-4)
  0000  SELF      R3 = R0[K0('_DispatchMainWindowSpinEndEvent')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 0 args, 2 rets)
  0003  RETURN    return R0..R-1
; ---------- proto130 [OnMainWindowIdle] ----------
  ; fn ?  line 1403-1405 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowIdleEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchMainWindowIdleEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto131 [_IsEntryVisible] ----------
  ; fn ?  line 1411-1413 np=1 va=0 ms=3 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='IsActivityOpen'
  ;   K[1]='IsTriggered'
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('IsActivityOpen')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 6
  0004  SELF      R2 = R0[K1('IsTriggered')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto132 [GetMapEntryShowConfig] ----------
  ; fn ?  line 1416-1426 np=1 va=0 ms=4 code=21 consts=10 upvals=0 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='RefreshEntryEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EntryRootKey'
  ;   K[5]='entryPrefabName'
  ;   K[6]='TopRightEntryPrefabName'
  ;   K[7]='hudKey'
  ;   K[8]='EntryButtonKey'
  ;   K[9]='checkFun'
  ;   locals: self(0-21)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABLE  R2 = R2[K2('RefreshEntryEvent')]
  0004  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0005  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  GETTABLE  R2 = R2[K4('EntryRootKey')]
  0008  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0009  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  GETTABLE  R2 = R2[K6('TopRightEntryPrefabName')]
  0012  SETTABLE  R1[K5('entryPrefabName')] = R2
  0013  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0014  CALL      R2 = call(R2, 1 args, 1 rets)
  0015  GETTABLE  R2 = R2[K8('EntryButtonKey')]
  0016  SETTABLE  R1[K7('hudKey')] = R2
  0017  CLOSURE   R2 = closure proto0
  0018  SETTABLE  R1[K9('checkFun')] = R2
  0019  RETURN    return R1..R0
  0020  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 1422-1424 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='_IsEntryVisible'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_IsEntryVisible')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto133 [GetItemSpreadEntryConfig] ----------
  ; fn ?  line 1430-1443 np=1 va=0 ms=6 code=22 consts=9 upvals=1 protos=1
  ;   K[0]='entryPrefabName'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='ItemSpreadEffectPrefabName'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EntryRootKey'
  ;   K[5]='checkFun'
  ;   K[6]='events'
  ;   K[7]='RefreshEntryEvent'
  ;   K[8]='RefreshSpreadEffectEvent'
  ;   upvals: _ENV
  ;   locals: self(0-22)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABLE  R2 = R2[K2('ItemSpreadEffectPrefabName')]
  0004  SETTABLE  R1[K0('entryPrefabName')] = R2
  0005  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0006  CALL      R2 = call(R2, 1 args, 1 rets)
  0007  GETTABLE  R2 = R2[K4('EntryRootKey')]
  0008  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0009  CLOSURE   R2 = closure proto0
  0010  SETTABLE  R1[K5('checkFun')] = R2
  0011  NEWTABLE  R2 = {} (2 items)
  0012  SELF      R4 = R0[K1('GetActivityDefinition')] (self)
  0013  CALL      R3 = call(R3, 1 args, 1 rets)
  0014  GETTABLE  R3 = R3[K7('RefreshEntryEvent')]
  0015  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0016  CALL      R4 = call(R4, 1 args, 1 rets)
  0017  GETTABLE  R4 = R4[K8('RefreshSpreadEffectEvent')]
  0018  SETLIST   setlist R2[B=1,C=2]
  0019  SETTABLE  R1[K6('events')] = R2
  0020  RETURN    return R1..R0
  0021  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 1435-1440 np=1 va=0 ms=7 code=27 consts=8 upvals=2 protos=0
    ;   K[0]='GetItemModel'
    ;   K[1]='GetType'
    ;   K[2]='GM'
    ;   K[3]='ItemDataModel'
    ;   K[4]='GetChainId'
    ;   K[5]='_IsEntryVisible'
    ;   K[6]='IsPdChainTriggered'
    ;   K[7]='IsHideSpreadEffect'
    ;   upvals: _ENV, self
    ;   locals: itemSpread(0-27), itemModel(2-27), itemCode(4-27), chainId(9-27)
    0000  SELF      R2 = R0[K0('GetItemModel')] (self)
    0001  CALL      R1 = call(R1, 1 args, 1 rets)
    0002  SELF      R3 = R1[K1('GetType')] (self)
    0003  CALL      R2 = call(R2, 1 args, 1 rets)
    0004  GETTABUP  R3 = _ENV[K2('GM')]
    0005  GETTABLE  R3 = R3[K3('ItemDataModel')]
    0006  SELF      R4 = R3[K4('GetChainId')] (self)
    0007  MOVE      R5 = R0
    0008  CALL      R3 = call(R3, 1 args, 2 rets)
    0009  GETUPVAL  R4 = _ENV
    0010  SELF      R5 = R4[K5('_IsEntryVisible')] (self)
    0011  CALL      R4 = call(R4, 1 args, 1 rets)
    0012  TEST      if not R4 then   -> -131058
    0013  JMP       (jump)   -> 25
    0014  GETUPVAL  R4 = _ENV
    0015  SELF      R5 = R4[K6('IsPdChainTriggered')] (self)
    0016  MOVE      R6 = R0
    0017  CALL      R4 = call(R4, 1 args, 2 rets)
    0018  TEST      if not R4 then   -> -131052
    0019  JMP       (jump)   -> 25
    0020  GETUPVAL  R4 = _ENV
    0021  SELF      R5 = R4[K7('IsHideSpreadEffect')] (self)
    0022  MOVE      R6 = R0
    0023  CALL      R4 = call(R4, 1 args, 2 rets)
    0024  NOT       R4 = not R0
    0025  RETURN    return R4..R3
    0026  RETURN    return R0..R-1
; ---------- proto134 [_LogStart] ----------
  ; fn ?  line 1449-1453 np=1 va=0 ms=8 code=23 consts=13 upvals=1 protos=0
  ;   K[0]='table'
  ;   K[1]='insert'
  ;   K[2]='string'
  ;   K[3]='format'
  ;   K[4]='time:%d'
  ;   K[5]='GetDuration'
  ;   K[6]='GM'
  ;   K[7]='BIManager'
  ;   K[8]='LogAction'
  ;   K[9]='EBIType'
  ;   K[10]='LuckyBlastStart'
  ;   K[11]='concat'
  ;   K[12]=';'
  ;   upvals: _ENV
  ;   locals: self(0-23), strAction(1-23)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABUP  R2 = _ENV[K0('table')]
  0002  GETTABLE  R2 = R2[K1('insert')]
  0003  MOVE      R3 = R0
  0004  GETTABUP  R4 = _ENV[K2('string')]
  0005  GETTABLE  R4 = R4[K3('format')]
  0006  LOADK     R5 = K4 'time:%d'
  0007  SELF      R7 = R0[K5('GetDuration')] (self)
  0008  CALL      R6 = call(R6, -1 args, 1 rets)
  0009  CALL      R4 = call(R4, -1 args, -1 rets)
  0010  CALL      R2 = call(R2, 0 args, -1 rets)
  0011  GETTABUP  R2 = _ENV[K6('GM')]
  0012  GETTABLE  R2 = R2[K7('BIManager')]
  0013  SELF      R3 = R2[K8('LogAction')] (self)
  0014  GETTABUP  R4 = _ENV[K9('EBIType')]
  0015  GETTABLE  R4 = R4[K10('LuckyBlastStart')]
  0016  GETTABUP  R5 = _ENV[K0('table')]
  0017  GETTABLE  R5 = R5[K11('concat')]
  0018  MOVE      R6 = R0
  0019  LOADK     R7 = K12 ';'
  0020  CALL      R5 = call(R5, -1 args, 2 rets)
  0021  CALL      R2 = call(R2, 0 args, -1 rets)
  0022  RETURN    return R0..R-1
; ---------- proto135 [_LogReady] ----------
  ; fn ?  line 1455-1459 np=1 va=0 ms=8 code=23 consts=13 upvals=1 protos=0
  ;   K[0]='table'
  ;   K[1]='insert'
  ;   K[2]='string'
  ;   K[3]='format'
  ;   K[4]='stage:%d'
  ;   K[5]='GetNextStage'
  ;   K[6]='GM'
  ;   K[7]='BIManager'
  ;   K[8]='LogAction'
  ;   K[9]='EBIType'
  ;   K[10]='LuckyBlastReady'
  ;   K[11]='concat'
  ;   K[12]=';'
  ;   upvals: _ENV
  ;   locals: self(0-23), strAction(1-23)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABUP  R2 = _ENV[K0('table')]
  0002  GETTABLE  R2 = R2[K1('insert')]
  0003  MOVE      R3 = R0
  0004  GETTABUP  R4 = _ENV[K2('string')]
  0005  GETTABLE  R4 = R4[K3('format')]
  0006  LOADK     R5 = K4 'stage:%d'
  0007  SELF      R7 = R0[K5('GetNextStage')] (self)
  0008  CALL      R6 = call(R6, -1 args, 1 rets)
  0009  CALL      R4 = call(R4, -1 args, -1 rets)
  0010  CALL      R2 = call(R2, 0 args, -1 rets)
  0011  GETTABUP  R2 = _ENV[K6('GM')]
  0012  GETTABLE  R2 = R2[K7('BIManager')]
  0013  SELF      R3 = R2[K8('LogAction')] (self)
  0014  GETTABUP  R4 = _ENV[K9('EBIType')]
  0015  GETTABLE  R4 = R4[K10('LuckyBlastReady')]
  0016  GETTABUP  R5 = _ENV[K0('table')]
  0017  GETTABLE  R5 = R5[K11('concat')]
  0018  MOVE      R6 = R0
  0019  LOADK     R7 = K12 ';'
  0020  CALL      R5 = call(R5, -1 args, 2 rets)
  0021  CALL      R2 = call(R2, 0 args, -1 rets)
  0022  RETURN    return R0..R-1
; ---------- proto136 [_LogSpin] ----------
  ; fn ?  line 1461-1466 np=2 va=0 ms=9 code=32 consts=14 upvals=1 protos=0
  ;   K[0]='table'
  ;   K[1]='insert'
  ;   K[2]='string'
  ;   K[3]='format'
  ;   K[4]='type:%s'
  ;   K[5]='time:%d'
  ;   K[6]='GetLeftDuration'
  ;   K[7]='GM'
  ;   K[8]='BIManager'
  ;   K[9]='LogAction'
  ;   K[10]='EBIType'
  ;   K[11]='LuckyBlast'
  ;   K[12]='concat'
  ;   K[13]=';'
  ;   upvals: _ENV
  ;   locals: self(0-32), pdChainId(0-32), strAction(1-32)
  0000  NEWTABLE  R2 = {} (0 items)
  0001  GETTABUP  R3 = _ENV[K0('table')]
  0002  GETTABLE  R3 = R3[K1('insert')]
  0003  MOVE      R4 = R0
  0004  GETTABUP  R5 = _ENV[K2('string')]
  0005  GETTABLE  R5 = R5[K3('format')]
  0006  LOADK     R6 = K4 'type:%s'
  0007  MOVE      R7 = R0
  0008  CALL      R5 = call(R5, -1 args, 2 rets)
  0009  CALL      R3 = call(R3, 0 args, -1 rets)
  0010  GETTABUP  R3 = _ENV[K0('table')]
  0011  GETTABLE  R3 = R3[K1('insert')]
  0012  MOVE      R4 = R0
  0013  GETTABUP  R5 = _ENV[K2('string')]
  0014  GETTABLE  R5 = R5[K3('format')]
  0015  LOADK     R6 = K5 'time:%d'
  0016  SELF      R8 = R0[K6('GetLeftDuration')] (self)
  0017  CALL      R7 = call(R7, -1 args, 1 rets)
  0018  CALL      R5 = call(R5, -1 args, -1 rets)
  0019  CALL      R3 = call(R3, 0 args, -1 rets)
  0020  GETTABUP  R3 = _ENV[K7('GM')]
  0021  GETTABLE  R3 = R3[K8('BIManager')]
  0022  SELF      R4 = R3[K9('LogAction')] (self)
  0023  GETTABUP  R5 = _ENV[K10('EBIType')]
  0024  GETTABLE  R5 = R5[K11('LuckyBlast')]
  0025  GETTABUP  R6 = _ENV[K0('table')]
  0026  GETTABLE  R6 = R6[K12('concat')]
  0027  MOVE      R7 = R0
  0028  LOADK     R8 = K13 ';'
  0029  CALL      R6 = call(R6, -1 args, 2 rets)
  0030  CALL      R3 = call(R3, 0 args, -1 rets)
  0031  RETURN    return R0..R-1
