(CommandList
  children: [
    (C {(source)} {(sources/utility_functions.sh)})
    (If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(1)} {(Lit_Other ']')})]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Usage: timeout.sh SECONDS COMMANDS...'))}]
              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 35]
        )
      ]
      spids: [16777215 52]
    )
    (C {(trap)} {(DQ ('killtree ') ($ VSub_Dollar '$$'))} {(EXIT)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TIMEOUT)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [64]
        )
      ]
      spids: [64]
    )
    (C {(shift)})
    (Pipeline
      children: [
        (Subshell child:(C {(eval)} {(DQ ($ VSub_At '$@'))}) spids:[71 79])
        (C {(tee)} 
          {
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (Sentence
                      child: 
                        (WhileUntil
                          keyword: <KW_While while>
                          cond: [
                            (Sentence
                              child: 
                                (C {(read)} {(-t)} {(DQ ($ VSub_Name '$TIMEOUT'))} {(-n)} {(32)} {(i)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
                              spids: [103 108]
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(sleep)} {(1)}) terminator:<Op_Semi ';'>)
                    (SimpleCommand
                      words: [{(kill)} {(-TERM)} {($ VSub_Dollar '$$')}]
                      redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                    )
                  ]
                )
              left_token: <Left_ProcSubOut '>('>
              spids: [85 125]
            )
          }
        )
      ]
      negated: F
    )
  ]
)