(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {(/bin) (Id.Lit_Other ':') (/usr/bin) (Id.Lit_Other ':') (/sbin) (Id.Lit_Other ':') 
              (/usr/sbin)
            }
          spids: [52]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DESC)
          op: assign_op.Equal
          rhs: {(DQ ('cron daemon'))}
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {(cron)}
          spids: [66]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DAEMON)
          op: assign_op.Equal
          rhs: {(/usr/sbin/cron)}
          spids: [69]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIDFILE)
          op: assign_op.Equal
          rhs: {(/var/run/crond.pid)}
          spids: [72]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPTNAME)
          op: assign_op.Equal
          rhs: {(/etc/init.d/) (DQ ($ Id.VSub_DollarName '$NAME'))}
          spids: [75]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(test)} {(-f)} {($ Id.VSub_DollarName '$DAEMON')})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:90)
          arg_word: {(0)}
        )
      ]
    )
    (C {(.)} {(/lib/lsb/init-functions)})
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {(Id.Lit_LBracket '[')} {(-r)} {(/etc/default/cron)} {(Id.Lit_RBracket ']')})
        (C {(.)} {(/etc/default/cron)})
      ]
    )
    (command.ShFunction
      name: parse_environment
      body: 
        (command.BraceGroup
          children: [
            (command.ForEach
              iter_name: ENV_FILE
              iter_words: [{(/etc/environment)} {(/etc/default/locale)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(-r)} {(DQ ($ Id.VSub_DollarName '$ENV_FILE'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Continue val:continue span_id:168)
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(Id.Lit_LBracket '[')} {(-s)} {(DQ ($ Id.VSub_DollarName '$ENV_FILE'))} 
                          {(Id.Lit_RBracket ']')}
                        )
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Continue val:continue span_id:183)
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: var
                      iter_words: [{(LANG)} {(LANGUAGE)} {(LC_ALL)} {(LC_CTYPE)}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:value)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:206)
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {(egrep)} {(DQ ('^') (${ Id.VSub_Name var) ('='))} 
                                                    {(DQ ($ Id.VSub_DollarName '$ENV_FILE'))}
                                                  )
                                                  (C {(tail)} {(-n1)})
                                                  (C {(cut)} {(-d) (Id.Lit_Equals '=')} {(-f2)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [205]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$value'))} 
                                  {(Id.Lit_RBracket ']')}
                                )
                                (C {(eval)} {(export)} 
                                  {($ Id.VSub_DollarName '$var') (Id.Lit_Equals '=') 
                                    ($ Id.VSub_DollarName '$value')
                                  }
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {(Id.Lit_LBracket '[')} {(-n)} 
                                              {(DQ ($ Id.VSub_DollarName '$value'))} {(Id.Lit_RBracket ']')}
                                            )
                                            (C {(Id.Lit_LBracket '[')} 
                                              {(DQ ($ Id.VSub_DollarName '$ENV_FILE'))} {(Id.Lit_Equals '=')} {(/etc/environment)} {(Id.Lit_RBracket ']')}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:287)
                                    )
                                  ]
                                  action: [
                                    (C {(log_warning_msg)} 
                                      {
                                        (DQ 
                                          (
'/etc/environment has been deprecated for locale information; use /etc/default/locale for '
                                          ) ($ Id.VSub_DollarName '$var') ('=') ($ Id.VSub_DollarName '$value') (' instead')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [262 289]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$TZ'))} {(-a)} 
                          {(-e)} {(/etc/timezone)} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:333)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:TZ)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_Backtick val:'`' span_id:339)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(cat)} {(/etc/timezone)})]
                                  )
                              )
                            }
                          spids: [338]
                        )
                      ]
                    )
                  ]
                  spids: [316 335]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$READ_ENV'))} 
                  {(Id.Lit_Equals '=')} {(DQ (yes))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:373)
            )
          ]
          action: [(C {(parse_environment)})]
          spids: [357 375]
        )
      ]
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(start)}]
          action: [
            (C {(log_daemon_msg)} {(DQ ('Starting periodic command scheduler'))} {(DQ (cron))})
            (C {(start_daemon)} {(-p)} {($ Id.VSub_DollarName '$PIDFILE')} 
              {($ Id.VSub_DollarName '$DAEMON')} {($ Id.VSub_DollarName '$EXTRA_OPTS')}
            )
            (C {(log_end_msg)} {($ Id.VSub_QMark '$?')})
          ]
          spids: [392 393 422 -1]
        )
        (case_arm
          pat_list: [{(stop)}]
          action: [
            (C {(log_daemon_msg)} {(DQ ('Stopping periodic command scheduler'))} {(DQ (cron))})
            (C {(killproc)} {(-p)} {($ Id.VSub_DollarName '$PIDFILE')} {($ Id.VSub_DollarName '$DAEMON')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RETVAL)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [447]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$RETVAL')} {(-eq)} {(0)} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ ($ Id.VSub_DollarName '$PIDFILE'))} 
                  {(Id.Lit_RBracket ']')}
                )
                (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PIDFILE')})
              ]
            )
            (C {(log_end_msg)} {($ Id.VSub_DollarName '$RETVAL')})
          ]
          spids: [424 425 487 -1]
        )
        (case_arm
          pat_list: [{(restart)}]
          action: [
            (C {(log_daemon_msg)} {(DQ ('Restarting periodic command scheduler'))} {(DQ (cron))})
            (C {($ Id.VSub_Number '$0')} {(stop)})
            (C {($ Id.VSub_Number '$0')} {(start)})
          ]
          spids: [489 490 514 -1]
        )
        (case_arm
          pat_list: [{(reload)} {(force-reload)}]
          action: [
            (C {(log_daemon_msg)} 
              {(DQ ('Reloading configuration files for periodic command scheduler'))} {(DQ (cron))}
            )
            (C {(log_end_msg)} {(0)})
          ]
          spids: [516 519 541 -1]
        )
        (case_arm
          pat_list: [{(status)}]
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DPipe]
              children: [
                (C {(status_of_proc)} {(-p)} {($ Id.VSub_DollarName '$PIDFILE')} 
                  {($ Id.VSub_DollarName '$DAEMON')} {($ Id.VSub_DollarName '$NAME')}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:559)
                  arg_word: {(0)}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:565)
                  arg_word: {($ Id.VSub_QMark '$?')}
                )
              ]
            )
          ]
          spids: [543 544 570 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (C {(log_action_msg)} 
              {(DQ ('Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}'))}
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:582)
              arg_word: {(2)}
            )
          ]
          spids: [572 573 587 -1]
        )
      ]
    )
    (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:591) arg_word:{(0)})
  ]
)