(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {<'/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'> 
                      <Id.Lit_Colon ':'> <'/usr/sbin'>
                    }
                )
              ]
              redirects: []
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <export>
          more_env: []
          words: [{<export>} {<PATH>}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.ShFunction
      name_tok: <do_purge>
      name: do_purge
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'purge '> ($ Id.VSub_At '@'))}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'not implemented yet'> <Id.Lit_BadBackslash '\\'> <n>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <uncompress_page>
      name: uncompress_page
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<pname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<fname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<sect>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<ext>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pname='> name:pname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'IFS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'IFS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                      op: assign_op.Equal
                      rhs: {(SQ <.>)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {($ Id.VSub_DollarName pname)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-lt>}
                                {<3>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<ignoring>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [262 276]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<-gt>}
                            {<2>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName fname) <.> ($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sect='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sect='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sect='> name:sect)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ext='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ext='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ext='> name:ext)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName ext))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <gz>
                  pattern: (pat.Words words:[{<gz>} {<Z>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ <' \t'>)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <file>
                                    more_env: []
                                    words: [{<file>} {($ Id.VSub_DollarName pname)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {($ Id.VSub_Number 2)}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ <gzip>)}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<moving>}
                                    {<hard>}
                                    {<link>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [
                                    {<mv>}
                                    {($ Id.VSub_DollarName pname)}
                                    {($ Id.VSub_DollarName fname) <.> ($ Id.VSub_DollarName ext)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [401 418]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {($ Id.VSub_Number 2)}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ <symbolic>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {<gunzipping>}
                                        {<page>}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'temp='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'temp='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'temp='>
                                                  name: temp
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Simple
                                                        blame_tok: <mktemp>
                                                        more_env: []
                                                        words: [{<mktemp>} {<-t>} {<manager>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <gunzip>
                                      more_env: []
                                      words: [{<gunzip>} {<-c>} {($ Id.VSub_DollarName pname)}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName temp)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <w>}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cp>
                                      more_env: []
                                      words: [
                                        {<cp>}
                                        {($ Id.VSub_DollarName temp)}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [{<chmod>} {<444>} {($ Id.VSub_DollarName pname)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <mv>
                                      more_env: []
                                      words: [
                                        {<mv>}
                                        {($ Id.VSub_DollarName pname)}
                                        {($ Id.VSub_DollarName fname) <.> ($ Id.VSub_DollarName sect)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName temp)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [451 468]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<skipping>}
                                    {<symlink>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<skipping>} {<file>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_uncompress>
      name: do_uncompress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<dir>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<workdir>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'workdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'workdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'workdir='> name:workdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <pwd>
                            more_env: []
                            words: [{<pwd>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-d>}
                                        {($ Id.VSub_Number 1)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName dir)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{<Id.Lit_Star '*'>}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <cat> <Id.Lit_QMark '?'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.If
                                                  if_kw: <Id.KW_If if>
                                                  arms: [
                                                    (IfArm
                                                      keyword: <Id.KW_If if>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <Id.Lit_LBracket '['>
                                                                  more_env: []
                                                                  words: [
                                                                    {<Id.Lit_LBracket '['>}
                                                                    {<-d>}
                                                                    {($ Id.VSub_DollarName i)}
                                                                    {<Id.Lit_RBracket ']'>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <do_uncompress>
                                                          more_env: []
                                                          words: [
                                                            {<do_uncompress>}
                                                            {($ Id.VSub_DollarName i)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      spids: [751 763]
                                                    )
                                                  ]
                                                  else_kw: <Id.KW_Else else>
                                                  else_action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Lit_LBracket '['>
                                                                      more_env: []
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['>}
                                                                        {<-e>}
                                                                        {($ Id.VSub_DollarName i)}
                                                                        {<Id.Lit_RBracket ']'>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <uncompress_page>
                                                              more_env: []
                                                              words: [
                                                                {<uncompress_page>}
                                                                {($ Id.VSub_DollarName i)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [775 787]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName workdir)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [690 702]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'directory '> ($ Id.VSub_Number 1) <' not found'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <so_purge_page>
      name: so_purge_page
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<so_entries>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<lines>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<fname>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'so_entries='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'so_entries='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'so_entries='> name:so_entries)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [
                                  {<grep>}
                                  {(DQ <'^'> <Id.Lit_BadBackslash '\\'> <.so>)}
                                  {($ Id.VSub_Number 1)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <wc>
                                more_env: []
                                words: [{<wc>} {<-l>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName so_entries)}
                                {<-eq>}
                                {<0>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [898 912]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {($ Id.VSub_Number 1)} {<contains>} {<a>} {<.so>} {<entry>}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lines='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lines='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lines='> name:lines)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <wc>
                            more_env: []
                            words: [{<wc>} {<-l>}]
                            redirects: [
                              (Redir
                                op: <Id.Redir_Less '<'>
                                loc: (redir_loc.Fd fd:0)
                                arg: {($ Id.VSub_Number 1)}
                              )
                            ]
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_DollarName lines)}
                                {<-eq>}
                                {<1>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'fname='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'fname='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 1)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<replacing>}
                        {($ Id.VSub_DollarName fname)}
                        {<with>}
                        {<a>}
                        {<hard>}
                        {<link>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <cat>
                                    more_env: []
                                    words: [{<cat>} {($ Id.VSub_DollarName fname)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName fname)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <ln>
                      more_env: []
                      words: [{<ln>} {<'../'> ($ Id.VSub_Number 2)} {($ Id.VSub_DollarName fname)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [973 987]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<inlining>} {<page>} {($ Id.VSub_DollarName fname)}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
                (command.AndOr
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'temp='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'temp='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'temp='> name:temp)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <mktemp>
                                    more_env: []
                                    words: [{<mktemp>} {<-t>} {<manager>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  ops: [<Id.Op_DPipe _>]
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>} {($ Id.VSub_DollarName fname)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Subshell
                      left: <Id.Op_LParen _>
                      child: 
                        (command.CommandList
                          children: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <cd>
                                  more_env: []
                                  words: [{<cd>} {<..>}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.Simple
                              blame_tok: <soelim>
                              more_env: []
                              words: [{<soelim>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      right: <Id.Right_Subshell _>
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName temp)}
                        )
                      ]
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <chmod>
                  more_env: []
                  words: [{<chmod>} {<u> <Id.Lit_Other '+'> <w>} {($ Id.VSub_DollarName fname)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <cp>
                  more_env: []
                  words: [{<cp>} {($ Id.VSub_DollarName temp)} {($ Id.VSub_DollarName fname)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <chmod>
                  more_env: []
                  words: [{<chmod>} {<444>} {($ Id.VSub_DollarName fname)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-f>} {($ Id.VSub_DollarName temp)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <remove_so>
      name: remove_so
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<pname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<fname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<sect>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pname='> name:pname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'IFS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'IFS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                      op: assign_op.Equal
                      rhs: {(SQ <.>)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {($ Id.VSub_DollarName pname)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-lt>}
                                {<2>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<ignoring>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1187 1201]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<-gt>}
                            {<1>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName fname) <.> ($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sect='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sect='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sect='> name:sect)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName sect))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <gz>
                  pattern: (pat.Words words:[{<gz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<file>}
                                {($ Id.VSub_DollarName pname)}
                                {<already>}
                                {<gzipped>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Z>
                  pattern: (pat.Words words:[{<Z>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<file>}
                                {($ Id.VSub_DollarName pname)}
                                {<already>}
                                {<compressed>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <12345678ln> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ <' \t'>)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <file>
                                    more_env: []
                                    words: [{<file>} {($ Id.VSub_DollarName pname)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {($ Id.VSub_Number 2)}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ <gzip>)}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<moving>}
                                    {<hard>}
                                    {<link>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [
                                    {<mv>}
                                    {($ Id.VSub_DollarName pname)}
                                    {($ Id.VSub_DollarName pname) <.gz>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [1371 1387]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {($ Id.VSub_Number 2)}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ <symbolic>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'removing .so\'s in  page '> 
                                            ($ Id.VSub_DollarName pname)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <so_purge_page>
                                      more_env: []
                                      words: [{<so_purge_page>} {($ Id.VSub_DollarName pname)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1419 1436]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<skipping>}
                                    {<symlink>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<skipping>} {<file>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <compress_page>
      name: compress_page
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<pname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<fname>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<sect>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pname='> name:pname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'IFS='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'IFS='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                      op: assign_op.Equal
                      rhs: {(SQ <.>)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {($ Id.VSub_DollarName pname)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {($ Id.VSub_Pound '#')}
                                {<-lt>}
                                {<2>}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<ignoring>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [1591 1605]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'fname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'fname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<-gt>}
                            {<1>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'fname='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'fname='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName fname) <.> ($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sect='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sect='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sect='> name:sect)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName sect))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <gz>
                  pattern: (pat.Words words:[{<gz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<file>}
                                {($ Id.VSub_DollarName pname)}
                                {<already>}
                                {<gzipped>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Z>
                  pattern: (pat.Words words:[{<Z>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<file>}
                                {($ Id.VSub_DollarName pname)}
                                {<already>}
                                {<compressed>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <12345678ln> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ <' \t'>)}
                                )
                              ]
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <file>
                                    more_env: []
                                    words: [{<file>} {($ Id.VSub_DollarName pname)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <Id.Lit_LBracket '['>
                                          more_env: []
                                          words: [
                                            {<Id.Lit_LBracket '['>}
                                            {($ Id.VSub_Number 2)}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ <gzip>)}
                                            {<Id.Lit_RBracket ']'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<moving>}
                                    {<hard>}
                                    {<link>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [
                                    {<mv>}
                                    {($ Id.VSub_DollarName pname)}
                                    {($ Id.VSub_DollarName pname) <.gz>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [1775 1791]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {($ Id.VSub_Number 2)}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ <symbolic>)}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {<gzipping>}
                                        {<page>}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'temp='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'temp='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'temp='>
                                                  name: temp
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Simple
                                                        blame_tok: <mktemp>
                                                        more_env: []
                                                        words: [{<mktemp>} {<-t>} {<manager>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <cat>
                                          more_env: []
                                          words: [{<cat>} {($ Id.VSub_DollarName pname)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [{<cd>} {<..>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Simple
                                                  blame_tok: <soelim>
                                                  more_env: []
                                                  words: [{<soelim>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <gzip>
                                          more_env: []
                                          words: [{<gzip>} {<-c>} {<-->}]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName temp)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [
                                        {<chmod>}
                                        {<u> <Id.Lit_Other '+'> <w>}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cp>
                                      more_env: []
                                      words: [
                                        {<cp>}
                                        {($ Id.VSub_DollarName temp)}
                                        {($ Id.VSub_DollarName pname)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <chmod>
                                      more_env: []
                                      words: [{<chmod>} {<444>} {($ Id.VSub_DollarName pname)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <mv>
                                      more_env: []
                                      words: [
                                        {<mv>}
                                        {($ Id.VSub_DollarName pname)}
                                        {($ Id.VSub_DollarName pname) <.gz>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName temp)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1823 1840]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {<skipping>}
                                    {<symlink>}
                                    {($ Id.VSub_DollarName pname)}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (BraceGroup
                      left: <Id.Lit_LBrace '{'>
                      children: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'IFS='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'IFS='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ <' \t'>)}
                            )
                          ]
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<skipping>} {<file>} {($ Id.VSub_DollarName pname)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      redirects: []
                      right: <Id.Lit_RBrace '}'>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <' \t'>)}
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_compress_so>
      name: do_compress_so
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<dir>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<workdir>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<what>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'what='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'what='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'what='> name:what)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'workdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'workdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'workdir='> name:workdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <pwd>
                            more_env: []
                            words: [{<pwd>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {<0>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-d>}
                                        {($ Id.VSub_Number 1)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName dir)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{<Id.Lit_Star '*'>}])
                              semi_tok: <Id.Op_Semi _>
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <cat> <Id.Lit_QMark '?'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (BraceGroup
                                              left: <Id.Lit_LBrace '{'>
                                              children: [
                                                (command.If
                                                  if_kw: <Id.KW_If if>
                                                  arms: [
                                                    (IfArm
                                                      keyword: <Id.KW_If if>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <Id.Lit_LBracket '['>
                                                                  more_env: []
                                                                  words: [
                                                                    {<Id.Lit_LBracket '['>}
                                                                    {<-d>}
                                                                    {($ Id.VSub_DollarName i)}
                                                                    {<Id.Lit_RBracket ']'>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <do_compress_so>
                                                          more_env: []
                                                          words: [
                                                            {<do_compress_so>}
                                                            {($ Id.VSub_DollarName what)}
                                                            {($ Id.VSub_DollarName i)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      spids: [2153 2165]
                                                    )
                                                  ]
                                                  else_kw: <Id.KW_Else else>
                                                  else_action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.Simple
                                                                      blame_tok: 
                                                                        <Id.Lit_LBracket '['>
                                                                      more_env: []
                                                                      words: [
                                                                        {<Id.Lit_LBracket '['>}
                                                                        {<-e>}
                                                                        {($ Id.VSub_DollarName i)}
                                                                        {<Id.Lit_RBracket ']'>}
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$what'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName what)}
                                                                {($ Id.VSub_DollarName i)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [2180 2192]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              redirects: []
                                              right: <Id.Lit_RBrace '}'>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName workdir)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [2092 2104]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'directory '> ($ Id.VSub_Number 1) <' not found'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '1>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <ctl_usage>
      name: ctl_usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'usage: '> ($ Id.VSub_Number 1) <' -compress <path> ... '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'       '> ($ Id.VSub_Number 1) <' -uncompress <path> ... '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'       '> ($ Id.VSub_Number 1) <' -purge <days> <path> ... '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'       '> ($ Id.VSub_Number 1) <' -purge expire <path> ... '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_compress>
      name: do_compress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <do_compress_so>
              more_env: []
              words: [{<do_compress_so>} {<remove_so>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_compress_so>
              more_env: []
              words: [{<do_compress_so>} {<compress_page>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Sentence
      child: 
        (command.If
          if_kw: <Id.KW_If if>
          arms: [
            (IfArm
              keyword: <Id.KW_If if>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {($ Id.VSub_Pound '#')}
                            {<-lt>}
                            {<2>}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              then_kw: <Id.KW_Then then>
              action: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <ctl_usage>
                      more_env: []
                      words: [{<ctl_usage>} {($ Id.VSub_Number 0)}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              spids: [2371 2385]
            )
          ]
          else_action: []
          fi_kw: <Id.KW_Fi fi>
          redirects: []
        )
      terminator: <Id.Op_Semi _>
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <-compress>
          pattern: (pat.Words words:[{<-compress>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <do_compress>
              more_env: []
              words: [{<do_compress>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <-uncompress>
          pattern: (pat.Words words:[{<-uncompress>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <do_uncompress>
              more_env: []
              words: [{<do_uncompress>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <-purge>
          pattern: (pat.Words words:[{<-purge>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <shift>
                  more_env: []
                  words: [{<shift>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <do_purge>
              more_env: []
              words: [{<do_purge>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <ctl_usage>
              more_env: []
              words: [{<ctl_usage>} {($ Id.VSub_Number 0)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
  ]
)