# BlockActivity_View_BlockMainWindow_1545.luac
; fn @BlockMainWindow.lua  line 0-0 np=0 va=1 ms=6 code=106 consts=42 upvals=1 protos=27
;   K[0]='BlockMainWindow'
;   K[1]='setmetatable'
;   K[2]='showWindowMask'
;   K[3]=false
;   K[4]='BlockActivityBaseWindow'
;   K[5]='__index'
;   K[6]='Init'
;   K[7]='OnDestroy'
;   K[8]='_OnLackBlockToken'
;   K[9]='OnStateChanged'
;   K[10]='UpdateRoundContent'
;   K[11]='FitScreen'
;   K[12]='UpdatePerSecond'
;   K[13]='_LoadBlockBoardView'
;   K[14]='GetBoardView'
;   K[15]='OnSliderClicked'
;   K[16]='_PlayBlockRoundAnim'
;   K[17]='RefreshBoardModel'
;   K[18]='PlayAcquireRewardsAnim'
;   K[19]='_PlayEnterNextRoundAnim'
;   K[20]='OnStartPlaceItem'
;   K[21]='OnEndPlaceItem'
;   K[22]='GetHudButton'
;   K[23]='OnTokenButtonClicked'
;   K[24]='idle_1'
;   K[25]='idle_2'
;   K[26]='idle_3'
;   K[27]='appear_1'
;   K[28]='appear_2'
;   K[29]='appear_3'
;   K[30]='appear_4'
;   K[31]='appear_1_1'
;   K[32]='appear_2_2'
;   K[33]='GetCurAnimIndex'
;   K[34]='OnAddScore'
;   K[35]='_InitSpineAnimation'
;   K[36]='_PlaySpineAnimation'
;   K[37]='OnTipBtnClick'
;   K[38]='OnCloseBtnClick'
;   K[39]='GetItemTutorialRect'
;   K[40]='GetBoardTutorialRect'
;   K[41]='GetProgressTutorialRect'
;   upvals: _ENV
;   locals: idleSpineName(68-106), appearSpineName(74-106), appearMiddleSpineName(78-106)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  SETTABLE  R1[K2('showWindowMask')] = K3(false)
0003  GETTABUP  R2 = _ENV[K4('BlockActivityBaseWindow')]
0004  CALL      R0 = call(R0, 1 args, 2 rets)
0005  SETTABUP  _ENV[K0('BlockMainWindow')] = R0
0006  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0007  GETTABUP  R1 = _ENV[K0('BlockMainWindow')]
0008  SETTABLE  R0[K5('__index')] = R1
0009  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0010  CLOSURE   R1 = closure proto0
0011  SETTABLE  R0[K6('Init')] = R1
0012  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0013  CLOSURE   R1 = closure proto1
0014  SETTABLE  R0[K7('OnDestroy')] = R1
0015  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0016  CLOSURE   R1 = closure proto2
0017  SETTABLE  R0[K8('_OnLackBlockToken')] = R1
0018  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0019  CLOSURE   R1 = closure proto3
0020  SETTABLE  R0[K9('OnStateChanged')] = R1
0021  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0022  CLOSURE   R1 = closure proto4
0023  SETTABLE  R0[K10('UpdateRoundContent')] = R1
0024  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0025  CLOSURE   R1 = closure proto5
0026  SETTABLE  R0[K11('FitScreen')] = R1
0027  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0028  CLOSURE   R1 = closure proto6
0029  SETTABLE  R0[K12('UpdatePerSecond')] = R1
0030  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0031  CLOSURE   R1 = closure proto7
0032  SETTABLE  R0[K13('_LoadBlockBoardView')] = R1
0033  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0034  CLOSURE   R1 = closure proto8
0035  SETTABLE  R0[K14('GetBoardView')] = R1
0036  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0037  CLOSURE   R1 = closure proto9
0038  SETTABLE  R0[K15('OnSliderClicked')] = R1
0039  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0040  CLOSURE   R1 = closure proto10
0041  SETTABLE  R0[K16('_PlayBlockRoundAnim')] = R1
0042  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0043  CLOSURE   R1 = closure proto11
0044  SETTABLE  R0[K17('RefreshBoardModel')] = R1
0045  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0046  CLOSURE   R1 = closure proto12
0047  SETTABLE  R0[K18('PlayAcquireRewardsAnim')] = R1
0048  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0049  CLOSURE   R1 = closure proto13
0050  SETTABLE  R0[K19('_PlayEnterNextRoundAnim')] = R1
0051  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0052  CLOSURE   R1 = closure proto14
0053  SETTABLE  R0[K20('OnStartPlaceItem')] = R1
0054  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0055  CLOSURE   R1 = closure proto15
0056  SETTABLE  R0[K21('OnEndPlaceItem')] = R1
0057  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0058  CLOSURE   R1 = closure proto16
0059  SETTABLE  R0[K22('GetHudButton')] = R1
0060  GETTABUP  R0 = _ENV[K0('BlockMainWindow')]
0061  CLOSURE   R1 = closure proto17
0062  SETTABLE  R0[K23('OnTokenButtonClicked')] = R1
0063  NEWTABLE  R0 = {} (3 items)
0064  LOADK     R1 = K24 'idle_1'
0065  LOADK     R2 = K25 'idle_2'
0066  LOADK     R3 = K26 'idle_3'
0067  SETLIST   setlist R0[B=1,C=3]
0068  NEWTABLE  R1 = {} (4 items)
0069  LOADK     R2 = K27 'appear_1'
0070  LOADK     R3 = K28 'appear_2'
0071  LOADK     R4 = K29 'appear_3'
0072  LOADK     R5 = K30 'appear_4'
0073  SETLIST   setlist R1[B=1,C=4]
0074  NEWTABLE  R2 = {} (2 items)
0075  LOADK     R3 = K31 'appear_1_1'
0076  LOADK     R4 = K32 'appear_2_2'
0077  SETLIST   setlist R2[B=1,C=2]
0078  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0079  CLOSURE   R4 = closure proto18
0080  SETTABLE  R3[K33('GetCurAnimIndex')] = R4
0081  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0082  CLOSURE   R4 = closure proto19
0083  SETTABLE  R3[K34('OnAddScore')] = R4
0084  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0085  CLOSURE   R4 = closure proto20
0086  SETTABLE  R3[K35('_InitSpineAnimation')] = R4
0087  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0088  CLOSURE   R4 = closure proto21
0089  SETTABLE  R3[K36('_PlaySpineAnimation')] = R4
0090  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0091  CLOSURE   R4 = closure proto22
0092  SETTABLE  R3[K37('OnTipBtnClick')] = R4
0093  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0094  CLOSURE   R4 = closure proto23
0095  SETTABLE  R3[K38('OnCloseBtnClick')] = R4
0096  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0097  CLOSURE   R4 = closure proto24
0098  SETTABLE  R3[K39('GetItemTutorialRect')] = R4
0099  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0100  CLOSURE   R4 = closure proto25
0101  SETTABLE  R3[K40('GetBoardTutorialRect')] = R4
0102  GETTABUP  R3 = _ENV[K0('BlockMainWindow')]
0103  CLOSURE   R4 = closure proto26
0104  SETTABLE  R3[K41('GetProgressTutorialRect')] = R4
0105  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 9-44 np=3 va=0 ms=10 code=105 consts=44 upvals=1 protos=0
  ;   K[0]='BlockActivityBaseWindow'
  ;   K[1]='Init'
  ;   K[2]='m_model'
  ;   K[3]='TryEnterNextRound'
  ;   K[4]='m_boardModel'
  ;   K[5]='GetBoardModel'
  ;   K[6]='UIUtil'
  ;   K[7]='SetActive'
  ;   K[8]='m_blockBoardViewGo'
  ;   K[9]='_LoadBlockBoardView'
  ;   K[10]='m_blockSlider'
  ;   K[11]='m_blockBoardView'
  ;   K[12]='GetBlockSlider'
  ;   K[13]='FitScreen'
  ;   K[14]='m_tokenHudButton'
  ;   K[15]='_InitSpineAnimation'
  ;   K[16]='EventDispatcher'
  ;   K[17]='AddListener'
  ;   K[18]='EEventType'
  ;   K[19]='PlayBlockRoundAnim'
  ;   K[20]='_PlayBlockRoundAnim'
  ;   K[21]='BlockStartPlaceItem'
  ;   K[22]='OnStartPlaceItem'
  ;   K[23]='BlockEndPlaceItem'
  ;   K[24]='OnEndPlaceItem'
  ;   K[25]='BlockBoardAddScore'
  ;   K[26]='OnAddScore'
  ;   K[27]='LackBlockToken'
  ;   K[28]='_OnLackBlockToken'
  ;   K[29]='IsEmptyComponent'
  ;   K[30]='m_activityBundleEntryRoot'
  ;   K[31]='TryTriggerLackBlockToken'
  ;   K[32]='UpdatePerSecond'
  ;   K[33]='GetState'
  ;   K[34]='ActivityState'
  ;   K[35]='Ended'
  ;   K[36]='GM'
  ;   K[37]='UIManager'
  ;   K[38]='ShowPrompt'
  ;   K[39]='GameTextModel'
  ;   K[40]='GetText'
  ;   K[41]='block_event_endwindow_tip'
  ;   K[42]='m_activityDefinition'
  ;   K[43]='ActivityTokenIconName'
  ;   upvals: _ENV
  ;   locals: self(0-105), activityType(0-105), bUserClick(0-105)
  0000  GETTABUP  R3 = _ENV[K0('BlockActivityBaseWindow')]
  0001  GETTABLE  R3 = R3[K1('Init')]
  0002  MOVE      R4 = R0
  0003  MOVE      R5 = R0
  0004  MOVE      R6 = R0
  0005  CALL      R3 = call(R3, 0 args, 3 rets)
  0006  GETTABLE  R3 = R0[K2('m_model')]
  0007  SELF      R4 = R3[K3('TryEnterNextRound')] (self)
  0008  CALL      R3 = call(R3, 0 args, 1 rets)
  0009  GETTABLE  R3 = R0[K2('m_model')]
  0010  SELF      R4 = R3[K5('GetBoardModel')] (self)
  0011  CALL      R3 = call(R3, 1 args, 1 rets)
  0012  SETTABLE  R0[K4('m_boardModel')] = R3
  0013  GETTABUP  R3 = _ENV[K6('UIUtil')]
  0014  GETTABLE  R3 = R3[K7('SetActive')]
  0015  GETTABLE  R4 = R0[K8('m_blockBoardViewGo')]
  0016  LOADBOOL  R5 = false
  0017  CALL      R3 = call(R3, 0 args, 2 rets)
  0018  SELF      R4 = R0[K9('_LoadBlockBoardView')] (self)
  0019  CALL      R3 = call(R3, 0 args, 1 rets)
  0020  GETTABLE  R3 = R0[K11('m_blockBoardView')]
  0021  SELF      R4 = R3[K12('GetBlockSlider')] (self)
  0022  CALL      R3 = call(R3, 1 args, 1 rets)
  0023  SETTABLE  R0[K10('m_blockSlider')] = R3
  0024  SELF      R4 = R0[K13('FitScreen')] (self)
  0025  CALL      R3 = call(R3, 0 args, 1 rets)
  0026  GETTABLE  R3 = R0[K14('m_tokenHudButton')]
  0027  SELF      R4 = R3[K1('Init')] (self)
  0028  GETTABLE  R5 = R0[K2('m_model')]
  0029  CALL      R3 = call(R3, 0 args, 2 rets)
  0030  SELF      R4 = R0[K15('_InitSpineAnimation')] (self)
  0031  CALL      R3 = call(R3, 0 args, 1 rets)
  0032  GETTABUP  R3 = _ENV[K16('EventDispatcher')]
  0033  GETTABLE  R3 = R3[K17('AddListener')]
  0034  GETTABUP  R4 = _ENV[K18('EEventType')]
  0035  GETTABLE  R4 = R4[K19('PlayBlockRoundAnim')]
  0036  MOVE      R5 = R0
  0037  GETTABLE  R6 = R0[K20('_PlayBlockRoundAnim')]
  0038  CALL      R3 = call(R3, 0 args, 3 rets)
  0039  GETTABUP  R3 = _ENV[K16('EventDispatcher')]
  0040  GETTABLE  R3 = R3[K17('AddListener')]
  0041  GETTABUP  R4 = _ENV[K18('EEventType')]
  0042  GETTABLE  R4 = R4[K21('BlockStartPlaceItem')]
  0043  MOVE      R5 = R0
  0044  GETTABLE  R6 = R0[K22('OnStartPlaceItem')]
  0045  CALL      R3 = call(R3, 0 args, 3 rets)
  0046  GETTABUP  R3 = _ENV[K16('EventDispatcher')]
  0047  GETTABLE  R3 = R3[K17('AddListener')]
  0048  GETTABUP  R4 = _ENV[K18('EEventType')]
  0049  GETTABLE  R4 = R4[K23('BlockEndPlaceItem')]
  0050  MOVE      R5 = R0
  0051  GETTABLE  R6 = R0[K24('OnEndPlaceItem')]
  0052  CALL      R3 = call(R3, 0 args, 3 rets)
  0053  GETTABUP  R3 = _ENV[K16('EventDispatcher')]
  0054  GETTABLE  R3 = R3[K17('AddListener')]
  0055  GETTABUP  R4 = _ENV[K18('EEventType')]
  0056  GETTABLE  R4 = R4[K25('BlockBoardAddScore')]
  0057  MOVE      R5 = R0
  0058  GETTABLE  R6 = R0[K26('OnAddScore')]
  0059  CALL      R3 = call(R3, 0 args, 3 rets)
  0060  GETTABUP  R3 = _ENV[K16('EventDispatcher')]
  0061  GETTABLE  R3 = R3[K17('AddListener')]
  0062  GETTABUP  R4 = _ENV[K18('EEventType')]
  0063  GETTABLE  R4 = R4[K27('LackBlockToken')]
  0064  MOVE      R5 = R0
  0065  GETTABLE  R6 = R0[K28('_OnLackBlockToken')]
  0066  CALL      R3 = call(R3, 0 args, 3 rets)
  0067  GETTABUP  R3 = _ENV[K6('UIUtil')]
  0068  GETTABLE  R3 = R3[K29('IsEmptyComponent')]
  0069  GETTABLE  R4 = R0[K30('m_activityBundleEntryRoot')]
  0070  CALL      R3 = call(R3, 1 args, 1 rets)
  0071  TEST      if not R3 then   -> -130998
  0072  JMP       (jump)   -> 77
  0073  GETTABLE  R3 = R0[K30('m_activityBundleEntryRoot')]
  0074  SELF      R4 = R3[K1('Init')] (self)
  0075  MOVE      R5 = R0
  0076  CALL      R3 = call(R3, 0 args, 2 rets)
  0077  GETTABLE  R3 = R0[K2('m_model')]
  0078  SELF      R4 = R3[K31('TryTriggerLackBlockToken')] (self)
  0079  CALL      R3 = call(R3, 0 args, 1 rets)
  0080  SELF      R4 = R0[K32('UpdatePerSecond')] (self)
  0081  CALL      R3 = call(R3, 0 args, 1 rets)
  0082  GETTABLE  R3 = R0[K2('m_model')]
  0083  SELF      R4 = R3[K33('GetState')] (self)
  0084  CALL      R3 = call(R3, 1 args, 1 rets)
  0085  GETTABUP  R4 = _ENV[K34('ActivityState')]
  0086  GETTABLE  R4 = R4[K35('Ended')]
  0087  EQ        if R0 eq R4   -> -129443
  0088  JMP       (jump)   -> 104
  0089  GETTABUP  R3 = _ENV[K36('GM')]
  0090  GETTABLE  R3 = R3[K37('UIManager')]
  0091  SELF      R4 = R3[K38('ShowPrompt')] (self)
  0092  GETTABUP  R5 = _ENV[K36('GM')]
  0093  GETTABLE  R5 = R5[K39('GameTextModel')]
  0094  SELF      R6 = R5[K40('GetText')] (self)
  0095  LOADK     R7 = K41 'block_event_endwindow_tip'
  0096  GETTABLE  R8 = R0[K42('m_activityDefinition')]
  0097  GETTABLE  R8 = R8[K43('ActivityTokenIconName')]
  0098  GETTABLE  R9 = R0[K42('m_activityDefinition')]
  0099  GETTABLE  R9 = R9[K43('ActivityTokenIconName')]
  0100  CALL      R5 = call(R5, 1 args, 4 rets)
  0101  LOADNIL   R6..R6 = nil
  0102  LOADBOOL  R8 = true
  0103  CALL      R3 = call(R3, 0 args, 5 rets)
  0104  RETURN    return R0..R-1
; ---------- proto1 [OnDestroy] ----------
  ; fn ?  line 46-54 np=1 va=0 ms=4 code=17 consts=8 upvals=1 protos=0
  ;   K[0]='BaseWindow'
  ;   K[1]='OnDestroy'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='RemoveAllEventLocks'
  ;   K[5]='m_roundSeq'
  ;   K[6]=nil
  ;   K[7]='Kill'
  ;   upvals: _ENV
  ;   locals: self(0-17)
  0000  GETTABUP  R1 = _ENV[K0('BaseWindow')]
  0001  GETTABLE  R1 = R1[K1('OnDestroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('GM')]
  0005  GETTABLE  R1 = R1[K3('UIManager')]
  0006  SELF      R2 = R1[K4('RemoveAllEventLocks')] (self)
  0007  MOVE      R3 = R0
  0008  CALL      R1 = call(R1, 0 args, 2 rets)
  0009  GETTABLE  R1 = R0[K5('m_roundSeq')]
  0010  EQ        if R1 eq K6(nil)   -> -130286
  0011  JMP       (jump)   -> 16
  0012  GETTABLE  R1 = R0[K5('m_roundSeq')]
  0013  SELF      R2 = R1[K7('Kill')] (self)
  0014  CALL      R1 = call(R1, 0 args, 1 rets)
  0015  SETTABLE  R0[K5('m_roundSeq')] = K6(nil)
  0016  RETURN    return R0..R-1
; ---------- proto2 [_OnLackBlockToken] ----------
  ; fn ?  line 56-63 np=1 va=0 ms=9 code=22 consts=10 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]='OnLackBlockToken'
  ;   K[2]='m_activityDefinition'
  ;   K[3]='ActivityTokenIconName'
  ;   K[4]='GM'
  ;   K[5]='GameTextModel'
  ;   K[6]='GetText'
  ;   K[7]='block_event_lack_token'
  ;   K[8]='UIManager'
  ;   K[9]='ShowPrompt'
  ;   upvals: _ENV
  ;   locals: self(0-22), imgName(7-21), promptStr(14-21)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  SELF      R2 = R1[K1('OnLackBlockToken')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 21
  0005  GETTABLE  R1 = R0[K2('m_activityDefinition')]
  0006  GETTABLE  R1 = R1[K3('ActivityTokenIconName')]
  0007  GETTABUP  R2 = _ENV[K4('GM')]
  0008  GETTABLE  R2 = R2[K5('GameTextModel')]
  0009  SELF      R3 = R2[K6('GetText')] (self)
  0010  LOADK     R4 = K7 'block_event_lack_token'
  0011  MOVE      R5 = R0
  0012  MOVE      R6 = R0
  0013  CALL      R2 = call(R2, 1 args, 4 rets)
  0014  GETTABUP  R3 = _ENV[K4('GM')]
  0015  GETTABLE  R3 = R3[K8('UIManager')]
  0016  SELF      R4 = R3[K9('ShowPrompt')] (self)
  0017  MOVE      R5 = R0
  0018  LOADNIL   R6..R6 = nil
  0019  LOADBOOL  R8 = true
  0020  CALL      R3 = call(R3, 0 args, 5 rets)
  0021  RETURN    return R0..R-1
; ---------- proto3 [OnStateChanged] ----------
  ; fn ?  line 65-73 np=1 va=0 ms=3 code=18 consts=8 upvals=1 protos=0
  ;   K[0]='m_blockBoardView'
  ;   K[1]=nil
  ;   K[2]='IsPlayingRewardAnim'
  ;   K[3]='m_bPlayRewardAnim'
  ;   K[4]='m_bNeedClose'
  ;   K[5]=true
  ;   K[6]='BlockActivityBaseWindow'
  ;   K[7]='OnStateChanged'
  ;   upvals: _ENV
  ;   locals: self(0-18)
  0000  GETTABLE  R1 = R0[K0('m_blockBoardView')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 8
  0003  GETTABLE  R1 = R0[K0('m_blockBoardView')]
  0004  SELF      R2 = R1[K2('IsPlayingRewardAnim')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  TEST      if not R1 then   -> -131063
  0007  JMP       (jump)   -> 11
  0008  GETTABLE  R1 = R0[K3('m_bPlayRewardAnim')]
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 13
  0011  SETTABLE  R0[K4('m_bNeedClose')] = K5(true)
  0012  RETURN    return R0..R-1
  0013  GETTABUP  R1 = _ENV[K6('BlockActivityBaseWindow')]
  0014  GETTABLE  R1 = R1[K7('OnStateChanged')]
  0015  MOVE      R2 = R0
  0016  CALL      R1 = call(R1, 0 args, 1 rets)
  0017  RETURN    return R0..R-1
; ---------- proto4 [UpdateRoundContent] ----------
  ; fn ?  line 75-79 np=1 va=0 ms=9 code=16 consts=9 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]='GetRound'
  ;   K[2]='GetMaxRound'
  ;   K[3]='m_stageText'
  ;   K[4]='text'
  ;   K[5]='GM'
  ;   K[6]='GameTextModel'
  ;   K[7]='GetText'
  ;   K[8]='block_event_stage'
  ;   upvals: _ENV
  ;   locals: self(0-16), curRound(3-16), maxRound(6-16)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  SELF      R2 = R1[K1('GetRound')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  GETTABLE  R2 = R0[K0('m_model')]
  0004  SELF      R3 = R2[K2('GetMaxRound')] (self)
  0005  CALL      R2 = call(R2, 1 args, 1 rets)
  0006  GETTABLE  R3 = R0[K3('m_stageText')]
  0007  GETTABUP  R4 = _ENV[K5('GM')]
  0008  GETTABLE  R4 = R4[K6('GameTextModel')]
  0009  SELF      R5 = R4[K7('GetText')] (self)
  0010  LOADK     R6 = K8 'block_event_stage'
  0011  MOVE      R7 = R0
  0012  MOVE      R8 = R0
  0013  CALL      R4 = call(R4, 1 args, 4 rets)
  0014  SETTABLE  R3[K4('text')] = R4
  0015  RETURN    return R0..R-1
; ---------- proto5 [FitScreen] ----------
  ; fn ?  line 83-110 np=1 va=0 ms=13 code=35 consts=16 upvals=1 protos=0
  ;   K[0]='m_contentRect'
  ;   K[1]='sizeDelta'
  ;   K[2]='x'
  ;   K[3]='y'
  ;   K[4]='Screen'
  ;   K[5]='width'
  ;   K[6]='height'
  ;   K[7]='ScreenFitter'
  ;   K[8]='GetStandardRatio'
  ;   K[9]='UIUtil'
  ;   K[10]='SetLocalScale'
  ;   K[11]='m_scaleRootRect'
  ;   K[12]=3
  ;   K[13]='SetAnchoredPosition'
  ;   K[14]='m_bgRect'
  ;   K[15]='anchoredPosition'
  ;   upvals: _ENV
  ;   locals: self(0-35), windowSize(2-35), windowWidth(3-35), windowHeight(4-35), windowRatio(5-35), screenRatio(10-35), standardRatio(15-34), scale(16-34), deltaPosY(25-34)
  0000  GETTABLE  R1 = R0[K0('m_contentRect')]
  0001  GETTABLE  R1 = R1[K1('sizeDelta')]
  0002  GETTABLE  R2 = R1[K2('x')]
  0003  GETTABLE  R3 = R1[K3('y')]
  0004  DIV       R4 = R3 div R2
  0005  GETTABUP  R5 = _ENV[K4('Screen')]
  0006  GETTABLE  R5 = R5[K5('width')]
  0007  GETTABUP  R6 = _ENV[K4('Screen')]
  0008  GETTABLE  R6 = R6[K6('height')]
  0009  DIV       R5 = R6 div R5
  0010  LT        if R0 lt R5   -> -129007
  0011  JMP       (jump)   -> 34
  0012  GETTABUP  R6 = _ENV[K7('ScreenFitter')]
  0013  GETTABLE  R6 = R6[K8('GetStandardRatio')]
  0014  CALL      R6 = call(R6, 1 args, 0 rets)
  0015  DIV       R7 = R6 div R4
  0016  GETTABUP  R8 = _ENV[K9('UIUtil')]
  0017  GETTABLE  R8 = R8[K10('SetLocalScale')]
  0018  GETTABLE  R9 = R0[K11('m_scaleRootRect')]
  0019  MOVE      R10 = R0
  0020  MOVE      R11 = R0
  0021  CALL      R8 = call(R8, 0 args, 3 rets)
  0022  MUL       R8 = R7 mul R3
  0023  SUB       R8 = R3 sub R8
  0024  DIV       R8 = K12(3) div R8
  0025  GETTABUP  R9 = _ENV[K9('UIUtil')]
  0026  GETTABLE  R9 = R9[K13('SetAnchoredPosition')]
  0027  GETTABLE  R10 = R0[K14('m_bgRect')]
  0028  LOADNIL   R11..R11 = nil
  0029  GETTABLE  R12 = R0[K14('m_bgRect')]
  0030  GETTABLE  R12 = R12[K15('anchoredPosition')]
  0031  GETTABLE  R12 = R12[K3('y')]
  0032  ADD       R12 = R8 add R12
  0033  CALL      R9 = call(R9, 0 args, 3 rets)
  0034  RETURN    return R0..R-1
; ---------- proto6 [UpdatePerSecond] ----------
  ; fn ?  line 112-124 np=1 va=0 ms=9 code=42 consts=17 upvals=1 protos=0
  ;   K[0]='m_model'
  ;   K[1]=nil
  ;   K[2]='GetState'
  ;   K[3]='ActivityState'
  ;   K[4]='Ended'
  ;   K[5]='UIUtil'
  ;   K[6]='SetActive'
  ;   K[7]='m_countdownGo'
  ;   K[8]='GetNextStateTime'
  ;   K[9]='GM'
  ;   K[10]='GameModel'
  ;   K[11]='GetServerTime'
  ;   K[12]='m_countdownText'
  ;   K[13]='text'
  ;   K[14]='TimeUtil'
  ;   K[15]='ParseTimeDescription'
  ;   K[16]=2
  ;   upvals: _ENV
  ;   locals: self(0-42), nextStateTime(22-41), delta(32-41)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 16
  0003  GETTABLE  R1 = R0[K0('m_model')]
  0004  SELF      R2 = R1[K2('GetState')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  GETTABUP  R2 = _ENV[K3('ActivityState')]
  0007  GETTABLE  R2 = R2[K4('Ended')]
  0008  EQ        if R0 eq R2   -> -130548
  0009  JMP       (jump)   -> 16
  0010  GETTABUP  R1 = _ENV[K5('UIUtil')]
  0011  GETTABLE  R1 = R1[K6('SetActive')]
  0012  GETTABLE  R2 = R0[K7('m_countdownGo')]
  0013  LOADBOOL  R3 = false
  0014  CALL      R1 = call(R1, 0 args, 2 rets)
  0015  RETURN    return R0..R-1
  0016  GETTABLE  R1 = R0[K0('m_model')]
  0017  EQ        if R1 eq K1(nil)   -> -130284
  0018  JMP       (jump)   -> 41
  0019  GETTABLE  R1 = R0[K0('m_model')]
  0020  SELF      R2 = R1[K8('GetNextStateTime')] (self)
  0021  CALL      R1 = call(R1, 1 args, 1 rets)
  0022  EQ        if R1 eq K1(nil)   -> -130279
  0023  JMP       (jump)   -> 41
  0024  GETTABLE  R2 = R0[K0('m_model')]
  0025  SELF      R3 = R2[K8('GetNextStateTime')] (self)
  0026  CALL      R2 = call(R2, 1 args, 1 rets)
  0027  GETTABUP  R3 = _ENV[K9('GM')]
  0028  GETTABLE  R3 = R3[K10('GameModel')]
  0029  SELF      R4 = R3[K11('GetServerTime')] (self)
  0030  CALL      R3 = call(R3, 1 args, 1 rets)
  0031  SUB       R2 = R3 sub R2
  0032  GETTABLE  R3 = R0[K12('m_countdownText')]
  0033  GETTABUP  R4 = _ENV[K14('TimeUtil')]
  0034  GETTABLE  R4 = R4[K15('ParseTimeDescription')]
  0035  MOVE      R5 = R0
  0036  LOADK     R6 = K16 2
  0037  LOADBOOL  R7 = false
  0038  LOADBOOL  R8 = false
  0039  CALL      R4 = call(R4, 1 args, 4 rets)
  0040  SETTABLE  R3[K13('text')] = R4
  0041  RETURN    return R0..R-1
; ---------- proto7 [_LoadBlockBoardView] ----------
  ; fn ?  line 126-134 np=1 va=0 ms=6 code=22 consts=12 upvals=1 protos=0
  ;   K[0]='m_blockBoardViewGo'
  ;   K[1]='GameObject'
  ;   K[2]='Instantiate'
  ;   K[3]='transform'
  ;   K[4]='parent'
  ;   K[5]='UIUtil'
  ;   K[6]='SetActive'
  ;   K[7]='m_blockBoardView'
  ;   K[8]='GetLuaTable'
  ;   K[9]='Init'
  ;   K[10]='m_boardModel'
  ;   K[11]='UpdateRoundContent'
  ;   upvals: _ENV
  ;   locals: self(0-22), prefab(1-22), go(7-22)
  0000  GETTABLE  R1 = R0[K0('m_blockBoardViewGo')]
  0001  GETTABUP  R2 = _ENV[K1('GameObject')]
  0002  GETTABLE  R2 = R2[K2('Instantiate')]
  0003  MOVE      R3 = R0
  0004  GETTABLE  R4 = R1[K3('transform')]
  0005  GETTABLE  R4 = R4[K4('parent')]
  0006  CALL      R2 = call(R2, 1 args, 2 rets)
  0007  GETTABUP  R3 = _ENV[K5('UIUtil')]
  0008  GETTABLE  R3 = R3[K6('SetActive')]
  0009  MOVE      R4 = R0
  0010  LOADBOOL  R5 = true
  0011  CALL      R3 = call(R3, 0 args, 2 rets)
  0012  SELF      R4 = R2[K8('GetLuaTable')] (self)
  0013  CALL      R3 = call(R3, 1 args, 1 rets)
  0014  SETTABLE  R0[K7('m_blockBoardView')] = R3
  0015  GETTABLE  R3 = R0[K7('m_blockBoardView')]
  0016  SELF      R4 = R3[K9('Init')] (self)
  0017  GETTABLE  R5 = R0[K10('m_boardModel')]
  0018  CALL      R3 = call(R3, 0 args, 2 rets)
  0019  SELF      R4 = R0[K11('UpdateRoundContent')] (self)
  0020  CALL      R3 = call(R3, 0 args, 1 rets)
  0021  RETURN    return R0..R-1
; ---------- proto8 [GetBoardView] ----------
  ; fn ?  line 136-138 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_blockBoardView'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_blockBoardView')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto9 [OnSliderClicked] ----------
  ; fn ?  line 140-142 np=1 va=0 ms=6 code=9 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='m_activityDefinition'
  ;   K[4]='RewardProgressWindowPrefabName'
  ;   K[5]='m_activityType'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABLE  R3 = R0[K3('m_activityDefinition')]
  0004  GETTABLE  R3 = R3[K4('RewardProgressWindowPrefabName')]
  0005  GETTABLE  R4 = R0[K5('m_activityType')]
  0006  LOADBOOL  R5 = true
  0007  CALL      R1 = call(R1, 0 args, 4 rets)
  0008  RETURN    return R0..R-1
; ---------- proto10 [_PlayBlockRoundAnim] ----------
  ; fn ?  line 144-229 np=2 va=0 ms=12 code=122 consts=47 upvals=1 protos=4
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='SetEventLock'
  ;   K[3]='m_bPlayRewardAnim'
  ;   K[4]=true
  ;   K[5]='m_model'
  ;   K[6]='HasFinishedAllRound'
  ;   K[7]='RefreshBoardModel'
  ;   K[8]='DOTween'
  ;   K[9]='Sequence'
  ;   K[10]='AppendInterval'
  ;   K[11]=2
  ;   K[12]='UIUtil'
  ;   K[13]='SetActive'
  ;   K[14]='m_spineProgressBoxGo'
  ;   K[15]=1
  ;   K[16]='m_spineRewardContent'
  ;   K[17]='gameObject'
  ;   K[18]='Init'
  ;   K[19]='ERewardScene'
  ;   K[20]='Other'
  ;   K[21]='m_rewardRootRect'
  ;   K[22]='position'
  ;   K[23]='AppendCallback'
  ;   K[24]=0.8
  ;   K[25]=0.4
  ;   K[26]='Append'
  ;   K[27]='DOScale'
  ;   K[28]='V3One'
  ;   K[29]=0.3
  ;   K[30]='Join'
  ;   K[31]='m_rewardRootCanvasGroup'
  ;   K[32]='DOFade'
  ;   K[33]=1
  ;   K[34]=0.2
  ;   K[35]='m_fadeNodeCanvasGroup'
  ;   K[36]=0
  ;   K[37]='m_bgRect'
  ;   K[38]='DOAnchorPosY'
  ;   K[39]=380
  ;   K[40]='SetEase'
  ;   K[41]='Ease'
  ;   K[42]='InOutSine'
  ;   K[43]='m_contentRect'
  ;   K[44]=-2000
  ;   K[45]=1.2
  ;   K[46]='m_roundSeq'
  ;   upvals: _ENV
  ;   locals: self(0-122), rewards(0-122), bFinished(10-122), seq(15-122), startPos(19-122), moveDuration(89-117)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('UIManager')]
  0002  SELF      R3 = R2[K2('SetEventLock')] (self)
  0003  LOADBOOL  R4 = true
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  SETTABLE  R0[K3('m_bPlayRewardAnim')] = K4(true)
  0007  GETTABLE  R2 = R0[K5('m_model')]
  0008  SELF      R3 = R2[K6('HasFinishedAllRound')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  SELF      R4 = R0[K7('RefreshBoardModel')] (self)
  0011  CALL      R3 = call(R3, 0 args, 1 rets)
  0012  GETTABUP  R3 = _ENV[K8('DOTween')]
  0013  GETTABLE  R3 = R3[K9('Sequence')]
  0014  CALL      R3 = call(R3, 1 args, 0 rets)
  0015  SELF      R5 = R3[K10('AppendInterval')] (self)
  0016  LOADK     R6 = K11 2
  0017  CALL      R4 = call(R4, 0 args, 2 rets)
  0018  LOADNIL   R4..R4 = nil
  0019  TEST      if not R2 then   -> -131050
  0020  JMP       (jump)   -> 81
  0021  GETTABUP  R5 = _ENV[K12('UIUtil')]
  0022  GETTABLE  R5 = R5[K13('SetActive')]
  0023  GETTABLE  R6 = R0[K14('m_spineProgressBoxGo')]
  0024  LEN       R7 = len R0
  0025  LT        if R1 lt R7   -> 7714
  0026  JMP       (jump)   -> 28
  0027  LOADBOOL  R7 = false
  0028  LOADBOOL  R7 = true
  0029  CALL      R5 = call(R5, 0 args, 2 rets)
  0030  GETTABUP  R5 = _ENV[K12('UIUtil')]
  0031  GETTABLE  R5 = R5[K13('SetActive')]
  0032  GETTABLE  R6 = R0[K16('m_spineRewardContent')]
  0033  GETTABLE  R6 = R6[K17('gameObject')]
  0034  LEN       R7 = len R0
  0035  EQ        if R1 eq K15(1)   -> -127180
  0036  JMP       (jump)   -> 38
  0037  LOADBOOL  R7 = false
  0038  LOADBOOL  R7 = true
  0039  CALL      R5 = call(R5, 0 args, 2 rets)
  0040  LEN       R5 = len R0
  0041  EQ        if R0 eq K15(1)   -> -128198
  0042  JMP       (jump)   -> 49
  0043  GETTABLE  R5 = R0[K16('m_spineRewardContent')]
  0044  SELF      R6 = R5[K18('Init')] (self)
  0045  MOVE      R7 = R0
  0046  GETTABUP  R8 = _ENV[K19('ERewardScene')]
  0047  GETTABLE  R8 = R8[K20('Other')]
  0048  CALL      R5 = call(R5, 0 args, 3 rets)
  0049  GETTABLE  R5 = R0[K21('m_rewardRootRect')]
  0050  GETTABLE  R4 = R5[K22('position')]
  0051  SELF      R6 = R3[K23('AppendCallback')] (self)
  0052  CLOSURE   R7 = closure proto0
  0053  CALL      R5 = call(R5, 0 args, 2 rets)
  0054  SELF      R6 = R3[K10('AppendInterval')] (self)
  0055  LOADK     R7 = K24 0.8
  0056  CALL      R5 = call(R5, 0 args, 2 rets)
  0057  SELF      R6 = R3[K23('AppendCallback')] (self)
  0058  CLOSURE   R7 = closure proto1
  0059  CALL      R5 = call(R5, 0 args, 2 rets)
  0060  SELF      R6 = R3[K10('AppendInterval')] (self)
  0061  LOADK     R7 = K25 0.4
  0062  CALL      R5 = call(R5, 0 args, 2 rets)
  0063  SELF      R6 = R3[K26('Append')] (self)
  0064  GETTABLE  R7 = R0[K21('m_rewardRootRect')]
  0065  SELF      R8 = R7[K27('DOScale')] (self)
  0066  GETTABUP  R9 = _ENV[K28('V3One')]
  0067  LOADK     R10 = K29 0.3
  0068  CALL      R7 = call(R7, -1 args, 3 rets)
  0069  CALL      R5 = call(R5, 0 args, -1 rets)
  0070  SELF      R6 = R3[K30('Join')] (self)
  0071  GETTABLE  R7 = R0[K31('m_rewardRootCanvasGroup')]
  0072  SELF      R8 = R7[K32('DOFade')] (self)
  0073  LOADK     R9 = K33 1
  0074  LOADK     R10 = K29 0.3
  0075  CALL      R7 = call(R7, -1 args, 3 rets)
  0076  CALL      R5 = call(R5, 0 args, -1 rets)
  0077  SELF      R6 = R3[K10('AppendInterval')] (self)
  0078  LOADK     R7 = K34 0.2
  0079  CALL      R5 = call(R5, 0 args, 2 rets)
  0080  JMP       (jump)   -> 117
  0081  SELF      R6 = R3[K26('Append')] (self)
  0082  GETTABLE  R7 = R0[K35('m_fadeNodeCanvasGroup')]
  0083  SELF      R8 = R7[K32('DOFade')] (self)
  0084  LOADK     R9 = K36 0
  0085  LOADK     R10 = K34 0.2
  0086  CALL      R7 = call(R7, -1 args, 3 rets)
  0087  CALL      R5 = call(R5, 0 args, -1 rets)
  0088  LOADK     R5 = K24 0.8
  0089  SELF      R7 = R3[K26('Append')] (self)
  0090  GETTABLE  R8 = R0[K37('m_bgRect')]
  0091  SELF      R9 = R8[K38('DOAnchorPosY')] (self)
  0092  LOADK     R10 = K39 380
  0093  MOVE      R11 = R0
  0094  CALL      R8 = call(R8, 1 args, 3 rets)
  0095  SELF      R9 = R8[K40('SetEase')] (self)
  0096  GETTABUP  R10 = _ENV[K41('Ease')]
  0097  GETTABLE  R10 = R10[K42('InOutSine')]
  0098  CALL      R8 = call(R8, -1 args, 2 rets)
  0099  CALL      R6 = call(R6, 0 args, -1 rets)
  0100  SELF      R7 = R3[K30('Join')] (self)
  0101  GETTABLE  R8 = R0[K43('m_contentRect')]
  0102  SELF      R9 = R8[K38('DOAnchorPosY')] (self)
  0103  LOADK     R10 = K44 -2000
  0104  MOVE      R11 = R0
  0105  CALL      R8 = call(R8, 1 args, 3 rets)
  0106  SELF      R9 = R8[K40('SetEase')] (self)
  0107  GETTABUP  R10 = _ENV[K41('Ease')]
  0108  GETTABLE  R10 = R10[K42('InOutSine')]
  0109  CALL      R8 = call(R8, -1 args, 2 rets)
  0110  CALL      R6 = call(R6, 0 args, -1 rets)
  0111  SELF      R7 = R3[K23('AppendCallback')] (self)
  0112  CLOSURE   R8 = closure proto2
  0113  CALL      R6 = call(R6, 0 args, 2 rets)
  0114  SELF      R7 = R3[K10('AppendInterval')] (self)
  0115  LOADK     R8 = K45 1.2
  0116  CALL      R6 = call(R6, 0 args, 2 rets)
  0117  SELF      R6 = R3[K23('AppendCallback')] (self)
  0118  CLOSURE   R7 = closure proto3
  0119  CALL      R5 = call(R5, 0 args, 2 rets)
  0120  SETTABLE  R0[K46('m_roundSeq')] = R3
  0121  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 163-169 np=0 va=0 ms=4 code=21 consts=14 upvals=2 protos=0
    ;   K[0]='m_spineAnim'
    ;   K[1]='SetTimeScale'
    ;   K[2]=1
    ;   K[3]='AddAnimation'
    ;   K[4]='appear_4'
    ;   K[5]='GM'
    ;   K[6]='AudioModel'
    ;   K[7]='PlayEffect'
    ;   K[8]='AudioFileConfigName'
    ;   K[9]='SfxBlockCandyMachine1'
    ;   K[10]='PlatformInterface'
    ;   K[11]='Vibrate'
    ;   K[12]='EVibrationType'
    ;   K[13]='Light'
    ;   upvals: self, _ENV
    0000  GETTABUP  R0 = self[K0('m_spineAnim')]
    0001  SELF      R1 = R0[K1('SetTimeScale')] (self)
    0002  LOADK     R2 = K2 1
    0003  CALL      R0 = call(R0, 0 args, 2 rets)
    0004  GETTABUP  R0 = self[K0('m_spineAnim')]
    0005  SELF      R1 = R0[K3('AddAnimation')] (self)
    0006  LOADK     R2 = K4 'appear_4'
    0007  LOADBOOL  R3 = false
    0008  CALL      R0 = call(R0, 0 args, 3 rets)
    0009  GETTABUP  R0 = _ENV[K5('GM')]
    0010  GETTABLE  R0 = R0[K6('AudioModel')]
    0011  SELF      R1 = R0[K7('PlayEffect')] (self)
    0012  GETTABUP  R2 = _ENV[K8('AudioFileConfigName')]
    0013  GETTABLE  R2 = R2[K9('SfxBlockCandyMachine1')]
    0014  CALL      R0 = call(R0, 0 args, 2 rets)
    0015  GETTABUP  R0 = _ENV[K10('PlatformInterface')]
    0016  GETTABLE  R0 = R0[K11('Vibrate')]
    0017  GETTABUP  R1 = _ENV[K12('EVibrationType')]
    0018  GETTABLE  R1 = R1[K13('Light')]
    0019  CALL      R0 = call(R0, 0 args, 1 rets)
    0020  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 171-175 np=0 va=0 ms=3 code=10 consts=7 upvals=2 protos=0
    ;   K[0]='m_rewardEffect'
    ;   K[1]='Play'
    ;   K[2]='GM'
    ;   K[3]='AudioModel'
    ;   K[4]='PlayEffect'
    ;   K[5]='AudioFileConfigName'
    ;   K[6]='SfxPkRaceActivityCakeComplete'
    ;   upvals: self, _ENV
    0000  GETTABUP  R0 = self[K0('m_rewardEffect')]
    0001  SELF      R1 = R0[K1('Play')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  GETTABUP  R0 = _ENV[K2('GM')]
    0004  GETTABLE  R0 = R0[K3('AudioModel')]
    0005  SELF      R1 = R0[K4('PlayEffect')] (self)
    0006  GETTABUP  R2 = _ENV[K5('AudioFileConfigName')]
    0007  GETTABLE  R2 = R2[K6('SfxPkRaceActivityCakeComplete')]
    0008  CALL      R0 = call(R0, 0 args, 2 rets)
    0009  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 188-199 np=0 va=0 ms=4 code=44 consts=23 upvals=2 protos=0
    ;   K[0]='m_spineAnim'
    ;   K[1]='SetTimeScale'
    ;   K[2]=1
    ;   K[3]='SetAnimation'
    ;   K[4]='appear_end'
    ;   K[5]='UIUtil'
    ;   K[6]='SetActive'
    ;   K[7]='m_spineAnim2'
    ;   K[8]='gameObject'
    ;   K[9]='m_bgShakeAnimator'
    ;   K[10]='enabled'
    ;   K[11]=true
    ;   K[12]='m_bgEffectGo1'
    ;   K[13]='m_bgEffectGo2'
    ;   K[14]='GM'
    ;   K[15]='AudioModel'
    ;   K[16]='PlayEffect'
    ;   K[17]='AudioFileConfigName'
    ;   K[18]='SfxBlockCandyMachine2'
    ;   K[19]='PlatformInterface'
    ;   K[20]='Vibrate'
    ;   K[21]='EVibrationType'
    ;   K[22]='Heavy'
    ;   upvals: self, _ENV
    0000  GETTABUP  R0 = self[K0('m_spineAnim')]
    0001  SELF      R1 = R0[K1('SetTimeScale')] (self)
    0002  LOADK     R2 = K2 1
    0003  CALL      R0 = call(R0, 0 args, 2 rets)
    0004  GETTABUP  R0 = self[K0('m_spineAnim')]
    0005  SELF      R1 = R0[K3('SetAnimation')] (self)
    0006  LOADK     R2 = K4 'appear_end'
    0007  LOADBOOL  R3 = false
    0008  CALL      R0 = call(R0, 0 args, 3 rets)
    0009  GETTABUP  R0 = _ENV[K5('UIUtil')]
    0010  GETTABLE  R0 = R0[K6('SetActive')]
    0011  GETTABUP  R1 = self[K7('m_spineAnim2')]
    0012  GETTABLE  R1 = R1[K8('gameObject')]
    0013  LOADBOOL  R2 = true
    0014  CALL      R0 = call(R0, 0 args, 2 rets)
    0015  GETTABUP  R0 = self[K7('m_spineAnim2')]
    0016  SELF      R1 = R0[K3('SetAnimation')] (self)
    0017  LOADK     R2 = K4 'appear_end'
    0018  LOADBOOL  R3 = false
    0019  CALL      R0 = call(R0, 0 args, 3 rets)
    0020  GETTABUP  R0 = self[K9('m_bgShakeAnimator')]
    0021  SETTABLE  R0[K10('enabled')] = K11(true)
    0022  GETTABUP  R0 = _ENV[K5('UIUtil')]
    0023  GETTABLE  R0 = R0[K6('SetActive')]
    0024  GETTABUP  R1 = self[K12('m_bgEffectGo1')]
    0025  LOADBOOL  R2 = true
    0026  CALL      R0 = call(R0, 0 args, 2 rets)
    0027  GETTABUP  R0 = _ENV[K5('UIUtil')]
    0028  GETTABLE  R0 = R0[K6('SetActive')]
    0029  GETTABUP  R1 = self[K13('m_bgEffectGo2')]
    0030  LOADBOOL  R2 = true
    0031  CALL      R0 = call(R0, 0 args, 2 rets)
    0032  GETTABUP  R0 = _ENV[K14('GM')]
    0033  GETTABLE  R0 = R0[K15('AudioModel')]
    0034  SELF      R1 = R0[K16('PlayEffect')] (self)
    0035  GETTABUP  R2 = _ENV[K17('AudioFileConfigName')]
    0036  GETTABLE  R2 = R2[K18('SfxBlockCandyMachine2')]
    0037  CALL      R0 = call(R0, 0 args, 2 rets)
    0038  GETTABUP  R0 = _ENV[K19('PlatformInterface')]
    0039  GETTABLE  R0 = R0[K20('Vibrate')]
    0040  GETTABUP  R1 = _ENV[K21('EVibrationType')]
    0041  GETTABLE  R1 = R1[K22('Heavy')]
    0042  CALL      R0 = call(R0, 0 args, 1 rets)
    0043  RETURN    return R0..R-1
  ; ---------- proto3 [m_roundSeq] ----------
    ; fn ?  line 202-226 np=0 va=0 ms=6 code=20 consts=8 upvals=5 protos=2
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='DelayExecuteFuncInView'
    ;   K[4]=0.1
    ;   K[5]='PlayAcquireRewardsAnim'
    ;   K[6]='m_roundSeq'
    ;   K[7]=nil
    ;   upvals: _ENV, self, rewards, bFinished, startPos
    0000  GETTABUP  R0 = _ENV[K0('GM')]
    0001  GETTABLE  R0 = R0[K1('UIManager')]
    0002  SELF      R1 = R0[K2('SetEventLock')] (self)
    0003  LOADBOOL  R2 = false
    0004  GETUPVAL  R3 = _ENV
    0005  CALL      R0 = call(R0, 0 args, 3 rets)
    0006  GETTABUP  R0 = _ENV[K3('DelayExecuteFuncInView')]
    0007  CLOSURE   R1 = closure proto0
    0008  LOADK     R2 = K4 0.1
    0009  GETUPVAL  R3 = _ENV
    0010  CALL      R0 = call(R0, 0 args, 3 rets)
    0011  GETUPVAL  R0 = _ENV
    0012  SELF      R1 = R0[K5('PlayAcquireRewardsAnim')] (self)
    0013  GETUPVAL  R2 = _ENV
    0014  CLOSURE   R3 = closure proto1
    0015  GETUPVAL  R4 = _ENV
    0016  GETUPVAL  R5 = _ENV
    0017  CALL      R0 = call(R0, 0 args, 5 rets)
    0018  SETTABUP  self[K6('m_roundSeq')] = K7(nil)
    0019  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 204-206 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
      ;   K[0]='_InitSpineAnimation'
      ;   upvals: self
      0000  GETUPVAL  R0 = self
      0001  SELF      R1 = R0[K0('_InitSpineAnimation')] (self)
      0002  CALL      R0 = call(R0, 0 args, 1 rets)
      0003  RETURN    return R0..R-1
    ; ---------- proto1 [] ----------
      ; fn ?  line 207-223 np=0 va=0 ms=4 code=33 consts=13 upvals=3 protos=0
      ;   K[0]='m_bPlayRewardAnim'
      ;   K[1]=false
      ;   K[2]='UIUtil'
      ;   K[3]='IsEmptyComponent'
      ;   K[4]='m_bNeedClose'
      ;   K[5]='Close'
      ;   K[6]='_PlayEnterNextRoundAnim'
      ;   K[7]='GM'
      ;   K[8]='UIManager'
      ;   K[9]='OpenView'
      ;   K[10]='m_activityDefinition'
      ;   K[11]='FinishedWindowPrefabName'
      ;   K[12]='m_activityType'
      ;   upvals: self, _ENV, bFinished
      0000  SETTABUP  self[K0('m_bPlayRewardAnim')] = K1(false)
      0001  GETTABUP  R0 = _ENV[K2('UIUtil')]
      0002  GETTABLE  R0 = R0[K3('IsEmptyComponent')]
      0003  GETUPVAL  R1 = self
      0004  CALL      R0 = call(R0, 1 args, 1 rets)
      0005  TEST      if not R0 then   -> -131065
      0006  JMP       (jump)   -> 8
      0007  RETURN    return R0..R-1
      0008  GETUPVAL  R0 = self
      0009  TEST      if not R0 then   -> -131060
      0010  JMP       (jump)   -> 22
      0011  GETTABUP  R0 = self[K4('m_bNeedClose')]
      0012  TEST      if not R0 then   -> -131058
      0013  JMP       (jump)   -> 18
      0014  GETUPVAL  R0 = self
      0015  SELF      R1 = R0[K5('Close')] (self)
      0016  CALL      R0 = call(R0, 0 args, 1 rets)
      0017  JMP       (jump)   -> 32
      0018  GETUPVAL  R0 = self
      0019  SELF      R1 = R0[K6('_PlayEnterNextRoundAnim')] (self)
      0020  CALL      R0 = call(R0, 0 args, 1 rets)
      0021  JMP       (jump)   -> 32
      0022  GETUPVAL  R0 = self
      0023  SELF      R1 = R0[K5('Close')] (self)
      0024  CALL      R0 = call(R0, 0 args, 1 rets)
      0025  GETTABUP  R0 = _ENV[K7('GM')]
      0026  GETTABLE  R0 = R0[K8('UIManager')]
      0027  SELF      R1 = R0[K9('OpenView')] (self)
      0028  GETTABUP  R2 = self[K10('m_activityDefinition')]
      0029  GETTABLE  R2 = R2[K11('FinishedWindowPrefabName')]
      0030  GETTABUP  R3 = self[K12('m_activityType')]
      0031  CALL      R0 = call(R0, 0 args, 3 rets)
      0032  RETURN    return R0..R-1
; ---------- proto11 [RefreshBoardModel] ----------
  ; fn ?  line 231-235 np=1 va=0 ms=3 code=8 consts=4 upvals=0 protos=0
  ;   K[0]='m_model'
  ;   K[1]='TryEnterNextRound'
  ;   K[2]='m_boardModel'
  ;   K[3]='GetBoardModel'
  ;   locals: self(0-8)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  SELF      R2 = R1[K1('TryEnterNextRound')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  GETTABLE  R1 = R0[K0('m_model')]
  0004  SELF      R2 = R1[K3('GetBoardModel')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SETTABLE  R0[K2('m_boardModel')] = R1
  0007  RETURN    return R0..R-1
; ---------- proto12 [PlayAcquireRewardsAnim] ----------
  ; fn ?  line 237-264 np=5 va=0 ms=19 code=48 consts=15 upvals=1 protos=2
  ;   K[0]='transform'
  ;   K[1]='position'
  ;   K[2]=1
  ;   K[3]='GM'
  ;   K[4]='UIManager'
  ;   K[5]='OpenView'
  ;   K[6]='UIPrefabConfigName'
  ;   K[7]='OneRewardAnimWindow'
  ;   K[8]='BlockBoxRewardWindow'
  ;   K[9]='BoxRewardWindow'
  ;   K[10]=0.4
  ;   K[11]='ImageFileConfigName'
  ;   K[12]='block_box'
  ;   K[13]='ERewardScene'
  ;   K[14]='Other'
  ;   upvals: _ENV
  ;   locals: self(0-48), rewards(0-48), callback(0-48), bFinished(0-48), startPos(0-48), bOnce(9-48), prefab(31-47)
  0000  TEST      if not R4 then   -> -131069
  0001  JMP       (jump)   -> 4
  0002  GETTABLE  R5 = R0[K0('transform')]
  0003  GETTABLE  R4 = R5[K1('position')]
  0004  LEN       R5 = len R0
  0005  EQ        if R1 eq K2(1)   -> -128247
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R5 = false
  0008  LOADBOOL  R5 = true
  0009  TEST      if not R5 then   -> -131061
  0010  JMP       (jump)   -> 23
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 23
  0013  GETTABUP  R6 = _ENV[K3('GM')]
  0014  GETTABLE  R6 = R6[K4('UIManager')]
  0015  SELF      R7 = R6[K5('OpenView')] (self)
  0016  GETTABUP  R8 = _ENV[K6('UIPrefabConfigName')]
  0017  GETTABLE  R8 = R8[K7('OneRewardAnimWindow')]
  0018  MOVE      R9 = R0
  0019  CLOSURE   R10 = closure proto0
  0020  MOVE      R11 = R0
  0021  CALL      R6 = call(R6, 0 args, 5 rets)
  0022  JMP       (jump)   -> 47
  0023  TEST      if not R3 then   -> -131047
  0024  JMP       (jump)   -> 29
  0025  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0026  GETTABLE  R6 = R6[K8('BlockBoxRewardWindow')]
  0027  TEST      if not R6 then   -> -131042
  0028  JMP       (jump)   -> 31
  0029  GETTABUP  R6 = _ENV[K6('UIPrefabConfigName')]
  0030  GETTABLE  R6 = R6[K9('BoxRewardWindow')]
  0031  GETTABUP  R7 = _ENV[K3('GM')]
  0032  GETTABLE  R7 = R7[K4('UIManager')]
  0033  SELF      R8 = R7[K5('OpenView')] (self)
  0034  MOVE      R9 = R0
  0035  MOVE      R10 = R0
  0036  LOADK     R11 = K10 0.4
  0037  GETTABUP  R12 = _ENV[K11('ImageFileConfigName')]
  0038  GETTABLE  R12 = R12[K12('block_box')]
  0039  MOVE      R13 = R0
  0040  LOADNIL   R14..R14 = nil
  0041  LOADBOOL  R15 = true
  0042  GETTABUP  R16 = _ENV[K13('ERewardScene')]
  0043  GETTABLE  R16 = R16[K14('Other')]
  0044  LOADNIL   R17..R17 = nil
  0045  CLOSURE   R18 = closure proto1
  0046  CALL      R7 = call(R7, 0 args, 11 rets)
  0047  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 242-246 np=0 va=0 ms=2 code=6 consts=1 upvals=1 protos=0
    ;   K[0]=nil
    ;   upvals: callback
    0000  GETUPVAL  R0 = callback
    0001  EQ        if R1 eq K0(nil)   -> -130813
    0002  JMP       (jump)   -> 5
    0003  GETUPVAL  R0 = callback
    0004  CALL      R0 = call(R0, 0 args, 0 rets)
    0005  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 258-262 np=0 va=0 ms=2 code=6 consts=1 upvals=1 protos=0
    ;   K[0]=nil
    ;   upvals: callback
    0000  GETUPVAL  R0 = callback
    0001  EQ        if R1 eq K0(nil)   -> -130813
    0002  JMP       (jump)   -> 5
    0003  GETUPVAL  R0 = callback
    0004  CALL      R0 = call(R0, 0 args, 0 rets)
    0005  RETURN    return R0..R-1
; ---------- proto13 [_PlayEnterNextRoundAnim] ----------
  ; fn ?  line 266-276 np=1 va=0 ms=6 code=7 consts=2 upvals=1 protos=1
  ;   K[0]='DelayExecuteFuncInView'
  ;   K[1]=1
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('DelayExecuteFuncInView')]
  0001  CLOSURE   R2 = closure proto0
  0002  LOADK     R3 = K1 1
  0003  MOVE      R4 = R0
  0004  LOADBOOL  R5 = true
  0005  CALL      R1 = call(R1, 0 args, 4 rets)
  0006  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 267-275 np=0 va=0 ms=2 code=10 consts=4 upvals=1 protos=0
    ;   K[0]='m_blockBoardView'
    ;   K[1]='PlayExitAnim'
    ;   K[2]='_LoadBlockBoardView'
    ;   K[3]='PlayEnterAnim'
    ;   upvals: self
    0000  GETTABUP  R0 = self[K0('m_blockBoardView')]
    0001  SELF      R1 = R0[K1('PlayExitAnim')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  GETUPVAL  R0 = self
    0004  SELF      R1 = R0[K2('_LoadBlockBoardView')] (self)
    0005  CALL      R0 = call(R0, 0 args, 1 rets)
    0006  GETTABUP  R0 = self[K0('m_blockBoardView')]
    0007  SELF      R1 = R0[K3('PlayEnterAnim')] (self)
    0008  CALL      R0 = call(R0, 0 args, 1 rets)
    0009  RETURN    return R0..R-1
; ---------- proto14 [OnStartPlaceItem] ----------
  ; fn ?  line 278-281 np=1 va=0 ms=3 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_tokenHudButton'
  ;   K[1]='UpdateNumForPlace'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_tokenHudButton')]
  0001  SELF      R2 = R1[K1('UpdateNumForPlace')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto15 [OnEndPlaceItem] ----------
  ; fn ?  line 283-286 np=1 va=0 ms=3 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_tokenHudButton'
  ;   K[1]='SyncToModelValue'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_tokenHudButton')]
  0001  SELF      R2 = R1[K1('SyncToModelValue')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto16 [GetHudButton] ----------
  ; fn ?  line 288-290 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_tokenHudButton'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_tokenHudButton')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto17 [OnTokenButtonClicked] ----------
  ; fn ?  line 292-294 np=1 va=0 ms=3 code=4 consts=2 upvals=0 protos=0
  ;   K[0]='m_tokenTip'
  ;   K[1]='Show'
  ;   locals: self(0-4)
  0000  GETTABLE  R1 = R0[K0('m_tokenTip')]
  0001  SELF      R2 = R1[K1('Show')] (self)
  0002  CALL      R1 = call(R1, 0 args, 1 rets)
  0003  RETURN    return R0..R-1
; ---------- proto18 [GetCurAnimIndex] ----------
  ; fn ?  line 302-320 np=1 va=0 ms=4 code=30 consts=9 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]=nil
  ;   K[2]=0
  ;   K[3]='GetScore'
  ;   K[4]='GetTargetScore'
  ;   K[5]=1
  ;   K[6]=2
  ;   K[7]=3
  ;   K[8]=4
  ;   locals: self(0-30), curScore(8-30), targetScore(11-30)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  EQ        if R0 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 5
  0003  LOADK     R1 = K2 0
  0004  RETURN    return R1..R0
  0005  GETTABLE  R1 = R0[K0('m_boardModel')]
  0006  SELF      R2 = R1[K3('GetScore')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  GETTABLE  R2 = R0[K0('m_boardModel')]
  0009  SELF      R3 = R2[K4('GetTargetScore')] (self)
  0010  CALL      R2 = call(R2, 1 args, 1 rets)
  0011  EQ        if R0 eq K2(0)   -> -130289
  0012  JMP       (jump)   -> 16
  0013  LOADK     R3 = K5 1
  0014  RETURN    return R3..R2
  0015  JMP       (jump)   -> 29
  0016  DIV       R3 = K6(2) div R2
  0017  LT        if R0 lt R3   -> -130538
  0018  JMP       (jump)   -> 22
  0019  LOADK     R3 = K6 2
  0020  RETURN    return R3..R2
  0021  JMP       (jump)   -> 29
  0022  LT        if R0 lt R2   -> -130534
  0023  JMP       (jump)   -> 27
  0024  LOADK     R3 = K7 3
  0025  RETURN    return R3..R2
  0026  JMP       (jump)   -> 29
  0027  LOADK     R3 = K8 4
  0028  RETURN    return R3..R2
  0029  RETURN    return R0..R-1
; ---------- proto19 [OnAddScore] ----------
  ; fn ?  line 322-324 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_PlaySpineAnimation'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_PlaySpineAnimation')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto20 [_InitSpineAnimation] ----------
  ; fn ?  line 326-343 np=1 va=0 ms=5 code=49 consts=19 upvals=2 protos=0
  ;   K[0]='m_bInitSpine'
  ;   K[1]='m_spineAnim'
  ;   K[2]='Init'
  ;   K[3]='m_spineAnim2'
  ;   K[4]='UIUtil'
  ;   K[5]='SetActive'
  ;   K[6]='gameObject'
  ;   K[7]=true
  ;   K[8]='m_spineRewardContent'
  ;   K[9]='m_spineProgressBoxGo'
  ;   K[10]='SetLocalScale'
  ;   K[11]='m_rewardRootRect'
  ;   K[12]=0
  ;   K[13]='m_rewardRootCanvasGroup'
  ;   K[14]='alpha'
  ;   K[15]='m_curAnimIndex'
  ;   K[16]='GetCurAnimIndex'
  ;   K[17]=nil
  ;   K[18]='SetAnimation'
  ;   upvals: _ENV, idleSpineName
  ;   locals: self(0-49)
  0000  GETTABLE  R1 = R0[K0('m_bInitSpine')]
  0001  TEST      if not R1 then   -> -131068
  0002  JMP       (jump)   -> 16
  0003  GETTABLE  R1 = R0[K1('m_spineAnim')]
  0004  SELF      R2 = R1[K2('Init')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  GETTABLE  R1 = R0[K3('m_spineAnim2')]
  0007  SELF      R2 = R1[K2('Init')] (self)
  0008  CALL      R1 = call(R1, 0 args, 1 rets)
  0009  GETTABUP  R1 = _ENV[K4('UIUtil')]
  0010  GETTABLE  R1 = R1[K5('SetActive')]
  0011  GETTABLE  R2 = R0[K3('m_spineAnim2')]
  0012  GETTABLE  R2 = R2[K6('gameObject')]
  0013  LOADBOOL  R3 = false
  0014  CALL      R1 = call(R1, 0 args, 2 rets)
  0015  SETTABLE  R0[K0('m_bInitSpine')] = K7(true)
  0016  GETTABUP  R1 = _ENV[K4('UIUtil')]
  0017  GETTABLE  R1 = R1[K5('SetActive')]
  0018  GETTABLE  R2 = R0[K8('m_spineRewardContent')]
  0019  GETTABLE  R2 = R2[K6('gameObject')]
  0020  LOADBOOL  R3 = false
  0021  CALL      R1 = call(R1, 0 args, 2 rets)
  0022  GETTABUP  R1 = _ENV[K4('UIUtil')]
  0023  GETTABLE  R1 = R1[K5('SetActive')]
  0024  GETTABLE  R2 = R0[K9('m_spineProgressBoxGo')]
  0025  LOADBOOL  R3 = false
  0026  CALL      R1 = call(R1, 0 args, 2 rets)
  0027  GETTABUP  R1 = _ENV[K4('UIUtil')]
  0028  GETTABLE  R1 = R1[K10('SetLocalScale')]
  0029  GETTABLE  R2 = R0[K11('m_rewardRootRect')]
  0030  LOADK     R3 = K12 0
  0031  LOADK     R4 = K12 0
  0032  CALL      R1 = call(R1, 0 args, 3 rets)
  0033  GETTABLE  R1 = R0[K13('m_rewardRootCanvasGroup')]
  0034  SETTABLE  R1[K14('alpha')] = K12(0)
  0035  SELF      R2 = R0[K16('GetCurAnimIndex')] (self)
  0036  CALL      R1 = call(R1, 1 args, 1 rets)
  0037  SETTABLE  R0[K15('m_curAnimIndex')] = R1
  0038  GETTABLE  R1 = R0[K15('m_curAnimIndex')]
  0039  GETTABUP  R1 = idleSpineName[R1]
  0040  EQ        if R1 eq K17(nil)   -> -130245
  0041  JMP       (jump)   -> 48
  0042  GETTABLE  R1 = R0[K1('m_spineAnim')]
  0043  SELF      R2 = R1[K18('SetAnimation')] (self)
  0044  GETTABLE  R3 = R0[K15('m_curAnimIndex')]
  0045  GETTABUP  R3 = idleSpineName[R3]
  0046  LOADBOOL  R4 = false
  0047  CALL      R1 = call(R1, 0 args, 3 rets)
  0048  RETURN    return R0..R-1
; ---------- proto21 [_PlaySpineAnimation] ----------
  ; fn ?  line 345-370 np=1 va=0 ms=11 code=57 consts=8 upvals=3 protos=0
  ;   K[0]='GetCurAnimIndex'
  ;   K[1]='m_spineAnim'
  ;   K[2]='SetTimeScale'
  ;   K[3]=1
  ;   K[4]='m_curAnimIndex'
  ;   K[5]=nil
  ;   K[6]='SetAnimation'
  ;   K[7]='AddAnimation'
  ;   upvals: appearMiddleSpineName, appearSpineName, idleSpineName
  ;   locals: self(0-57), curAnimIndex(2-57), delta(29-47), (for index)(39-47), (for limit)(39-47), (for step)(39-47), i(40-46)
  0000  SELF      R2 = R0[K0('GetCurAnimIndex')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R2 = R0[K1('m_spineAnim')]
  0003  SELF      R3 = R2[K2('SetTimeScale')] (self)
  0004  LOADK     R4 = K3 1
  0005  CALL      R2 = call(R2, 0 args, 2 rets)
  0006  GETTABLE  R2 = R0[K4('m_curAnimIndex')]
  0007  EQ        if R0 eq R1   -> -130038
  0008  JMP       (jump)   -> 20
  0009  SUB       R2 = K3(1) sub R1
  0010  GETTABUP  R2 = appearMiddleSpineName[R2]
  0011  EQ        if R1 eq K5(nil)   -> -129774
  0012  JMP       (jump)   -> 20
  0013  GETTABLE  R2 = R0[K1('m_spineAnim')]
  0014  SELF      R3 = R2[K6('SetAnimation')] (self)
  0015  SUB       R4 = K3(1) sub R1
  0016  GETTABUP  R4 = appearMiddleSpineName[R4]
  0017  LOADBOOL  R5 = false
  0018  CALL      R2 = call(R2, 0 args, 3 rets)
  0019  JMP       (jump)   -> 47
  0020  GETTABLE  R2 = R0[K4('m_curAnimIndex')]
  0021  LT        if R0 lt R1   -> -130024
  0022  JMP       (jump)   -> 47
  0023  SUB       R2 = K3(1) sub R1
  0024  GETTABUP  R2 = appearSpineName[R2]
  0025  EQ        if R1 eq K5(nil)   -> -129760
  0026  JMP       (jump)   -> 47
  0027  GETTABLE  R2 = R0[K4('m_curAnimIndex')]
  0028  SUB       R2 = R2 sub R1
  0029  LT        if R0 lt R2   -> 1569
  0030  JMP       (jump)   -> 35
  0031  GETTABLE  R3 = R0[K1('m_spineAnim')]
  0032  SELF      R4 = R3[K2('SetTimeScale')] (self)
  0033  MOVE      R5 = R0
  0034  CALL      R3 = call(R3, 0 args, 2 rets)
  0035  GETTABLE  R3 = R0[K4('m_curAnimIndex')]
  0036  ADD       R3 = K3(1) add R3
  0037  MOVE      R4 = R0
  0038  LOADK     R5 = K3 1
  0039  FORPREP   forprep R3(sBx=6)   -> 46
  0040  GETTABLE  R7 = R0[K1('m_spineAnim')]
  0041  SELF      R8 = R7[K7('AddAnimation')] (self)
  0042  SUB       R9 = K3(1) sub R6
  0043  GETTABUP  R9 = appearSpineName[R9]
  0044  LOADBOOL  R10 = false
  0045  CALL      R7 = call(R7, 0 args, 3 rets)
  0046  FORLOOP   forloop R3(sBx=-7)   -> 40
  0047  GETTABUP  R2 = idleSpineName[R1]
  0048  EQ        if R1 eq K5(nil)   -> -129737
  0049  JMP       (jump)   -> 55
  0050  GETTABLE  R2 = R0[K1('m_spineAnim')]
  0051  SELF      R3 = R2[K7('AddAnimation')] (self)
  0052  GETTABUP  R4 = idleSpineName[R1]
  0053  LOADBOOL  R5 = false
  0054  CALL      R2 = call(R2, 0 args, 3 rets)
  0055  SETTABLE  R0[K4('m_curAnimIndex')] = R1
  0056  RETURN    return R0..R-1
; ---------- proto22 [OnTipBtnClick] ----------
  ; fn ?  line 372-374 np=1 va=0 ms=6 code=9 consts=6 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='m_activityDefinition'
  ;   K[4]='HelpWindowPrefabName'
  ;   K[5]='m_activityType'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  GETTABUP  R1 = _ENV[K0('GM')]
  0001  GETTABLE  R1 = R1[K1('UIManager')]
  0002  SELF      R2 = R1[K2('OpenView')] (self)
  0003  GETTABLE  R3 = R0[K3('m_activityDefinition')]
  0004  GETTABLE  R3 = R3[K4('HelpWindowPrefabName')]
  0005  GETTABLE  R4 = R0[K5('m_activityType')]
  0006  LOADBOOL  R5 = true
  0007  CALL      R1 = call(R1, 0 args, 4 rets)
  0008  RETURN    return R0..R-1
; ---------- proto23 [OnCloseBtnClick] ----------
  ; fn ?  line 376-394 np=1 va=0 ms=11 code=50 consts=19 upvals=1 protos=1
  ;   K[0]='m_model'
  ;   K[1]=nil
  ;   K[2]='GetBlockToken'
  ;   K[3]=0
  ;   K[4]='HasFinishedAllRound'
  ;   K[5]='GetState'
  ;   K[6]='ActivityState'
  ;   K[7]='Ended'
  ;   K[8]='m_activityDefinition'
  ;   K[9]='ActivityTokenIconName'
  ;   K[10]='GM'
  ;   K[11]='GameTextModel'
  ;   K[12]='GetText'
  ;   K[13]='block_event_token_left_desc'
  ;   K[14]='UIManager'
  ;   K[15]='OpenView'
  ;   K[16]='TwoButtonWindowPrefabName'
  ;   K[17]='m_activityType'
  ;   K[18]='Close'
  ;   upvals: _ENV
  ;   locals: self(0-50), confirmButtonCallback(26-46), tokenImgKey(28-46), descStr(36-46)
  0000  GETTABLE  R1 = R0[K0('m_model')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 47
  0003  GETTABLE  R1 = R0[K0('m_model')]
  0004  SELF      R2 = R1[K2('GetBlockToken')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  LT        if R0 lt R1   -> 1545
  0007  JMP       (jump)   -> 47
  0008  GETTABLE  R1 = R0[K0('m_model')]
  0009  SELF      R2 = R1[K4('HasFinishedAllRound')] (self)
  0010  CALL      R1 = call(R1, 1 args, 1 rets)
  0011  TEST      if not R1 then   -> -131058
  0012  JMP       (jump)   -> 47
  0013  GETTABLE  R1 = R0[K0('m_model')]
  0014  SELF      R2 = R1[K5('GetState')] (self)
  0015  CALL      R1 = call(R1, 1 args, 1 rets)
  0016  GETTABUP  R2 = _ENV[K6('ActivityState')]
  0017  GETTABLE  R2 = R2[K7('Ended')]
  0018  EQ        if R0 eq R2   -> -130538
  0019  JMP       (jump)   -> 47
  0020  GETTABLE  R1 = R0[K0('m_model')]
  0021  SELF      R2 = R1[K2('GetBlockToken')] (self)
  0022  CALL      R1 = call(R1, 1 args, 1 rets)
  0023  LT        if R0 lt R1   -> 1562
  0024  JMP       (jump)   -> 47
  0025  CLOSURE   R1 = closure proto0
  0026  GETTABLE  R2 = R0[K8('m_activityDefinition')]
  0027  GETTABLE  R2 = R2[K9('ActivityTokenIconName')]
  0028  GETTABUP  R3 = _ENV[K10('GM')]
  0029  GETTABLE  R3 = R3[K11('GameTextModel')]
  0030  SELF      R4 = R3[K12('GetText')] (self)
  0031  LOADK     R5 = K13 'block_event_token_left_desc'
  0032  GETTABLE  R6 = R0[K0('m_model')]
  0033  SELF      R7 = R6[K2('GetBlockToken')] (self)
  0034  CALL      R6 = call(R6, -1 args, 1 rets)
  0035  CALL      R3 = call(R3, 1 args, -1 rets)
  0036  GETTABUP  R4 = _ENV[K10('GM')]
  0037  GETTABLE  R4 = R4[K14('UIManager')]
  0038  SELF      R5 = R4[K15('OpenView')] (self)
  0039  GETTABLE  R6 = R0[K8('m_activityDefinition')]
  0040  GETTABLE  R6 = R6[K16('TwoButtonWindowPrefabName')]
  0041  GETTABLE  R7 = R0[K17('m_activityType')]
  0042  MOVE      R8 = R0
  0043  MOVE      R9 = R0
  0044  LOADNIL   R10..R10 = nil
  0045  CALL      R4 = call(R4, 0 args, 6 rets)
  0046  JMP       (jump)   -> 49
  0047  SELF      R2 = R0[K18('Close')] (self)
  0048  CALL      R1 = call(R1, 0 args, 1 rets)
  0049  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 383-386 np=1 va=0 ms=3 code=6 consts=1 upvals=1 protos=0
    ;   K[0]='Close'
    ;   upvals: self
    ;   locals: window(0-6)
    0000  GETUPVAL  R1 = self
    0001  SELF      R2 = R1[K0('Close')] (self)
    0002  CALL      R1 = call(R1, 0 args, 1 rets)
    0003  SELF      R2 = R0[K0('Close')] (self)
    0004  CALL      R1 = call(R1, 0 args, 1 rets)
    0005  RETURN    return R0..R-1
; ---------- proto24 [GetItemTutorialRect] ----------
  ; fn ?  line 396-398 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_itemTutorialRect'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_itemTutorialRect')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto25 [GetBoardTutorialRect] ----------
  ; fn ?  line 400-402 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_boardTutorialRect'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_boardTutorialRect')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto26 [GetProgressTutorialRect] ----------
  ; fn ?  line 404-406 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_progressTutorialRect'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_progressTutorialRect')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
