(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {(/sbin) (Id.Lit_Other ':') (/usr/sbin) (Id.Lit_Other ':') (/bin) (Id.Lit_Other ':') 
              (/usr/bin)
            }
          spids: [28]
        )
      ]
    )
    (C {(.)} {(/lib/lsb/init-functions)})
    (command.ShFunction
      name: do_start
      body: 
        (command.BraceGroup
          children: [
            (C {(log_action_begin_msg)} {(DQ ('Asking all remaining processes to terminate'))})
            (C {(killall5)} {(-15)})
            (C {(log_action_end_msg)} {(0)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:alldead)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [75]
                )
              ]
            )
            (command.ForEach
              iter_name: seq
              iter_words: [{(1)} {(2)} {(3)} {(4)} {(5)} {(6)} {(7)} {(8)} {(9)} {(10)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {(killall5)} {(-18)})
                              terminator: (Token id:Id.Op_Semi val:';' span_id:138)
                            )
                          ]
                          action: [(C {(Id.Lit_Other ':')})]
                          spids: [132 140]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:alldead)
                              op: assign_op.Equal
                              rhs: {(1)}
                              spids: [149]
                            )
                          ]
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Break val:break span_id:153)
                        )
                      ]
                    )
                    (C {(sleep)} {(1)})
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$alldead'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:180)
                    )
                  ]
                  action: [
                    (C {(log_action_begin_msg)} {(DQ ('Killing all remaining processes'))})
                    (C {(killall5)} {(-9)})
                    (C {(log_action_end_msg)} {(1)})
                  ]
                  spids: [168 182]
                )
              ]
              else_action: [
                (C {(log_action_begin_msg)} 
                  {(DQ ('All processes ended within ') ($ Id.VSub_DollarName '$seq') (' seconds.'))}
                )
                (C {(log_action_end_msg)} {(0)})
              ]
            )
          ]
        )
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm pat_list:[{(start)}] action:[(C {(do_start)})] spids:[236 237 243 -1])
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ("Error: argument '") ($ Id.VSub_Number '$1') ("' not supported"))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:262)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:266)
              arg_word: {(3)}
            )
          ]
          spids: [246 251 271 -1]
        )
        (case_arm pat_list:[{(stop)} {(status)}] spids:[274 277 284 -1])
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ('Usage: ') ($ Id.VSub_Number '$0') (' start|stop'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:299)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:303)
              arg_word: {(3)}
            )
          ]
          spids: [287 288 308 -1]
        )
      ]
    )
  ]
)