# UI_SubView_LevelProgress_356.luac
; fn @LevelProgress.lua  line 0-0 np=0 va=1 ms=2 code=37 consts=14 upvals=1 protos=10
;   K[0]='LevelProgress'
;   K[1]='ProgressCellGap'
;   K[2]=200
;   K[3]='__index'
;   K[4]='Init'
;   K[5]='CreateProgressCell'
;   K[6]='ProgressCellGap'
;   K[7]='GetProgressLevel'
;   K[8]='PlayProgressAnimation'
;   K[9]='PlayUpgradeAnimation'
;   K[10]='UpdateLevelContent'
;   K[11]='_UpdatePositionContent'
;   K[12]='_GetMiddleNormalizedPosition'
;   K[13]='GetCellByLevel'
;   upvals: _ENV
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABLE  R0[K1('ProgressCellGap')] = K2(200)
0002  SETTABUP  _ENV[K0('LevelProgress')] = R0
0003  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0004  GETTABUP  R1 = _ENV[K0('LevelProgress')]
0005  SETTABLE  R0[K3('__index')] = R1
0006  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0007  CLOSURE   R1 = closure proto0
0008  SETTABLE  R0[K4('Init')] = R1
0009  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0010  CLOSURE   R1 = closure proto1
0011  SETTABLE  R0[K5('CreateProgressCell')] = R1
0012  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0013  CLOSURE   R1 = closure proto2
0014  SETTABLE  R0[K6('ProgressCellGap')] = R1
0015  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0016  CLOSURE   R1 = closure proto3
0017  SETTABLE  R0[K7('GetProgressLevel')] = R1
0018  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0019  CLOSURE   R1 = closure proto4
0020  SETTABLE  R0[K8('PlayProgressAnimation')] = R1
0021  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0022  CLOSURE   R1 = closure proto5
0023  SETTABLE  R0[K9('PlayUpgradeAnimation')] = R1
0024  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0025  CLOSURE   R1 = closure proto6
0026  SETTABLE  R0[K10('UpdateLevelContent')] = R1
0027  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0028  CLOSURE   R1 = closure proto7
0029  SETTABLE  R0[K11('_UpdatePositionContent')] = R1
0030  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0031  CLOSURE   R1 = closure proto8
0032  SETTABLE  R0[K12('_GetMiddleNormalizedPosition')] = R1
0033  GETTABUP  R0 = _ENV[K0('LevelProgress')]
0034  CLOSURE   R1 = closure proto9
0035  SETTABLE  R0[K13('GetCellByLevel')] = R1
0036  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 6-23 np=2 va=0 ms=12 code=47 consts=27 upvals=1 protos=0
  ;   K[0]='m_sliderNode'
  ;   K[1]='GetComponent'
  ;   K[2]='typeof'
  ;   K[3]='CS'
  ;   K[4]='UnityEngine'
  ;   K[5]='UI'
  ;   K[6]='LayoutElement'
  ;   K[7]='preferredWidth'
  ;   K[8]='ProgressCellGap'
  ;   K[9]='m_leftPendding'
  ;   K[10]='m_horLayout'
  ;   K[11]='padding'
  ;   K[12]='left'
  ;   K[13]='m_progressCells'
  ;   K[14]=0
  ;   K[15]=1
  ;   K[16]='CreateProgressCell'
  ;   K[17]='transform'
  ;   K[18]='anchoredPosition'
  ;   K[19]='Vector2'
  ;   K[20]='table'
  ;   K[21]='insert'
  ;   K[22]='LayoutRebuilder'
  ;   K[23]='ForceRebuildLayoutImmediate'
  ;   K[24]='m_contentNode'
  ;   K[25]='UpdateLevelContent'
  ;   K[26]='_UpdatePositionContent'
  ;   upvals: _ENV
  ;   locals: self(0-47), maxLevel(0-47), sliderLayoutElement(9-47), (for index)(21-38), (for limit)(21-38), (for step)(21-38), level(22-37), progressCell(25-37)
  0000  GETTABLE  R2 = R0[K0('m_sliderNode')]
  0001  SELF      R3 = R2[K1('GetComponent')] (self)
  0002  GETTABUP  R4 = _ENV[K2('typeof')]
  0003  GETTABUP  R5 = _ENV[K3('CS')]
  0004  GETTABLE  R5 = R5[K4('UnityEngine')]
  0005  GETTABLE  R5 = R5[K5('UI')]
  0006  GETTABLE  R5 = R5[K6('LayoutElement')]
  0007  CALL      R4 = call(R4, -1 args, 1 rets)
  0008  CALL      R2 = call(R2, 1 args, -1 rets)
  0009  GETTABLE  R3 = R0[K8('ProgressCellGap')]
  0010  MUL       R3 = R1 mul R3
  0011  SETTABLE  R2[K7('preferredWidth')] = R3
  0012  GETTABLE  R3 = R0[K10('m_horLayout')]
  0013  GETTABLE  R3 = R3[K11('padding')]
  0014  GETTABLE  R3 = R3[K12('left')]
  0015  SETTABLE  R0[K9('m_leftPendding')] = R3
  0016  NEWTABLE  R3 = {} (0 items)
  0017  SETTABLE  R0[K13('m_progressCells')] = R3
  0018  LOADK     R3 = K14 0
  0019  MOVE      R4 = R0
  0020  LOADK     R5 = K15 1
  0021  FORPREP   forprep R3(sBx=15)   -> 37
  0022  SELF      R8 = R0[K16('CreateProgressCell')] (self)
  0023  MOVE      R9 = R0
  0024  CALL      R7 = call(R7, 1 args, 2 rets)
  0025  GETTABLE  R8 = R7[K17('transform')]
  0026  GETTABUP  R9 = _ENV[K19('Vector2')]
  0027  GETTABLE  R10 = R0[K8('ProgressCellGap')]
  0028  MUL       R10 = R6 mul R10
  0029  LOADK     R11 = K14 0
  0030  CALL      R9 = call(R9, 1 args, 2 rets)
  0031  SETTABLE  R8[K18('anchoredPosition')] = R9
  0032  GETTABUP  R8 = _ENV[K20('table')]
  0033  GETTABLE  R8 = R8[K21('insert')]
  0034  GETTABLE  R9 = R0[K13('m_progressCells')]
  0035  MOVE      R10 = R0
  0036  CALL      R8 = call(R8, 0 args, 2 rets)
  0037  FORLOOP   forloop R3(sBx=-16)   -> 22
  0038  GETTABUP  R3 = _ENV[K22('LayoutRebuilder')]
  0039  GETTABLE  R3 = R3[K23('ForceRebuildLayoutImmediate')]
  0040  GETTABLE  R4 = R0[K24('m_contentNode')]
  0041  CALL      R3 = call(R3, 0 args, 1 rets)
  0042  SELF      R4 = R0[K25('UpdateLevelContent')] (self)
  0043  CALL      R3 = call(R3, 0 args, 1 rets)
  0044  SELF      R4 = R0[K26('_UpdatePositionContent')] (self)
  0045  CALL      R3 = call(R3, 0 args, 1 rets)
  0046  RETURN    return R0..R-1
; ---------- proto1 [CreateProgressCell] ----------
  ; fn ?  line 26-28 np=2 va=0 ms=5 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='GetProgressCell()是抽象函数'
  ;   upvals: _ENV
  ;   locals: self(0-6), level(0-6)
  0000  GETTABUP  R2 = _ENV[K0('Log')]
  0001  GETTABLE  R2 = R2[K1('Assert')]
  0002  LOADBOOL  R3 = false
  0003  LOADK     R4 = K2 'GetProgressCell()是抽象函数'
  0004  CALL      R2 = call(R2, 0 args, 2 rets)
  0005  RETURN    return R0..R-1
; ---------- proto2 [ProgressCellGap] ----------
  ; fn ?  line 30-32 np=1 va=0 ms=4 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='GetCurrentLevel()是抽象函数'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('Log')]
  0001  GETTABLE  R1 = R1[K1('Assert')]
  0002  LOADBOOL  R2 = false
  0003  LOADK     R3 = K2 'GetCurrentLevel()是抽象函数'
  0004  CALL      R1 = call(R1, 0 args, 2 rets)
  0005  RETURN    return R0..R-1
; ---------- proto3 [GetProgressLevel] ----------
  ; fn ?  line 34-36 np=1 va=0 ms=4 code=6 consts=3 upvals=1 protos=0
  ;   K[0]='Log'
  ;   K[1]='Assert'
  ;   K[2]='GetProgressLevel()是抽象函数'
  ;   upvals: _ENV
  ;   locals: self(0-6)
  0000  GETTABUP  R1 = _ENV[K0('Log')]
  0001  GETTABLE  R1 = R1[K1('Assert')]
  0002  LOADBOOL  R2 = false
  0003  LOADK     R3 = K2 'GetProgressLevel()是抽象函数'
  0004  CALL      R1 = call(R1, 0 args, 2 rets)
  0005  RETURN    return R0..R-1
; ---------- proto4 [PlayProgressAnimation] ----------
  ; fn ?  line 38-47 np=2 va=0 ms=10 code=31 consts=16 upvals=1 protos=0
  ;   K[0]='GetCurrentLevel'
  ;   K[1]='m_sliderFillNode'
  ;   K[2]='sizeDelta'
  ;   K[3]='x'
  ;   K[4]='ProgressCellGap'
  ;   K[5]=1
  ;   K[6]='DOSizeDelta'
  ;   K[7]='SetEase'
  ;   K[8]='Ease'
  ;   K[9]='Linear'
  ;   K[10]='_GetMiddleNormalizedPosition'
  ;   K[11]='transform'
  ;   K[12]='GetComponent'
  ;   K[13]='typeof'
  ;   K[14]='ScrollRect'
  ;   K[15]='DOHorizontalNormalizedPos'
  ;   upvals: _ENV
  ;   locals: self(0-31), duration(0-31), currentLevel(2-31), sizeDelta(4-31), normalizedPosition(20-31), scrollRect(26-31)
  0000  SELF      R3 = R0[K0('GetCurrentLevel')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABLE  R3 = R0[K1('m_sliderFillNode')]
  0003  GETTABLE  R3 = R3[K2('sizeDelta')]
  0004  GETTABLE  R4 = R0[K4('ProgressCellGap')]
  0005  SUB       R5 = K5(1) sub R2
  0006  MUL       R4 = R5 mul R4
  0007  SETTABLE  R3[K3('x')] = R4
  0008  GETTABLE  R4 = R0[K1('m_sliderFillNode')]
  0009  SELF      R5 = R4[K6('DOSizeDelta')] (self)
  0010  MOVE      R6 = R0
  0011  MOVE      R7 = R0
  0012  CALL      R4 = call(R4, 1 args, 3 rets)
  0013  SELF      R5 = R4[K7('SetEase')] (self)
  0014  GETTABUP  R6 = _ENV[K8('Ease')]
  0015  GETTABLE  R6 = R6[K9('Linear')]
  0016  CALL      R4 = call(R4, 0 args, 2 rets)
  0017  SELF      R5 = R0[K10('_GetMiddleNormalizedPosition')] (self)
  0018  MOVE      R6 = R0
  0019  CALL      R4 = call(R4, 1 args, 2 rets)
  0020  GETTABLE  R5 = R0[K11('transform')]
  0021  SELF      R6 = R5[K12('GetComponent')] (self)
  0022  GETTABUP  R7 = _ENV[K13('typeof')]
  0023  GETTABUP  R8 = _ENV[K14('ScrollRect')]
  0024  CALL      R7 = call(R7, -1 args, 1 rets)
  0025  CALL      R5 = call(R5, 1 args, -1 rets)
  0026  SELF      R7 = R5[K15('DOHorizontalNormalizedPos')] (self)
  0027  MOVE      R8 = R0
  0028  MOVE      R9 = R0
  0029  CALL      R6 = call(R6, 0 args, 3 rets)
  0030  RETURN    return R0..R-1
; ---------- proto5 [PlayUpgradeAnimation] ----------
  ; fn ?  line 49-54 np=2 va=0 ms=8 code=18 consts=10 upvals=1 protos=0
  ;   K[0]='GetCurrentLevel'
  ;   K[1]='m_sliderFillNode'
  ;   K[2]='sizeDelta'
  ;   K[3]='x'
  ;   K[4]='ProgressCellGap'
  ;   K[5]=1
  ;   K[6]='DOSizeDelta'
  ;   K[7]='SetEase'
  ;   K[8]='Ease'
  ;   K[9]='Linear'
  ;   upvals: _ENV
  ;   locals: self(0-18), duration(0-18), currentLevel(2-18), sizeDelta(4-18)
  0000  SELF      R3 = R0[K0('GetCurrentLevel')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABLE  R3 = R0[K1('m_sliderFillNode')]
  0003  GETTABLE  R3 = R3[K2('sizeDelta')]
  0004  GETTABLE  R4 = R0[K4('ProgressCellGap')]
  0005  SUB       R5 = K5(1) sub R2
  0006  MUL       R4 = R5 mul R4
  0007  SETTABLE  R3[K3('x')] = R4
  0008  GETTABLE  R4 = R0[K1('m_sliderFillNode')]
  0009  SELF      R5 = R4[K6('DOSizeDelta')] (self)
  0010  MOVE      R6 = R0
  0011  MOVE      R7 = R0
  0012  CALL      R4 = call(R4, 1 args, 3 rets)
  0013  SELF      R5 = R4[K7('SetEase')] (self)
  0014  GETTABUP  R6 = _ENV[K8('Ease')]
  0015  GETTABLE  R6 = R6[K9('Linear')]
  0016  CALL      R4 = call(R4, 0 args, 2 rets)
  0017  RETURN    return R0..R-1
; ---------- proto6 [UpdateLevelContent] ----------
  ; fn ?  line 56-61 np=2 va=0 ms=12 code=13 consts=4 upvals=1 protos=0
  ;   K[0]='GetCurrentLevel'
  ;   K[1]='ipairs'
  ;   K[2]='m_progressCells'
  ;   K[3]='UpdateLevelContent'
  ;   upvals: _ENV
  ;   locals: self(0-13), needAnimation(0-13), currentLevel(2-13), (for generator)(5-12), (for state)(5-12), (for control)(5-12), _(6-10), progressCell(6-10)
  0000  SELF      R3 = R0[K0('GetCurrentLevel')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABUP  R3 = _ENV[K1('ipairs')]
  0003  GETTABLE  R4 = R0[K2('m_progressCells')]
  0004  CALL      R3 = call(R3, 3 args, 1 rets)
  0005  JMP       (jump)   -> 10
  0006  SELF      R9 = R7[K3('UpdateLevelContent')] (self)
  0007  MOVE      R10 = R0
  0008  MOVE      R11 = R0
  0009  CALL      R8 = call(R8, 0 args, 3 rets)
  0010  TFORCALL  tforcall R3
  0011  TFORLOOP  tforloop R5(sBx=-6)   -> 6
  0012  RETURN    return R0..R-1
; ---------- proto7 [_UpdatePositionContent] ----------
  ; fn ?  line 63-70 np=1 va=0 ms=8 code=26 consts=16 upvals=1 protos=0
  ;   K[0]='GetProgressLevel'
  ;   K[1]='UIUtil'
  ;   K[2]='SetSizeDelta'
  ;   K[3]='m_sliderFillNode'
  ;   K[4]='ProgressCellGap'
  ;   K[5]='math'
  ;   K[6]='max'
  ;   K[7]=0
  ;   K[8]=1
  ;   K[9]='GetCurrentLevel'
  ;   K[10]='transform'
  ;   K[11]='GetComponent'
  ;   K[12]='typeof'
  ;   K[13]='ScrollRect'
  ;   K[14]='horizontalNormalizedPosition'
  ;   K[15]='_GetMiddleNormalizedPosition'
  ;   upvals: _ENV
  ;   locals: self(0-26), progressLevel(2-26), currentLevel(15-26), scrollRect(21-26)
  0000  SELF      R2 = R0[K0('GetProgressLevel')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('UIUtil')]
  0003  GETTABLE  R2 = R2[K2('SetSizeDelta')]
  0004  GETTABLE  R3 = R0[K3('m_sliderFillNode')]
  0005  GETTABLE  R4 = R0[K4('ProgressCellGap')]
  0006  GETTABUP  R5 = _ENV[K5('math')]
  0007  GETTABLE  R5 = R5[K6('max')]
  0008  LOADK     R6 = K7 0
  0009  SUB       R7 = K8(1) sub R1
  0010  CALL      R5 = call(R5, 1 args, 2 rets)
  0011  MUL       R4 = R5 mul R4
  0012  CALL      R2 = call(R2, 0 args, 2 rets)
  0013  SELF      R3 = R0[K9('GetCurrentLevel')] (self)
  0014  CALL      R2 = call(R2, 1 args, 1 rets)
  0015  GETTABLE  R3 = R0[K10('transform')]
  0016  SELF      R4 = R3[K11('GetComponent')] (self)
  0017  GETTABUP  R5 = _ENV[K12('typeof')]
  0018  GETTABUP  R6 = _ENV[K13('ScrollRect')]
  0019  CALL      R5 = call(R5, -1 args, 1 rets)
  0020  CALL      R3 = call(R3, 1 args, -1 rets)
  0021  SELF      R5 = R0[K15('_GetMiddleNormalizedPosition')] (self)
  0022  MOVE      R6 = R0
  0023  CALL      R4 = call(R4, 1 args, 2 rets)
  0024  SETTABLE  R3[K14('horizontalNormalizedPosition')] = R4
  0025  RETURN    return R0..R-1
; ---------- proto8 [_GetMiddleNormalizedPosition] ----------
  ; fn ?  line 73-83 np=2 va=0 ms=9 code=29 consts=11 upvals=1 protos=0
  ;   K[0]='ProgressCellGap'
  ;   K[1]=1
  ;   K[2]='transform'
  ;   K[3]='rect'
  ;   K[4]='width'
  ;   K[5]='m_leftPendding'
  ;   K[6]=2
  ;   K[7]=0
  ;   K[8]='m_contentNode'
  ;   K[9]='math'
  ;   K[10]='min'
  ;   upvals: _ENV
  ;   locals: self(0-29), level(0-29), sliderWidth(3-29), areaWidth(6-29), contentWidth(16-29), normalized(22-29)
  0000  GETTABLE  R2 = R0[K0('ProgressCellGap')]
  0001  SUB       R3 = K1(1) sub R1
  0002  MUL       R2 = R3 mul R2
  0003  GETTABLE  R3 = R0[K2('transform')]
  0004  GETTABLE  R3 = R3[K3('rect')]
  0005  GETTABLE  R3 = R3[K4('width')]
  0006  GETTABLE  R4 = R0[K5('m_leftPendding')]
  0007  ADD       R4 = R4 add R2
  0008  DIV       R5 = K6(2) div R3
  0009  LE        if R0 le R5   -> -129008
  0010  JMP       (jump)   -> 13
  0011  LOADK     R4 = K7 0
  0012  RETURN    return R4..R3
  0013  GETTABLE  R4 = R0[K8('m_contentNode')]
  0014  GETTABLE  R4 = R4[K3('rect')]
  0015  GETTABLE  R4 = R4[K4('width')]
  0016  GETTABLE  R5 = R0[K5('m_leftPendding')]
  0017  ADD       R5 = R5 add R2
  0018  DIV       R6 = K6(2) div R3
  0019  SUB       R5 = R6 sub R5
  0020  SUB       R6 = R3 sub R4
  0021  DIV       R5 = R6 div R5
  0022  GETTABUP  R6 = _ENV[K9('math')]
  0023  GETTABLE  R6 = R6[K10('min')]
  0024  MOVE      R7 = R0
  0025  LOADK     R8 = K1 1
  0026  TAILCALL  tailcall(R6, 0)
  0027  RETURN    return R6..R5
  0028  RETURN    return R0..R-1
; ---------- proto9 [GetCellByLevel] ----------
  ; fn ?  line 85-87 np=2 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='m_progressCells'
  ;   locals: self(0-4), level(0-4)
  0000  GETTABLE  R2 = R0[K0('m_progressCells')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
