(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-e)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DAEMON)
          op: assign_op.Equal
          rhs: {(/usr/bin/dbus-daemon)}
          spids: [51]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:UUIDGEN)
          op: assign_op.Equal
          rhs: {(/usr/bin/dbus-uuidgen)}
          spids: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:UUIDGEN_OPTS)
          op: assign_op.Equal
          rhs: {(--ensure)}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NAME)
          op: assign_op.Equal
          rhs: {(dbus)}
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DAEMONUSER)
          op: assign_op.Equal
          rhs: {(messagebus)}
          spids: [63]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIDDIR)
          op: assign_op.Equal
          rhs: {(/var/run/dbus)}
          spids: [66]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PIDFILE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$PIDDIR') (/pid)}
          spids: [69]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DESC)
          op: assign_op.Equal
          rhs: {(DQ ('system message bus'))}
          spids: [73]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(test)} {(-x)} {($ Id.VSub_DollarName '$DAEMON')})
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:87)
          arg_word: {(0)}
        )
      ]
    )
    (C {(.)} {(/lib/lsb/init-functions)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PARAMS)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [100]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Id.Lit_LBracket '[')} {(-e)} {(/etc/default/dbus)} {(Id.Lit_RBracket ']')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:113)
            )
          ]
          action: [(C {(.)} {(/etc/default/dbus)})]
          spids: [104 115]
        )
      ]
    )
    (command.ShFunction
      name: create_machineid
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-x)} {($ Id.VSub_DollarName '$UUIDGEN')} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:145)
                    )
                  ]
                  action: [
                    (C {($ Id.VSub_DollarName '$UUIDGEN')} {($ Id.VSub_DollarName '$UUIDGEN_OPTS')})
                  ]
                  spids: [136 147]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: start_it_up
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-d)} 
                          {($ Id.VSub_DollarName '$PIDDIR')} {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:178)
                    )
                  ]
                  action: [
                    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$PIDDIR')})
                    (C {(chown)} {($ Id.VSub_DollarName '$DAEMONUSER')} 
                      {($ Id.VSub_DollarName '$PIDDIR')}
                    )
                    (C {(chgrp)} {($ Id.VSub_DollarName '$DAEMONUSER')} 
                      {($ Id.VSub_DollarName '$PIDDIR')}
                    )
                  ]
                  spids: [167 180]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(mountpoint)} {(-q)} {(/proc/)})]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:218)
                    )
                  ]
                  action: [
                    (C {(log_failure_msg)} 
                      {
                        (DQ ("Can't start ") ($ Id.VSub_DollarName '$DESC') (' - /proc is not mounted'))
                      }
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:232)
                    )
                  ]
                  spids: [208 220]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-e)} {($ Id.VSub_DollarName '$PIDFILE')} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:248)
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  words: [{($ Id.VSub_Number '$0')} {(status)}]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'>' span_id:259)
                                      fd: -1
                                      arg_word: {(/dev/null)}
                                    )
                                  ]
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:263)
                            )
                          ]
                          action: [
                            (C {(log_success_msg)} 
                              {
                                (DQ ($ Id.VSub_DollarName '$DESC') (' already started; not starting.'))
                              }
                            )
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Return val:return span_id:276)
                            )
                          ]
                          spids: [253 265]
                        )
                      ]
                      else_action: [
                        (C {(log_success_msg)} 
                          {(DQ ('Removing stale PID file ') ($ Id.VSub_DollarName '$PIDFILE') (.))}
                        )
                        (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PIDFILE')})
                      ]
                    )
                  ]
                  spids: [239 250]
                )
              ]
            )
            (C {(create_machineid)})
            (C {(log_daemon_msg)} {(DQ ('Starting ') ($ Id.VSub_DollarName '$DESC'))} 
              {(DQ ($ Id.VSub_DollarName '$NAME'))}
            )
            (C {(start-stop-daemon)} {(--start)} {(--quiet)} {(--pidfile)} 
              {($ Id.VSub_DollarName '$PIDFILE')} {(--exec)} {($ Id.VSub_DollarName '$DAEMON')} {(--)} {(--system)} {($ Id.VSub_DollarName '$PARAMS')}
            )
            (C {(log_end_msg)} {($ Id.VSub_QMark '$?')})
          ]
        )
    )
    (command.ShFunction
      name: shut_it_down
      body: 
        (command.BraceGroup
          children: [
            (C {(log_daemon_msg)} {(DQ ('Stopping ') ($ Id.VSub_DollarName '$DESC'))} 
              {(DQ ($ Id.VSub_DollarName '$NAME'))}
            )
            (C {(start-stop-daemon)} {(--stop)} {(--retry)} {(5)} {(--quiet)} {(--oknodo)} {(--pidfile)} 
              {($ Id.VSub_DollarName '$PIDFILE')} {(--user)} {($ Id.VSub_DollarName '$DAEMONUSER')}
            )
            (C {(log_end_msg)} {($ Id.VSub_QMark '$?')})
            (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PIDFILE')})
          ]
        )
    )
    (command.ShFunction
      name: reload_it
      body: 
        (command.BraceGroup
          children: [
            (C {(create_machineid)})
            (C {(log_action_begin_msg)} {(DQ ('Reloading ') ($ Id.VSub_DollarName '$DESC') (' config'))})
            (command.Simple
              words: [
                {(dbus-send)}
                {(--print-reply)}
                {(--system)}
                {(--type) (Id.Lit_Equals '=') (method_call)}
                {(--dest) (Id.Lit_Equals '=') (org.freedesktop.DBus)}
                {(/)}
                {(org.freedesktop.DBus.ReloadConfig)}
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:464)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
              ]
            )
            (C {(log_action_end_msg)} {($ Id.VSub_QMark '$?')})
          ]
        )
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_Number '$1'))}
      arms: [
        (case_arm pat_list:[{(start)}] action:[(C {(start_it_up)})] spids:[489 490 496 -1])
        (case_arm pat_list:[{(stop)}] action:[(C {(shut_it_down)})] spids:[499 500 506 -1])
        (case_arm
          pat_list: [{(reload)} {(force-reload)}]
          action: [(C {(reload_it)})]
          spids: [509 512 518 -1]
        )
        (case_arm
          pat_list: [{(restart)}]
          action: [(C {(shut_it_down)}) (C {(start_it_up)})]
          spids: [521 522 531 -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:550)
                  arg_word: {(0)}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:556)
                  arg_word: {($ Id.VSub_QMark '$?')}
                )
              ]
            )
          ]
          spids: [534 535 561 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('Usage: /etc/init.d/') ($ Id.VSub_DollarName '$NAME') 
                    (' {start|stop|reload|restart|force-reload|status}')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:576)
                  fd: -1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:580)
              arg_word: {(2)}
            )
          ]
          spids: [564 565 585 -1]
        )
      ]
    )
  ]
)