(command.CommandList
  children: [
    (C {<cd>} {<'/var/adm'>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: {<'/usr/lib/acct'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'>}
          spids: [87]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {($ Id.VSub_Pound '#')} {<-lt>} {<2>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'usage: chargefee name number'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [94 105]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_entry='> name:_entry)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: (C {<getent>} {<passwd>} {($ Id.VSub_Number 1)})
                  right: <Id.Backtick_Right '`'>
                )
              )
            }
          spids: [124]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<-z>} {(DQ (${ Id.VSub_Name _entry))})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'can\'t find login name '> ($ Id.VSub_Number 1))}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          spids: [137 150]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number 2))}
      arms: [
        (case_arm
          pat_list: [
            {<-> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
            {<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
          ]
          action: []
          spids: [178 188 189 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'charge invalid: '> ($ Id.VSub_Number 2))}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>})
          ]
          spids: [191 192 -1 210]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<Id.KW_Bang '!'>} {<-r>} {<fee>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<nulladm>} {<fee>})]
          spids: [213 224]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_userid='> name:_userid)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {(DQ (${ Id.VSub_Name _entry))})
                      (C {<cut>} {<-d> <Id.Lit_Colon ':'>} {<-f3>})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [233]
        )
      ]
      redirects: []
    )
    (command.Simple
      words: [
        {<echo>}
        {
          (DQ (${ Id.VSub_Name _userid) <' '> ($ Id.VSub_Number 1) <' 0 0 0 0 0 0 0 0 0 0 '> 
            ($ Id.VSub_Number 2)
          )
        }
      ]
      redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<fee>})]
      more_env: []
      do_fork: T
    )
  ]
)