# BlockActivity_Model_BlockActivityModel_1519.luac
; fn @BlockActivityModel.lua  line 0-0 np=0 va=1 ms=6 code=129 consts=52 upvals=1 protos=37
;   K[0]='Round'
;   K[1]='round'
;   K[2]='BlockTokenKey'
;   K[3]='blockToken'
;   K[4]='HasAddToken'
;   K[5]='hasAddToken'
;   K[6]='value'
;   K[7]='block_1_0'
;   K[8]='BlockActivityEventType'
;   K[9]='StateChanged'
;   K[10]=1
;   K[11]='BlockActivityModel'
;   K[12]='setmetatable'
;   K[13]='BaseActivityModel'
;   K[14]='__index'
;   K[15]='Init'
;   K[16]='_OnFinishedCurRound'
;   K[17]='GetResourceLabels'
;   K[18]='Destroy'
;   K[19]='_LoadOtherServerConfig'
;   K[20]='GetActivityDefinition'
;   K[21]='GetBoardEntryShowConfig'
;   K[22]='GetMapEntryShowConfig'
;   K[23]='CanAddScore'
;   K[24]='GetBlockToken'
;   K[25]='ChangeBlockToken'
;   K[26]='_ChangeBlockToken'
;   K[27]='AcquireActivityToken'
;   K[28]='GetActivityTokenNumber'
;   K[29]='ConsumeActivityToken'
;   K[30]='_CalculateState'
;   K[31]='_OnStateChanged'
;   K[32]='_DropData'
;   K[33]='ResetLackBlockTokenTrigger'
;   K[34]='TryTriggerLackBlockToken'
;   K[35]='OnLackBlockToken'
;   K[36]='_LoadBoardFileConfigs'
;   K[37]='_LoadBoardServerConfigs'
;   K[38]='_LoadBlockBoardModel'
;   K[39]='GetBoardModel'
;   K[40]='GetButtonTarget'
;   K[41]='HasFinishedAllRound'
;   K[42]='HasFinishedCurRound'
;   K[43]='GetRoundConfig'
;   K[44]='GetRound'
;   K[45]='GetRoundRewards'
;   K[46]='GetMaxRound'
;   K[47]='TryEnterNextRound'
;   K[48]='GetScore'
;   K[49]='GetTargetScore'
;   K[50]='GetAllBoardConfigs'
;   K[51]='GetBoardConfigById'
;   upvals: _ENV
;   locals: DBKey(4-129), Value(5-129), tutorialBoardId(6-129)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABLE  R0[K0('Round')] = K1('round')
0002  SETTABLE  R0[K2('BlockTokenKey')] = K3('blockToken')
0003  SETTABLE  R0[K4('HasAddToken')] = K5('hasAddToken')
0004  LOADK     R1 = K6 'value'
0005  LOADK     R2 = K7 'block_1_0'
0006  NEWTABLE  R3 = {} (0 items)
0007  SETTABLE  R3[K9('StateChanged')] = K10(1)
0008  SETTABUP  _ENV[K8('BlockActivityEventType')] = R3
0009  GETTABUP  R3 = _ENV[K12('setmetatable')]
0010  NEWTABLE  R4 = {} (0 items)
0011  GETTABUP  R5 = _ENV[K13('BaseActivityModel')]
0012  CALL      R3 = call(R3, 1 args, 2 rets)
0013  SETTABUP  _ENV[K11('BlockActivityModel')] = R3
0014  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0015  GETTABUP  R4 = _ENV[K11('BlockActivityModel')]
0016  SETTABLE  R3[K14('__index')] = R4
0017  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0018  CLOSURE   R4 = closure proto0
0019  SETTABLE  R3[K15('Init')] = R4
0020  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0021  CLOSURE   R4 = closure proto1
0022  SETTABLE  R3[K16('_OnFinishedCurRound')] = R4
0023  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0024  CLOSURE   R4 = closure proto2
0025  SETTABLE  R3[K17('GetResourceLabels')] = R4
0026  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0027  CLOSURE   R4 = closure proto3
0028  SETTABLE  R3[K18('Destroy')] = R4
0029  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0030  CLOSURE   R4 = closure proto4
0031  SETTABLE  R3[K19('_LoadOtherServerConfig')] = R4
0032  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0033  CLOSURE   R4 = closure proto5
0034  SETTABLE  R3[K20('GetActivityDefinition')] = R4
0035  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0036  CLOSURE   R4 = closure proto6
0037  SETTABLE  R3[K21('GetBoardEntryShowConfig')] = R4
0038  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0039  CLOSURE   R4 = closure proto7
0040  SETTABLE  R3[K22('GetMapEntryShowConfig')] = R4
0041  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0042  CLOSURE   R4 = closure proto8
0043  SETTABLE  R3[K23('CanAddScore')] = R4
0044  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0045  CLOSURE   R4 = closure proto9
0046  SETTABLE  R3[K24('GetBlockToken')] = R4
0047  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0048  CLOSURE   R4 = closure proto10
0049  SETTABLE  R3[K25('ChangeBlockToken')] = R4
0050  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0051  CLOSURE   R4 = closure proto11
0052  SETTABLE  R3[K26('_ChangeBlockToken')] = R4
0053  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0054  CLOSURE   R4 = closure proto12
0055  SETTABLE  R3[K27('AcquireActivityToken')] = R4
0056  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0057  CLOSURE   R4 = closure proto13
0058  SETTABLE  R3[K28('GetActivityTokenNumber')] = R4
0059  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0060  CLOSURE   R4 = closure proto14
0061  SETTABLE  R3[K29('ConsumeActivityToken')] = R4
0062  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0063  CLOSURE   R4 = closure proto15
0064  SETTABLE  R3[K30('_CalculateState')] = R4
0065  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0066  CLOSURE   R4 = closure proto16
0067  SETTABLE  R3[K31('_OnStateChanged')] = R4
0068  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0069  CLOSURE   R4 = closure proto17
0070  SETTABLE  R3[K32('_DropData')] = R4
0071  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0072  CLOSURE   R4 = closure proto18
0073  SETTABLE  R3[K33('ResetLackBlockTokenTrigger')] = R4
0074  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0075  CLOSURE   R4 = closure proto19
0076  SETTABLE  R3[K34('TryTriggerLackBlockToken')] = R4
0077  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0078  CLOSURE   R4 = closure proto20
0079  SETTABLE  R3[K35('OnLackBlockToken')] = R4
0080  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0081  CLOSURE   R4 = closure proto21
0082  SETTABLE  R3[K36('_LoadBoardFileConfigs')] = R4
0083  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0084  CLOSURE   R4 = closure proto22
0085  SETTABLE  R3[K37('_LoadBoardServerConfigs')] = R4
0086  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0087  CLOSURE   R4 = closure proto23
0088  SETTABLE  R3[K38('_LoadBlockBoardModel')] = R4
0089  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0090  CLOSURE   R4 = closure proto24
0091  SETTABLE  R3[K39('GetBoardModel')] = R4
0092  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0093  CLOSURE   R4 = closure proto25
0094  SETTABLE  R3[K40('GetButtonTarget')] = R4
0095  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0096  CLOSURE   R4 = closure proto26
0097  SETTABLE  R3[K41('HasFinishedAllRound')] = R4
0098  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0099  CLOSURE   R4 = closure proto27
0100  SETTABLE  R3[K42('HasFinishedCurRound')] = R4
0101  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0102  CLOSURE   R4 = closure proto28
0103  SETTABLE  R3[K43('GetRoundConfig')] = R4
0104  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0105  CLOSURE   R4 = closure proto29
0106  SETTABLE  R3[K44('GetRound')] = R4
0107  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0108  CLOSURE   R4 = closure proto30
0109  SETTABLE  R3[K45('GetRoundRewards')] = R4
0110  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0111  CLOSURE   R4 = closure proto31
0112  SETTABLE  R3[K46('GetMaxRound')] = R4
0113  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0114  CLOSURE   R4 = closure proto32
0115  SETTABLE  R3[K47('TryEnterNextRound')] = R4
0116  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0117  CLOSURE   R4 = closure proto33
0118  SETTABLE  R3[K48('GetScore')] = R4
0119  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0120  CLOSURE   R4 = closure proto34
0121  SETTABLE  R3[K49('GetTargetScore')] = R4
0122  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0123  CLOSURE   R4 = closure proto35
0124  SETTABLE  R3[K50('GetAllBoardConfigs')] = R4
0125  GETTABUP  R3 = _ENV[K11('BlockActivityModel')]
0126  CLOSURE   R4 = closure proto36
0127  SETTABLE  R3[K51('GetBoardConfigById')] = R4
0128  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 18-26 np=4 va=0 ms=8 code=35 consts=18 upvals=1 protos=0
  ;   K[0]='m_activityDefinition'
  ;   K[1]='BlockActivityDefinition'
  ;   K[2]='m_tokenHelper'
  ;   K[3]='ActivityTokenHelper'
  ;   K[4]='Create'
  ;   K[5]='EFlyElementLabelStyle'
  ;   K[6]='Default'
  ;   K[7]='m_boardDataTable'
  ;   K[8]='_LoadBoardFileConfigs'
  ;   K[9]='BaseActivityModel'
  ;   K[10]='Init'
  ;   K[11]='EventDispatcher'
  ;   K[12]='AddListener'
  ;   K[13]='EEventType'
  ;   K[14]='TriggerLackBlockToken'
  ;   K[15]='TryTriggerLackBlockToken'
  ;   K[16]='BlockFinishedCurRound'
  ;   K[17]='_OnFinishedCurRound'
  ;   upvals: _ENV
  ;   locals: self(0-35), activityType(0-35), virtualDBTable(0-35), boardDBTable(0-35)
  0000  GETTABUP  R4 = _ENV[K1('BlockActivityDefinition')]
  0001  GETTABLE  R4 = R4[R1]
  0002  SETTABLE  R0[K0('m_activityDefinition')] = R4
  0003  GETTABUP  R4 = _ENV[K3('ActivityTokenHelper')]
  0004  GETTABLE  R4 = R4[K4('Create')]
  0005  MOVE      R5 = R0
  0006  MOVE      R6 = R0
  0007  GETTABUP  R7 = _ENV[K5('EFlyElementLabelStyle')]
  0008  GETTABLE  R7 = R7[K6('Default')]
  0009  CALL      R4 = call(R4, 1 args, 3 rets)
  0010  SETTABLE  R0[K2('m_tokenHelper')] = R4
  0011  SETTABLE  R0[K7('m_boardDataTable')] = R3
  0012  SELF      R5 = R0[K8('_LoadBoardFileConfigs')] (self)
  0013  CALL      R4 = call(R4, 0 args, 1 rets)
  0014  GETTABUP  R4 = _ENV[K9('BaseActivityModel')]
  0015  GETTABLE  R4 = R4[K10('Init')]
  0016  MOVE      R5 = R0
  0017  MOVE      R6 = R0
  0018  MOVE      R7 = R0
  0019  CALL      R4 = call(R4, 0 args, 3 rets)
  0020  GETTABUP  R4 = _ENV[K11('EventDispatcher')]
  0021  GETTABLE  R4 = R4[K12('AddListener')]
  0022  GETTABUP  R5 = _ENV[K13('EEventType')]
  0023  GETTABLE  R5 = R5[K14('TriggerLackBlockToken')]
  0024  MOVE      R6 = R0
  0025  GETTABLE  R7 = R0[K15('TryTriggerLackBlockToken')]
  0026  CALL      R4 = call(R4, 0 args, 3 rets)
  0027  GETTABUP  R4 = _ENV[K11('EventDispatcher')]
  0028  GETTABLE  R4 = R4[K12('AddListener')]
  0029  GETTABUP  R5 = _ENV[K13('EEventType')]
  0030  GETTABLE  R5 = R5[K16('BlockFinishedCurRound')]
  0031  MOVE      R6 = R0
  0032  GETTABLE  R7 = R0[K17('_OnFinishedCurRound')]
  0033  CALL      R4 = call(R4, 0 args, 3 rets)
  0034  RETURN    return R0..R-1
; ---------- proto1 [_OnFinishedCurRound] ----------
  ; fn ?  line 28-30 np=2 va=0 ms=6 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='LogActivity'
  ;   K[1]='EBIType'
  ;   K[2]='ActivityRankUp'
  ;   upvals: _ENV
  ;   locals: self(0-6), round(0-6)
  0000  SELF      R3 = R0[K0('LogActivity')] (self)
  0001  GETTABUP  R4 = _ENV[K1('EBIType')]
  0002  GETTABLE  R4 = R4[K2('ActivityRankUp')]
  0003  MOVE      R5 = R0
  0004  CALL      R2 = call(R2, 0 args, 3 rets)
  0005  RETURN    return R0..R-1
; ---------- proto2 [GetResourceLabels] ----------
  ; fn ?  line 32-34 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
; ---------- proto3 [Destroy] ----------
  ; fn ?  line 36-39 np=1 va=0 ms=3 code=8 consts=3 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='Destroy'
  ;   K[2]='m_tokenHelper'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  GETTABUP  R1 = _ENV[K0('BaseActivityModel')]
  0001  GETTABLE  R1 = R1[K1('Destroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABLE  R1 = R0[K2('m_tokenHelper')]
  0005  SELF      R2 = R1[K1('Destroy')] (self)
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto4 [_LoadOtherServerConfig] ----------
  ; fn ?  line 41-44 np=2 va=0 ms=5 code=8 consts=3 upvals=0 protos=0
  ;   K[0]='m_tokenHelper'
  ;   K[1]='LoadConfig'
  ;   K[2]='_LoadBoardServerConfigs'
  ;   locals: self(0-8), config(0-8)
  0000  GETTABLE  R2 = R0[K0('m_tokenHelper')]
  0001  SELF      R3 = R2[K1('LoadConfig')] (self)
  0002  MOVE      R4 = R0
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  SELF      R3 = R0[K2('_LoadBoardServerConfigs')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto5 [GetActivityDefinition] ----------
  ; fn ?  line 46-48 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
; ---------- proto6 [GetBoardEntryShowConfig] ----------
  ; fn ?  line 51-60 np=1 va=0 ms=3 code=14 consts=7 upvals=0 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='m_activityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='entryPrefabName'
  ;   K[5]='BoardEntryPrefabName'
  ;   K[6]='checkFun'
  ;   locals: self(0-14)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0002  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0003  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0004  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0005  GETTABLE  R2 = R2[K3('eEntryRootKey')]
  0006  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0007  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0008  GETTABLE  R2 = R2[K5('BoardEntryPrefabName')]
  0009  SETTABLE  R1[K4('entryPrefabName')] = R2
  0010  CLOSURE   R2 = closure proto0
  0011  SETTABLE  R1[K6('checkFun')] = R2
  0012  RETURN    return R1..R0
  0013  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 56-58 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='CanAddScore'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('CanAddScore')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto7 [GetMapEntryShowConfig] ----------
  ; fn ?  line 63-73 np=1 va=0 ms=3 code=17 consts=9 upvals=0 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='m_activityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='entryPrefabName'
  ;   K[5]='EntryPrefabName'
  ;   K[6]='hudKey'
  ;   K[7]='EntryButtonKey'
  ;   K[8]='checkFun'
  ;   locals: self(0-17)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0002  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0003  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0004  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0005  GETTABLE  R2 = R2[K3('eEntryRootKey')]
  0006  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0007  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0008  GETTABLE  R2 = R2[K5('EntryPrefabName')]
  0009  SETTABLE  R1[K4('entryPrefabName')] = R2
  0010  GETTABLE  R2 = R0[K1('m_activityDefinition')]
  0011  GETTABLE  R2 = R2[K7('EntryButtonKey')]
  0012  SETTABLE  R1[K6('hudKey')] = R2
  0013  CLOSURE   R2 = closure proto0
  0014  SETTABLE  R1[K8('checkFun')] = R2
  0015  RETURN    return R1..R0
  0016  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 69-71 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='CanAddScore'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('CanAddScore')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto8 [CanAddScore] ----------
  ; fn ?  line 76-82 np=1 va=0 ms=3 code=13 consts=4 upvals=1 protos=0
  ;   K[0]='GetState'
  ;   K[1]='ActivityState'
  ;   K[2]='Started'
  ;   K[3]='HasFinishedAllRound'
  ;   upvals: _ENV
  ;   locals: self(0-13)
  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)   -> 8
  0006  LOADBOOL  R1 = false
  0007  RETURN    return R1..R0
  0008  SELF      R2 = R0[K3('HasFinishedAllRound')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  NOT       R1 = not R0
  0011  RETURN    return R1..R0
  0012  RETURN    return R0..R-1
; ---------- proto9 [GetBlockToken] ----------
  ; fn ?  line 84-86 np=1 va=0 ms=5 code=10 consts=4 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   K[2]='BlockTokenKey'
  ;   K[3]=3
  ;   upvals: DBKey, Value
  ;   locals: self(0-10)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('GetValue')] (self)
  0002  GETTABUP  R3 = DBKey[K2('BlockTokenKey')]
  0003  GETUPVAL  R4 = DBKey
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  TEST      if not R1 then   -> -131064
  0006  JMP       (jump)   -> 8
  0007  LOADK     R1 = K3 3
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto10 [ChangeBlockToken] ----------
  ; fn ?  line 88-92 np=2 va=0 ms=5 code=8 consts=2 upvals=0 protos=0
  ;   K[0]='CanAddScore'
  ;   K[1]='_ChangeBlockToken'
  ;   locals: self(0-8), delta(0-8)
  0000  SELF      R3 = R0[K0('CanAddScore')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131068
  0003  JMP       (jump)   -> 7
  0004  SELF      R3 = R0[K1('_ChangeBlockToken')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
; ---------- proto11 [_ChangeBlockToken] ----------
  ; fn ?  line 94-106 np=2 va=0 ms=8 code=37 consts=10 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   K[2]='BlockTokenKey'
  ;   K[3]='GetBlockToken'
  ;   K[4]=0
  ;   K[5]='GetValue'
  ;   K[6]='HasAddToken'
  ;   K[7]=1
  ;   K[8]='m_bTriggerLackToken'
  ;   K[9]=true
  ;   upvals: DBKey, Value
  ;   locals: self(0-37), delta(0-37)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('Set')] (self)
  0002  GETTABUP  R4 = DBKey[K2('BlockTokenKey')]
  0003  GETUPVAL  R5 = DBKey
  0004  SELF      R7 = R0[K3('GetBlockToken')] (self)
  0005  CALL      R6 = call(R6, 1 args, 1 rets)
  0006  ADD       R6 = R1 add R6
  0007  CALL      R2 = call(R2, 0 args, 4 rets)
  0008  LT        if R0 lt R1   -> 2059
  0009  JMP       (jump)   -> 24
  0010  GETTABLE  R2 = R0[K0('m_dbTable')]
  0011  SELF      R3 = R2[K5('GetValue')] (self)
  0012  GETTABUP  R4 = DBKey[K6('HasAddToken')]
  0013  GETUPVAL  R5 = DBKey
  0014  CALL      R2 = call(R2, 1 args, 3 rets)
  0015  EQ        if R1 eq K7(1)   -> -129768
  0016  JMP       (jump)   -> 36
  0017  GETTABLE  R2 = R0[K0('m_dbTable')]
  0018  SELF      R3 = R2[K1('Set')] (self)
  0019  GETTABUP  R4 = DBKey[K6('HasAddToken')]
  0020  GETUPVAL  R5 = DBKey
  0021  LOADK     R6 = K7 1
  0022  CALL      R2 = call(R2, 0 args, 4 rets)
  0023  JMP       (jump)   -> 36
  0024  SELF      R3 = R0[K3('GetBlockToken')] (self)
  0025  CALL      R2 = call(R2, 1 args, 1 rets)
  0026  EQ        if R0 eq K4(0)   -> -129760
  0027  JMP       (jump)   -> 36
  0028  GETTABLE  R2 = R0[K0('m_dbTable')]
  0029  SELF      R3 = R2[K5('GetValue')] (self)
  0030  GETTABUP  R4 = DBKey[K6('HasAddToken')]
  0031  GETUPVAL  R5 = DBKey
  0032  CALL      R2 = call(R2, 1 args, 3 rets)
  0033  EQ        if R0 eq K7(1)   -> -129750
  0034  JMP       (jump)   -> 36
  0035  SETTABLE  R0[K8('m_bTriggerLackToken')] = K9(true)
  0036  RETURN    return R0..R-1
; ---------- proto12 [AcquireActivityToken] ----------
  ; fn ?  line 108-110 np=2 va=0 ms=5 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='ChangeBlockToken'
  ;   locals: self(0-4), count(0-4)
  0000  SELF      R3 = R0[K0('ChangeBlockToken')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 0 args, 2 rets)
  0003  RETURN    return R0..R-1
; ---------- proto13 [GetActivityTokenNumber] ----------
  ; fn ?  line 112-114 np=1 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='GetBlockToken'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('GetBlockToken')] (self)
  0001  TAILCALL  tailcall(R1, 0)
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto14 [ConsumeActivityToken] ----------
  ; fn ?  line 116-126 np=4 va=0 ms=11 code=25 consts=10 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='GetActivityTokenNumber'
  ;   K[2]='_ChangeBlockToken'
  ;   K[3]='GM'
  ;   K[4]='PropertyDataManager'
  ;   K[5]='DispatchConsumeEvent'
  ;   K[6]='m_activityDefinition'
  ;   K[7]='ActivityTokenPropertyType'
  ;   K[8]='noAnim'
  ;   K[9]=true
  ;   upvals: _ENV
  ;   locals: self(0-25), num(0-25), scene(0-25), consumer(0-25)
  0000  LE        if R1 le K0(0)   -> -130302
  0001  JMP       (jump)   -> 6
  0002  SELF      R5 = R0[K1('GetActivityTokenNumber')] (self)
  0003  CALL      R4 = call(R4, 1 args, 1 rets)
  0004  LT        if R0 lt R1   -> -129017
  0005  JMP       (jump)   -> 8
  0006  LOADBOOL  R4 = false
  0007  RETURN    return R4..R3
  0008  SELF      R5 = R0[K2('_ChangeBlockToken')] (self)
  0009  UNM       R6 = unm R0
  0010  CALL      R4 = call(R4, 0 args, 2 rets)
  0011  GETTABUP  R4 = _ENV[K3('GM')]
  0012  GETTABLE  R4 = R4[K4('PropertyDataManager')]
  0013  SELF      R5 = R4[K5('DispatchConsumeEvent')] (self)
  0014  GETTABLE  R6 = R0[K6('m_activityDefinition')]
  0015  GETTABLE  R6 = R6[K7('ActivityTokenPropertyType')]
  0016  MOVE      R7 = R0
  0017  MOVE      R8 = R0
  0018  NEWTABLE  R9 = {} (0 items)
  0019  SETTABLE  R9[K8('noAnim')] = K9(true)
  0020  MOVE      R10 = R0
  0021  CALL      R4 = call(R4, 0 args, 6 rets)
  0022  LOADBOOL  R4 = true
  0023  RETURN    return R4..R3
  0024  RETURN    return R0..R-1
; ---------- proto15 [_CalculateState] ----------
  ; fn ?  line 128-135 np=2 va=0 ms=6 code=22 consts=8 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='_CalculateState'
  ;   K[2]='ActivityState'
  ;   K[3]='Started'
  ;   K[4]='HasFinishedAllRound'
  ;   K[5]='Ended'
  ;   K[6]='m_config'
  ;   K[7]='rTime'
  ;   upvals: _ENV
  ;   locals: self(0-22), bIgnoreCondition(0-22), state(5-22), nextStateTime(5-22)
  0000  GETTABUP  R2 = _ENV[K0('BaseActivityModel')]
  0001  GETTABLE  R2 = R2[K1('_CalculateState')]
  0002  MOVE      R3 = R0
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 2 args, 2 rets)
  0005  GETTABUP  R4 = _ENV[K2('ActivityState')]
  0006  GETTABLE  R4 = R4[K3('Started')]
  0007  EQ        if R0 eq R4   -> -130035
  0008  JMP       (jump)   -> 18
  0009  SELF      R5 = R0[K4('HasFinishedAllRound')] (self)
  0010  CALL      R4 = call(R4, 1 args, 1 rets)
  0011  TEST      if not R4 then   -> -131059
  0012  JMP       (jump)   -> 18
  0013  GETTABUP  R4 = _ENV[K2('ActivityState')]
  0014  GETTABLE  R4 = R4[K5('Ended')]
  0015  GETTABLE  R5 = R0[K6('m_config')]
  0016  GETTABLE  R5 = R5[K7('rTime')]
  0017  RETURN    return R4..R3
  0018  MOVE      R4 = R0
  0019  MOVE      R5 = R0
  0020  RETURN    return R4..R3
  0021  RETURN    return R0..R-1
; ---------- proto16 [_OnStateChanged] ----------
  ; fn ?  line 137-154 np=1 va=0 ms=5 code=40 consts=19 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='_OnStateChanged'
  ;   K[2]='GetState'
  ;   K[3]='ActivityState'
  ;   K[4]='Started'
  ;   K[5]='Ended'
  ;   K[6]='m_boardModel'
  ;   K[7]=nil
  ;   K[8]='_LoadBlockBoardModel'
  ;   K[9]='TryEnterNextRound'
  ;   K[10]='Destroy'
  ;   K[11]='event'
  ;   K[12]='Call'
  ;   K[13]='BlockActivityEventType'
  ;   K[14]='StateChanged'
  ;   K[15]='EventDispatcher'
  ;   K[16]='DispatchEvent'
  ;   K[17]='m_activityDefinition'
  ;   K[18]='StateChangedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-40), state(6-40)
  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('GetState')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  GETTABUP  R2 = _ENV[K3('ActivityState')]
  0007  GETTABLE  R2 = R2[K4('Started')]
  0008  EQ        if R1 eq R2   -> -130548
  0009  JMP       (jump)   -> 14
  0010  GETTABUP  R2 = _ENV[K3('ActivityState')]
  0011  GETTABLE  R2 = R2[K5('Ended')]
  0012  EQ        if R0 eq R2   -> -130544
  0013  JMP       (jump)   -> 22
  0014  GETTABLE  R2 = R0[K6('m_boardModel')]
  0015  EQ        if R0 eq K7(nil)   -> -129768
  0016  JMP       (jump)   -> 19
  0017  SELF      R3 = R0[K8('_LoadBlockBoardModel')] (self)
  0018  CALL      R2 = call(R2, 0 args, 1 rets)
  0019  SELF      R3 = R0[K9('TryEnterNextRound')] (self)
  0020  CALL      R2 = call(R2, 0 args, 1 rets)
  0021  JMP       (jump)   -> 29
  0022  GETTABLE  R2 = R0[K6('m_boardModel')]
  0023  EQ        if R1 eq K7(nil)   -> -129760
  0024  JMP       (jump)   -> 28
  0025  GETTABLE  R2 = R0[K6('m_boardModel')]
  0026  SELF      R3 = R2[K10('Destroy')] (self)
  0027  CALL      R2 = call(R2, 0 args, 1 rets)
  0028  SETTABLE  R0[K6('m_boardModel')] = K7(nil)
  0029  GETTABLE  R2 = R0[K11('event')]
  0030  SELF      R3 = R2[K12('Call')] (self)
  0031  GETTABUP  R4 = _ENV[K13('BlockActivityEventType')]
  0032  GETTABLE  R4 = R4[K14('StateChanged')]
  0033  CALL      R2 = call(R2, 0 args, 2 rets)
  0034  GETTABUP  R2 = _ENV[K15('EventDispatcher')]
  0035  GETTABLE  R2 = R2[K16('DispatchEvent')]
  0036  GETTABLE  R3 = R0[K17('m_activityDefinition')]
  0037  GETTABLE  R3 = R3[K18('StateChangedEvent')]
  0038  CALL      R2 = call(R2, 0 args, 1 rets)
  0039  RETURN    return R0..R-1
; ---------- proto17 [_DropData] ----------
  ; fn ?  line 156-166 np=1 va=0 ms=3 code=21 consts=9 upvals=1 protos=0
  ;   K[0]='BaseActivityModel'
  ;   K[1]='_DropData'
  ;   K[2]='m_boardModel'
  ;   K[3]=nil
  ;   K[4]='Destroy'
  ;   K[5]='DropData'
  ;   K[6]='m_boardDataTable'
  ;   K[7]='Drop'
  ;   K[8]='ResetLackBlockTokenTrigger'
  ;   upvals: _ENV
  ;   locals: self(0-21)
  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  GETTABLE  R1 = R0[K2('m_boardModel')]
  0005  EQ        if R1 eq K3(nil)   -> -130294
  0006  JMP       (jump)   -> 15
  0007  GETTABLE  R1 = R0[K2('m_boardModel')]
  0008  SELF      R2 = R1[K4('Destroy')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  GETTABLE  R1 = R0[K2('m_boardModel')]
  0011  SELF      R2 = R1[K5('DropData')] (self)
  0012  CALL      R1 = call(R1, 0 args, 1 rets)
  0013  SETTABLE  R0[K2('m_boardModel')] = K3(nil)
  0014  JMP       (jump)   -> 18
  0015  GETTABLE  R1 = R0[K6('m_boardDataTable')]
  0016  SELF      R2 = R1[K7('Drop')] (self)
  0017  CALL      R1 = call(R1, 0 args, 1 rets)
  0018  SELF      R2 = R0[K8('ResetLackBlockTokenTrigger')] (self)
  0019  CALL      R1 = call(R1, 0 args, 1 rets)
  0020  RETURN    return R0..R-1
; ---------- proto18 [ResetLackBlockTokenTrigger] ----------
  ; fn ?  line 170-172 np=1 va=0 ms=2 code=2 consts=2 upvals=0 protos=0
  ;   K[0]='m_bTriggerLackToken'
  ;   K[1]=false
  ;   locals: self(0-2)
  0000  SETTABLE  R0[K0('m_bTriggerLackToken')] = K1(false)
  0001  RETURN    return R0..R-1
; ---------- proto19 [TryTriggerLackBlockToken] ----------
  ; fn ?  line 174-179 np=1 va=0 ms=8 code=14 consts=7 upvals=1 protos=0
  ;   K[0]='m_bTriggerLackToken'
  ;   K[1]='ResetLackBlockTokenTrigger'
  ;   K[2]='GM'
  ;   K[3]='BundleManager'
  ;   K[4]='TryStartBundlePopupChain'
  ;   K[5]='EBundleTriggerType'
  ;   K[6]='LackBlockToken'
  ;   upvals: _ENV
  ;   locals: self(0-14)
  0000  GETTABLE  R1 = R0[K0('m_bTriggerLackToken')]
  0001  TEST      if not R1 then   -> -131069
  0002  JMP       (jump)   -> 13
  0003  SELF      R2 = R0[K1('ResetLackBlockTokenTrigger')] (self)
  0004  CALL      R1 = call(R1, 0 args, 1 rets)
  0005  GETTABUP  R1 = _ENV[K2('GM')]
  0006  GETTABLE  R1 = R1[K3('BundleManager')]
  0007  SELF      R2 = R1[K4('TryStartBundlePopupChain')] (self)
  0008  GETTABUP  R3 = _ENV[K5('EBundleTriggerType')]
  0009  GETTABLE  R3 = R3[K6('LackBlockToken')]
  0010  LOADNIL   R4..R4 = nil
  0011  LOADBOOL  R7 = true
  0012  CALL      R1 = call(R1, 0 args, 6 rets)
  0013  RETURN    return R0..R-1
; ---------- proto20 [OnLackBlockToken] ----------
  ; fn ?  line 181-187 np=1 va=0 ms=8 code=19 consts=11 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   K[2]='HasAddToken'
  ;   K[3]='value'
  ;   K[4]=1
  ;   K[5]='ResetLackBlockTokenTrigger'
  ;   K[6]='GM'
  ;   K[7]='BundleManager'
  ;   K[8]='TryStartBundlePopupChain'
  ;   K[9]='EBundleTriggerType'
  ;   K[10]='LackBlockToken'
  ;   upvals: DBKey, _ENV
  ;   locals: self(0-19)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('GetValue')] (self)
  0002  GETTABUP  R3 = DBKey[K2('HasAddToken')]
  0003  LOADK     R4 = K3 'value'
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  EQ        if R0 eq K4(1)   -> -130293
  0006  JMP       (jump)   -> 18
  0007  SELF      R2 = R0[K5('ResetLackBlockTokenTrigger')] (self)
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  GETTABUP  R1 = _ENV[K6('GM')]
  0010  GETTABLE  R1 = R1[K7('BundleManager')]
  0011  SELF      R2 = R1[K8('TryStartBundlePopupChain')] (self)
  0012  GETTABUP  R3 = _ENV[K9('EBundleTriggerType')]
  0013  GETTABLE  R3 = R3[K10('LackBlockToken')]
  0014  LOADNIL   R4..R4 = nil
  0015  LOADBOOL  R7 = true
  0016  TAILCALL  tailcall(R1, 0)
  0017  RETURN    return R1..R0
  0018  RETURN    return R0..R-1
; ---------- proto21 [_LoadBoardFileConfigs] ----------
  ; fn ?  line 194-207 np=1 va=0 ms=9 code=25 consts=10 upvals=1 protos=0
  ;   K[0]='m_arrItemConfig'
  ;   K[1]='require'
  ;   K[2]='Data.Config.BlockItemConfig'
  ;   K[3]='Data.Config.BlockBoardConfig'
  ;   K[4]='m_defaultBoardConfig'
  ;   K[5]=nil
  ;   K[6]='m_mapId2BoardConfig'
  ;   K[7]='ipairs'
  ;   K[8]='id'
  ;   K[9]='m_arrBoardConfig'
  ;   upvals: _ENV
  ;   locals: self(0-25), arrBoardConfig(7-25), (for generator)(13-23), (for state)(13-23), (for control)(13-23), _(14-21), boardConfig(14-21)
  0000  GETTABUP  R1 = _ENV[K1('require')]
  0001  LOADK     R2 = K2 'Data.Config.BlockItemConfig'
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  SETTABLE  R0[K0('m_arrItemConfig')] = R1
  0004  GETTABUP  R1 = _ENV[K1('require')]
  0005  LOADK     R2 = K3 'Data.Config.BlockBoardConfig'
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  SETTABLE  R0[K4('m_defaultBoardConfig')] = K5(nil)
  0008  NEWTABLE  R2 = {} (0 items)
  0009  SETTABLE  R0[K6('m_mapId2BoardConfig')] = R2
  0010  GETTABUP  R2 = _ENV[K7('ipairs')]
  0011  MOVE      R3 = R0
  0012  CALL      R2 = call(R2, 3 args, 1 rets)
  0013  JMP       (jump)   -> 21
  0014  GETTABLE  R7 = R0[K4('m_defaultBoardConfig')]
  0015  EQ        if R0 eq K5(nil)   -> -127210
  0016  JMP       (jump)   -> 18
  0017  SETTABLE  R0[K4('m_defaultBoardConfig')] = R6
  0018  GETTABLE  R7 = R0[K6('m_mapId2BoardConfig')]
  0019  GETTABLE  R8 = R6[K8('id')]
  0020  SETTABLE  R7[R8] = R6
  0021  TFORCALL  tforcall R2
  0022  TFORLOOP  tforloop R4(sBx=-9)   -> 14
  0023  SETTABLE  R0[K9('m_arrBoardConfig')] = R1
  0024  RETURN    return R0..R-1
; ---------- proto22 [_LoadBoardServerConfigs] ----------
  ; fn ?  line 209-219 np=2 va=0 ms=11 code=23 consts=8 upvals=1 protos=0
  ;   K[0]='digLevelConfig'
  ;   K[1]='m_roundConfigs'
  ;   K[2]='m_maxRound'
  ;   K[3]=1
  ;   K[4]='ipairs'
  ;   K[5]='round'
  ;   K[6]='math'
  ;   K[7]='max'
  ;   upvals: _ENV
  ;   locals: self(0-23), config(0-23), arrLevelConfigs(4-23), (for generator)(10-22), (for state)(10-22), (for control)(10-22), _(11-20), config(11-20)
  0000  GETTABLE  R2 = R1[K0('digLevelConfig')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  NEWTABLE  R2 = {} (0 items)
  0004  NEWTABLE  R3 = {} (0 items)
  0005  SETTABLE  R0[K1('m_roundConfigs')] = R3
  0006  SETTABLE  R0[K2('m_maxRound')] = K3(1)
  0007  GETTABUP  R3 = _ENV[K4('ipairs')]
  0008  MOVE      R4 = R0
  0009  CALL      R3 = call(R3, 3 args, 1 rets)
  0010  JMP       (jump)   -> 20
  0011  GETTABLE  R8 = R0[K1('m_roundConfigs')]
  0012  GETTABLE  R9 = R7[K5('round')]
  0013  SETTABLE  R8[R9] = R7
  0014  GETTABUP  R8 = _ENV[K6('math')]
  0015  GETTABLE  R8 = R8[K7('max')]
  0016  GETTABLE  R9 = R0[K2('m_maxRound')]
  0017  GETTABLE  R10 = R7[K5('round')]
  0018  CALL      R8 = call(R8, 1 args, 2 rets)
  0019  SETTABLE  R0[K2('m_maxRound')] = R8
  0020  TFORCALL  tforcall R3
  0021  TFORLOOP  tforloop R5(sBx=-11)   -> 11
  0022  RETURN    return R0..R-1
; ---------- proto23 [_LoadBlockBoardModel] ----------
  ; fn ?  line 221-248 np=1 va=0 ms=9 code=62 consts=23 upvals=2 protos=0
  ;   K[0]='GetRoundConfig'
  ;   K[1]=nil
  ;   K[2]='m_defaultBoardConfig'
  ;   K[3]='GM'
  ;   K[4]='TutorialModel'
  ;   K[5]='IsTutorialFinished'
  ;   K[6]='ETutorialId'
  ;   K[7]='BlockStart'
  ;   K[8]='m_mapId2BoardConfig'
  ;   K[9]='m_boardDataTable'
  ;   K[10]='IsEmpty'
  ;   K[11]='Table'
  ;   K[12]='pool'
  ;   K[13]='ListRandomSelectOne'
  ;   K[14]='Log'
  ;   K[15]='Error'
  ;   K[16]='棋盘Id不存在, 使用默认棋盘: '
  ;   K[17]='BlockBoardModel'
  ;   K[18]='Create'
  ;   K[19]='m_arrItemConfig'
  ;   K[20]='m_activityDefinition'
  ;   K[21]='ActivityTokenPropertyType'
  ;   K[22]='m_boardModel'
  ;   upvals: _ENV, tutorialBoardId
  ;   locals: self(0-62), roundConfig(2-62), boardConfig(6-62), boardId(38-51), boardModel(60-62)
  0000  SELF      R2 = R0[K0('GetRoundConfig')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  EQ        if R0 eq K1(nil)   -> -130299
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABLE  R2 = R0[K2('m_defaultBoardConfig')]
  0006  GETTABUP  R3 = _ENV[K3('GM')]
  0007  GETTABLE  R3 = R3[K4('TutorialModel')]
  0008  SELF      R4 = R3[K5('IsTutorialFinished')] (self)
  0009  GETTABUP  R5 = _ENV[K6('ETutorialId')]
  0010  GETTABLE  R5 = R5[K7('BlockStart')]
  0011  CALL      R3 = call(R3, 1 args, 2 rets)
  0012  TEST      if not R3 then   -> -131057
  0013  JMP       (jump)   -> 23
  0014  GETTABLE  R3 = R0[K8('m_mapId2BoardConfig')]
  0015  GETUPVAL  R4 = _ENV
  0016  GETTABLE  R3 = R3[R4]
  0017  EQ        if R1 eq K1(nil)   -> -129260
  0018  JMP       (jump)   -> 23
  0019  GETTABLE  R3 = R0[K8('m_mapId2BoardConfig')]
  0020  GETUPVAL  R4 = _ENV
  0021  GETTABLE  R2 = R3[R4]
  0022  JMP       (jump)   -> 51
  0023  GETTABLE  R3 = R0[K9('m_boardDataTable')]
  0024  SELF      R4 = R3[K10('IsEmpty')] (self)
  0025  CALL      R3 = call(R3, 1 args, 1 rets)
  0026  TEST      if not R3 then   -> -131044
  0027  JMP       (jump)   -> 51
  0028  GETTABUP  R3 = _ENV[K11('Table')]
  0029  GETTABLE  R3 = R3[K10('IsEmpty')]
  0030  GETTABLE  R4 = R1[K12('pool')]
  0031  CALL      R3 = call(R3, 1 args, 1 rets)
  0032  TEST      if not R3 then   -> -131037
  0033  JMP       (jump)   -> 51
  0034  GETTABUP  R3 = _ENV[K11('Table')]
  0035  GETTABLE  R3 = R3[K13('ListRandomSelectOne')]
  0036  GETTABLE  R4 = R1[K12('pool')]
  0037  CALL      R3 = call(R3, 1 args, 1 rets)
  0038  GETTABLE  R4 = R0[K8('m_mapId2BoardConfig')]
  0039  GETTABLE  R4 = R4[R3]
  0040  EQ        if R1 eq K1(nil)   -> -128725
  0041  JMP       (jump)   -> 45
  0042  GETTABLE  R4 = R0[K8('m_mapId2BoardConfig')]
  0043  GETTABLE  R2 = R4[R3]
  0044  JMP       (jump)   -> 51
  0045  GETTABUP  R4 = _ENV[K14('Log')]
  0046  GETTABLE  R4 = R4[K15('Error')]
  0047  LOADK     R5 = K16 '棋盘Id不存在, 使用默认棋盘: '
  0048  MOVE      R6 = R0
  0049  CONCAT    R5 = concat(R5..R5)
  0050  CALL      R4 = call(R4, 0 args, 1 rets)
  0051  GETTABUP  R3 = _ENV[K17('BlockBoardModel')]
  0052  GETTABLE  R3 = R3[K18('Create')]
  0053  GETTABLE  R4 = R0[K9('m_boardDataTable')]
  0054  MOVE      R5 = R0
  0055  GETTABLE  R6 = R0[K19('m_arrItemConfig')]
  0056  MOVE      R7 = R0
  0057  GETTABLE  R8 = R0[K20('m_activityDefinition')]
  0058  GETTABLE  R8 = R8[K21('ActivityTokenPropertyType')]
  0059  CALL      R3 = call(R3, 1 args, 5 rets)
  0060  SETTABLE  R0[K22('m_boardModel')] = R3
  0061  RETURN    return R0..R-1
; ---------- proto24 [GetBoardModel] ----------
  ; fn ?  line 250-252 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto25 [GetButtonTarget] ----------
  ; fn ?  line 254-279 np=1 va=0 ms=13 code=69 consts=22 upvals=1 protos=0
  ;   K[0]='pairs'
  ;   K[1]='BlockActivityDefinition'
  ;   K[2]='ActivityTokenPropertyType'
  ;   K[3]='GM'
  ;   K[4]='UIManager'
  ;   K[5]='GetOpenedViewByName'
  ;   K[6]='MainWindowPrefabName'
  ;   K[7]=nil
  ;   K[8]='GetHudButton'
  ;   K[9]='UIUtil'
  ;   K[10]='IsEmptyComponent'
  ;   K[11]='SceneManager'
  ;   K[12]='GetGameMode'
  ;   K[13]='EGameMode'
  ;   K[14]='Board'
  ;   K[15]='MainBoardView'
  ;   K[16]='GetInstance'
  ;   K[17]='GetOrderArea'
  ;   K[18]='GetIconAreaByActivityType'
  ;   K[19]='Main'
  ;   K[20]='TutorialHelper'
  ;   K[21]='EntryButtonKey'
  ;   upvals: _ENV
  ;   locals: propertyType(0-69), mainWindow(1-69), btn(1-69), boardView(1-69), orderArea(1-69), (for generator)(4-66), (for state)(4-66), (for control)(4-66), activityType(5-64), activityDefinition(5-64)
  0000  LOADNIL   R1..R1 = nil
  0001  GETTABUP  R5 = _ENV[K0('pairs')]
  0002  GETTABUP  R6 = _ENV[K1('BlockActivityDefinition')]
  0003  CALL      R5 = call(R5, 3 args, 1 rets)
  0004  JMP       (jump)   -> 64
  0005  GETTABLE  R10 = R9[K2('ActivityTokenPropertyType')]
  0006  EQ        if R0 eq R10   -> -131054
  0007  JMP       (jump)   -> 64
  0008  GETTABUP  R10 = _ENV[K3('GM')]
  0009  GETTABLE  R10 = R10[K4('UIManager')]
  0010  SELF      R11 = R10[K5('GetOpenedViewByName')] (self)
  0011  GETTABLE  R12 = R9[K6('MainWindowPrefabName')]
  0012  CALL      R10 = call(R10, 1 args, 2 rets)
  0013  MOVE      R1 = R0
  0014  EQ        if R1 eq K7(nil)   -> -130281
  0015  JMP       (jump)   -> 27
  0016  SELF      R11 = R1[K8('GetHudButton')] (self)
  0017  CALL      R10 = call(R10, 1 args, 1 rets)
  0018  MOVE      R2 = R0
  0019  GETTABUP  R10 = _ENV[K9('UIUtil')]
  0020  GETTABLE  R10 = R10[K10('IsEmptyComponent')]
  0021  MOVE      R11 = R0
  0022  CALL      R10 = call(R10, 1 args, 1 rets)
  0023  TEST      if not R10 then   -> -131046
  0024  JMP       (jump)   -> 64
  0025  RETURN    return R2..R1
  0026  JMP       (jump)   -> 64
  0027  GETTABUP  R10 = _ENV[K3('GM')]
  0028  GETTABLE  R10 = R10[K11('SceneManager')]
  0029  SELF      R11 = R10[K12('GetGameMode')] (self)
  0030  CALL      R10 = call(R10, 1 args, 1 rets)
  0031  GETTABUP  R11 = _ENV[K13('EGameMode')]
  0032  GETTABLE  R11 = R11[K14('Board')]
  0033  EQ        if R0 eq R11   -> -125906
  0034  JMP       (jump)   -> 51
  0035  GETTABUP  R10 = _ENV[K15('MainBoardView')]
  0036  GETTABLE  R10 = R10[K16('GetInstance')]
  0037  CALL      R10 = call(R10, 1 args, 0 rets)
  0038  MOVE      R3 = R0
  0039  EQ        if R1 eq K7(nil)   -> -129232
  0040  JMP       (jump)   -> 64
  0041  SELF      R11 = R3[K17('GetOrderArea')] (self)
  0042  CALL      R10 = call(R10, 1 args, 1 rets)
  0043  MOVE      R4 = R0
  0044  EQ        if R1 eq K7(nil)   -> -128715
  0045  JMP       (jump)   -> 64
  0046  SELF      R11 = R4[K18('GetIconAreaByActivityType')] (self)
  0047  MOVE      R12 = R0
  0048  TAILCALL  tailcall(R10, 0)
  0049  RETURN    return R10..R9
  0050  JMP       (jump)   -> 64
  0051  GETTABUP  R10 = _ENV[K3('GM')]
  0052  GETTABLE  R10 = R10[K11('SceneManager')]
  0053  SELF      R11 = R10[K12('GetGameMode')] (self)
  0054  CALL      R10 = call(R10, 1 args, 1 rets)
  0055  GETTABUP  R11 = _ENV[K13('EGameMode')]
  0056  GETTABLE  R11 = R11[K19('Main')]
  0057  EQ        if R0 eq R11   -> -125882
  0058  JMP       (jump)   -> 64
  0059  GETTABUP  R10 = _ENV[K20('TutorialHelper')]
  0060  GETTABLE  R10 = R10[K8('GetHudButton')]
  0061  GETTABLE  R11 = R9[K21('EntryButtonKey')]
  0062  TAILCALL  tailcall(R10, 0)
  0063  RETURN    return R10..R9
  0064  TFORCALL  tforcall R5
  0065  TFORLOOP  tforloop R7(sBx=-61)   -> 5
  0066  LOADNIL   R5..R5 = nil
  0067  RETURN    return R5..R4
  0068  RETURN    return R0..R-1
; ---------- proto26 [HasFinishedAllRound] ----------
  ; fn ?  line 286-288 np=1 va=0 ms=3 code=12 consts=3 upvals=0 protos=0
  ;   K[0]='GetRound'
  ;   K[1]='m_maxRound'
  ;   K[2]='HasFinishedCurRound'
  ;   locals: self(0-12)
  0000  SELF      R2 = R0[K0('GetRound')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R2 = R0[K1('m_maxRound')]
  0003  LE        if R0 le R1   -> -130042
  0004  JMP       (jump)   -> 8
  0005  SELF      R2 = R0[K2('HasFinishedCurRound')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  JMP       (jump)   -> 10
  0008  LOADBOOL  R1 = false
  0009  LOADBOOL  R1 = true
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto27 [HasFinishedCurRound] ----------
  ; fn ?  line 290-295 np=1 va=0 ms=3 code=10 consts=3 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]=nil
  ;   K[2]='HasFinishedCurRound'
  ;   locals: self(0-10)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  EQ        if R0 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 5
  0003  LOADBOOL  R1 = false
  0004  RETURN    return R1..R0
  0005  GETTABLE  R1 = R0[K0('m_boardModel')]
  0006  SELF      R2 = R1[K2('HasFinishedCurRound')] (self)
  0007  TAILCALL  tailcall(R1, 0)
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto28 [GetRoundConfig] ----------
  ; fn ?  line 297-300 np=2 va=0 ms=4 code=9 consts=2 upvals=0 protos=0
  ;   K[0]='GetRound'
  ;   K[1]='m_roundConfigs'
  ;   locals: self(0-9), round(0-9)
  0000  TEST      if not R1 then   -> -131069
  0001  JMP       (jump)   -> 5
  0002  SELF      R3 = R0[K0('GetRound')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  MOVE      R1 = R0
  0005  GETTABLE  R2 = R0[K1('m_roundConfigs')]
  0006  GETTABLE  R2 = R2[R1]
  0007  RETURN    return R2..R1
  0008  RETURN    return R0..R-1
; ---------- proto29 [GetRound] ----------
  ; fn ?  line 303-305 np=1 va=0 ms=5 code=10 consts=4 upvals=2 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   K[2]='Round'
  ;   K[3]=1
  ;   upvals: DBKey, Value
  ;   locals: self(0-10)
  0000  GETTABLE  R1 = R0[K0('m_dbTable')]
  0001  SELF      R2 = R1[K1('GetValue')] (self)
  0002  GETTABUP  R3 = DBKey[K2('Round')]
  0003  GETUPVAL  R4 = DBKey
  0004  CALL      R1 = call(R1, 1 args, 3 rets)
  0005  TEST      if not R1 then   -> -131064
  0006  JMP       (jump)   -> 8
  0007  LOADK     R1 = K3 1
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto30 [GetRoundRewards] ----------
  ; fn ?  line 307-314 np=2 va=0 ms=5 code=10 consts=3 upvals=0 protos=0
  ;   K[0]='GetRoundConfig'
  ;   K[1]=nil
  ;   K[2]='rewards'
  ;   locals: self(0-10), round(0-10), config(3-10)
  0000  SELF      R3 = R0[K0('GetRoundConfig')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  EQ        if R1 eq K1(nil)   -> -129786
  0004  JMP       (jump)   -> 7
  0005  GETTABLE  R3 = R2[K2('rewards')]
  0006  RETURN    return R3..R2
  0007  NEWTABLE  R3 = {} (0 items)
  0008  RETURN    return R3..R2
  0009  RETURN    return R0..R-1
; ---------- proto31 [GetMaxRound] ----------
  ; fn ?  line 316-318 np=1 va=0 ms=2 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='m_maxRound'
  ;   K[1]=1
  ;   locals: self(0-6)
  0000  GETTABLE  R1 = R0[K0('m_maxRound')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 4
  0003  LOADK     R1 = K1 1
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto32 [TryEnterNextRound] ----------
  ; fn ?  line 320-337 np=1 va=0 ms=7 code=30 consts=15 upvals=3 protos=0
  ;   K[0]='HasFinishedCurRound'
  ;   K[1]='HasFinishedAllRound'
  ;   K[2]='GetRound'
  ;   K[3]=1
  ;   K[4]='m_dbTable'
  ;   K[5]='Set'
  ;   K[6]='Round'
  ;   K[7]='m_boardModel'
  ;   K[8]='DropData'
  ;   K[9]=nil
  ;   K[10]='_LoadBlockBoardModel'
  ;   K[11]='EventDispatcher'
  ;   K[12]='DispatchEvent'
  ;   K[13]='EEventType'
  ;   K[14]='BlockEnterNextRound'
  ;   upvals: DBKey, Value, _ENV
  ;   locals: self(0-30), newRound(12-30)
  0000  SELF      R2 = R0[K0('HasFinishedCurRound')] (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('HasFinishedAllRound')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  TEST      if not R1 then   -> -131064
  0007  JMP       (jump)   -> 9
  0008  RETURN    return R0..R-1
  0009  SELF      R2 = R0[K2('GetRound')] (self)
  0010  CALL      R1 = call(R1, 1 args, 1 rets)
  0011  ADD       R1 = K3(1) add R1
  0012  GETTABLE  R2 = R0[K4('m_dbTable')]
  0013  SELF      R3 = R2[K5('Set')] (self)
  0014  GETTABUP  R4 = DBKey[K6('Round')]
  0015  GETUPVAL  R5 = DBKey
  0016  MOVE      R6 = R0
  0017  CALL      R2 = call(R2, 0 args, 4 rets)
  0018  GETTABLE  R2 = R0[K7('m_boardModel')]
  0019  SELF      R3 = R2[K8('DropData')] (self)
  0020  CALL      R2 = call(R2, 0 args, 1 rets)
  0021  SETTABLE  R0[K7('m_boardModel')] = K9(nil)
  0022  SELF      R3 = R0[K10('_LoadBlockBoardModel')] (self)
  0023  CALL      R2 = call(R2, 0 args, 1 rets)
  0024  GETTABUP  R2 = _ENV[K11('EventDispatcher')]
  0025  GETTABLE  R2 = R2[K12('DispatchEvent')]
  0026  GETTABUP  R3 = _ENV[K13('EEventType')]
  0027  GETTABLE  R3 = R3[K14('BlockEnterNextRound')]
  0028  CALL      R2 = call(R2, 0 args, 1 rets)
  0029  RETURN    return R0..R-1
; ---------- proto33 [GetScore] ----------
  ; fn ?  line 339-345 np=1 va=0 ms=3 code=9 consts=3 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]=nil
  ;   K[2]='GetScore'
  ;   locals: self(0-9)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  EQ        if R0 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R1 = R0[K0('m_boardModel')]
  0005  SELF      R2 = R1[K2('GetScore')] (self)
  0006  TAILCALL  tailcall(R1, 0)
  0007  RETURN    return R1..R0
  0008  RETURN    return R0..R-1
; ---------- proto34 [GetTargetScore] ----------
  ; fn ?  line 347-353 np=1 va=0 ms=3 code=9 consts=3 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]=nil
  ;   K[2]='GetTargetScore'
  ;   locals: self(0-9)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  EQ        if R0 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R1 = R0[K0('m_boardModel')]
  0005  SELF      R2 = R1[K2('GetTargetScore')] (self)
  0006  TAILCALL  tailcall(R1, 0)
  0007  RETURN    return R1..R0
  0008  RETURN    return R0..R-1
; ---------- proto35 [GetAllBoardConfigs] ----------
  ; fn ?  line 360-362 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_arrBoardConfig'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_arrBoardConfig')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto36 [GetBoardConfigById] ----------
  ; fn ?  line 364-366 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_mapId2BoardConfig'
  ;   locals: self(0-4), id(0-4)
  0000  GETTABLE  R2 = R0[K0('m_mapId2BoardConfig')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
