(List (Com {[LIT_CHARS .]} {[LIT_CHARS martin.sh]} ) (Com {[LIT_CHARS get]} {[DQ [LIT_CHARS /]]} {[LIT_CHARS root]} ) (FunctionDef root [] (List (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Content-Type]]} {[DQ [LIT_CHARS text/html]]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOT' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS " hello world from "][VarSub PATH_INFO][LIT_CHARS "<title>\n"][LIT_CHARS " </head>\n"][LIT_CHARS " <body>\n"][LIT_CHARS " <img src="][RIGHT_D_QUOTE "\""][LIT_CHARS /DeanMartin.jpg][RIGHT_D_QUOTE "\""][LIT_CHARS ">\n"][LIT_CHARS " <h1>hello world from "][VarSub PATH_INFO][LIT_CHARS "</h1>\n"][LIT_CHARS " <a href="][RIGHT_D_QUOTE "\""][LIT_CHARS /ps][RIGHT_D_QUOTE "\""][LIT_CHARS ">processes</a>\n"][LIT_CHARS " <a href="][RIGHT_D_QUOTE "\""][LIT_CHARS /redirect][RIGHT_D_QUOTE "\""][LIT_CHARS ">redirect</a>\n"][LIT_CHARS " </body>\n"][LIT_CHARS "</html>\n"]]} <REDIR_DLESS "<<"> 0), > ) ) ) (Com {[LIT_CHARS get]} {[DQ [LIT_CHARS /ps]]} {[LIT_CHARS ps_handler]} ) (FunctionDef ps_handler [] (List (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Content-Type]]} {[DQ [LIT_CHARS text/plain]]} ) (Com {[LIT_CHARS ps]} {[LIT_CHARS aux]} ) ) ) (Com {[LIT_CHARS get]} {[DQ [LIT_CHARS /DeanMartin.jpg]]} {[LIT_CHARS dean_handler]} ) (FunctionDef dean_handler [] (List (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Content-Type]]} {[DQ [LIT_CHARS image/jpeg]]} ) (Com {[LIT_CHARS cat]} {[DQ [LIT_CHARS DeanMartin.jpg]]} ) ) ) (Com {[LIT_CHARS get]} {[DQ [LIT_CHARS /redirect]]} {[LIT_CHARS redirect_handler]} ) (FunctionDef redirect_handler [] (List (Com {[LIT_CHARS status]} {[LIT_CHARS 302]} ) (Com {[LIT_CHARS header]} {[DQ [LIT_CHARS Location]]} {[DQ [LIT_CHARS "http://jackjs.org/"]]} ) ) ) (Com {[LIT_CHARS wwwoosh_run]} {[LIT_CHARS martin_dispatch]} {[LIT_CHARS 8081]} ) )