(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:PATH)
          rhs: {(/usr/bin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/sbin)}
          spids: [33]
        )
      ]
      spids: [33]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LeftVar name:SOCKET_DIR) rhs:{(.X11-unix)} spids:[42])]
      spids: [42]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LeftVar name:ICE_DIR) rhs:{(.ICE-unix)} spids:[45])]
      spids: [45]
    )
    (C {(.)} {(/lib/lsb/init-functions)})
    (If
      arms: [
        (if_arm
          cond: 
            (Sentence
              command: (C {(Lit_Other "[")} {(-f)} {(/etc/default/rcS)} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          action: (C {(.)} {(/etc/default/rcS)})
          spids: [-1 64]
        )
      ]
      spids: [-1 71]
    )
    (FuncDef
      name: do_restorecon
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: 
                    (Sentence
                      command: 
                        (SimpleCommand
                          words: [{(which)} {(restorecon)}]
                          redirects: [
                            (Redirect
                              op_id: Redir_Great
                              arg_word: {(/dev/null)}
                              fd: -1
                              spids: [92]
                            )
                            (Redirect
                              op_id: Redir_GreatAnd
                              arg_word: {(1)}
                              fd: 2
                              spids: [95]
                            )
                          ]
                        )
                      terminator: <Op_Semi ";">
                    )
                  action: (C {(restorecon)} {(DQ ($ VSub_Number "$1"))})
                  spids: [-1 99]
                )
              ]
              spids: [-1 109]
            )
          ]
          spids: [79]
        )
      spids: [74 78]
    )
    (FuncDef
      name: set_up_dir
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LeftVar name:DIR)
                  rhs: {(DQ (/tmp/) ($ VSub_Number "$1"))}
                  spids: [128]
                )
              ]
              spids: [128]
            )
            (If
              arms: [
                (if_arm
                  cond: 
                    (Sentence
                      command: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} 
                          {(KW_Bang "!") (Lit_Other "=")} {(no)} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  action: (C {(log_progress_msg)} {(DQ ($ VSub_Name "$DIR"))})
                  spids: [-1 152]
                )
              ]
              spids: [-1 162]
            )
            (If
              arms: [
                (if_arm
                  cond: 
                    (Sentence
                      command: 
                        (AndOr
                          children: [
                            (C {(Lit_Other "[")} {(-e)} {($ VSub_Name "$DIR")} {(Lit_Other "]")})
                            (AndOr
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(Lit_Other "[")} {(-d)} {($ VSub_Name "$DIR")} {(Lit_Other "]")})
                                  ]
                                  negated: True
                                )
                                (C {(Lit_Other "[")} {(-h)} {($ VSub_Name "$DIR")} {(Lit_Other "]")})
                              ]
                              op_id: Op_DPipe
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  action: 
                    (C {(mv)} {(DQ ($ VSub_Name "$DIR"))} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: (C {(mktemp)} {(-d)} {($ VSub_Name "$DIR") (.XXXXXX)})
                            spids: [212 219]
                          )
                        )
                      }
                    )
                  spids: [-1 202]
                )
              ]
              spids: [-1 223]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LeftVar name:error) rhs:{(0)} spids:[227])]
              spids: [227]
            )
            (While
              cond: (Sentence command:(C {(Lit_Other ":")}) terminator:<Op_Semi ";">)
              body: 
                (DoGroup
                  child: 
                    (CommandList
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: 
                                (Sentence
                                  command: 
                                    (C {(Lit_Other "[")} {($ VSub_Name "$error")} {(-ne)} {(0)} 
                                      {(Lit_Other "]")}
                                    )
                                  terminator: <Op_Semi ";">
                                )
                              action: 
                                (CommandList
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (Sentence
                                              command: 
                                                (C {(Lit_Other "[")} {($ VSub_Name "$error")} {(-gt)} 
                                                  {(5)} {(Lit_Other "]")}
                                                )
                                              terminator: <Op_Semi ";">
                                            )
                                          action: 
                                            (CommandList
                                              children: [
                                                (C {(log_failure_msg)} 
                                                  {(DQ ("failed to set up ") ($ VSub_Name "$DIR"))}
                                                )
                                                (C {(return)} {(1)})
                                              ]
                                            )
                                          spids: [-1 281]
                                        )
                                      ]
                                      spids: [-1 297]
                                    )
                                    (AndOr
                                      children: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:fn)
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (CommandSubPart
                                                      command_list: 
                                                        (C {(mktemp)} {(/tmp/testwriteable.XXXXXXXXXX)})
                                                      spids: [302 306]
                                                    )
                                                  )
                                                }
                                              spids: [300]
                                            )
                                          ]
                                          spids: [300]
                                        )
                                        (C {(return)} {(1)})
                                      ]
                                      op_id: Op_DPipe
                                    )
                                    (C {(rm)} {(DQ ($ VSub_Name "$fn"))})
                                  ]
                                )
                              spids: [-1 253]
                            )
                          ]
                          spids: [-1 323]
                        )
                        (AndOr
                          children: [
                            (C {(mkdir)} {(-p)} {(-m)} {(01777)} {(DQ ($ VSub_Name "$DIR"))})
                            (BraceGroup
                              children: [
                                (Sentence
                                  command: 
                                    (AndOr
                                      children: [
                                        (C {(rm)} {(DQ ($ VSub_Name "$DIR"))})
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:error)
                                              rhs: 
                                                {
                                                  (ArithSubPart
                                                    anode: 
                                                      (ArithBinary
                                                        op_id: Arith_Plus
                                                        left: (RightVar name:error)
                                                        right: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [351 358]
                                                  )
                                                }
                                              spids: [350]
                                            )
                                          ]
                                          spids: [350]
                                        )
                                      ]
                                      op_id: Op_DPipe
                                    )
                                  terminator: <Op_Semi ";">
                                )
                                (Sentence
                                  command: (C {(continue)})
                                  terminator: <Op_Semi ";">
                                )
                              ]
                              spids: [340]
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (Case
                          to_match: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (SimpleCommand
                                      words: [
                                        {(stat)}
                                        {(-c)}
                                        {(SQ <"%u %g %a %F">)}
                                        {(DQ ($ VSub_Name "$DIR"))}
                                      ]
                                      more_env: [(env_pair name:LC_ALL val:{(C)} spids:[373])]
                                    )
                                  spids: [372 387]
                                )
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [{(DQ ("0 0 1777 directory"))}]
                              action: (C {(break)})
                              spids: [394 396 406 -1]
                            )
                            (case_arm
                              pat_list: [{(DQ ("0 0 ")) (Lit_Other "*") (DQ (" directory"))}]
                              action: 
                                (CommandList
                                  children: [
                                    (C {(chmod)} {(01777)} {(DQ ($ VSub_Name "$DIR"))})
                                    (C {(break)})
                                  ]
                                )
                              spids: [410 416 435 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "*") (DQ (" directory"))}]
                              action: 
                                (CommandList
                                  children: [
                                    (AndOr
                                      children: [
                                        (C {(chown)} {(-h)} {(root) (Lit_Other ":") (root)} 
                                          {(DQ ($ VSub_Name "$DIR"))}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:error)
                                              rhs: 
                                                {
                                                  (ArithSubPart
                                                    anode: 
                                                      (ArithBinary
                                                        op_id: Arith_Plus
                                                        left: (RightVar name:error)
                                                        right: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [464 471]
                                                  )
                                                }
                                              spids: [463]
                                            )
                                          ]
                                          spids: [463]
                                        )
                                      ]
                                      op_id: Op_DPipe
                                    )
                                    (C {(continue)})
                                  ]
                                )
                              spids: [438 442 477 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "*")}]
                              action: 
                                (CommandList
                                  children: [
                                    (C {(log_failure_msg)} 
                                      {(DQ ("failed to set up ") ($ VSub_Name "$DIR"))}
                                    )
                                    (C {(return)} {(1)})
                                  ]
                                )
                              spids: [480 481 497 -1]
                            )
                          ]
                          spids: [369 390 500]
                        )
                      ]
                    )
                  spids: [236 503]
                )
            )
            (C {(return)} {(0)})
          ]
          spids: [125]
        )
      spids: [120 124]
    )
    (FuncDef
      name: do_status
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: 
                    (Sentence
                      command: 
                        (AndOr
                          children: [
                            (C {(Lit_Other "[")} {(-d)} {(DQ (/tmp/) ($ VSub_Name "$ICE_DIR"))} 
                              {(Lit_Other "]")}
                            )
                            (C {(Lit_Other "[")} {(-d)} {(DQ (/tmp/) ($ VSub_Name "$SOCKET_DIR"))} 
                              {(Lit_Other "]")}
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      terminator: <Op_Semi ";">
                    )
                  action: (C {(return)} {(0)})
                  spids: [-1 549]
                )
              ]
              else_action: (C {(return)} {(4)})
              spids: [557 565]
            )
          ]
          spids: [519]
        )
      spids: [514 518]
    )
    (Case
      to_match: {(DQ ($ VSub_Number "$1"))}
      arms: [
        (case_arm
          pat_list: [{(start)}]
          action: 
            (CommandList
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: 
                        (Sentence
                          command: 
                            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} 
                              {(KW_Bang "!") (Lit_Other "=")} {(no)} {(Lit_Other "]")}
                            )
                          terminator: <Op_Semi ";">
                        )
                      action: (C {(log_begin_msg)} {(DQ ("Setting up X socket directories..."))})
                      spids: [-1 599]
                    )
                  ]
                  spids: [-1 609]
                )
                (C {(set_up_dir)} {(DQ ($ VSub_Name "$SOCKET_DIR"))})
                (C {(set_up_dir)} {(DQ ($ VSub_Name "$ICE_DIR"))})
                (If
                  arms: [
                    (if_arm
                      cond: 
                        (Sentence
                          command: 
                            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} 
                              {(KW_Bang "!") (Lit_Other "=")} {(no)} {(Lit_Other "]")}
                            )
                          terminator: <Op_Semi ";">
                        )
                      action: (C {(log_end_msg)} {(0)})
                      spids: [-1 642]
                    )
                  ]
                  spids: [-1 650]
                )
              ]
            )
          spids: [579 580 653 -1]
        )
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: (C {(/etc/init.d/x11-common)} {(start)})
          spids: [657 662 670 -1]
        )
        (case_arm pat_list:[{(stop)}] action:(C {(Lit_Other ":")}) spids:[674675681-1])
        (case_arm pat_list:[{(status)}] action:(C {(do_status)}) spids:[685686692-1])
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: 
            (CommandList
              children: [
                (C {(log_success_msg)} 
                  {
                    (DQ 
                      (
"Usage: /etc/init.d/x11-common {start|stop|status|restart|reload|force-reload}"
                      )
                    )
                  }
                )
                (C {(exit)} {(1)})
              ]
            )
          spids: [695 696 711 -1]
        )
      ]
      spids: [570 576 713]
    )
    (C {(exit)} {(0)})
  ]
)