(CommandList
  children: [
    (C {(.)} {(./martin.sh)})
    (CommandList
      children: [
        (Sentence child:(C {(get)} {(DQ (/))} {(root)}) terminator:<Op_Semi ';'>)
        (FuncDef
          name: root
          body: 
            (BraceGroup
              children: [
                (C {(header)} {(DQ (Content-Type))} {(DQ ('text/html; charset=utf-8'))})
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op: <Redir_DLess '<<'>
                      fd: 16777215
                      here_begin: {(EOT)}
                      here_end_span_id: 76
                      stdin_parts: [
                        ('<!DOCTYPE html>\n')
                        ('<html>\n')
                        ('  <head>\n')
                        ('    <meta charset=')
                        (Right_DoubleQuote '"')
                        (utf-8)
                        (Right_DoubleQuote '"')
                        ('>\n')
                        ('    <title>hello world from ')
                        ($ VSub_Name '$PATH_INFO')
                        ('</title>\n')
                        ('  </head>\n')
                        ('  <body>\n')
                        ('    <img src=')
                        (Right_DoubleQuote '"')
                        (/DeanMartin.jpg)
                        (Right_DoubleQuote '"')
                        ('>\n')
                        ('    <h1>hello world from ')
                        ($ VSub_Name '$PATH_INFO')
                        ('</h1>\n')
                        ('    <a href=')
                        (Right_DoubleQuote '"')
                        (/ps)
                        (Right_DoubleQuote '"')
                        ('>processes</a>\n')
                        ('    <a href=')
                        (Right_DoubleQuote '"')
                        (/redirect)
                        (Right_DoubleQuote '"')
                        ('>redirect</a>\n')
                        ('  </body>\n')
                        ('</html>\n')
                      ]
                    )
                  ]
                )
              ]
              spids: [23]
            )
          spids: [18 22]
        )
      ]
    )
    (CommandList
      children: [
        (Sentence child:(C {(get)} {(DQ (/ps))} {(ps_handler)}) terminator:<Op_Semi ';'>)
        (FuncDef
          name: ps_handler
          body: 
            (BraceGroup
              children: [(C {(header)} {(DQ (Content-Type))} {(DQ (text/plain))}) (C {(ps)})]
              spids: [94]
            )
          spids: [89 93]
        )
      ]
    )
    (CommandList
      children: [
        (Sentence
          child: (C {(get)} {(DQ (/DeanMartin.jpg))} {(dean_handler)})
          terminator: <Op_Semi ';'>
        )
        (FuncDef
          name: dean_handler
          body: 
            (BraceGroup
              children: [
                (C {(header)} {(DQ (Content-Type))} {(DQ (image/jpeg))})
                (C {(cat)} {(DQ (DeanMartin.jpg))})
              ]
              spids: [127]
            )
          spids: [122 126]
        )
      ]
    )
    (CommandList
      children: [
        (Sentence
          child: (C {(get)} {(DQ (/redirect))} {(redirect_handler)})
          terminator: <Op_Semi ';'>
        )
        (FuncDef
          name: redirect_handler
          body: 
            (BraceGroup
              children: [
                (C {(status)} {(302)})
                (C {(header)} {(DQ (Location))} {(DQ ('http://jackjs.org/'))})
              ]
              spids: [164]
            )
          spids: [159 163]
        )
      ]
    )
    (C {(martin)} {($ VSub_Name '$PORT')})
  ]
)